可编程的定时器计数器8253_第1页
可编程的定时器计数器8253_第2页
可编程的定时器计数器8253_第3页
可编程的定时器计数器8253_第4页
可编程的定时器计数器8253_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机原理及其应用

——第九章:可编程的定时器/计数器8253济南大学自动化与电气工程学院1第九章:可编程的定时器/计数器8253定时器/计数器概述可编程的定时器/计数器82532第九章:可编程的定时器/计数器8253定时器/计数器概述可编程的定时器/计数器82533第九章:可编程的定时器/计数器8253——定时器/计数器概述定时器/计数器概述

在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。4第九章:可编程的定时器/计数器8253——定时器/计数器概述定时和计数的实现方法软件法:利用一段延时子程序来实现定时操作,特点,无需太多的硬设备,控制比较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。

硬件法:专门设计一套电路用以实现定时与计数,特点是需要花费一定硬设备,而且当电路制成之后,定时值及计数范围不能改变。软、硬件结合法:即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。5第九章:可编程的定时器/计数器8253——定时器/计数器概述可编程定时器/计数器基本工作原理CPU可访问的寄存器:控制

寄存器、CR、OL;CPU不可访问的寄存器:CECR:16位,存放计数初值,

可通过程序来设定。控制逻辑:根据外部送来的

控制命令,输出相应信号。控制寄存器控制逻辑CRHCRLCEHCELOLHOLL计数初值寄存器CR计数执行单元CE计数输出锁存器OL6第九章:可编程的定时器/计数器8253——定时器/计数器概述可编程定时器/计数器基本工作原理CE:16位减1计数器,它的

初值便是计数初值寄存器

的内容,它只对CLK脉冲计

数。一旦计数器被启动后,

每出现一个CLK脉冲,计数

执行单元中的计数值减1,

当减为零时,通道OUT输出

指示信号,表明CE已为零。

控制寄存器控制逻辑CRHCRLCEHCELOLHOLL计数初值寄存器CR计数执行单元CE计数输出锁存器OL7第九章:可编程的定时器/计数器8253——定时器/计数器概述可编程定时器/计数器基本工作原理OL:通常跟随计数CE的内容

而变化,当接收到CPU发来的

锁存命令时,就锁定当前的

计数值而不跟随CE变化,直

到CPU从中读取锁存值后,才

恢复到跟随CE变化的状态,

从而避免了CPU直接读CE时干

扰计数工作的可能。控制寄存器:存放CPU送来

的控制字,用来控制计数器

/定时器的工作方式,就是控

制CLK脉冲和GATE门控信号适

当配合来产生OUT端的输出信

号的形状。控制寄存器控制逻辑CRHCRLCEHCELOLHOLL计数初值寄存器CR计数执行单元CE计数输出锁存器OL8第九章:可编程的定时器/计数器8253——定时器/计数器概述可编程定时器/计数器基本工作原理GATE:控制输入端,它有多

种控制作用,如允许/禁止

计数、启动/停止计数等。CLK:脉冲信号,减1计数的

触发。OUT:输出信号,计数/定时

完成时,用一定电平或脉冲

