微型计算机原理第10章定时器/计数器_第1页
微型计算机原理第10章定时器/计数器_第2页
微型计算机原理第10章定时器/计数器_第3页
微型计算机原理第10章定时器/计数器_第4页
微型计算机原理第10章定时器/计数器_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微型计算机原理第10章定时器/计数器第一页,共63页。第一,计算机系统本身需要一个时间基准,以保证计算机在确定时刻完成规定动作。§10.1定时/计数技术概述第10章定时/计数技术及接口§10.1.1

系统的时间基准

计算机为什么需要时间基准?计算机系统的时间基准:主时钟频率(简称主频)

第二,用计算机构成的测控系统常被要求能提供一些定时和计数的功能。第二页,共63页。

§10.1.2系统定时分类

软件定时:用循环程序实现定时:简单硬件定时:用硬件电路实现硬件定时:可编程硬件定时:用可编程芯片实现

(软、硬件结合方式)第10章定时/计数技术及接口第三页,共63页。第10章定时/计数技术及接口举例:MOVCX,100;占用时钟周期数为m1L1:MOVBX,50;占用时钟周期数为m1L2:DECBX;占用时钟周期数为m2NOP;占用时钟周期数为m3JNZL2;占用时钟周期数为m4NOP;占用时钟周期数为m3LOOPL1;占用时钟周期数为m5

1.

软件定时:让CPU执行一段具有固定延时时间的循环程序来实现的延时。是实现系统定时或延时控制的最简单的方法。优点:不需要外加硬件电路且定时精确。缺点:定时时间越长,CPU的开销越大,而且不能响应中断,否则定时就不准确。

则:定时时间t=T×

{100×

[50×(m2+

m3+m4

)+m1+m3+m5]+m1}设T为主频率对应的时钟周期第四页,共63页。第10章定时/计数技术及接口2.硬件定时:由硬件电路来实现的定时。

优点—减轻CPU的负担,使得在定时期间CPU能做其它工作。①不可编程的硬件定时—555时基电路等缺点:不易修改定时参数,时间长了器件会老化。②可编程硬件定时—8253定时/计数器等优点:定时参数和工作方式可由软件来控制,定时过程不需要CPU干预。第五页,共63页。§10.2.18253主要特性

单一正5V电源,NMOS工艺制成。②

片内具有3个独立的16位减法计数器(或称计数通道)。③

计数频率为0~2MHz。④

两种计数方式:即二进制或BCD方式计数。⑤

六种工作方式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。⑥

可由软件或硬件控制开始计数或停止计数。

第10章定时/计数技术及接口§10.2可编程定时器/计数器8253/8254

第六页,共63页。§10.2.28253内部结构

第10章定时/计数技术及接口第七页,共63页。1.数据总线缓冲器:三态、双向8位寄存器

CPU写入的命令传送的信息:CPU写入的计数初值

CPU读出的当前计数值8254增加了回读命令:CPU可读出当前状态第10章定时/计数技术及接口第八页,共63页。2.读/写逻辑读/写逻辑接收由CPU发来的读、写信号和地址信号等,选择读出或写入寄存器,控制芯片完成读写操作。3.控制字寄存器控制字寄存器接收CPU送来的控制命令。选择计数器及相应的工作方式。

控制字寄存器只能写入,不能读出。第10章定时/计数技术及接口第九页,共63页。4.计数器8253有三个独立的计数通道

16位的计数单元(减1计数器)每个通道的组成:16位初值寄存器(只写)16位输出锁存器—锁存当前计数值

控制单元—控制该计数器的工作方式

第10章定时/计数技术及接口第十页,共63页。第10章定时/计数技术及接口图10.2计数器的内部逻辑

第十一页,共63页。计数初值寄存器:用于存放计数初值(定时常数或称分频系数),最大计数值为65536(64K)。

计数初值是在初始化时装入计数初值寄存器的,计数初值在计数过程中保持不变。计数单元:用于进行减1计数操作,每来一个时钟脉冲,它就作一次减1运算,直至将计数初值减为零。当前计数值锁存器:用于锁存减1计数器的内容,以供CPU读出。第10章定时/计数技术及接口第十二页,共63页。计数器工作原理:

初始化时首先向计数通道装入计数初值,送入计数初值寄存器然后送到计数单元(减1计数器)。

