单片机课后习题解答 联系客服

发布时间 : 星期四 文章单片机课后习题解答更新完毕开始阅读09a25d5b581b6bd97f19ea9e

序的混乱。因此在进入中断服务程序后,一般要先保护现场,然后在执行中断处理程序,在返回主程序之前再恢复现场。

保护方法一般是把累加器、PSW或其他相关寄存器数据压入堆栈。在保护现场时,一般规定此时CPU不响应新的和中断请求,这就要求在编写中断服务程序时,注意在保护现场或恢复现场时要关闭中断。

7、试用中断法设计秒、分脉冲发生器。

答:利用定时器T0定时,P1.0作为秒发生器输出端,P1.1作为分脉冲发生器的输出端。设晶振为12MHz。片内50H和51H单元分别用于秒、分计数。使用T0方式1定时50ms。 ORG 0000H

LJMP MAIN

ORG 000BH` LJMP T0_SER ORG 0100H

MAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV 50H,#20 MOV 51H,#60 SETB ET0 SETB EA SETB TR0 SJMP $ ORG 0200H T0_SER: MOV TH0,#3CH MOV TL0,#0B0H DJNZ 50H,L1 MOV 50H,#20 SETB P1.0 NOP NOP

CLR P1.0 DJNZ 51H,L1 MOV 51H,#60 SETB P1.1 NOP NOP

CLR P1.1 L1: SETB TR0 RETI

8、89S51单片机的和中断系统有几个优先级,如何设定?若扩充8个中断源,如何确定优先级?

- 20 -

答:51单片机有两个中断优先级,中断优先级的设定:由专用寄存器IP同一管理,由软件设置每个中断源为高优先级中断或低优先级中断,实现两级中断嵌套。如果几个同一优先级中断源同时向CPU申请中断,CPU按硬件逻辑确定先后顺序。

若扩充8个中断源,可以采用中断和查询结合扩充外中断源的方法确定优先级。

9、试用中断计数设计一个秒闪电路,其功能是发光二极管LED每秒闪400ms。频率24MHz。 答:根据题意,LED点亮400ms,灭600ms

使用T0,工作方式1,定时25ms,通过P1.0

ORG 0000H LJMP MAIN

ORG 000BH` LJMP T0_SER ORG 0100H

MAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA

MOV R1,#00H SETB TR0 SJMP $ ORG 0200H T0_SER: PUSH PSW INC R1

CJNE R1,#16,SUB1 SETB P1.0

SUB1: CJNE R1,#24,TEND CLR P1.0 MOV R1,#00H TEND: MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 POP PSW RETI

10、MCS-51单片机外部中断有哪两种触发方式?对触发电平或脉冲信号有何要求?如何选择和设定?

答:MCS-51单片机外部中断有两种触发方式:①电平触发;②跳变触发。

对于电平触发方式,要求中断引脚上的电平应至少保持12个振荡周期,以保证电平信号能被采样到,还要求在中断返回前撤销中断请求(使引脚上的电平变高);对于跳变触发方式,要求输入的负脉冲宽度至少保持12个振荡周期,以确保检测到引脚上的电平跳变。

MCS-51单片机的外部中断可以用程序控制为电平触发或跳变触发。即通过编程对定时器/计数器控制寄存器TCON中的IT0和IT1位进行清“0”或置“1”。若是0,则为电平触发。

- 21 -

第八章 单片机的系统扩展

1、在8051单片机扩展系统中,程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突?

答:程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读写信号由RD(P3.7)和WR(P3.6)信号控制,而程序存储器由读选通信号PSEN控制,因此虽然共处同一地址空间,但控制信号不同,所以不会发生总线冲突。

2、问什么当P2作为扩展存储器的高8位地址后,不再适宜做通用I/O端口了?

答:P2口做扩展存储器的高8位地址总线后,即使没有全部占用,空余的几根线也不宜作通用的I/O端口使用,否则会给软件编写及使用带来不必要的麻烦。

3、以89S51为主机,扩展2片6264RAM存储器芯片,设计硬件布线图。

