单片机原理及接口技术课后习题答案 - 李朝青 下载本文

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期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。一旦响应中断,89C51首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把当前的PC值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC,于是CPU接着从中断服务程序的入口处开始执行。对于有些中断源,CPU在响应中断后会自动清除中断标志。 9、在89C51内存中,应如何安排程序区?

答:主程序一般从0030H开始,主程序后一般是子程序及中断服务程序。在这个大家还要清除各个中断的中断矢量地址。 10、试述中断的作用及中断的全过程。

答:作用:对外部异步发生的事件作出及时的处理 过程:中断请求,中断响应,中断处理,中断返回

11、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求? 答:(1)符合以下6个条件可响应新的中断请求: a)有中断源发出中断请求

b)中断允许位EA=1,即CPU开中断

c)申请中断的中断源的中断允许位为1,即中断没有被屏蔽 d)无同级或更高级中断正在被服务

e)当前的指令周期已结束

f)若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着的另一条指令已被执行完

12、89C51单片机外部中断源有几种触发中断请求的方法?如何实现中断请求? 答:有两种方式:电平触发和边沿触发

电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输入电平。若为低电平,使IE1(IE0)置“1”,申请中断;若为高电平,则IE1(IE0)清零。

边沿触发方式:CPU在每个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IE1(IE0)置“1”申请中断;否则,IE1(IE0)置0。

13、89C51单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。试问以下几种中断优先顺序的安排(级别由高到低)是否可能:若可能,则应如何设置中断源的中断级别:否则,请简述不可能的理由。 ⑴ 定时器0,定时器1,外中断0,外中断1,串行口中断。 可以,MOV IP,#0AH

⑵ 串行口中断,外中断0,定时器0,外中断1,定时器1。 可以,MOV IP,#10H ⑶ 外中断0,定时器1,外中断1,定时器0,串行口中断。

不可以,只能设置一级高级优先级,如果将INT0,T1设置为高级,而T0级别 高于INT1.

⑷ 外中断0,外中断1,串行口中断, 定时器0,定时器1 。 可以,MOV IP,#15H ⑸ 串行口中断,定时器0,外中断0,外中断1,定时器1。 不可以 ⑹ 外中断0,外中断1,定时器0,串行口中断,定时器1 。 不可以

⑺ 外中断0,定时器1,定时器0,外中断1,串行口中断。 可以,MOV IP,#09H 14、89C51各中断源的中断标志是如何产生的?又是如何清0的?CPU响应中断时,中断入口地址各是多少?

答:各中断标志的产生和清“0”如下: (1) 外部中断类

外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断0和外部中断1输