计数启动后(GATE允许),在时钟脉冲CLK作用下,计数单元进行减1计数,直到计数值减到0,OUT输出端产生相应动作时,计数结束。计数初值寄存器的内容在计数过程中保持不变。

需要读出当前计数值时,发锁存命令,锁存器锁定当前计数值,之后可读出当前计数值。第10章定时/计数技术及接口第十三页,共63页。8253的引脚图第10章定时/计数技术及接口§10.2.38253外部特性第十四页,共63页。8253的引脚分为两部分:1.与CPU连接的引脚

CPU写入的命令D7—D0:数据线(双向,三态)传送

CPU写入的计数初值CPU读出的当前计数值:写信号,用于控制完成写操作:读信号,用于控制完成写操作A1、A0:地址线,用于寻址8253内部的4个端口:片选信号,用于选中

8253芯片第10章定时/计数技术及接口第十五页,共63页。表10.18253端口操作中各信号组合所实现的功能

第10章定时/计数技术及接口第十六页,共63页。2.与外设的接口引脚

CLK0~2:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。GATE0~2:门控信号,输入。用于外部控制计数器的启动计数和停止计数的操作。OUT0~2:计数输出端。当计数器从初值开始完成计数操作时,OUT引脚上输出相应的信号。

第10章定时/计数技术及接口第十七页,共63页。8253控制字的格式D7D6D5D4D3D2D1D0

0=二进制1=十进制工作方式选择000=方式0001=方式1X10=方式2X11=方式3100=方式4101=方式5通道寻址00=通道001=通道110=通道211=不用读写操作00=锁定当前计数值01=读/写计数器低8位10=读写计数器高8位11=先读/写计数器低8位再读/写计数器高8位第10章定时/计数技术及接口§10.2.48253方式控制字(CW)第十八页,共63页。第10章定时/计数技术及接口

例:选择2号计数器,工作在方式3,计数初值为533H(2个字节),采用二进制计数。设8253的端口地址为304H~307H。则其初始化程序段为:

方波发生器(1)工作方式编程举例工作方式3为输出方波§10.2.58253控制字的应用

MOVDX,307H;命令口

MOVAL,10110110B

;2号计数器的初始化命令字

OUTDX,AL;写入命令寄存器

MOVDX,306H;2号计数器数据口

MOVAX,533H;计数初值

OUTDX,AL;选送低字节到2号计数器

MOVAL,AH;取高字节送ALOUTDX,AL;后送高字节到2号计数器第十九页,共63页。(2)读当前计数值在事件计数器的应用中,需要读出计数过程中的当前计数值,以便根据这个值做计数判断。

例:要求读出并检查1号计数器的当前计数值是否是全“1”。设8253的端口地址为304H~307H,假定只读低8位。程序段为:

MOVDX,307H;命令口L:MOVAL,01000000B

;1号计数器的锁存命令

OUTDX,AL;写入命令寄存器

MOVDX,305H;指向1号计数器数据端口

INAL,DX;读1号计数器的当前计数值

CMPAL,0FFH;比较

JNEL;非全“1”,再读

HLT;是全“1”,暂停

第10章定时/计数技术及接口第二十页,共63页。初始化编程的具体步骤为:1.

写入计数器的控制字,规定其工作方式等;2.

写入计数初值。①若规定只写低8位,则写入的为计数值的低8位,高8位自动置0;②若规定只写高8位,则写入的是计数值的高8位,低8位自动置0;③若规定写16位计数值,则分两次写入,先写的必是低8位,后写的必是高8位。

第10章定时/计数技术及接口§10.2.68253初始化编程

第二十一页,共63页。解:1.按要求找出所用计数器的控制字

选计数器0只写低8位

选工作方式0二进制计数

选计数器1只写高8位

选工作方式2BCD计数

0

0

0

1

0

0

0

0

0

1

1

0

0

1

0

1

例10.1:某微机系统中8253的端口地址为40H~43H,要求计数器0工作在方式0,计数初值为FFH,按二进制计数;计数器1工作在方式2,计数初值为1000,按BCD码计数。试写出初始化程序段。

计数器0的控制字:计数器1的控制字:第10章定时/计数技术及接口第二十二页,共63页。2.初始化程序段MOVAL,10H;写通道0控制字OUT43H,ALMOVAL,0FFH;写通道0计数初值OUT40H,ALMOVAL,65H;写通道1控制字OUT43H,ALMOVAL,10H;写通道1计数初值OUT41H,AL第10章定时/计数技术及接口第二十三页,共63页。例10.2:

