文档库 最新最全的文档下载
当前位置:文档库 › (完整版)第五章中断系统及定时计数器

(完整版)第五章中断系统及定时计数器

(完整版)第五章中断系统及定时计数器
(完整版)第五章中断系统及定时计数器

第五章中断系统及定时/计数器参考答案

1、80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU

响应各中断时,其中断地址入口是多少?

答:80C51有5个中断源,具体的名称、产生方式、复位方式和中断入口地址如下:

(1)INT0(P302), 外部中断0请求信号输入引脚。当CPU检测到P3.2引脚出现有效的中断信号时,中断标志IE0(TCON.1)置一,向CPU

申请中断,中断入口地址为0003H。可由IT0(TCON.0)选择其为低

电平有效还是下降沿有效。当IT0=0时,中断标志在CPU响应中断

时不能自动清零,只能撤除INT0引脚的低电平,IE0才清零;当ITO=1

时,由硬件自动清除IE0标志。

(2)INT1(P3.3), 外部中断1请求信号输入引脚。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置一,向CPU

申请中断,入口地址为000BH。可由IT1(TCON.2)选择其为低电平

有效还是下降沿有效,中断标志复位清零与INTO类同。

(3)TF0(TCON.5), 片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断,入口地址为0013H。

CPU响应中断时,TF0自动清零。

(4)TF1(TCON.7), 片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断,入口地址为001

BH。CPU响应中断时,TF1自动清零。

(5)RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI, 向

CPU申请中断,入口地址为0023H。RI和TI必须由软件清除。

2、某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU

处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H,试编写主程序及中断服务程序(转至相应的入口即可)。

答:ORG 0000H

LJMP BOOT

ORG 0003H

LJMP INT3

ORG 000BH

LJMP INT2

ORG 0013H

LJMP INT1

ORG 001BH

RETI

BOOT:ACALL INT0_0 ;中断启动程序

ACALL T0_0

ACALL INT1_0

SETB EA

SJMP $

INT0_0:CLR IT0 ;设置为低电平触发方式

SETB EX0

RET

T0_0: MOV TMOD,#06H ;设置为工作方式2,模式为外部计数,GATE=0 MOV TH0,#0FFH

MOV TL0,#0FFH

SETB TR0

SETB ET0

RET

INT1_0:CLR IT1

SETB EX1

RET

ORG 2000H

INT1:NOP

RETI

ORG 2100H

INT2:NOP

RETI

ORG 2200H

INT3:NOP

RETI

3、外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的

中断过程有何不同?怎样设定?

答:以外部中断INT0为例,设IT0=0时,INT0为电平触发方式,设IT0=1时,INT0为边沿触发方式。

两者产生中断的不同点:

在电平触发方式下,CPU响应中断时,不能自动清除IE0标志。也就是

说,IE0状态完全由INT0状态决定。所以,在中断返回前必须撤除INT0

引脚的低电平。

在边沿触发方式下,CPU响应中断时,能由硬件自动清除IE0标志。4、定时/计数器工作于定时和计数方式时有何异同点?

答:定时/计数器工作在定时模式时,加1计数器是对内部机器周期计数,计数值乘以机器周期就是定时时间。工作在计数器模式时,外部事件计数

脉冲由T0(P3.4)或T1(P3.5)引脚输入到计数器。

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

答:定时/计数器的四种工作方式的特点:

方式0:13位定时/计数器。因为只有13位有效,所以计数范围为1~8192

方式1:16位定时/计数器。计数范围为1~65535

方式2:8位自动重装定时/计数器。TH0为8位初值寄存器,当TL0

计满溢出时,由硬件使TF0置1,向CPU发出中断请求,并将TH0

中的计数初值自动送入TL0。TL0从初值重新进行加1计数。周而复

始,直至TR0=0才会停止。这样就省去了用户软件中重装常数的程序,

特别适合于用作较精确的脉冲信号发生器。

方式3:T0分成两个独立的8位定时/计数器;T2在此方式停止计数。

6、 要求定时/计数器的运行控制完全由TR1、TR0确定和完全由0INT 、1INT 高低电平控制时,其初始化编程应作何处理?

答:定时/计数器的运行完全由TR0和TR1控制的初始化程序如下: MOV TOMD,#044H ;GATE=0,模式为定时,工作方式2

或者 MOV TOMD,#O66H ;GATE=0,模式为计数,工作方式2

等等。

定时/计数器的运行完全由INT0和INT1控制的初始化程序如下: MOV TOMD,#0AAH ;GATE=1,模式为定时,工作方式2

SETB TR0

SETB TR1 ;消除TR0、TR1的控制,定时/计数器的运行完全由INT0和INT1控制

或者

