单片机原理及应用(姜志海第3版)习题参考答案

中断请求信号高低电平的状态都应至少维持一个机器周期,以确保电平变化能被单片机检测到。 (2)内部中断

MCS?51单片机内部有TF0、TF1、TI、RI,分别为定时器/计数器溢出中断和串行口的发送/接收中断的中断源。

在中断请求被响应前,中断源发出的中断请求是由CPU锁存在特殊功能寄存器TCON和SCON的相应中断标志位中的。一旦某个中断请求得到响应,CPU必须把它的相应标志位复位成0状态,否则MCS?51单片机就会因中断未能得到及时撤除而重复响应同一中断请求,这是绝对不允许的。

MCS?51单片机的5 5个中断源,实际上只分属于三种中断类型。这三种类型是:外部中断、定时器/计数器溢出中断和串行口中断。对于这三种中断类型的中断请求,其撤除方法是不同的。 (1)定时器/计数器溢出中断请求的撤除

TF0和TF1是定时器/计数器溢出中断标志位,它们因定时器/计数器溢出中断请求的输入而置位,因定时器/计数器溢出中断得到响应而自动复位成0状态。因此定时器/计数器溢出中断源的中断请求是自动撤除的,用户根本不必专门为它们撤除。 (2)串行口中断请求的撤除

TI和RI是串行口中断的标志位,中断系统不能自动将它们撤除,这是因为MCS?51进入串行口中断服务程序后常需要对它们进行检测,以测定串行口发生了接收中断还是发送中断。为了防止CPU再次响应这类中断,用户应在中断服务程序的适当位置处通过指令将它们撤除:

CLR CLR

TI RI

;撤除发送中断 ;撤除接收中断

(3)外部中断的撤除

外部中断请求有两种触发方式:电平触发和脉冲触发。对于这两种不同的中断触发方式,MCS?51单片机撤除它们的中断请求的方法是不相同的。

在脉冲触发方式下,外部中断标志IE0和IE1是依靠CPU两次检测INT0和INT1上的触发电平状态而设置的。因此,芯片设计者使CPU在响应中断时自动复位IE0或IE1,就可撤除INT0或INT1上的中断请求,因为外部中断源在中断服务程序时是不可能再在INT0或INT1上产生负边沿而使相应的中断标志IE0或IE1置位的。

在电平触发方式下,外部中断标志IE0和IE1是依靠CPU检测INT0和INT1上的低电平而置位的。尽管CPU响应中断时相应中断标志IE0或IE1,能自动复位成“0”状态,但若外部中断源不能及时撤除它在INT0或INT1上的低电平,就会再次使已经变“0”的中断标志IE0或IE1置位,这是绝对不允许的。因此电平触发型外部中断请求的撤除必须使INT0或INT1上的低电平随着其中断被CPU响应而变为高电平。一种可供采用的电平型外部中断的撤除电路如图所示。

由图可见,当外部中断源产生中断请求时,D触发器复位成“0”状态,Q端的低电平被送到INT0,该低电平被8051检测后就使中断标志IE0

INT08051 Q D SD 1 外部中断信号 置1。

第 17 页 共 29 页 CP m

P1.0 =

8051响应INT0上的中断请求可转入INT0中断服务程序执行,故可以在中断服务程序开头安排如下程序来使INT0上的电平变高:

INSVR:SETB P1.0

CLR CLR ··· END

P1.0 IE0

8051执行上述程序就可在 P1.0上产生一个宽度为两个机器周期的负脉冲。在该负脉冲作用下,D触发器被置位成1状态,INT0上的电平也因此而变高,从而撤除了其上的中断请求。

5.设MCS?51单片机时钟为12MHz,利用定时器T0编程令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:2(高电平时间短)。

ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 0030H MAIN: MOV SP,#60H MOV R7,#0

MOV TMOD,#01H ;初始化

MOV TH0,#0FDH ;定时666微妙 MOV TL0,#66H SETB EA SETB ET0 SETB TR0 L1: SJMP L1 ;中断服务程序

T0INT:MOV TH0,#0FDH ;重载初始值 MOV TL0,#66H INC R7

CJNE R7,#1,LL1 CLR P1.0 SJMP LLEND

LL1: CJNE R7,#3,LLEND SETB P1.0 MOV R7,#00H LLEND:RETI

6.MCS-51单片机内设有几个可编程的定时器/计数器?它们可以有4种工作方式,如何选择和设定?作为定时器或计数器应用时,它们的速率分别为晶振频率的多少倍?

2个16位的定时器/计数器。 通过TMOD的M1M0选择。