设8253端口地址为FFF0H~FFF3H,要求计数器2工作在方式5,二进制计数,初值为F03FH。试按上述要求完成8253的初始化。解:选计数器2先写低8位

选工作方式5二进制计数再写高8位

1.控制字第10章定时/计数技术及接口第二十四页,共63页。2.初始化程序段

MOV DX,0FFF3H;DX指向控制端口

MOV AL,0BAH;写控制字

OUTDX,AL MOVDX,0FFF2H;DX指向通道2

MOV AL,3FH;写初值低8全

OUTDX,AL MOV AL,0F0H;写初值高8位

OUTDX,AL第10章定时/计数技术及接口第二十五页,共63页。§10.2.78253工作方式通常,在时钟脉冲CLK的上升沿,门控信号GATE被采样。不同工作方式,门控信号的触发有具体规定,或用电平触发,或用边沿触发。方式0、4中,门控信号为电平触发;方式1、5中,门控信号为上升沿触发;方式2、3中,既可用电平触发,也可用上升沿触发。在时钟脉冲的下降沿,计数器作减1计数。0是计数器所能容纳的最大值,因为用二进制计数时,16位计数器中,0相当于216;用BCD码计数时,0相当于104。

几条基本原则:控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态(高电平或者低电平)。初值写入以后,要经过一个时钟上升沿和一个时钟下降沿,计数执行部件才开始计数。

第10章定时/计数技术及接口第二十六页,共63页。工作方式及其特点①8253中有三个独立的计数器,每个计数器都可编程选择六种工作方式之一。②主要从三个方面区别这六种工作方式:其一是他们的输出波形不同;其二是启动计数器的触发方式不同;其三是计数过程中门控信号对计数操作的影响不同。另外:计数过程中可以写入新的初值,对于不同的工作方式,新的初值对计数过程的影响不同。第10章定时/计数技术及接口第二十七页,共63页。1.方式0

--计数结束产生中断

图3.48253的0方式时序波形n=5n=5CLKOUTWRWRGATEOUTWROUT

543210543210n=998n=443210图10.4方式0输出波形图正常计数GATE影响新的初值影响第10章定时/计数技术及接口第二十八页,共63页。方式0有如下3个特点:正常计数过程:写入控制字后的时钟上升沿OUT变低,向计数器写完计数初值后,开始减1计数,在计数过程中输出端OUT一直保持低电平,当计数器减到0时,OUT立即变成高电平。门控信号的影响:门控信号GATE为高电平时,计数器工作;当GATE为低电平时,计数器停止工作,其计数值保持不变。如果门控信号GATE再次变高时,计数器从中止处继续计数。新的计数初值的影响:在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数初值重新开始计数。第10章定时/计数技术及接口第二十九页,共63页。例1:使计数器T1工作在方式0,进行16位二进制计数,计数初值的高低字节分别为BYTEH和BYTEL。 (设8253的端口地址为304H~307H)

其初始化程序段为:

MOVDX,307H;命令口

MOVAL,01110000B

;方式字

OUTDX,ALMOVDX,305H;T1数据口

MOVAL,BYTEL;计数值低字节

OUTDX,ALMOVAL,BYTEH;计数值高字节

OUTDX,AL第10章定时/计数技术及接口第三十页,共63页。2.方式1—可重触发的单稳态触发器图10.5方式1输出波形图正常计数GATE影响新的初值影响第10章定时/计数技术及接口第三十一页,共63页。正常计数过程:

写入控制字后的时钟上沿输出OUT变高,写入计数初值后,计数器并不立即开始工作;门控信号GATE有效(上升沿到来),使输出OUT变成低电平,同时才开始减1计数;直到计数器值减到0后,输出才变成高电平。

方式1说明第10章定时/计数技术及接口新的计数初值的影响:

如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。门控信号的影响:

在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。

第三十二页,共63页。

使计数器T2

工作在方式1,进行8位二进制计数,并设计数初值的低8位为BYTEL。

(设8253的端口地址为304H~307H)

其初始化程序段为

MOVDX,307H;命令口

MOVAL,10010010B

;方式字

OUTDX,ALMOVDX,306H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,AL第10章定时/计数技术及接口例2:第三十三页,共63页。3.方式2

