单片机原理及接口技术-习题答案第四版李朝青(修订后) 下载本文

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

个字符 RET

28、 MOV A,R3 ;取该数高8位→A ANL A,#80H ;取出该数符号判断 JZ L1 ;是正数,转L1

MOV A,R4 ;是负数,将该数低8位→A CPL A ;低8位取反 ADD A,#01H ;加1

MOV R4,A ;低8位取反加1后→R4 MOV A,R3 ;将该数高8位→A CPL A ;高8位取反

ADDC A,#00H ;加上低8位加1时可能产生的进位 MOV R3,A ;高8位取反加1后→R3 L1:RET

29、 CLR C ;清进位位C MOV A,31H ;取该数低8位→A RLC A ;带进位位左移1位 MOV 31H,A ;结果存回31H MOV A,30H ;取该数高8位→A RLC A ;带进位位左移1位 MOV 30H,A ;结果存回30H 30、 MOV R2,#04H ;字节长度→R2 MOV R0,#30H ;一个加数首地址→R0 MOV R1,#40H ;另一个加数首地址→R1 CLR C ;清进位位 LOOP:MOV A,@R0 ;取一个加数

ADDC A,@R1 ;两个加数带进位位相加 DA A ;十进制调整 MOV @R0,A ;存放结果 INC R0 ;指向下一个字节 INC R1 ;

DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找 RET

31、 MOV R2,#08H ;数据块长度→R2 MOV R0,#30H ;数据块目的地址→R0

13文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

MOV DPTR,#2000H ;数据块源地址→DPTR LOOP:MOVX A,@ DPTR ;传送一个数据 MOV @R0,A

INC DPTR ;指向下一个数据 INC R0 ;

DJNZ R2,LOOP ;数据块长度减1,没传送完,继续传送 RET

32、(1)MOV R0,0FH ;2字节,2周期 4字节4周期(差) MOV B,R0 ;2字节,2周期

(2)MOV R0,#0FH ;2字节,1周期 4字节3周期(中) MOV B,@R0 ;2字节,2周期

(3)MOV B,#0FH ;3字节,2周期 3字节2周期(好) 33、(1)功能是将片内RAM中50H~51H单元清0。

(2)7A0A(大家可以看一下书上,对于立即数寻址的话,后面一个字节存放的是立即数) 7850(第一个字节的后三位是寄存器,前一个条指令是010也就是指的R2,在这里是R0,所以应该是78,后一个字节存放的是立即数) DAFC (这里涉及到偏移量的计算,可以参考书上56页) 34、 INC @R0 ;(7EH)=00H INC R0 ;(R0)=7FH INC @R0 ;(7FH)=39H INC DPTR ;(DPTR)=10FFH INC DPTR ;(DPTR)=1100H INC DPTR ;(DPTR)=1101H

35、解:(1000H)=53H (1001H)=54H (1002H)=41H (1003H)=52H (1004H)=54H (1005H)=12H (1006H)=34H (1007H)=30H (1008H)=00H (1009H)=70H

36、MOV R0,#40H ;40H→R0 MOV A,@R0 ;98H→A INC R0 ;41H→R0

ADD A,@R0 ;98H+(41H)=47H→A INC R0

MOV @R0,A ;结果存入42H单元 CLR A ;清A

ADDC A,#0 ;进位位存入A

14文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

INC R0

MOV @R0,A ;进位位存入43H

功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H 37、 MOV A,61H ;F2H→A MOV B,#02H ;02H→B

MUL AB ;F2H×O2H=E4H→A ADD A,62H ;积的低8位加上CCH→A MOV 63H,A ;结果送62H CLR A ;清A

ADDC A,B ;积的高8位加进位位→A MOV 64H,A ;结果送64H

功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将结果的高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H 39、MOV A,XXH ORL A,#80H MOV XXH,A

40、(2)MOV A,XXH MOV R0,A XRL A,R0 第五章

1、什么是中断和中断系统?其主要功能是什么?

答:当CPU正在处理某件事情的时候,外部发生的某一件事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作。这种过程称为中断,实现这种功能的部件称为中断系统。

功能:(1) 使计算机具有实时处理能力,能对外界异步发生的事件作出及时的

处理

(2) 完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工

作效率

(3) 实现实时控制

2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高优先级中断。 解:MOV IE,#097H

15文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

MOV IP,#02H

3、在单片机中,中断能实现哪些功能?

答:有三种功能:分时操作,实时处理,故障处理 4、89C51共有哪些中断源?对其中端请求如何进行控制? 答:(1)89C51有如下中断源

①:外部中断0请求,低电平有效 ②:外部中断1请求,低电平有效 ③T0:定时器、计数器0溢出中断请求 ④T1:定时器、计数器1溢出中断请求 ⑤TX/RX:串行接口中断请求

(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等

操作,可实现各种中断控制功能

5、什么是中断优先级?中断优先处理的原则是什么? 答:中断优先级是CPU相应中断的先后顺序。原则:

(1) 先响应优先级高的中断请求,再响应优先级低的

(2) 如果一个中断请求已经被响应,同级的其它中断请求将被禁止 (3) 如果同级的多个请求同时出现,则CPU通过内部硬件查询电路,按

查询顺序确定应该响应哪个中断请求

查询顺序:外部中断0→定时器0中断→外部中断1→定时器1中断→串行接口中断 6、说明外部中断请求的查询和响应过程。

答:当CPU执行主程序第K条指令,外设向CPU发出中断请求,CPU接到中断请求信号并在本条指令执行完后,中断主程序的执行并保存断点地址,然后转去响应中断。CPU在每个S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如果查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。中断服务完毕后,CPU返回到主程序第K+1条指令继续执行。 7、89C51在什么条件下可响应中断? 答:

(1) 有中断源发出中断请求

(2) 中断中允许位EA=1.即CPU开中断

(3) 申请中断的中断源的中断允许位为1,即中断没有被屏蔽 (4) 无同级或更高级中断正在服务 (5) 当前指令周期已经结束

(6) 若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着的另

16文档来源为:从网络收集整理.word版本可编辑.