P2.7P2.6P2.5P2.4~P2.0CE89S51WEWEOED7~D0CED7~D0D7~D0P0.7~P0.0PSENWRRD 4、根据图8-9电路设计程序,其功能是按下K0~K3,对应LED4~LED7发光,按下K4~K7,对应LED0~LED3发光。

答:根据要求不编程如下

START: MOV DPTR,#0FEFFH MOVX A,@DPTR CJNE A,#0FFH,L1 SJMP START L1: MOV B,A LCALL DEL20MS MOVX A,@DPTR CJNE A,B,START SWAP A

MOVX @DPTR,A LJMP START

5、请利用译码器74HC138设计一个姨妈电路,分别选中2片29C256和2片62256,且列出个芯片所占的地址空间范围。

答:29C256和62256为32K字节的容量,需要15根地址线,电路连接如图。

OEALEG37362646264CEQ7~Q0A0~A7A8~A12A0~A7A8~A12- 22 -

P2.7ABCE1E2Y7Y6Y5Y4Y3Y2Y0Y0P2.6~P2.0[A8..A14][A0..A7]CSCSCEWEWEOED7~D089S51CED7~D01D7~D02D7~D03D7~D04P0.7~P0.0PSENWRRD[D0..D7]OECECEALEG37327256272566225662256CEQ7~Q0A0~A7A8~A14A0~A7A8~A14A0~A7A8~A14A0~A7A8~A14 地址空间范围:(1)0000H~7FFFH (2)8000H~FFFFH

(3)0000H~7FFFH

(4)8000H~FFFFH

6、试说明8155内部结构特点,其定时/计数器与89S51内部的定时/计数器有何异同?

答:8155内部有3个可编程的I/O端口,1个14位的可编程定时/计数器,还有256字节的数据存储器。

与89S51的定时计数器不同的是: (1)8155的可编程定时/计数器是一个14位的减法计数器,其只有一种固定的工作方式。而89S51的定时/计数器是加1计数器,可以有8位、13位、16位等计数方式。

(2)8155的定时/计数器不论是定时还是计数,都需要由外部提供计数脉冲。89S51的定时/计数器在内部定时时,不需要单独提供计数脉冲。

(3)8155定时/计数器计满溢出时,由TIMEOUT端输出脉冲或方波,输出波形通过软件可定义为4种;而89S51的定时/计数器则没有专门的输出脉冲端。

7、解释在80C51系列单片机扩展多个芯片时,可能出现“地址不连续”或一个芯片有多个地址的现象?

答:单片机在扩展芯片时,如果扩展芯片容量小于64K,P2口作为高8位地址线时就会多出一些地址线不用,这些多余的地址线一部分可以作为片选信号,还可能有剩余部分未用(可以是0,也可以是1),此时采用不同的编址方式,就可以出现“地址不连续”或一个芯片多个地址的现象。

8、8255有哪几种工作方式?怎样进行选择?说明8255控制字的作用及各位功能。 答:8255A有方式0、方式1、方式2三种工作方式。 (1)方式0(基本I/O方式)

8255A的PA、PB、PC4~PC7,PC0~PC3可分别被定义为方式0输入或方式0输出。 方式0输出具有锁存功能,输入没有锁存。 方式0适用于无条件传输数据的设备。 (2)方式1(应答I/O方式)

PA口、PB口定义为方式1时,PC口的某些位为状态控制线,其余的线为I/O线。 方式1适用于打印机等具有握手信号的输入/输出设备。 (3)方式2(双向选通I/O方式)

方式2是方式1输入和方式1输出的结合,方式2仅对PA口有意义。

方式2使PA口成为8位双向三态数据总线口。既可发送数据又可接收数据。PA口方式2工作时,PB口仍作I/O口,PC口高5位作状态控制线,低3位可作I/O线。

8255A的工作方式可通过设置8255A的控制字来选择。

8255A有两种控制字,即方式控制字和PC口位置位/复位控制字。

- 23 -