—分频器方式2是一种自动装计数初值的N分频器。正常计数GATE影响新的初值影响图10.6方式2输出波形图第10章定时/计数技术及接口第三十四页,共63页。第10章定时/计数技术及接口新的计数初值的影响:

如果工作期间对计数器写入新的计数初值:

GATE一直为高电平:新的初值下次有效写入新的初值后,遇到GATE上升沿,新的初值有效方式2说明:输出连续脉冲波正常计数过程:

写入控制字后的时钟上沿输出OUT变高,写入计数初值后,计数器开始减1计数,减到1时OUT变成低电平,减到0时OUT又变成高电平,同时初值自动重新装入,并重复前一过程;门控信号的影响:

在计数器工作期间,当GATE变为低电平时终止计数,而当GATE又恢复为高电平后,计数器重新装入原计数初值并重新开始计数。

则第三十五页,共63页。例3:使计数器T0工作在方式2,进行16位二进制计数。(设8253的端口地址为304H~307H)

其初始化程序段为

MOVDX,307H;命令口

MOVAL,00110100B

;方式字

OUTDX,ALMOVDX,304H;T0数据口

MOVAL,BYTEL;低8位计数值

OUTDX,ALMOVAL,BYTEH;高8位计数值

OUTDX,AL第10章定时/计数技术及接口第三十六页,共63页。第10章定时/计数技术及接口4.方式3—方波发生器方式3与方式2基本相同,也具有自动装入时间常数(计数初值)的功能。图10.7方式3输出波形图计数值为偶数计数值为奇数

方式2

OUT输出的是脉冲波

方式3与方式2的不同之处:

方式3

OUT输出的是方波第三十七页,共63页。说明:(1)工作在方式3,引脚OUT输出的是占空比为1:1或近似1:1的方波;当计数初值为偶数时,输出严格方波(输出脉冲占空比为50%)。当计数初值为奇数时,输出近似方波(输出脉冲占空比约为50%)。(2)由于方式3输出的波形是方波,并且具有自动重装计数初值的功能,因此,8253一旦计数开始,就会在输出端OUT输出连续不断的方波。第10章定时/计数技术及接口第三十八页,共63页。图10.8方式4输出波形图5.方式4—软件触发的选通信号发生器正常计数新的初值影响GATE影响第10章定时/计数技术及接口第三十九页,共63页。输出单次单拍负脉冲(软件触发)第10章定时/计数技术及接口新的计数初值的影响:

任何时候对计数器写入新的计数初值,只要GATE=1,就会立即终止现行的计数过程,而按新写入的计数初值开始工作。门控信号的影响:

在计数器工作期间,GATE=1允许计数,GATE=0禁止计数,输出OUT维持当时的电平,只有计数减到0时OUT才变低1个时钟周期,然后又恢复成高电平。

正常计数过程:

写入控制字后的时钟上沿输出OUT变高,写入计数初值后,计数器开始减1计数,减到0时OUT变低1个时钟周期,然后又恢复成高电平。方式4说明:第四十页,共63页。例4:使计数器T1工作于方式4,进行8位二进制计数,并且只装入高8位计数值。(设8253的端口地址为304H~307H)

其初始化程序段为:MOVDX,307H;命令口

MOVAL,01101000B

;方式字

OUTDX,ALMOVDX,304H;T2数据口

MOVAL,BYTEH;低8位计数值

OUTDX,AL第10章定时/计数技术及接口第四十一页,共63页。6.方式5—硬件触发的选通信号发生器图10.9方式5输出波形图正常计数GATE影响

方式4由计数值触发计数器计数

方式5与方式4的不同之处:

方式5由GATE上升沿触发计数器计数第10章定时/计数技术及接口第四十二页,共63页。方式5工作特点1)在方式5下,当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。2)在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。3)新的计数初值要等到下一个门控信号的上升沿到来才能生效。输出单次单拍负脉冲(硬件触发)第10章定时/计数技术及接口方式5说明:第四十三页,共63页。6种工作方式的比较方式2(分频器)和方式3(方波发生器),这两种方式共同的特点是具有自动重加载功能(装入初值)。二者的区别在于:方式2在计数过程中输出高电平,而在每当减1至0时输出宽度为1个TCLK的负脉冲。方式3是在计数过程中,OUT的信号是占空比为1:1的方波或近似方波。