MOV TOMD,#0EEH ;GATE=1,模式为计数,工作方式2

SETB TR0

SETB TR1 等等

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

答:当定时/计数器T0用作方式3时,定时/计数器T1可以工作在方式0,方式1或方式3下。若要关闭T1,只需将T2设为方式3即可。

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

答:设计程序如下:

ORG 0000H

SJMP BOOT

ORG 000BH

LJMP ET0_0

BOOT:MOV TMOD,#01H ;置T0为定时方式1

MOV TL0,#0DFH

MOV TH0,#0B1H ;X=65535-20000 , 延时20ms,N=20000

SETB P1.0

SETB TR0

SETB EA

SETB ET0

HERE:NOP

SJMP HERE

ET0_0:CLR P1.0

MOV R2,#104 ;延时80ms

DEL:MOV R3,#0

DJNZ R3,$

DJNZ R2,DEL

RETI

END

9、要求从P1.1强脚输出频率为1000MHz的方波,晶振频率为12MHz。试设

计程序。

答: ORG 0000H

MAIN: MOV TMOD,#01H

MOV TL0,#0BH

MOV TH0,#0FEH ;频率为1000HZ的方波,设正负脉冲宽度都为T=0.5ms

SETB TR0

HERE: JNB TF0,HERE

CLR TF0

CPL P1.1

SJMP MAIN (已验证)

第5章习题解答

第5章思考题及习题5参考答案 一、填空 1.如果采用晶振的频率为3MHz,定时器/计数器T x(x=0,1)工作在方式0、1、2下,其方式0的最大定时时间为,方式1的最大定时时间为,方式2的最大定时时间为。 答:32.768ms,262.144ms,1024μs 2.定时器/计数器用作计数器模式时,外部输入的计数脉冲的最高频率为系统时钟频率的。 答:1/24 3.定时器/计数器用作定时器模式时,其计数脉冲由提供,定时时间与有关。 答:系统时钟信号12分频后,定时器初值 4.定时器/计数器T1测量某正单脉冲的宽度,采用方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度为。 答:方式1定时,131.072ms。 5. 定时器T2 有3种工作方式:、和,可通过对寄存器中的相关位进行软件设置来选择。 答:捕捉,重新装载(增计数或减计数),波特率发生器,T2CON 6. AT89S52单片机的晶振为6MHz,若利用定时器T1的方式1定时2ms,则(TH1)= ,(TL1)= 。 答:FCH,18H。 二、单选 1.定时器T0工作在方式3时,定时器T1有种工作方式。 A.1种 B.2种 C.3种D.4种 答:C 2. 定时器T0、T1工作于方式1时,其计数器为位。 A.8位 B.16位 C.14位 D.13位 答:B 3. 定时器T0、T1的GATE x=1时,其计数器是否计数的条件。

