单片机课后题.doc
如有侵权,请联系网站删除,仅供学习与交流单片机课后题【精品文档】第 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应指向 A A)栈底单元 B)7FH C)栈底单元地址加1 D)栈底单元地址减l4、指令MOVC A,A+PC源操作数的寻址方式是 D A)寄存器寻址方式 B)寄存器间接寻址方式 C)直接寻址方式 D)变址寻址方式5、ANL 20H,#30H指令中,源操作数的寻址方式是 A A)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式6、ANL C,30H指令中,源操作数的寻址方式是 C A)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式7、Jz rel指令中,操作数rel的寻址方式是 D A)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式8、Jz rel指令中,是判断 A 中的内容是否为0。 A)A B)B C)C D)PC9、MOVX A,DPTR指令中源操作数的寻址方式是(B) A)寄存器寻址(B)寄存器间接寻址(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、指令SJMP $ 的功能是无条件转移到本指令的首地址执行程序,即将本指令的首地址送给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 两种。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、在堆栈操作中,当栈内的数据全部弹出后,这时的SP指向栈底单元。( )2、在堆栈操作中,当栈内的数据全部弹出后,这时的SP指向栈顶单元。( ×)3、数据传送指令将改变源操作数的内容。(× )4、调用子程序指令(如:CALL)及返回指令(如:RET)与堆栈有关但与PC无关。(×)5、堆栈遵循数据先进后出,后进先出的原则。( )6、在MCS-51单片机中,堆栈的地址随着压栈数据从小到大递增。( )7、子程序返回可以使用RET指令,也可以使用RETI指令。(× )8、ACALL指令是2字节指令,而LCALL指令是3字节指令。( )9、空操作指令不占机器周期。(× )10、减法指令只有带借位的减法,没有不带借位的减法。( )11、加法指令只有带进位的加法,没有不带进位的加法。(× )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 00H解答:(1)解答:源操作数为:直接寻址方式:目的操作数为:寄存器寻址方式。(2)解答:源操作数为:直接寻址方式;目的操作数为:直接寻址方式。(3)解答:源操作数为:寄存器间接寻址方式;目的操作数为:寄存器方式。(4)解答:源操作数为:寄存器间接寻址方式;目的操作数为:寄存器寻址方式。(5)解答:操作数为:相对寻址方式。(6)解答:源操作数为:立即寻址方式;目的操作数为:寄存器寻址方式。(7)解答:源操作数为:位寻址方式;目的操作数为:位寻址方式。(8)解答:源操作数为:立即寻址方式;目的操作数为:寄存器寻址方式。(9)解答:源操作数为:变址寻址方式;目的操作数为:寄存器寻址方式。(10)解答:源操作数为:立即寻址方式:目的操作数为:直接寻址方式。(11)解答:源操作数为:位寻址方式;目的操作数为:位寻址方式。(12)解答:操作数为:位寻址方式。(13)解答:操作数为:寄存器寻址方式。(14)解答:操作数为:位寻址方式。(15)解答:源操作数为:寄存器间接寻址方式:目的操作数为:寄存器寻址方式。(16)解答:源操作数为:变址寻址方式;目的操作数为:寄存器寻址方式。(17)解答:源操作数为:相对寻址方式;目的操作数为:寄存器寻址方式。(18)解答:操作数为:位寻址方式。2、写出下列程序的运行结果。(1)MOV SP,# 40HMOV A,#20HMOV B,#30HPUSH APUSH 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,(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,32H MOV 32H,A MOV R0,#31HMOV A,R0解答:R0=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,DPTRMOV 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,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=79H(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什么是堆栈?解答:堆栈是一个特殊的存储空间,有一端是固定的,称为栈底,另一端是活动的,称为栈项,数据的存取是在栈顶进行的。数据的存取遵循先进后出,后进先出的原则。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字节指令。(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,使之返回到调用指令的下一个指令,继续执行主程序。而RETI指令除了具有RET指令的功能之外,还有清除中断响应时被设置的优先级状态、开放低级中断以及恢复中断逻辑等功能。8.NOP指令的用途是什么?解答:常常用于程序的等待或时间的延迟。测试题二练习1:将内部RAM单元中20H单元到2FH单元的数传到外部RAM中的2000H到200FH单元中. ORG 0000H MOV R0,#20H MOV DPTR,#2000H MOV R2,#10H LOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,LOOP END练习2:外部RAM3000H 开始有 50个数传送到内部RAM 30H开始的区域;算法分析:取地址指针DPTR=3000H、 R0=30H、计数器R7=50 ORG 0000H MOV DPTR,#3000H MOV R0,#30H MOV R7,#32H LOOP: MOVX A,DPTR MOV R0,A INC DPTR INC R0 DJNZ R7,LOOP; END练习3:设在外ROM的TAB处开始有一串数字,该串数字以0结尾,编程把他们从P1口输出。 ORG 0000H MOV DPTR,#TAB ;设字符串首地址指针 MOV A,#00HSOUT: MOV B,A MOVC A,A+DPTR ;取字符 JZ NEXT ;整串结束则转跳 MOV P1,A MOV A,B INC A ;修改地址指针 SJMP SOUT ;没结束继续取数发送 NEXT: SJMP $ ;结束处理TAB: DB 04H,05H ;定义数字串 DB 03,07H,0FH,00H ;以0结尾 END 练习4:2ms延时程序,已知晶振频率为12MHZ,则机器周期为1us。 ORG 0DELAY2ms: MOV R7,#10 ;1T DL1: MOV R6,#48 ;1T DL2: NOP ;1T NOP ;1T DJNZ R6,DL2 2T DJNZ R7,DL1 2T END;该段程序耗时为: 1+1+(1+1+2)×48+2×10+2 = 1953 (us) 练习5:编程通过P1.0线连续输出256个宽度为5个机器周期长的方波。 ORG 0 MOV R0,#00H CLR P1.0 LOOP: CPL P1.0 NOP NOP DJNZ R0,LOOP END练习6 :将8051内部RAM的40H 4FH单元置初值#A0H #AFH。 ORG 0 MOV R0,#40H MOV R2,#10H MOV A,#0A0H LOOP: MOV R0,A INC R0 INC A DJNZ R2,LOOP END练习7:设P1口的P1.0 P1.3为准备就绪信号输入端,当该四位为全1时,说明各项工作已准备好,单片机可顺序执行(将R2里的数送给A),否则,循环等待。 ORG 0WAIT: MOV P1,#0FFH MOV A,P1 ANL A,#0FH CJNE A,#0FH,WAIT ;P1.0 P1.3不为全1时,返 回WAIT MOV A,R2 END测试题三一、单项选择题1、CPU主要的组成部部分为: A (A)运算器.控制器 (B)加法器.寄存器(C)运算器.寄存器 (D)运算器.指令译码器2 MCS 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 若选择寄存器工作组时标识位应是 C (A)CY (B)AC (C)RS1和RS0 (D)OV (E)P6、以下指令中,哪条指令执行后使标志位CY清0 : D (A)MOV A,#00H (B)CLR A(C)ADD A,#00H (D)ADDC A,#00H7.在 CPU 内部,反映程序运行状态或反映运算结果一些特征的寄存器是 B 。 A .PC B.PSW C.A D.SP8、下面那一段程序能准确地读取P1口引脚信号: B (A)MOV A,#00H ;MOV P1,A ;MOV A,P1(B)MOV A,#0FFH ;MOV P1,A ;MOV A,P1(C)MOV A,#00H ;MOV A,P1(D)MOV A,#0FFH ;MOV A,P19、8031单片机中既可位寻址又可字节寻址的单元是 A (A)20H (B)30H (C)00H (D)70H10、定时/计数器有种操作模式,它们由下列哪个寄存器中的M1和M0状态决定。B (A)TCON (B)TMOD (C)PCON (D)SCON 11、定时器/计数器工作于模式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)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 0013H E 连续存放中断服务程序 F 存放转移指令19MCS-51系列单片机外扩存储器芯片时,4个I/O 口中作为数据总线的是 B AP0 口和 P2 口 B P0 口 CP2 口和 P3 口 DP2 口20单片机上电复位后,PC的内容和SP的内容为 B A0000H,00H B0000H,07H C0003H,07H D0800H,08H21MCS51单片机的数据指针DPTR是一个16位的专用地址指针寄存器,主要用来 B A存放指令 B存放16位地址,作间址寄存器使用C存放下一条指令地址 D存放上一条指令地址22扩展存储器时要加锁存器373,其作用是( A )。 A 锁存寻址单元的低八位地址 B 锁存寻址单元的数据C 锁存寻址单元的高八位地址 D 锁存相关的控制和选择信号23单片机的堆栈指针SP始终是指示 B A堆栈底 B堆栈顶 C堆栈地址 D堆栈中间位置24 单片机复位后, SP 、 PC 、 I/O 口的内容为( C ) A SP = 07H PC = 00H P0 = P1 = P2 = P3 = FFHB SP = 00H PC = 0000H P0 = P1 = P2 = P3 = 00HC SP = 07H PC = 0000H P0 = P1 = P2 = P3 = FFHD SP = 00H PC = 00H P0 = P1 = P2 = P3 = 00H258031 单片机若晶振频率为fosc=6MHz,则一个机器周期等于 D A1/12µS B1/2µS C1µS D2µS268051单片机中,唯一一个用户可使用的16位寄存器是 D APSW BACC CSP DDPTR27 当单片机从 8155 接口芯片内部 RAM 的 20H 单元中读取某一数据时,应使用 A 类指令。 A.MOV A,20H B.MOVX A ,Ri C.MOVC A ,A+DPTR D.MOVX A,DPTR21.访问外部存贮器或其它接口芯片时,作高8位地址线的是 C AP0口 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状态字中RS1和RS0分别为0和1时,系统现用的工作寄存器的地址空间为 B A00H07H B08H0FHC10H17H D18H7FH308031定时/计数器是否计满可采用等待中断的方法进行处理,也可通过对 C 的查询方法进行判断。 AOV标志 BCY标志 C中断标志 D奇偶标志32.下面那一段程序能准确地读取P1口引脚信号: B AMOV A,#00H ;MOV P1,A ;MOV A,P1BMOV A,#0FFH ;MOV P1,A ;MOV A,P1CMOV A,#00H ;MOV A,P1DMOV A,#0FFH ;MOV A,P133指令MOV R0,#99H执行前(R0)=30H,(99H)=38H,执行后(R0)= C A38H B30H C99H D20H34能访问外部数据存贮器的传送指令是 C AMOV 指令 BMOVC 指令 CMOVX 指令 DXCH35在五个中断源中,可通过软件确定各中断源中断级别的高或低,但在同一级别中,按硬件排队的优先级别最高的是 C 中断。A定时器T0 B定时器T1 C外部中断INTO D外部中断INT1 E串行口36用8051的定时器T1作定时方式,用模式1,则工作方式控制字为 C A01H B05H C10H D50H37单片机在与外部I/O口进行数据传送时将使用( A )指令。A MOVX B MOV C MOVC D 视具体I/O口器件而定。38启动定时器0开始计数的指令是使TCON的 B ATF0位置1 BTR0位置1 CTR0位置0 DTR1位置039 8031 定时 / 计数器共有四种操作模式,由 TMOD 寄存器中 M1 M0 的状态决定,当 M1 M0 的状态为 01 时,定时 / 计数器被设定为 B A13 位定时 / 计数器 B16 位定时 / 计数器 C自动重装8位定时/计数器 DT0为2个独立的8位定时/计数器,T1停止工作 40MCS51单片机在同一级别里除INT0外,级别最高的中断源是 B A外部中断1 B定时器T0 C定时器T1 D串行口41、在中断服务程序中,至少应该有一条 D 。A、传送指令B、转移指令 C、加法指令 D、中断返回指令42一个EPROM的地址有A0-A11引脚,它的容量为 A2KB B4KB C11KB D12KB43在运用8031单片机扩展32K数据存储器RAM时,需采用 条地址线,其中P2口用 条线。 A 10 B13 C15 D5 E6 F744当单片机启动ADC0809进行模/数转换时,应采用 指令。A MOV A,20 BMOVX A,DPTR C MOVC A,A+DPTR DMOVX DPTR,A45扩展程序存储器2764时,需要( )条P2口线。A 13 B 5 C 8 D 4 46、某存储器芯片地址线为12根,那么它的存储容量为 。A、1KB B、2KB C、4KB D、8KB47、8051单片机共有 5 个中断优先级 A、2 B、3 C 、4 D、548在中断允许寄存器中,中断控制寄存器EA位的作用是 A A CPU总中断允许控制位 B 中断请求总标志位 C 各中断源允许控制位 D 串行口中断允许位49、要访问MCS-51的特殊功能寄存器应使用的寻址方式是 C A、寄存器间接寻址 B、变址寻址 C、直接寻址 D相对寻址50、MOV C,#00H指令中目的操作数的寻址方式是 A 。A、位寻址 B、直接寻址 C、立即寻址 D、寄存器寻址51串行口的工作方式由 C 寄存器决定。A SBUF B PCON C SCON D RI 51串行口中断入口地址是( B ) A: 000BH B: 0023H C:1000H D:0013H 52、8051的程序计数器PC为16位计数器,其寻址范围是 A、8K B、16K C 、32K D、64K 53、8051单片机中,唯一一个用户不能直接使用的寄存器是 A、PSW B、DPTR C 、PC D、B 54、执行如下三条指令后,30H单元的内容是 MOV R1,30H MOV 40H,0EH MOV R1,40H A、40H B、30H C 、0EH D、FFH 55、有如下程序段: