单片机习题参考答案 联系客服

发布时间 : 星期六 文章单片机习题参考答案更新完毕开始阅读41bac9db50e2524de5187ea0

一个机器周期为多少微秒?

答:8051的一个指令周期通常由1~4个机器周期组成;一个机器周期由6个时钟周

期组成;当振荡频率为10MHz时,一个机器周期为0.2微秒。

14.在8051扩展系统中,片外程序存储器和片外数据存储器共处同地址空间,为什

么不会发生总线冲突?

答:访问片外程序存储器使用MOVC类指令、访问片外数据存储器使用MOVX类指令,

因使用不同的指令产生不同的控制信号,所以不会发生总线冲突。

15.8051的P3口具有哪些第二功能? 答:P3.0的第二功能是RXD(串行输入口)

P3.1的第二功能是 TXD(串行输出口) P3.2的第二功能是INT0 (外部中断0输入) P3.3的第二功能是INT1(外部中断1输入) P3.4的第二功能是T0(定时器0外部输入) P3.5 的第二功能是T1(定时器1外部输入)

P3.6的第二功能是WR(外部数据存储器写脉冲输出) P3.7的第二功能是RD(外部数据存储器读脉冲输出)

16.位地址7CH与字节地址7CH有什么区别?位地址7CH具体在内存中什么位置? 答:位地址7CH指向一个存储位的地址;字节地址7CH指向一个存储单元的地址;位

地址7CH在内存中字节地址为2FH的D4位。

17.程序状态字PSW的作用是什么?常用的状态标志有哪几位?作用是什么? 答:程序状态字寄存器PSW相当于标志寄存器,用于存放指令执行结果的一些特征,供程序查询和判别之用。常用的状态标志有6位。CY:进位标志;AC:辅助进位;RS1和RS0:工作寄存器组选择位;OV:溢出标志;P:奇偶标志。

18.在程序存储器中,0000H,0003H,000BH,0013H,001BH,0023H这6个单元

有什么特定的含义?

答:在程序存储器中,有六个单元是分配给系统使用的,具有特定的含义。

0000H: 单片机系统复位后,PC=0000H,即程序从0000H开始执行指令。通常在0000H ~00002H单元安排一条无条件转移指令,使之转向主程序的入口地址。

0003H: 外部中断0入口地址。

000BH: 定时器0溢出中断入口地址。 0013H: 外部中断1入口地址。

001BH: 定时器1溢出中断入口地址。

0023H: 串行口中断入口地址。

19.若P1~P3口作通用I/O口使用,为什么把它们称为准双向口? 答:用于输入时,必须先向相应端口的锁存器写入?1?。

习题三

一、简答题

1. 简述下列名词术语的基本概念:

指令、指令系统、程序、汇编语言指令。

2. MCS-51 单片机有哪几种寻址方式?这几种寻址方式是如何寻址的?

3. 要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式? 4. MCS-51 单片机的指令系统可分为哪几类?试说明各类指令的功能。 5. 外部数据传送指令有哪几条?试比较下面每一组中两条指令的区别。

5

(1) MOVX A,@R0 ; MOVX A,@DPTR

MOVX A,@R0 和MOVX A,@DPTR指令均为外部数据传送指令,但访问的存

储空间大小不同

(2) MOVX @R0,A ; MOVX @DPTR,A 同上

(3) MOVX A,@R0 ; MOVX @R0,A A与外部数据存储器和外部数据存储器与A 之间的传送

6. 在 MCS-51 单片机片内RAM中,已知(30H)= 38H,(38H)= 40H,(40H)= 48H,

(48H)= 90H,分析下段程序中各指令的功能;说明源操作数的寻址方式,以及按序执行每条指令后的结果。

MOV A,40H MOV R0,A

;直接寻址 A=48H ;寄存器寻址 R0=48H

MOV @R0,30H ;直接寻址 (48H)=38H MOV 40H,38H ;直接寻址 (40H)=40H MOV R0,30H MOV 90H,R0

;直接寻址 R0=38H ;寄存器寻址 (90H)=38H

MOV 48H,# 30H ;立即寻址 (48H)=30H MOV A,@R0 ;寄存器间接寻址A=40H 7. DA A指令的作用是什么?怎样使用?

DA A指令的作用是在进行BCD码运算时,跟在ADD和ADDC指令之后,将相加后

存放在累加器A中的结果进行调整修正。

8. 试编程将片外数据存储器50H中的内容传送到片内RAM 54H 单元中。 MOV R0,#50H MOVX A,@R0 MOV 54H,A 9. 试编程将寄存器 R7 的内容传送到 R1中去。 MOV A,R7 MOV R1,A

10. 用两种方法实现累加器A与寄存器B的内容交换。 XCH A,B

或 MOV R0,A MOV A,B MOV B,R0

11. 试编程将片外 RAM 40H 单元的内容与 R1 的内容交换。 MOV B,R1 MOV

MOV

R0,#40H MOVX A,@R0 MOV R1,A A,B MOVX @R0,A