方式4(软件触发单脉冲)和方式5(硬件触发单脉冲)。这两种方式的OUT输出波形相同,两者的区别是计数启动的触发信号不同,前者由写初值启动计数,后者由GATE信号的上升沿启动计数)。方式0(门控单稳)和方式1(门控单稳),这两种方式的输出波形类似。第10章定时/计数技术及接口第四十四页,共63页。各种工作方式的输出波形第10章定时/计数技术及接口第四十五页,共63页。例:设8253的计数器0,工作在方式1,计数初值为2050;计数器1,工作在方式2,计数初值为3000;计数器2,工作在方式3,计数初值为1000。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。第10章定时/计数技术及接口第四十六页,共63页。

举例分析:

①计数器0工作在方式1,即可编程的单脉冲方式。这种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。②计数器1工作在方式2,即分频器的方式。输出波形的频率f=2MHz/3000=666.7Hz,其周期为1.5ms(1/666.7≈0.0015),输出负脉冲的宽度等于CLK的周期为0.5µs。(1/2000000=0.0000005)③计数器2工作在方式3,即方波发生器的方式。输出频率f=2MHz/1000=2000Hz的对称方波。即每个周期500µs。第10章定时/计数技术及接口第四十七页,共63页。三个OUT的输出波形如下:第10章定时/计数技术及接口第四十八页,共63页。

例10.3:IBM-PC/XT微机的某扩展板上使用一片8253,其端口地址为200H~203H。要求从定时器0的输出端OUT0得到500Hz的方波信号,从定时器1的输出端OUT1得到50Hz的连续单拍负脉冲信号。已知系统提供的计数脉冲频率为250KHz,其硬件连接见图10.10。试编写初始化此8253的程序段。

第10章定时/计数技术及接口§11.2.88253应用举例

第四十九页,共63页。图10.10例10.3硬件连接图第五十页,共63页。例10.3解:1.确定工作方式定时器0工作在方式3;定时器1工作在方式2。2.计算计数初值

计数初值=分频系数=fclk/fout

定时器0:

N0=fclk0/fout0=250000/500=500化为十六进制为01F4H。定时器1:N1=fclk1/fout1=500/50=10化成16进制为0AH。

第10章定时/计数技术及接口第五十一页,共63页。3.确定控制字定时器0:定时器1:

0

0

1

1

0

1

1

0

选定时器0选工作方式3二进制计数先写低8位后写高8位

第10章定时/计数技术及接口第五十二页,共63页。4.初始化程序段MOVDX,203H;写定时器0控制字MOVAL,36HOUTDX,ALMOVDX,200H;写定时器0计数初值低8位MOVAL,0F4HOUTDX,ALMOVAL,01H;写定时器0计数初值高8位OUTDX,ALMOVDX,203H;写定时器1控制字MOVAL,54HOUTDX,ALMOVDX,201H;写定时器1计数初值MOVAL,0AHOUTDX,AL第10章定时/计数技术及接口第五十三页,共63页。例10.4:某IBMPC/XT应用系统中,当某一外部事件发生时(给出一高电平信号),1秒钟后向主机申请中断。若用8253实现此延迟,试设计硬件连接图并对8253进行初始化。8253的端口地址为40H~43H。

第10章定时/计数技术及接口第五十四页,共63页。图10.11例10.4硬件连接图

第10章定时/计数技术及接口第五十五页,共63页。解:

1.确定工作方式若题目要求,OUT1输出的是连续方波,而OUT2端输出连续单拍负脉冲或高电平,则定时器1工作在方式3,定时器2必须工作在方式2或方式0。

2.计算计数初值

若8253的定时器工作在方式2或方式3,实际上相当于分频器,即OUT端的输出信号频率是由CLK端的信号频率经定时器分频得到的,而分频系数就是从计数初值开始减到1时所计得的时钟周期数。那么,计数初值N就是定时器的分频系数所对应的数字。也就是说,存在如下关系式:

计数初值=分频系数=fclk/fout第10章定时/计数技术及接口第五十六页,共63页。定时器1计数初值:

定时器2计数初值:

00000000分析:实现1秒定时,对应频率为1Hz。定时器分频系数=N2×N1=fclk0/fout0=1190000/1=1190000将分频系数分解到定时器1和定时器2。若选择十进制计数,可取N1=119,N2=1000000000000000000000001100100000001第10章定时/计数技术及接口第五十七页,共63页。3.确定控制字定时器1:控制字为77H

0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论