单片机原理及接口技术习题答案___第四版___李朝青 -

更新时间:2023-10-14 18:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机原理及接口技术课后习题答案 李朝青 、、、、、、、、、、、、、、、、前两章略、、、、、、、、、、、、、、、、

第三章 1、 指令:CPU根据人的意图来执行某种操作的命令 指令系统:一台计算机所能执行的全部指令集合 机器语言:用二进制编码表示,计算机能直接识别和执行的语言 汇编语言:用助记符、符号和数字来表示指令的程序语言 高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言 2、 见第1题 3、 操作码 [目的操作数] [,源操作数] 4、 寻址方式 立即数寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址

寻址空间 程序存储器ROM 片内RAM低128B、特殊功能寄存器 工作寄存器R0-R7、A、B、C、DPTR 片内RAM低128B、片外RAM 程序存储器(@A+PC,@A+DPTR) 程序存储器256B范围(PC+偏移量) 片内RAM的20H-2FH字节地址、部分SFR 5、 SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址

6、 MOV A,40H ;直接寻址 (40H)→A MOV R0,A ;寄存器寻址 (A)→R0 MOV P1,#0F0H ;立即数寻址 0F0→P1 MOV @R0,30H ;直接寻址(30H)→(R0) MOV DPTR,#3848H ;立即数寻址 3848H→DPTR MOV 40H,38H ;直接寻址(38H)→40H MOV R0,30H ;直接寻址(30H)→R0 MOV P0,R0 ;寄存器寻址 (R0)→P0 MOV 18H,#30H ;立即数寻址 30H→18H MOV A,@R0 ;寄存器间接寻址((R0))→A MOV P2,P1 ;直接寻址(P1)→P2

最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H

注意:→左边是内容,右边是单元 7、 用直接寻址,位寻址,寄存器寻址 8、

MOV A,DATA ;直接寻址 2字节1周期 MOV A,#DATA ;立即数寻址 2字节1周期 MOV DATA1,DATA2 ;直接寻址 3字节2周期 MOV 74H,#78H ;立即数寻址 3字节2周期

如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A 9、

MOV A,@R0 ;((R0))=80H→A MOV @R0,40H ;(40H)=08H→(R0) MOV 40H,A ;(A)=80→40H MOV R0,#35H ;35H→R0

最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H

10、用直接寻址,位寻址,寄存器寻址

11、只能采用寄存器间接寻址(用MOVX指令)

12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7) 高128字节:直接寻址,位寻址,寄存器寻址 13、采用变址寻址(用MOVC指令)

14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DA A指令调整(加06H,60H,66H) 15、用来进行位操作

16、ANL A,#17H ;83H∧17H=03H→A

ORL 17H,A ;34H∨03H=37H→17H XRL A,@R0 ;03H⊕37H=34H CPL A ;34H求反等于CBH 所以(A)=CBH

17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址

(2)CLR ACC.7 CLR ACC.6 CLR ACC.5 CLR ACC.4 (3)CLR ACC.6 CLR ACC.5 CLR ACC.4 CLR ACC.3 18、MOV 27H,R7 MOV 26H,R6 MOV 25H,R5 MOV 24H,R4 MOV 23H,R3 MOV 22H,R2

MOV 21H,R1 MOV 20H,R0 19、MOV 2FH,20 MOV 2EH,21 MOV 2DH,22 20、CLR C

MOV A,#5DH ;被减数的低8位→A MOV R2,#B4H ;减数低8位→R2

SUBB A,R2 ;被减数减去减数,差→A MOV 30H,A ;低8位结果→30H MOV A,#6FH ;被减数的高8位→A MOV R2,#13H ;减数高8位→R2

SUBB A,R2 ;被减数减去减数,差→A MOV 31H,A ;高8位结果→30H

注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位

21、(1)A≥10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1 LJMP LABEL ;相等转LABEL

L1:JNC LABEL ;(A)大于10,转LABEL 或者: CLR C

SUBB A,#0AH JNC LABEL (2)A>10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1 RET ;相等结束

L1:JNC LABEL ;(A)大于10,转LABEL

RET ;(A)小于10,结束 或者: CLR C

SUBB A,#0AH JNC L1 RET

L1:JNZ LABEL RET (3)A≤10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1 L2:LJMP LABEL ;相等转LABEL L1:JC L2 ;(A)小于10,转L2

RET 或者: CLR C

SUBB A,#0AH JC LABEL JZ LABEL RET

22、(SP)=23H,(PC)=3412H 参看书上80页

23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H 参看书上79页

24、不能。ACALL是短转指令,可调用的地址范围是2KB。

在看这个题的时候同时看一下AJMP指令。同时考虑调用指令ACALL和LCALL指令和RET指令的关系。

25、 MOV R2,#31H ;数据块长度→R2

本文来源:https://www.bwwdw.com/article/qejf.html

Top