表示。控制寄存器控制逻辑CRHCRLCEHCELOLHOLL计数初值寄存器CR计数执行单元CE计数输出锁存器OL9第九章:可编程的定时器/计数器8253定时器/计数器概述可编程的定时器/计数器825310第九章:可编程的定时器/计数器8253——8253可编程定时器/计数器8253Intel8253是8086微机系统常用的定时/计数器芯片,它具有定时与计数两大功能。每个8253芯片有3个独立的16位计数器通道;每个计数器通道都可以按照二进制或二—十进制(BCD码)计数;每个计数器的计数速率可以高达2MHz;每个通道有6种工作方式,可以由程序设定和改变;所有的输入、输出电平都与TTL兼容。11第九章:可编程的定时器/计数器8253——82538253的内部结构12第九章:可编程的定时器/计数器8253——82538253的内部结构数据总线缓冲器:从总线接收或发送数据,写入控制字,读取计数值的通道。读写逻辑:接受来自总线的各种控制信号,产生内部控制命令。控制字寄存器(只写):8位,存放CPU送来的控制字。计数器(0~2):3个16位的定时/计数器。3套相同且相互独立的结构,每套内部有4个寄存器。控制寄存器:8位,存放各自的控制字,初始化时写入控制字寄存器的内容。计数初值寄存器:16位,存放计数初值,初始化时写入。减1计数寄存器:16位减1计数器,计数初值由预置寄存器送来,每输入一个计数脉冲,减1,减到0时输出计数结束信号。输出锁存器:当接收到CPU读命令时,锁存当前计数值不跟随计数器变化。13第九章:可编程的定时器/计数器8253——82538253的引脚功能D7D6D5D4D3D2D1D0CLK0OUT0GATE0GNDOUT1GATE1CLK1GATE2CLK2A0A1OUT2WRRDCSVCC8253PIT24232221201918171615141312345678910111214第九章:可编程的定时器/计数器8253——82538253的引脚功能(1)与系统总线连接的引脚D7~D0:数据线,双

向三态,接数据总线;CS#:片选输入,有效

时选中芯片,接译码器;RD#:读出计数值,接

CB的读信号;WR#:写入命令或初值,

接CB的写信号;A1,A0:地址输入,接

AB的任两位,用于选择

内部四个端口之一。IOWIOR片选信号DBD7-D08253A1A0-WR-RD-CS计数器2计数器1计数器0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A0A1A0选择00计数器001计数器110计数器211控制寄存器15第九章:可编程的定时器/计数器8253——82538253的引脚功能01000010010101001011001000010100110功能对计数器0设置计数初值CSRDA1A0WR对计数器1设置计数初值对计数器2设置计数初值设置控制字从计数器0读出计数值从计数器1读出计数值从计数器2读出计数值16第九章:可编程的定时器/计数器8253——82538253的引脚功能(2)与计数通道连接的引脚的主要引线

CLKn:时钟脉冲,输入,

计数器的定时基准,用于

输入定时基准脉冲或计数

脉冲。GATEn:门控信号,输入,

控制计数器的启停。OUTn:计数器输出信号,

当计数器完成计数时,输出

相应信号。不同工作方式下

产生不同波形。(n=0~2)IOWIOR片选信号DBD7-D08253A1A0-WR-RD-CS计数器2计数器1计数器0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A017第九章:可编程的定时器/计数器8253——82538253的引脚功能CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0译码器高位地址A15-A282538253占用4个接口地址:

计数器0

计数器1

计数器2

控制寄存器(决定8253的I/O地址)共三组接外设18第九章:可编程的定时器/计数器8253——82538253计数器的启动方式软件启动:CPU对指定计数器编程后自动启动计数,写入计数初值后的第1个CLK脉冲的下降沿开始计数要求GATE保持高电平(GATE为低禁止计数)。硬件启动:

CPU对指定计数器编程后并不马上开始计数,而是在门控信号GATE的上升沿触发下,才开始计数。19第九章:可编程的定时器/计数器8253——82538253的工作方式方式0——计数结束中断方式1——硬件可重触发的单稳态方式2——速率发生器方式3——方波发生器方式4——软件触发选通方式5——硬件触发选通20第九章:可编程的定时器/计数器8253——82538253的工作方式——方式0计数结束中断:典型的事件计数用法。软件启动,不自动重复计数。装入初值后OUT端变低电平,计数结束OUT输出高电平。(可作为中断请求信号)①②⑤④⑥GATEOUTCLK