12. 若要完成以下的数据传送,应如何用MCS-51的指令来实现?

(1)R1内容传送到R0。

(2)外部RAM 20H单元内容R0。

(3)外部RAM 20H单元内容送内部RAM 20H单元。 (4)外部RAM 1000H单元内容送内部RAM 20H单元。 (5)外部ROM 20H单元内容R0。

(6)外部ROM 2000H单元内容送内部RAM 20H单元。

13. 已知:A= 0C9H,B= 8DH,CY= 1。

执行指令 ADDC A,B 结果如何? A=57H

执行指令 SUBB A,B 结果如何? A=3BH

6

14. 列举4条能使累加器 A清零的指令。 CLR A

MOV A,#00H AND A,#00H XOR A,ACC

15. 试用 3 种方法将累加器 A 中无符号数乘 2。 1) MOV B,#02 MUL AB 2) RL A

3) ADD A,ACC

16. 分析下列指令执行后, A及PSW中进位位CY、奇偶位P和溢出位OV的值。

(1) 当 A = 5BH 时; (2) 当 A = 5BH 时;

ADD ANL

A,# 8CH A,# 7AH

(3) 当 A = 5BH 时; (4) 当 A = 5BH,CY=1 时 ; XRL A,# 7FH SUBB A,# 0E8H

17. 试说明指令 CJNE @R1,#7AH,10H 的作用。若本指令地址为250H,其转

移地址是多少?

(@R1)与#7AH比较不等于转移,转移的偏移量为10H;其转移地址是263H 18. 参照例题21若系统的晶振频率为 5MHz,求子程序 DELAY 的延时时间。若想

加长或缩短延时时间,应怎样修改?

晶振频率为 5MHz时,1M=2.4微秒,子程序 DELAY 的延时时间共为

1002*2.4=2404.8微秒;若想加长或缩短延时时间可以增加/减少NOP指令或增加/减少循环

19. 试编一程序将外部数据存储器2100H单元中的高4位置“1”,其余位清“0”。

MOV A,#0F0H MOV DPTR,#2100H MOVX @DPTR,A 20. 试编程将内部数据存储器40H单元的第0位和第7位置“1”,其余位变反。 MOV A,40H CPL A

SETB ACC.0

SETB ACC.7 MOV 40H,A

21. 将 ACC.5 与80H位相与的结果,通过 P1.4 输出。 MOV C,80H ANL C,ACC.5

MOV P1.4,C

22. 使用位操作指令,求下面逻辑方程: (1) P1.7=ACC.0∧(B.0∨P2.1)∨P3.2 MOV C,B.0

7

ORL C,P2.1 MOV MOV

30H,C C,ACC.0

ANL C,30H ORL C,/P3.2 MOV

P1.7,C

(2) PSW.5=P1.3∧ACC.2∨B.5∧P1.1 MOV C,P1.3 ANL C, ACC.2 ORL C, B.5 ANL C,/P1.1

MOV PSW.5,C

(3) P2.3= P1.5∧B.4∨ACC.7∧P1.0

基本同上

三、分析计算

1. 已知A=7AH,R0=30H,(30H)=A5H,PSW=81H。问执行以下各指令的结果

(每条指令都以题中规定的数据参加操作)。

(1) XCH (2) XCH (3) XCH

A,R0 A,30H A,@R0

A=30H R0=7AH

P=0

A=A5H (30H)=7AH P=0 A=A5H (30H)=7AH P=0 A=75H (30H)=AAH A=A7H P=1

P=1

(4) XCHD A,@R0 (5) SWAP A (6) ADD (7) ADD (8) ADD

A,R0 A,30H A,#30H A=AAH CY=0 OV=1 P=0 A=1FH CY=1 OV=1 P=1 A=AAH CY=0 OV=1 P=0 A=ABH CY=0 OV=1 P=1 A=D4H CY=1 OV=0 P=0 A= A= A= A=

CY= OV= P= CY= P= CY= P= CY= P=

P= P=

(9) ADDC A,R0 (10) SUBB A,30H (11) ADD (12) DA (13) RL (14) RLC (15) CJNE (16) CJNE

A,#30H A A A

A,#30H,00 A= CY= A,30H,00 A= CY=

2. 设A=82H,R0=17H,(17H)=34H,问执行以下指令后A=? ANL A,#17H ;A=02H ORL 17H,A ;A=02H (17H)=36H XRL CPL

A,@R0 A

;A=34H

;A=CBH

3. 已知:A=75H,PSW=81H,转移指令所在地址为2080H,当执行以下指令后,

PC值等于多少? (1) 执行JNZ PC=2094H (2) 执行JNC PC=2082H (3) 执行JB

PC=20D8H (4) 执行JBC

12H后,PC值=? 4H后, PC值=? P,55H后, PC值=? AC,78H后, PC值=?

A,#50H,9AH后, PC值=?

PC=2083H

(5) 执行CJNE PC=201DH

8