M1M0 = 00:方式0——13位定时器/计数器工作方式; M1M0 = 01:方式1——16位定时器/计数器工作方式;

第 18 页 共 29 页 m

M1M0 = 10:方式2——常数自动装入的8位定时器/计数器工作方式;

M1M0 = 11:方式3——仅适用于T0,为两个8位定时器/计数器工作方式;在方式3时T1停止计数。

是外部晶振频率的12倍。

7.如果MCS?51单片机系统的晶振频率为12MHz,分别指出定时器/计数器方式1和方式2的最长定时时间。

方式1:65536微妙; 方式2:256微妙

8.若异步通信,每个字符由11位组成,串行口每秒传送250个字符,问波特率是多少? 2750位/秒=2750波特

9.设串行异步通信的传送速率为2400波特,传送的是带奇偶校验的ASCII码字符,每个字符包含10位(1个起始位,7个数据位,1个奇偶校验位,1个停止位),试编程初始化程序。

设定串行口位方式1.

MOV SCON,#40H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H SETB TR1

10.MCS?51单片机P1端口上,经驱动接有8支发光二极管,若外部晶振频率为6MHz,试编写程序,使这8支发光管每隔2s循环发光(要求用T1定时)。

MAIN: T1INT: L1:

ORG LJMP ORG LJMP ORG MOV MOV MOV MOV MOV MOV SETB SETB SETB SJMP MOV MOV DJNZ MOV MOV RL RETI

0000H MAIN 001BH T1INT 0030H SP,#70H

TMOD,#10H TH1,#3CH TL1,#0B0H A,#11111110B R7,#20 EA ET1 TR1 $

TH1,#3CH TL1,#0B0H R7,L1 R7,#20 P1,A A

;T1方式1 ;定时100ms

;100ms*20=2S

第 19 页 共 29 页 m

第6章 MCS?51系列单片机并行扩展接口技术

1.试用Intel 2864,SRAM6264为MCS?51单片机设计一个存储器系统,它具有8KB EEPROM(地址由0000H~1FFFH)和16KB的数据存储器(地址为2000H~5FFFH)。要求绘出该存储器系统的硬件连接图,并指出每片芯片的地址空间。

使用一片Intel 2864,两片RAM6264.

参看图6-14,采用译码器译码。2864可以不用译码,其片选信号直接接地,其地址为0000H~1FFFH,读控制接/PSEN;RAM6264的片选分别接74LS138的/Y1、/Y2,其地址分别为:2000H~3FFFH、4000H~5FFFH,其读。写控制分别接/RD、/WR。

2.试设计用两片74LS377和两片74LS244扩展两个并行输出口和两个并行输入口的扩展连接电路图。

参看图6-20、6-21.

3.简述单片机如何进行键盘的键输入以及怎样实现键功能处理。

当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所规定的功能。键信息输入是与软件编程密切相关的过程。对于一组键或一个键盘,需要通过接口电路与CPU相连。CPU可以采用查询或中断方式了解有无键输入并检查是哪个键被按下,将该键的信息送入CPU,然后通过散转指令转入执行该键的功能程序,执行完毕又返回到原始状态。

键输入接口与软件应可靠而快速地实现键信息输入与执行键功能任务。为此,应解决下列问题。 (1)键开关状态的可靠输入

目前,无论是按键还是键盘,大部分利用的都是机械触点的合、断作用。机械触点在闭合及断开瞬间由于弹性作用的影响均有抖动过程,从而使电压信号也出现抖动,如图9-20所示。抖动时间长短与开关的机械特性有关,一般为5~10ms。

按键的稳定闭合时间,由操作人员的按键动作确定,一般为十分之几秒至几秒。为了保证CPU对键的一次闭合仅做一次键输入处理,必须去抖动影响。

通常,去抖动影响的方法有硬、软两种。在硬件上是采取在键输出端加R?S触发器或单稳态电路构成去抖动电路。在软件上采取的措施是,在检测到有键按下时,执行一个10ms左右的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而去除了抖动影响。

(2)对按键进行编码以给出键值或直接给出键号

任何一组按键或键盘都要通过I/O接口线查询按键的状态。根据不同的键盘结构采用不同的编码方法。但无论有无编码及采用什么编码,最后都要转换成与累加器中数值相对应的键值,以实现按键功能程序的散转转移(相应的散转指令为JMP @A + DPTR),因此一个完善的键盘控制程序应完成下述任务:

① 检测有无键按下。

② 有键按下后,在无硬件去抖动电路时,应用软件延时方法除去抖动影响。

第 20 页 共 29 页 m

联系客服:779662525#qq.com(#替换为@)