031244方式0WR21第九章:可编程的定时器/计数器8253——82538253的工作方式——方式0计数过程由软件启动,可以用写入计数初值的时刻来控制启动计数器的时刻。GATE起开放/禁止计数作用,计数过程中,应保持高电平。每写入一次初值计数一个周期,然后停止计数。OUT端输出是一个约(N+1)TCLK宽度的单个负脉冲。OUT变为高电平时,可作为中断请求信号。计数过程中可随时修改初值重新开始计数。22第九章:可编程的定时器/计数器8253——82538253的工作方式——方式1硬件可触发单稳态方式:硬件启动,不自动重复计数。装入初值后OUT端变高电平,计数开始OUT端变为低电平,计数结束后又变高。①②⑤④⑥③GATEOUTCLK

031244方式1WR23第九章:可编程的定时器/计数器8253——82538253的工作方式——方式1门控信号GATE端的上跳变触发计数,可重复触发。OUT输出可看作单稳态负脉冲,若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和。计数过程中写入新初值不影响本次计数。可通过改变计数初值来产生不同输出宽度的负脉冲。24第九章:可编程的定时器/计数器8253——82538253的工作方式——方式2速率发生器:OUT产生周期性定时信号。软、硬件启动,自动重复计数。装入初值后OUT端变高电平,计数到最后一个CLK时OUT输出负脉冲,并连续重复此过程。03124GATEOUTCLK

4方式2031240312403124WR①②⑤④⑥③25第九章:可编程的定时器/计数器8253——82538253的工作方式——方式2GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。每个计数周期结束时(减到1时),OUT端输出一个TCLK宽度的负脉冲。OUT端输出信号频率是CLK频率的1/N,因此又叫N分频方式。计数过程自动重复进行。计数过程中修改初值不影响本轮计数过程。改变计数初值,即可获得不同频率的OUT输出脉冲,这就是频率发生器名称的由来。26第九章:可编程的定时器/计数器8253——82538253的工作方式——方式3方波发生器:OUT输出方波。软、硬件启动,自动重复计数。装入初值后OUT端变高电平,然后OUT连续输出对称方波:

前N/2或(N+1)/2个CLK,OUT为高,

后N/2或(N-1)/2个CLK,OUT为低。03124GATEOUTCLK

4方式3031244WR①②⑤④⑥③27第九章:可编程的定时器/计数器8253——82538253的工作方式——方式3OUT输出方波,前半周期为高,后半周期为低。计数过程中修改初值不影响本半轮计数过程。其余的与方式2类似。28第九章:可编程的定时器/计数器8253——82538253的工作方式——方式4软件触发选通:软件启动,不自动重复计数。装入初值后输出端变高电平,计数结束输出一个CLK宽度的负脉冲。GATEOUTCLK031244方式4WR①②⑤④⑥③29第九章:可编程的定时器/计数器8253——82538253的工作方式——方式4计数过程中,GATE端应保持高电平。(GATE为低禁止计数)。每写入一次初值,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。计数过程中修改初值不影响本轮计数过程。方式4与方式0的区别:

方式0:OUT负脉冲宽度为N+1个CLK周期;

方式4:OUT的输出需N+1个CLK周期后变低,负脉冲宽度为1个CLK周期。30第九章:可编程的定时器/计数器8253——82538253的工作方式——方式5硬件触发选通:硬件启动,不自动重复计数。OUT端波形和方式4一样。GATEOUTCLK031244方式5WR①②⑤④⑥③31第九章:可编程的定时器/计数器8253——82538253的工作方式——方式5写入初值时,GATE端应保持低电平。GATE每出现一次正跳变,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。计数过程中修改初值不影响本轮计数过程。方式5与方式1的区别:

方式1:OUT负脉冲宽度为N个CLK周期;

方式5:OUT的输出需N个CLK周期后变低,负脉冲宽度为1个CLK周期。32第九章:可编程的定时器/计数器8253——82538253的工作方式

启动计数中止计数自动重复更新初值OUT波形方式0软件(暂停)GATE=0无立即有效

方式1硬件/

无下一轮有效

方式2软/硬件GATE=0

有下一轮有效

方式3软/硬件GATE=0有下半轮有效

方式4软件(暂停)GATE=0

