单片机实用技术--第4章习题解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.MCS-51单片机有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU 响应各中断时,其中断入口地址是多少?

答:(1)5个。

(2) IE0:外部中断0请求标志。IE0=1表明外部中断0向CPU 申请中断。 IE1:外部中断1请求标志。IE1=1表明外部中断1向CPU 申请中断。

TF0:定时器T0溢出标志。当定时器T0计满溢出时,由硬件使TF0置“1”,并且申请中断。

TF1:定时器T1溢出标志。当定时器T1计满溢出时,由硬件使TF1置“1”,并且申请中断。

TI :发送中断标志。RI :接收中断标志。

(3)外部中断0,外部中断1请求标志。又分为两种方式,当电平触发方式时由软件方法复位;为边沿触发方式时,由内部硬件自动复位。

定时器T0、定时器T1溢出标志。可由内部硬件自动复位。

TI,RI 标志由软件复位。

(4)外部中断有两个,分别是0INT 和1INT ,其入口地址分别是0003H 和0013H 。内部中断有3个,分别是T0,T1和串行口,它们的入口地址分别为:000BH ,001BH 和0023H 。

2.如何计算计数初值?如何编程送入计数初值?

答:设初值为X ,最大计数值为M 。初值X 与机器周期T 机及定时时间T 的关系为 (M −X )T 机=T

MOV TL0,#x1 H

MOV TH0,#x2 H

3.外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定?

答:IT1:外部中断触发方式选择位。当IT1=0,外部中断1为电平触发方式。在这种方式下,CPU 在每个机器周期的S5P2期间对1INT (P3.3)端子采样,若采到低电平,则认为有

中断申请,随即使IE1=1;若采到高电平,则认为无中断申请或中断申请已撤除,随即清除IE1标志。在电平触发方式中,CPU 响应中断后不能自动清除IE1标志,也不能由软件清除IE1标志,所以在中断返回前必须撤消1INT 端子上的低电平,否则CPU 将再次响应中

断,从而造成出错。

若IT1=1,外部中断1为边沿触发方式,CPU 在每个机器周期的S5P2期间对1INT (P3.3)

端子采样。若在连续两个机器周期采样到先高电平后低电平(即下跳沿),则认为有中断申请,随即使IE1=1;此标志一直保持到CPU 响应中断时,才由硬件自动清除。在边沿触发方式中,为保证CPU 在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续时间最少要保持12个时钟周期。

IT0同上。

4.定时/计数器工作于定时和计数方式时有何异同点?

答:16位的定时器/计数器实质上是一个加1计数器,其控制电路受软件控制、切换。

定时器工作于定时前先装入初值,利用送数指令将初值装入TH0和TL0或TH1和TL1,当发出启动命令后,装初值寄存器开始计数,连续加1,每一个机器周期加1一次,定时是对内部的机器周期脉冲计数。

工作于计数方式时,是对外部的脉冲计数,两个机器周期计一个数。

5.定时/计数器的4种工作方式各有何特点?

答:方式0:16位寄存器(TH1和TL1)只用13位。其中TL1的高3位未用,其余位占整

个13位的低5位,TH1占高8位。当TL1的低5位溢出时向TH1进位,而TH1溢出时向中断标志TF1进位(称硬件置位TF1),并申请中断。中断时需用软件重新赋初值。

方式1:其结构与操作与方式0完全相同,唯一的区别是在方式1中,定时器是以全16位二进制数参与操作。中断时需用软件重新赋初值。

方式2:具有自动重新加载初值的功能。在这种工作方式下,把16位计数器分为两部分,即以TL作为计数器,以TH作为预置寄存器,初始化时把计数初值分别装入TL和TH中。方式3:定时器/计数器T0被拆成两个独立的8位计数器TL0和TH0,其中TL0既可以计数使用,又可以定时使用,定时器/计数器T0的各拉制位和引脚信号全归它使用。TH0,则只能作为简单的定时器使用。而且由于定时器/计数器0的控制位已被TL0独占,因此只好借用定时器/计数器T1的控制位TR1和TF1,即以计数溢出去置位TF1,而定时的启动和停止则受TR1的状态控制。在这种情况下,定时器/计数器T1通常是作为串行口的波特率发生器使用,以确定串行通信的速率。

6.简述定时器/计数器初始化的步骤。

答:(1)选择工作方式,即对TMOD 赋初值。

(2)给定时器赋初值,即把初始常数装入TH0 TL0或TH1 TL1。

(3)根据需要设置中断控制字。直接对中断允许寄存器IE和优先级寄存器IP设置。(4)启动定时/计数器。

7.当定时/计数器T0用做方式3时,定时/计数器T1可以工作在何种方式下?如何控制T1的开启和关闭?

答:在这种情况下,定时器/计数器T1通常是作为串行口的波特率发生器使用,以确定串行通信的速率。因为已没有计数溢出标志位TF1可供使用。因此只能把计数溢出直接送给串行口。当作为波特率发生器使用时,只需设置好工作方式,便可自动运行。如要停止工作,只需送入一个把定时器T1设置为方式3的方式控制字即可。因为定时器/计数器1不能在方式3下使用,如果硬把它设置为方式3,就停止工作。

8.利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正脉冲信号,晶振频率为6MHz。试设计程序。

答:分析:因为周期是1S为1000ms。所以低电平为980ms。采用20ms的定时中断,然后计数49次及实现980ms。设R5为计数寄存器。用T0工作在方式1实现20ms定时则:初值为:TH0=D8H,TL0=F0H

参考程序为:

ORG 0000H

LJMP START

ORG 0030H

START: MOV SP, #6FH

MOV TMOD, #01H

MOV R5, #49

CLR P1.0

MOV TH0, #0D8H

MOV TL0, #0F0H

SETB TR0

LOOP1: SETB P1.0

JNB TF0, $

CLR P1.0

LOOP2: MOV TH0, #0D8H

相关文档
最新文档