《单片机课后题.doc》由会员分享,可在线阅读,更多相关《单片机课后题.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流单片机课后题【精品文档】第 11 页测试题一一、选择题1、执行下列3条指令后,30H单元的内容是(C)MOV R0,#30H MOV 40H,#0EH MOV R0,40H A)40H B)30H C)0EH D)FFH2、在堆栈中压入一个数据时(B)A)先压栈,再令SP+1 B)先令SP+1,再压栈 C)先压栈,再令SP-l D)先令SP-1,再压栈3、在堆栈操作中,当进栈数据全部弹出后,这时的SP应指向 AA)栈底单元 B)7FH C)栈底单元地址加1 D)栈底单元地址减l4、指令MOVC A,A+PC源操作数的寻址方式是 DA)寄存器寻址方式 B)
2、寄存器间接寻址方式 C)直接寻址方式 D)变址寻址方式5、ANL 20H,#30H指令中,源操作数的寻址方式是A A)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式6、ANL C,30H指令中,源操作数的寻址方式是 C A)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式7、Jz rel指令中,操作数rel的寻址方式是 DA)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式8、Jz rel指令中,是判断A中的内容是否为0。A)A B)B C)C D)PC9、MOVX A,DPTR指令中源操作数的寻址方式是(B)A)寄存器寻址(B)寄存器间接寻址
3、(C)直接寻址 (D)立即寻址10、下面条指令将MCS-51的工作寄存器置成3区(B)A)MOV PSW,#13H(B)MOV PSW,#18H11、MOV C,00H指令中源操作数的寻址方式是(A) A)位寻址 B)直接寻址 C)立即寻址 D)寄存器寻址二、填空题1、8051单片机共有7种寻址方式。访问外部数据存储器应采用寄存器间接寻址方式。2、访问外部数据存储器应采用寄存器间接寻址方式;查表应使用变址寻址方式。3、在8051单片机中,堆栈操作的指令有PUSH和 POP两个。4、在8051单片机中,子程序调用的指令有ACALL和 LCALL两个。5、CJNE指令都是3字节字节指令。6、指令S
4、JMP $的功能是无条件转移到本指令的首地址执行程序,即将本指令的首地址送给PC。7、十进制调整指令DA A不能单独执行,在执行该指令之前必须先执行ADD指令或者ADDC指令。8、位转移指令都是采用相对寻址方式实现转移的。9、子程序必须使用RET指令返回主程序,而中断服务程序必须使用RETI指令返回主程序。10、PUSH指令是实现把数据压入堆栈的操作,而POP指令是实现把数据从堆栈中弹出的操作。11、执行了DIV AB指令后,则商存放在A中,余数存放B中。12、执行了MUL AB指令后,则积的高8位存放在B中,而积的低8位存放在A。13、在MCS-51单片机中,加法指令可以分为ADD和ADDC
5、两种。14、读程序存储器指令有MOVC A,A+DPTR 和MOVC A,A+PC两个,它们的源操作数都属于变址寻址方式。15、减法指令的助记符为SUBB,其作用是将累加器A中的内容减去源操作数,再减去进位位C的内容,所得的结果存入累加器A。16、INC指令的功能是将操作数加l后存放到原处,DEC指令的功能是将操作数减1后存放到原处。17、在立即寻址方式中,在数前使用#号来表示立即数。18、在立即寻址方式中,立即数一定出现在源操作数中。19、在执行MOVX A,R0指令时,源操作数的高8位是由 P2寄存器提供的。20、访问外部数据存储器必须使用 MOVX指令。三、判断题1、在堆栈操作中,当栈内
6、的数据全部弹出后,这时的SP指向栈底单元。()2、在堆栈操作中,当栈内的数据全部弹出后,这时的SP指向栈顶单元。()3、数据传送指令将改变源操作数的内容。()4、调用子程序指令(如:CALL)及返回指令(如:RET)与堆栈有关但与PC无关。()5、堆栈遵循数据先进后出,后进先出的原则。()6、在MCS-51单片机中,堆栈的地址随着压栈数据从小到大递增。()7、子程序返回可以使用RET指令,也可以使用RETI指令。()8、ACALL指令是2字节指令,而LCALL指令是3字节指令。()9、空操作指令不占机器周期。()10、减法指令只有带借位的减法,没有不带借位的减法。()11、加法指令只有带进位的
7、加法,没有不带进位的加法。()12、不能使用无条件转移指令直接从子程序中转到主程序中去。( )四、应用题1、说明下列指令中各个操作数的寻址方式。(1)ADD A,30H(2)MOV 30H,20H(3)MOV A,R0(4)MOVX A,R1(5)SJMP $(6)MOV R0,#20H(7)ORL C,00H(8)MOV DPTR,#2000H(9)MOVC A,A+PC(10)ANL 20H,#30H(11)ANL C,30H(12)CPL C(13)CPL A(14)CPL 20H(15)ADD A,R1(16)MOVC A,A+DPTR(17)DJNZ R0, rel(18)SETB
8、00H解答:(1)解答:源操作数为:直接寻址方式:目的操作数为:寄存器寻址方式。(2)解答:源操作数为:直接寻址方式;目的操作数为:直接寻址方式。(3)解答:源操作数为:寄存器间接寻址方式;目的操作数为:寄存器方式。(4)解答:源操作数为:寄存器间接寻址方式;目的操作数为:寄存器寻址方式。(5)解答:操作数为:相对寻址方式。(6)解答:源操作数为:立即寻址方式;目的操作数为:寄存器寻址方式。(7)解答:源操作数为:位寻址方式;目的操作数为:位寻址方式。(8)解答:源操作数为:立即寻址方式;目的操作数为:寄存器寻址方式。(9)解答:源操作数为:变址寻址方式;目的操作数为:寄存器寻址方式。(10)
9、解答:源操作数为:立即寻址方式:目的操作数为:直接寻址方式。(11)解答:源操作数为:位寻址方式;目的操作数为:位寻址方式。(12)解答:操作数为:位寻址方式。(13)解答:操作数为:寄存器寻址方式。(14)解答:操作数为:位寻址方式。(15)解答:源操作数为:寄存器间接寻址方式:目的操作数为:寄存器寻址方式。(16)解答:源操作数为:变址寻址方式;目的操作数为:寄存器寻址方式。(17)解答:源操作数为:相对寻址方式;目的操作数为:寄存器寻址方式。(18)解答:操作数为:位寻址方式。2、写出下列程序的运行结果。(1)MOV SP,# 40HMOV A,#20HMOV B,#30HPUSH AP
10、USH BPOP APOP B(SP)=?(A)=? (B)=?解答:(SP)=40H,(A)=30H,(B)=20H(2)MOV SP,#40HMOV A,#20HMOV B,#30HPUSH APUSH BPOP BPOP A(SP)=?(A)=? (B)=?解答:(SP)=40H,(A)=20H,(B)=30H(3)MOV R0,#7EHMOV DPTR#10FEHMOV 7EH,#0AAHMOV 7FH#0BBHINC R0INC R0INC R0INC DPTR(7EH)=? (7FH)=?(R0)=? (R0)=? (DPTR)=?解答:(7EH)=0ABH,(7FH)=0BCH,
11、(R0)=7FH,(R0)=0BCH, (DPTR)=10FFH(4)MOV R0,#00HMOV A,#20HMOV B,#0FFHMOV 20H,#0F0HXCH A,R0XCH A, BXCH A, R0 (A)=? (B)=? (20H)=? (R0)=?解答:(A)=F0H (B)=00H (20H)=FFH (R0)=20H3、在设A=0FH,R0=30H,内部RAM的(30H)=0AH、(31H)=0BH、(32H)=0CH,请指出在执行下列程序段后上述各单元内容的变化。 MOV A,R0 MOV R0,32HMOV 32H,A MOV R0,#31HMOV A,R0解答:R0=
12、31H, A=0BH ,(30H)=0CH、(31H)=0BH、(32H)=0AH4、请用数据传送指令来实现下列要求的数据传送。(1) R0的内容输出到R1解答:MOV A,R0MOV R1,A(2)内部RAM20H单元的内容传送到A中。解答:MOV A,20H(3)外部RAM30H单元的内容送到R0。解答:MOV R0,#30HMOVX A,R0MOV R0,A(4)外部RAM30H单元的内容送内部RAM20H单元。解答:MOV R1,#30HMOVX A,R1MOV 20H,A(5)外部RAM1000H单元的内容送内部RAM20H单元。解答:MOV DPTR,#1000HMOVX A,DP
13、TRMOV 20H,A(6)程序存储器ROM2000H单元的内容送R1。解答:MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV R1,A(7) ROM2000H单元的内容送到内部RAM20H单元。解答:MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV 20H,A(8) ROM2000H单元的内容送外部RAM30H单元。解答:MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV R0,#30HMOVX R0,A(9) ROM2000H单元的内容送外部RAM1000H单元。解答:MOV DPTR,#2000HCLR AMOVC A
14、,A+DPTRMOV DPTR,#1000HMOVX DPTR,A5、设A=5AH,R1=30H,(30H)=E0H,Cy=1。分析下列各指令执行后A的内容以及对标志位的影响(每条指令都以题中规定的原始数据参加操作)。(1)XCH A,R1;A=30H(2)XCH A,30H;A=E0H(3)XCH A,R1;A=E0H(4)XCHD A,R1;A=50H(5)SWAP A;A=A5H(6)ADD A,R1;A=8AH(7)ADD A,30H;A=30H(8)ADD A,#30H;A=8AH(9)ADDC A,30H;A=31H(10)INC A;A=5BH(11)SUBB A,30H;A=7
15、9H(12)SUBB A,#30H;A=29H(13)DEC A;A=59H(14)RL A;A=B2H(15)RLC A ;A=B5H(16)CPL A;A=A5H(17)CLR A;A=00H(18)ANL A,30H;A=40H(19)ORL A,R1;A=FAH(20)CRL A,#30H;A=BAH五、问答题1、在MCS-51单片机中有几种寻址方式?写出每一种寻址方式。解答:有7种寻址方式,分别是立即寻址方式、直接寻址方式、寄存器寻址方式、寄存器间接寻址方式、变址寻址方式、相对寻址方式和位寻址方式。2什么是堆栈?解答:堆栈是一个特殊的存储空间,有一端是固定的,称为栈底,另一端是活动的
16、,称为栈项,数据的存取是在栈顶进行的。数据的存取遵循先进后出,后进先出的原则。3.在MCS-51单片机的指令系统中,有关堆栈操作的指令有哪些?解答:PUSH和POP指令。4.已知CJNE指令的一般格式为: CJNE操作数l,操作数2rel简述怎样使用CJNE指令判断两个操作数的大小。解答:若操作数1操作数2,则进位标志C=0,否则C=15.写出AJMP和LJMP指令的共同点和区别。解答:共同点是都是无条件转移,转到指定的标号执行程序。区别:(1)转移范围不同,LJMP指令的转移范围为64KB,AJMP指令的转移范围为2KB。(2)指令字节数不同,LJMP指令是3字节指令,AJMP指令是2字节指
17、令。(3)AJMP指令的机器码特殊。6.写出ACALL和LCALL指令的共同点和区别。解答:共同点是都是调用子程序指令,转到指定的标号执行子程序。区别:(1)转移范围不同,LCALL指令的调用范围为64KB,ACALL指令的调用范围为2KB。(2)指令字节数不同,LCALL指令是3字节指令,ACALL指令是2字节指令。(3)ACALL指令的机器码特殊。7.RET和RETI指令主要有哪些区别?解答:区别:(1)使用场合不同,RET指令在子程序中使用,RETI指令在中断服务程序中使用。(2)从功能上看,RET指令从堆栈中自动取出断点地址给PC,使之返回到调用指令的下一个指令,继续执行主程序。而RE
18、TI指令除了具有RET指令的功能之外,还有清除中断响应时被设置的优先级状态、开放低级中断以及恢复中断逻辑等功能。8.NOP指令的用途是什么?解答:常常用于程序的等待或时间的延迟。测试题二练习1:将内部RAM单元中20H单元到2FH单元的数传到外部RAM中的2000H到200FH单元中.ORG 0000HMOV R0,#20HMOV DPTR,#2000HMOV R2,#10HLOOP: MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R2,LOOPEND练习2:外部RAM3000H 开始有 50个数传送到内部RAM 30H开始的区域;算法分析:取地址指针DPTR=3
19、000H、 R0=30H、计数器R7=50 ORG 0000H MOV DPTR,#3000H MOV R0,#30H MOV R7,#32HLOOP: MOVX A,DPTR MOV R0,A INC DPTR INC R0 DJNZ R7,LOOP; END练习3:设在外ROM的TAB处开始有一串数字,该串数字以0结尾,编程把他们从P1口输出。ORG0000HMOV DPTR,#TAB ;设字符串首地址指针 MOV A,#00HSOUT: MOV B,A MOVC A,A+DPTR ;取字符 JZ NEXT ;整串结束则转跳MOV P1,AMOV A,BINC A ;修改地址指针SJMP
20、SOUT ;没结束继续取数发送NEXT: SJMP $ ;结束处理TAB:DB 04H,05H ;定义数字串DB 03,07H,0FH,00H ;以0结尾 END练习4:2ms延时程序,已知晶振频率为12MHZ,则机器周期为1us。 ORG 0DELAY2ms: MOVR7,#10 ;1TDL1: MOVR6,#48 ;1TDL2: NOP ;1T NOP ;1T DJNZR6,DL2;2T DJNZR7,DL1;2T END;该段程序耗时为: 1+1+(1+1+2)48+210+2 = 1953 (us)练习5:编程通过P1.0线连续输出256个宽度为5个机器周期长的方波。ORG 0MOV
21、R0,#00HCLR P1.0LOOP: CPL P1.0NOPNOPDJNZ R0,LOOPEND练习6 :将8051内部RAM的40H 4FH单元置初值#A0H #AFH。ORG 0MOV R0,#40H MOV R2,#10H MOV A,#0A0HLOOP:MOV R0,AINC R0INC ADJNZ R2,LOOPEND练习7:设P1口的P1.0 P1.3为准备就绪信号输入端,当该四位为全1时,说明各项工作已准备好,单片机可顺序执行(将R2里的数送给A),否则,循环等待。ORG 0WAIT:MOV P1,#0FFHMOV A,P1ANL A,#0FHCJNE A,#0FH,WAIT
22、 ;P1.0 P1.3不为全1时,返 回WAITMOV A,R2END测试题三一、单项选择题1、CPU主要的组成部部分为:A(A)运算器.控制器(B)加法器.寄存器(C)运算器.寄存器(D)运算器.指令译码器2MCS 51系列单片机外扩存储器芯片时,4个I/O口中作为数据总线的是 B 。(A)P0口和P2口(B)P0口(C)P2口和P3口(D)P2口3、单片机应用程序一般存放在:B(A)RAM(B)ROM(C)寄存器4下列指令中,不影响堆栈指针的指令是B。A RET B JB bit,relC LCALL addr16 D RETI5、在程序状态寄存器PSW中,判断是否有借/进位的标志位是A若
23、选择寄存器工作组时标识位应是C(A)CY(B)AC(C)RS1和RS0(D)OV(E)P6、以下指令中,哪条指令执行后使标志位CY清0:D(A)MOV A,#00H(B)CLRA(C)ADD A,#00H(D)ADDCA,#00H7.在CPU内部,反映程序运行状态或反映运算结果一些特征的寄存器是B。A .PC B.PSW C.A D.SP8、下面那一段程序能准确地读取P1口引脚信号:B(A)MOVA,#00H;MOVP1,A;MOVA,P1(B)MOVA,#0FFH;MOVP1,A;MOVA,P1(C)MOVA,#00H;MOVA,P1(D)MOVA,#0FFH;MOVA,P19、8031单片
24、机中既可位寻址又可字节寻址的单元是A(A)20H(B)30H(C)00H(D)70H10、定时/计数器有种操作模式,它们由下列哪个寄存器中的M1和M0状态决定。B(A)TCON(B)TMOD(C)PCON(D)SCON11、定时器/计数器工作于模式2,在计数溢出时,计数器工作于下列哪个状态。B(A)计数从零重新开始(B)计数从初值重新开始(C)计数停止(D)计数从0FFH重新开始12、T0设置成计数方式时,外部引脚计数脉冲的最高频率应是晶振频率的:C(A)1/6(B)1/12(C)1/24(D)1/4813、当晶振频率是12MHz时,MCS51单片机的机器周期是:A(A)1s(B)1ms(C)
25、2s(D)2ms14、外部中断INT0的触发方式控制位IT0置1后,其有效的中断触发信号是:D(A)高电平(B)低电平(C)上升沿(D)下降沿15、外部中断INT0的中断入口地址是:A(A)0003H(B)000BH(C)0013H(D)001BH16、8051单片机共有几个个定时器。B(A)1(B)2(C)3(D)417、8051单片机共有几个中断源。B(A)4(B)5(C)6(D)718定时器T1的中断入口地址是C ,从该地址开始一般可E。 A 0003H B 000BH C 001BH D 0013HE连续存放中断服务程序 F存放转移指令19MCS-51系列单片机外扩存储器芯片时,4个I
26、/O口中作为数据总线的是BAP0口和P2口BP0口CP2口和P3口DP2口20单片机上电复位后,PC的内容和SP的内容为BA0000H,00HB0000H,07H C0003H,07HD0800H,08H21MCS51单片机的数据指针DPTR是一个16位的专用地址指针寄存器,主要用来BA存放指令B存放16位地址,作间址寄存器使用C存放下一条指令地址D存放上一条指令地址22扩展存储器时要加锁存器373,其作用是(A)。 A锁存寻址单元的低八位地址 B锁存寻址单元的数据C锁存寻址单元的高八位地址D锁存相关的控制和选择信号23单片机的堆栈指针SP始终是指示BA堆栈底B堆栈顶C堆栈地址D堆栈中间位置2
27、4单片机复位后,SP、PC、I/O口的内容为(C)ASP = 07H PC = 00H P0 = P1 = P2 = P3 = FFHBSP = 00H PC = 0000H P0 = P1 = P2 = P3 = 00HCSP = 07H PC = 0000H P0 = P1 = P2 = P3 = FFHDSP = 00H PC = 00H P0 = P1 = P2 = P3 = 00H258031单片机若晶振频率为fosc=6MHz,则一个机器周期等于DA1/12SB1/2SC1SD2S268051单片机中,唯一一个用户可使用的16位寄存器是DAPSWBACCCSPDDPTR27当单片机
28、从8155接口芯片内部RAM的20H单元中读取某一数据时,应使用 A 类指令。A.MOV A,20H B.MOVX A ,Ri C.MOVC A ,A+DPTR D.MOVX A,DPTR21.访问外部存贮器或其它接口芯片时,作高8位地址线的是CAP0口BP1口CP2口DP0口和P2口28单片机复位后,累加器A、PC、PSW的内容为(B)AA = FFH PC = 00H PSW = FFHBA = 00H PC = 0000H PSW = 00HCA = 07H PC = 0000H PSW = FFHDA = 00H PC = 00H PSW = 00H29.当程序状态字寄存器PSW状态字
29、中RS1和RS0分别为0和1时,系统现用的工作寄存器的地址空间为BA00H07HB08H0FHC10H17HD18H7FH308031定时/计数器是否计满可采用等待中断的方法进行处理,也可通过对 C 的查询方法进行判断。 AOV标志 BCY标志 C中断标志 D奇偶标志32.下面那一段程序能准确地读取P1口引脚信号:BAMOVA,#00H;MOVP1,A;MOVA,P1BMOVA,#0FFH;MOVP1,A;MOVA,P1CMOVA,#00H;MOVA,P1DMOVA,#0FFH;MOVA,P133指令MOVR0,#99H执行前(R0)=30H,(99H)=38H,执行后(R0)= CA38HB
30、30HC99HD20H34能访问外部数据存贮器的传送指令是CAMOV指令BMOVC指令CMOVX指令DXCH35在五个中断源中,可通过软件确定各中断源中断级别的高或低,但在同一级别中,按硬件排队的优先级别最高的是C 中断。A定时器T0B定时器T1 C外部中断INTOD外部中断INT1 E串行口36用8051的定时器T1作定时方式,用模式1,则工作方式控制字为CA01HB05HC10HD50H37单片机在与外部I/O口进行数据传送时将使用(A)指令。A MOVX B MOV C MOVCD视具体I/O口器件而定。38启动定时器0开始计数的指令是使TCON的BATF0位置1BTR0位置1CTR0位
31、置0DTR1位置0398031定时/计数器共有四种操作模式,由TMOD寄存器中M1 M0的状态决定,当M1 M0的状态为01时,定时/计数器被设定为B A13位定时/计数器 B16位定时/计数器C自动重装8位定时/计数器 DT0为2个独立的8位定时/计数器,T1停止工作40MCS51单片机在同一级别里除INT0外,级别最高的中断源是BA外部中断1B定时器T0 C定时器T1D串行口41、在中断服务程序中,至少应该有一条D 。A、传送指令B、转移指令C、加法指令D、中断返回指令42一个EPROM的地址有A0-A11引脚,它的容量为A2KBB4KBC11KBD12KB43在运用8031单片机扩展32
32、K数据存储器RAM时,需采用 条地址线,其中P2口用 条线。 A10 B13 C15 D5 E6 F744当单片机启动ADC0809进行模/数转换时,应采用 指令。AMOV A,20 BMOVX A,DPTR CMOVC A,A+DPTR DMOVX DPTR,A45扩展程序存储器2764时,需要()条P2口线。A 13 B 5 C 8 D 446、某存储器芯片地址线为12根,那么它的存储容量为。A、1KBB、2KBC、4KBD、8KB47、8051单片机共有 5个中断优先级A、2B、3C、4D、548在中断允许寄存器中,中断控制寄存器EA位的作用是AA CPU总中断允许控制位 B中断请求总标
33、志位C各中断源允许控制位 D串行口中断允许位49、要访问MCS-51的特殊功能寄存器应使用的寻址方式是CA、寄存器间接寻址B、变址寻址C、直接寻址D相对寻址50、MOV C,#00H指令中目的操作数的寻址方式是A。A、位寻址B、直接寻址C、立即寻址D、寄存器寻址51串行口的工作方式由C寄存器决定。A SBUF B PCON C SCON D RI51串行口中断入口地址是(B)A: 000BH B: 0023H C:1000H D:0013H52、8051的程序计数器PC为16位计数器,其寻址范围是A、8KB、16KC、32KD、64K53、8051单片机中,唯一一个用户不能直接使用的寄存器是 A、PSWB、DPTRC、PCD、B54、执行如下三条指令后,30H单元的内容是MOV R1,30HMOV40H,0EHMOVR1,40H A、40HB、30HC、0EHD、FFH55、有如下程序段:
限制150内