无下一轮有效

方式5硬件/

无下一轮有效

负的单个宽脉冲负的单个宽脉冲负的单个窄脉冲负的单个窄脉冲对称方波周期性负脉冲33第九章:可编程的定时器/计数器8253——8253选通信号GATE的功能-初始化和计数-方式5允许计数-禁止计数方式4允许计数1.初始化和计数2.计数器重新装入1.禁止计数2.使输出立即变为高电平方式3允许计数1.初始化和计数2.计数器重新装入1.禁止计数2.使输出立即变为高电平方式2-1.初始化和计数2.下一个时钟后输出变为低电平-方式1允许计数-禁止计数方式0高电平上升沿低电平或进入低电平34第九章:可编程的定时器/计数器8253——82538253的初始化方式控制字:用于确定各计数器的工作方式。每个计数器都必须初始化一次。D7D6D5D4D3D2D1D0计数器选择00011011计数器0计数器1计数器2无效读/写格式及锁存命令00011011计数器锁存读/写计数器低8位读/写计数器高8位先读/写低8位,再读/写高8位工作方式选择000001×10×11方式0方式1方式2方式3100101方式4方式5计数制选择01二进制计数BCD码计数35第九章:可编程的定时器/计数器8253——82538253的初始化写入方式控制字:按方式控制字格式编制控制字,写入8253控制口(地址值最大的)。3个计数器使用同一个控制口,3个控制字写入后存放在各自的控制寄存器中。写入计数初值:按控制字中D5、D4的规定写入计数初值。控制字中D0位的值决定计数初值的进制。36第九章:可编程的定时器/计数器8253——82538253的初始化写控制字写计数值低8位写计数值高8位*非必须写入顺序:可按计数器分别写入控制字和初值。也可先写所有计数器控制字,再写入它们的初值。37第九章:可编程的定时器/计数器8253——82538253的初始化置计数初值:MOVDX,388H;CNT0MOVAX,2000;CR0OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,389H;CNT1MOVAL,200;低8位OUTDX,AL设置工作方式:MOVDX,38BH;控制口MOVAL,36H;OUTDX,ALMOVAL,56H;CNT1OUTDX,AL36H=00

11

0110CNT016位方式356H=01

01

0110CNT18位方式338第九章:可编程的定时器/计数器8253——82538253应用举例用8253监视一个生产流水线。每通过50个工件,扬声器响5秒钟,频率为2000Hz。驱动器CLK1OUT1CLK0GATE0GATE1OUT0INT+5V2.5MHz8255PA0扬声器8253+5V光源工件R光敏电阻2000Hz39第九章:可编程的定时器/计数器8253——82538253应用举例工作原理:工件从光源和光敏电阻间通过时,在晶体管的发射极产生一个脉冲,作CLK0。当CNT0计满50后,OUT0输出负脉冲,反相后作为8259A的一个请求。中断服务程序中,启动CNT1计数,OUT1输出2000Hz方波,持续5秒停止。驱动器CLK1OUT1CLK0GATE0GATE1OUT0INT+5V2.5MHz8255PA0扬声器8253+5V光源工件R光敏电阻2000Hz40第九章:可编程的定时器/计数器8253——82538253应用举例设置:设CNT0方式2(计数),CNT1方式3(方波),GATE0=+5V,GATE1接8255PA0(控制位)。CNT0:方式2,2位BCD计数,计数初值为50

CW0=00010101B=15HCNT1:方式3,4位BCD计数,计数初值=2.5×106/2000=1250

CW1=01110111B=77H假设:8253口地址为40H、41H、42H、43H;8255PA口地址为80H。41第九章:可编程的定时器/计数器8253——82538253应用举例——主程序段MOVAL,15H ;CNT0初始化

OUT43H,ALMOVAL,50H ;设置计数初值

OUT40H,ALMOVAL,77H;CNT1初始化OUT43H,ALM

温馨提示

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

评论

0/150

提交评论