单片机课后题.docx
《单片机课后题.docx》由会员分享,可在线阅读,更多相关《单片机课后题.docx(24页珍藏版)》请在冰豆网上搜索。
单片机课后题
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
测试题一
一、选择题
1、执行下列3条指令后,30H单元的内容是 ( C )
MOV R0,#30H
MOV 40H,#0EH
MOV @R0,40H
A)40H B)30H C)0EH D)FFH
2、在堆栈中压入一个数据时 ( B)
A)先压栈,再令SP+1 B)先令SP+1,再压栈
C)先压栈,再令SP-l D)先令SP-1,再压栈
3、在堆栈操作中,当进栈数据全部弹出后,这时的SP应指向 A
A)栈底单元 B)7FH
C)栈底单元地址加1 D)栈底单元地址减l
4、指令MOVCA,@A+PC源操作数的寻址方式是 D
A)寄存器寻址方式 B)寄存器间接寻址方式
C)直接寻址方式 D)变址寻址方式
5、ANL20H,#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)PC
9、MOVX A,@DPTR指令中源操作数的寻址方式是(B)
A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址
10、下面条指令将MCS-51的工作寄存器置成3区(B)
A)MOV PSW,#13H (B)MOV PSW,#18H
11、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、读程序存储器指令有 MOVCA,@A+DPTR 和 MOVCA,@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,#40H
MOV A,#20H
MOV B,#30H
PUSH A
PUSH B
POP A
POP B
(SP)=?
(A)=?
(B)=?
解答:
(SP)=40H,(A)=30H,(B)=20H
(2)MOV SP,#40H
MOV A,#20H
MOV B,#30H
PUSH A
PUSH B
POP B
POP A
(SP)=?
(A)=?
(B)=?
解答:
(SP)=40H , (A)=20H,(B)=30H
(3)MOV R0,#7EH
MOV DPTR.#10FEH
MOV 7EH,#0AAH
MOV 7FH.#0BBH
INC @R0
INC R0
INC @R0
INC DPTR
(7EH)=?
(7FH)=?
(R0)=?
((R0))=?
(DPTR)=?
解答:
(7EH)=0ABH , (7FH)=0BCH,(R0)=7FH , ((R0))=0BCH, (DPTR)=10FFH
(4)MOV R0,#00H
MOV A,#20H
MOV B,#0FFH
MOV 20H,#0F0H
XCH A,R0
XCH A, B
XCH A, @R0
(A)=?
(B)=?
(20H)=?
(R0)=?
解答:
(A)=F0H (B)=00H (20H)=FFH (R0)=20H
3、在设A=0FH,R0=30H,内部RAM的(30H)=0AH、(31H)=0BH、(32H)=0CH,请指出在执行下列程序段后上述各单元内容的变化。
MOV A,@R0
MOV @R0,32H
MOV 32H,A
MOV R0,#31H
MOV A,@R0
解答:
R0=31H,A=0BH, (30H)=0CH、(31H)=0BH、(32H)=0AH
4、请用数据传送指令来实现下列要求的数据传送。
(1) R0的内容输出到R1
解答:
MOV A,R0
MOV R1,A
(2) 内部RAM20H单元的内容传送到A中。
解答:
MOV A,20H
(3) 外部RAM30H单元的内容送到R0。
解答:
MOV R0,#30H
MOVX A,@R0
MOV R0,A
(4) 外部RAM30H单元的内容送内部RAM20H单元。
解答:
MOV R1,#30H
MOVX A,@R1
MOV 20H,A
(5) 外部RAM1000H单元的内容送内部RAM20H单元。
解答:
MOV DPTR,#1000H
MOVX A,@DPTR
MOV 20H,A
(6) 程序存储器ROM2000H单元的内容送R1。
解答:
MOV DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV R1,A
(7) ROM2000H单元的内容送到内部RAM20H单元。
解答:
MOV DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV 20H,A
(8) ROM2000H单元的内容送外部RAM30H单元。
解答:
MOV DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV R0,#30H
MOVX @R0,A
(9) ROM2000H单元的内容送外部RAM1000H单元。
解答:
MOV DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV DPTR,#1000H
MOVX @DPTR,A
5、设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,操作数2.rel
简述怎样使用CJNE指令判断两个操作数的大小。
解答:
若操作数1≥操作数2,则进位标志C=0,否则C=1
5.写出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个数传送到内部RAM30H开始的区域;算法分析:
取地址指针DPTR=3000H、R0=30H、计数器R7=50 ORG 0000H MOV DPTR,#3000H MOV R0,#30H MOV R7,#32H LOOP:
MOVXA,@DPTR MOV @R0,A INC DPTR INC R0 DJNZR7,LOOP; END
练习3:
设在外ROM的TAB处开始有一串数字,该串数字以0结尾,编程把他们从P1口输出。
ORG 0000H MOV DPTR,#TAB ;设字符串首地址指针 MOV A,#00H
SOUT:
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。
ORG0DELAY2ms:
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。
ORG0 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 CJNEA,#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 JBbit,rel
C LCALLaddr16 D RETI
5、在程序状态寄存器PSW中,判断是否有借/进位的标志位是 [ A ]若选择寄存器工作组时标识位应是 [ C ]
(A)CY (B)AC (C)RS1和RS0 (D)OV (E)P
6、以下指令中,哪条指令执行后使标志位CY清0 :
[ D ]
(A)MOVA,#00H (B)CLR A
(C)ADDA,#00H (D)ADDC A,#00H
7.在 CPU 内部,反映程序运行状态或反映运算结果一些特征的寄存器是 [ B ]。
A.PC B.PSW C.A D.SP
8、下面那一段程序能准确地读取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,P1
9、8031单片机中既可位寻址又可字节寻址的单元是 [ A ]
(A)20H (B)30H (C)00H (D)70H
10、定时/计数器有4种操作模式,它们由下列哪个寄存器中的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/48
13、当晶振频率是12MHz时,