单片机课后题精编版Word文件下载.docx
《单片机课后题精编版Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机课后题精编版Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
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指令后,则商存放在
中,余数存放
B
中。
12、执行了MUL
AB指令后,则积的高8位存放在
中,而积的低8位存放在
13、在MCS-51单片机中,加法指令可以分为
两种。
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
(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
A,#20H
B,#30H
B
POP
(SP)=?
(A)=?
(B)=?
(SP)=40H,(A)=30H,(B)=20H
SP,#40H
(SP)=40H
,
(A)=20H,(B)=30H
R0,#7EH
DPTR.#10FEH
7EH,#0AAH
7FH.#0BBH
INC
@R0
R0
DPTR
(7EH)=?
(7FH)=?
(R0)=?
((R0))=?
(DPTR)=?
(7EH)=0ABH
(7FH)=0BCH,(R0)=7FH
((R0))=0BCH,
(DPTR)=10FFH
(4)MOV
R0,#00H
B,#0FFH
MOV
20H,#0F0H
XCH
A,R0
A,
A,
@R0
(A)=?
(20H)=?
(R0)=?
(A)=F0H
(B)=00H
(20H)=FFH
(R0)=20H
3、在设A=0FH,R0=30H,内部RAM的(30H)=0AH、(31H)=0BH、(32H)=0CH,请指出在执行下列程序段后上述各单元内容的变化。
@R0,32H
32H,A
R0,#31H
R0=31H,A=0BH,
(30H)=0CH、(31H)=0BH、(32H)=0AH
4、请用数据传送指令来实现下列要求的数据传送。
(1)
R0的内容输出到R1
A,R0
R1,A
(2)
内部RAM20H单元的内容传送到A中。
A,20H
(3)
外部RAM30H单元的内容送到R0。
R0,#30H
MOVX
A,@R0
R0,A
(4)
外部RAM30H单元的内容送内部RAM20H单元。
R1,#30H
A,@R1
20H,A
(5)
外部RAM1000H单元的内容送内部RAM20H单元。
DPTR,#1000H
A,@DPTR
(6)
程序存储器ROM2000H单元的内容送R1。
DPTR,#2000H
CLR
MOVC
A,@A+DPTR
(7)
ROM2000H单元的内容送到内部RAM20H单元。
(8)
ROM2000H单元的内容送外部RAM30H单元。
@R0,A
(9)
ROM2000H单元的内容送外部RAM1000H单元。
@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
(4)XCHD
A=50H
(5)SWAP
A=A5H
(6)ADD
A=8AH
(7)ADD
(8)ADD
A,#30H
(9)ADDC
A=31H
(10)INC
A=5BH
(11)SUBB
A=79H
(12)SUBB
A=29H
(13)DEC
A=59H
(14)RL
A=B2H
(15)RLC
A=B5H
(16)CPL
(17)CLR
A=00H
(18)ANL
A=40H
(19)ORL
A=FAH
(20)CRL
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
R0,#20H
DPTR,#2000H
R2,#10H
LOOP:
A,@R0
@DPTR,A
R0
DPTR
DJNZ
R2,LOOP
END
练习2:
外部RAM3000H开始有50个数传送到内部RAM30H开始的区域
;
算法分析:
取地址指针DPTR=3000H、R0=30H、计数器R7=50
ORG
0000H
DPTR,#3000H
R0,#30H
R7,#32H
MOVXA,@DPTR
@R0,A
INC
DJNZR7,LOOP;
END
练习3:
设在外ROM的TAB处开始有一串数字,该串数字以0结尾,编程把他们从P1口输出。
0000H
DPTR,#TAB
;
设字符串首地址指针
A,#00H
SOUT:
B,A
MOVC
A,@A+DPTR
取字符
JZ
NEXT
整串结束则转跳
P1,A
A,B
修改地址指针
SJMP
SOUT
没结束继续取数发送
NEXT:
SJMP
结束处理
TAB:
DB
04H,05H
定义数字串
03,07H,0FH,00H
以0结尾
END
练习4:
2ms延时程序,已知晶振频率为12MHZ,则机器周期为1us。
ORG0
DELAY2ms:
R7,#10
1T
DL1:
R6,#48
DL2:
NOP
DJNZ
R6,DL2
2T
R7,DL1
该段程序耗时为:
1+[1+(1+1+2)×
48+2]×
10+2=1953
(us)
练习5:
编程通过P1.0线连续输出256个宽度为5个机器周期长的方波。
0
R0,#00H
P1.0
CPL
NOP
R0,LOOP
练习6:
将8051内部RAM的40H~4FH单元置初值#A0H~#AFH。
ORG0
R0,#40H
A,#0A0H
练习7:
设P1口的P1.0~P1.3为准备就绪信号输入端,当该四位为全1时,说明各项工作已准备好,单片机可顺序执行(将R2里的数送给A),否则,循环等待。
WAIT:
P1,#0FFH
A,P1
ANL
A,#0FH
CJNEA,#0FH,WAIT;
P1.0~P1.3不为全1时,返回WAIT
A,R2
测试题三
一、单项选择题
1、CPU主要的组成部部分为:
[
]
(A)运算器.控制器
(B)加法器.寄存器
(C)运算器.寄存器
(D)运算器.指令译码器
2
.MCS—51
系列单片机外扩存储器芯片时,
4
个
I/O
口中作为数据总线的是[B]。
(A)
P0
口和
P2
口
(B)
(C)
P3
(D)
3、单片机应用程序一般存放在:
(A)RAM
(B)ROM
(C)寄存器
4.下列指令中,不影响堆栈指针的指令是
]。
RET
B
JBbit,rel
LCALLaddr16
RETI
5、在程序状态寄存器PSW中,判断是否有借/进位的标志位是
]若选择寄存器工作组时标识位应是
(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
内部,反映程序运行状态或反映运算结果一些特征的寄存器是
A.PC
B.PSW
C.A
D.SP
8、下面那一段程序能准确地读取P1口引脚信号:
(A)MOV
A,#00H
P1,A
A,P1
A,#0FFH
(C)MOV
(D)MOV
9、8031单片机中既可位寻址又可字节寻址的单元是
(A)20H
(B)30H
(C)00H
(D)70H
10、定时/计数器有4种操作模式,它们由下列哪个寄存器中的M1和M0状态决定。
[B
(A)TCON
(B)TMOD
(C)PCON
(D)SCON
11、定时器/计数器工作于模式2
,在计数溢出时,计数器工作于下列哪个状态。
(A)计数从零重新开始
(B)计数从初值重新开始
(C)计数停止
(D)计数从0FFH重新开始
12、T0
设置成计数方式时,外部引脚计数脉冲的最高频率应是晶振频率的: