单片机原理及接口技术课后答案第三版(李朝青编著) 联系客服

发布时间 : 星期六 文章单片机原理及接口技术课后答案第三版(李朝青编著)更新完毕开始阅读656a22743b68011ca300a6c30c2259010202f3f3

伊伦工作室

MOV R0,#DIST ;目的首地址→R0 LOOP:MOVX A,@DPTR ;传送一个字符 MOV @R0,A

INC DPTR ;指向下一个字符 INC R0

CJNE A,#24H,LOOP ;传送的是“$”字符吗?不是,传送下一个字符

RET

28、 已知R3和R4中存有一个十六位的二进制数,高位在3中,低位在4中,编程求其补,并存回原处。

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、 已知30H和31H中存有一个十六位的二进制数,高位在前,低位在后,编程将它们乘2,并存回原处。

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、 内存中有两个4字节以压缩的BCD码形式存放的十进制数,一个放在30H-33H的单元中,一个放在40H-43H的单元中,编程求他们的和,结果放在30H-33H的单元中。

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、编程,把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。 MOV R2,#08H ;数据块长度→R2

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

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

DJNZ R2,LOOP ;数据块长度减1,没传送完,继续传送 RET 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 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 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指令时,该指令以及紧接着的另一条指令已执行完毕

8、简述89C51单片机的中断响应过程。

答:CPU在每个机器周期S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