A. 仅取决于TR x状态 B. 仅取决于GATE位状态 C. 是由TR x和INT x两个条件来共同控制 D. 仅取决于INT x的状态 答:C 4. 定时器T2工作在自动重装载方式时,其计数器为位。 A.8位 B. 13位 C.14位 D. 16位 答:D 5. 要想测量INT0引脚上的正单脉冲的宽度,特殊功能寄存器TMOD的内容应为。 A.87H B. 09H C.80H D. 00H 答:B 三、判断对错 1.下列关于T0、T1的哪些说法是正确的。 A.特殊功能寄存器SCON,与定时器/计数器的控制无关。对 B.特殊功能寄存器TCON,与定时器/计数器的控制无关。错 C.特殊功能寄存器IE,与定时器/计数器的控制无关。错 D.特殊功能寄存器TMOD,与定时器/计数器的控制无关。错 2.定时器T0、T1对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持 续时间不小于1个机器周期。特殊功能寄存器SCON与定时器/计数器的控制无关。错 3.定时器T0、T1对外部引脚上的脉冲进行计数时,要求输入的计数脉冲的高电平和低电平的持续时间均不小于2个机器周期。对 四、简答 1.定时器/计数器T1、T0的工作方式2有什么特点?适用于哪些应用场合? 答:方式2为初值自动装入的8位定时器/计数器,克服了在循环定时或循环计数应用时就存在用指令反复装入计数初值影响定时精度的问题。 2.TH x与TL x(x=0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满后才能刷新? 答:THx与TLx(x = 0,1)是计数器,其内容可以随时用指令更改,但是更改后的新值要等当前计数器计满后才能刷新。 3.如果系统的晶振的频率为24MHz,定时器/计数器工作在方式0、1、2下,其最大定时时间各为多少? 答:晶振的频率为24MHz, 机器周期为0.5μs。

第五章定时器/计数器

第五章MCS-51定时器/计数器及其应用 5.1定时方法概述 在单片机的应用中,可供选择的定时方法主要有: 1.软件定时 软件定时是靠执行一个循环程序以进行时间延迟。软件定时的特点是时间较精确,且不需外加硬件电路。但软件定时要占用CPU的时间,增加CPU开销,因此软件定时的时间不宜太长。 当单片机时钟确定后,每条指令的指令周期是确定的,在指令表中用振荡周期表示出来了。因此,根据程序执行所用的总的振荡周期数和振荡频率,可以较准确的计算,程序执行完所用的时间。软件延时是实际经常采用的一种短时间定时方法。 例4-16 ORG 1000H TIME:MOV R1, #0FAH ;12个振荡周期 L1 :MOV R0, #0FFH ;12个振荡周期 W1 :DJNZ R0 , W1 ;24个振荡周期 DJNZ R1 , L1 ;24个振荡周期 NOP ;12个振荡周期 NOP ;12个振荡周期 RET ;24个振荡周期 计算延时时间: N=12+(12+24×255+24)×250+12+12+24 =1539060个振荡周期 如果?=6MHz T?=1/?=1/6μs Tt=N×T?=1539060×1/6μS=256510μS=0.25651S 调整R 0和R 1 中的参数,可改变延时时间,如果需要加长延时间,可以增加循环嵌入。 当延时时间较长、不便多占用CPU时间的情况下,一般采用定时器方法。

2.内部可编程定时器 这种定时方法是通过对系统时钟脉冲的计数来实现的。计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活又方便。此外,由于采用计数方法实现定时,因此可编程定时器都兼有计数功能,可以对外来脉冲进行计数。 3.外部扩展专用定时器 对于时间较长的定时,常使用外部扩展专用定时器完成。这种方法定时全部由硬件电路完成,不占用CPU时间。例如:DALLAS 公司的DS1302低功耗时钟芯片.它可以对年月日时分秒计时,并且有闰年补偿功能,它可以很方便地和单片机接口. 5.2 51单片机内部的定时器/计数器 作为基本组成内容,8051单片机共有两个可编程的定时器/计数器,分别称定时 器/计数器0和定时器/计数器1。它们都是十六位加法计数结构,分别由TH 0和TL 及TH 1和TL 1 两个8位计数器组成,它们具有计数和定时两种工作方式以及四种工作模 式。两个特殊功能寄存器(定时器控制寄存器TCON和定时器方式寄存器TMOD)用于确定定时器/计数器的功能和操作方式。图5-1给出了定时器/计数器的结构框图, 它反映了单片机中微处理器、寄存器TCON和TMOD与定时器T 0、T 1 之间的关系。计数 器的输入脉冲源可以是外部脉冲源或系统时钟振荡器,计数器对这两个输入脉冲之一进行递增计数。 顾名思义,MCS-51的每个定时器/计数器都具有定时和计数两种功能。

第五章习题及答案

第五章 MCS-51的定时/计数器 1.如果采用晶振的频率为3MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少? 解答:因为机器周期, 所以定时器/计数器工作方式0下,其最大定时时间为 ; 同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1024ms。2.定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关? 答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。 3.定时/计数器用作定时器时,对外界计数频率有何限制? 答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。 4.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。 解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。编写程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P MAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2 MOV TL0,#156 ;计数100个脉冲的初值赋值 MOV TH0,#156 SETB GA TE ;打开计数门 SETB TR0 ;启动T0,开始计数 SETB ET0 ;允许T0中断 SETB EA;CPU开中断 CLR F0 ;设置下一轮为定时方式的标志位 WAIT: AJMP WAIT IT0P: CLR EA;关中断 JB F0,COUNT ;F0=1,转计数方式设置 MOV TMOD,#00H ;定时器/计数器T0为定时方式0 MOV TH0,#0FEH ;定时1ms初值赋值 MOV TL0,#0CH SETB EA RETI COUNT: MOV TMOD,#06H MOV TL0,#156 SETB EA RETI 5. 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?

(完整版)第五章中断系统及定时计数器

第五章中断系统及定时/计数器参考答案 1、80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU 响应各中断时,其中断地址入口是多少? 答:80C51有5个中断源,具体的名称、产生方式、复位方式和中断入口地址如下: (1)INT0(P302), 外部中断0请求信号输入引脚。当CPU检测到P3.2引脚出现有效的中断信号时,中断标志IE0(TCON.1)置一,向CPU 申请中断,中断入口地址为0003H。可由IT0(TCON.0)选择其为低 电平有效还是下降沿有效。当IT0=0时,中断标志在CPU响应中断 时不能自动清零,只能撤除INT0引脚的低电平,IE0才清零;当ITO=1 时,由硬件自动清除IE0标志。 (2)INT1(P3.3), 外部中断1请求信号输入引脚。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置一,向CPU 申请中断,入口地址为000BH。可由IT1(TCON.2)选择其为低电平 有效还是下降沿有效,中断标志复位清零与INTO类同。 (3)TF0(TCON.5), 片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断,入口地址为0013H。 CPU响应中断时,TF0自动清零。 (4)TF1(TCON.7), 片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断,入口地址为001 BH。CPU响应中断时,TF1自动清零。 (5)RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI, 向 CPU申请中断,入口地址为0023H。RI和TI必须由软件清除。 2、某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU 处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H,试编写主程序及中断服务程序(转至相应的入口即可)。 答:ORG 0000H LJMP BOOT ORG 0003H LJMP INT3 ORG 000BH LJMP INT2 ORG 0013H LJMP INT1 ORG 001BH RETI BOOT:ACALL INT0_0 ;中断启动程序 ACALL T0_0 ACALL INT1_0 SETB EA SJMP $

第5章 定时器计数器2(1)

2、模式1 模式1(M1M0=01)除了使用了THn和TLn全部16位外,其它与模式0相同。 (1)计数工作方式 由于定时器/计数器以加1方式计数,假定计数值为X,则应装入定时器/计数器的初值为: 初值=216-计数值【216=初值+计数值】 所以方式1的计数值范围是:1~65536(216=65536),最大值为:65536 (2)定时工作方式 定时时间t的计算公式为:【t的时间单位为微秒(μs)】 计数值=216-初值 定时时间t=计数值×机器周期 =(216-初值)×(1/晶体振荡频率)×12 在模式1下的情况下,如果fosc=12MHz,最大定时时间为: t=(65536-初值)×(1/12)×12=65536-0=65.536ms 在模式1下的情况下,如果fosc=6MHz,最大定时时间为: t=(65536-初值)×(1/6)×12=(65536-0)×2=131.072 ms。 【例如】:若晶体振荡为12MHz,要定时2.5ms,计算初值。 要定时2.5ms,也可以用模式1。 2500=(216-初值)×(1/12)×12 初值=65536-2500=63036=32768+16384+8192+4096+1024+512+32+16+8+4=1111 0110 0011 1100 ――> THn =0xF6 和TLn=0x3C 在fosc=12MHz时,如果定时时间大于65.536ms,这时用一个定时/计数器直接处理不能实现,这时可用: 1、2个定时/计数器共同处理; 2、1个定时/计数器配合软件计数方式处理。 3、模式2 方式0和方式1的最大特点是计数溢出后,计数器为全0。因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。这不仅影响定时精度,也给程序设计带来麻烦。方式2就是针对此问题而设置的。 该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。 此模式下定时器寄存器作为可自动重装载的8位计数器(TLn),如下图所示。

第五章习题参考答案

第五章习题参考答案 第五章部分习题参考答案 1.S7-200 PLC的指令参数所用的基本数据类型有哪些? 答:S7-200系列PLC的基本数据类型有布尔型、字节型、无符号整数型、有符号整数型、无符号双字整数型、有符号双字整数型、实数型。 2.立即I/O指令有何特点?它应用于什么场合?答:立即I/O指令允许对物理输入点和输出点进行快速直接存取,不受PLC循环扫描工作方式的影响。使用立即I/O指令可以加快输入、输出响应速度,但也不可盲目使用,否则会加长扫描周期时间,反而对系统造成不利影响,使用时应利弊权衡。

3.逻辑堆栈指令有哪些?各用于什么场合? 答:逻辑堆栈指令包含栈装载与ALD、栈装载 或OLD、逻辑入栈。 4.定时器有几种类型?各有何特点?与定时器有关的变量有哪些?梯形图中如何表示这些变量?答:定时器有三种类型:接通延时定时器(TON)、有记忆接通延时定时器仃ONR)、断开延时定时器TOF。TON的特点:当输入端接通或“能流” 通过时,定时器位为OFF,当前值从0开始计数,当当前值等于或大于设定值时,该定时器位被置位为ON,当前值仍继续计数,一直计到最大值32767,当输入端断开时,定时器立即复位,当前值为O;TONR的特点:当输入端接通或“能流”通过时,当前值从上次的保持值开始再往上累计时间,继续计时,当累计当前值等于或大于设定值时,该定时器的位被置位,当前值可继续计数,一直计数到最大值32767,当输入端断开,当前值保持不变,定时器的位不变;TOF的特点:当输入端由ON到OFF时,定时器开始计时,当前值从0开始增加,当累计当前值等于设定值时,定时器位为OFF,并停止计时。与定时器有关的变量有当前值和位。梯形图中,可以通过使用定时器号来存取这些

相关文档
相关文档 最新文档