9定时计数器8253应用设计_第1页
9定时计数器8253应用设计_第2页
9定时计数器8253应用设计_第3页
9定时计数器8253应用设计_第4页
9定时计数器8253应用设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第9章

定时/计数器8253应用设计

可编程定时/计数器8253的原理结构图

8253的原理结构及工作原理8253有三个独立的计数通道(也称计数器):计数器0、计数器1、计数器2。引脚名功能连接去向数据总线(双向)CPU片选信号译码电路读信号CPU写信号CPU端口地址CPU3个计数通道的时钟(计数脉冲)外部3个计数通道的控制信号外部3个计数通道的输出信号外部Vcc电源(+5V)/GND地/8253引脚定义

8253的引脚功能及特点单个计数器内部结构

每个计数通道主要包含四个部件:计数寄存器CR(ConutRegister,16位)、计数工作单元CE(CountingElement,16位)、输出锁存器OL(OutputLatch,16位)、控制字寄存器(ControlWordRegister,8位)。8253的原理结构及工作原理每个计数器相关的引脚有三个,两个输入引脚CLK和GATE,一个输出引脚OUT。8253的原理结构及工作原理CLK:时钟输入引脚,这是定时和计数的基准脉冲,计数或定时的基本单位就是CLK脉冲,通常以脉冲个数作为计数值或脉冲周期作为定时标准。GATE门控信号,高电平有效。该信号为高电平,则进行正常的减法计数,低电平而停止计数。OUT计数器输出信号,当定时结束或计数结束,在该引脚产生一个控制信号。定时/计数器8253占用4个端口地址:

寻址

00 计数通道0 01 计数通道1 10 计数通道2 11 控制字寄存器8253的原理结构及工作原理

为说明方便,将这四个地址分别用COUNTA、COUNTB、COUNTC和COUNTD表示。

通过计数通道的端口地址可以访问通道中的CR、OL,当对通道进行写操作时,实际上表示将计数初值(即时常数)写入CR;当对通道进行读操作时,表示将从OL中读取计数值。定时/计数器8253一共有6种工作方式,由控制字寄存器的内容来设定。方式控制字如下所示:8253的控制字控制字中的位D7D6来确定计数通道: 含义

00 计数通道001 计数通道110 计数通道211 保留8253的控制字D5D4用于设定计数通道的读写规则: 含义00 计数通道的锁存命令,即将当前CE的内容锁存到OL01 只读写CR或OL的低8位10 只读写CR或OL的高8位11 先读写CR或OL的低8位,再读写高8位方式控制字的位用于设定计数通道的工作方式: 含义

000方式0001 方式1×10 方式2×11 方式3100 方式4101 方式58253的控制字方式控制字的最低位D0(即BCD位)用于指定读写数据的格式,当BCD=0时,表示读写数据为二进制数,当BCD=1时,表示读写数据为两位十进制数。

CLK脉冲:是指CLK信号从上升沿到下降沿的时间计数器:与计数通道的含义一致时常数:是指通过指令写入到计数器的值,可以理解成计数器的初值几个基本概念

最大时常数:由于8253是减法计数,因此这两种计数的最大初始值为0000.对于二进制减法计数,0000H实际表示10000H(65536),而BCD码计数的0000表示

10000。8253的工作方式

1.方式0——

计数达到终值时中断

功能:方式0可以实现设定一个确定的时间t0,当到达时间t0时,需要进行某种操作。在方式0下,当写入方式控制字后,相应的OUT端输出变为低电平,直到计数器达到0时变为高电平,表示达到了定时的时间。GATE=1情况下方式0计数过程利用GATE信号加长OUT端的低电平宽度

利用写入新的时常数加长OUT端的低电平宽度方式0的特点:在向8253置方式字或置时常数时,OUT输出变成低电平;置入时常数后,下一个CLK脉冲,使CR内容(初值)置入计数单元,之后每一个CLK脉冲都完成一次减一计数;当计数至0时,OUT由低变高,并继续计数,从0到0FFFFH;正常情况下,即GATE=1,对计数器置入时常数N后,要经过N+1个时钟周期才能使OUT输出高电平;在计数过程中,如GATE变为低电平,这时只是暂停计数,等待GATE信号变为高电平后,计数器继续“减1”计数。例题,向8253的=11B的地址写入00110000B,则表示计数器0设置成方式0,并且采用16位时常数,假设时常数为1500,则计数器0的初始化程序段如下:MOVDX,COUNTD ;写入8253的方式控制字MOVAL,00110000BOUTDX,ALMOVDX,COUNTA ;计数器0置入时常数MOVAX,1500OUTDX,ALXCHGAL,AH;或MOVAL,AHOUTDX,AL2.方式2——

分频脉冲形成功能:方式2类似于N分频器,利用这种方式可以产生周期信号。GATE=1时,将计数器设置成方式2后,OUT端输出高电平;向CR置入时常数N后,下一个CLK脉冲将时常数从CR读入CE,并开始“减1”计数;当计数到0001H时,OUT端变为低电平,经过一个CLK脉冲,OUT端再次变为高电平,产生一个时钟周期的负脉冲;与此同时,重新将时常数从CR读入CE,并继续计数.这样就产生周期的分频信号。GATE=1时方式2的计数过程当时常数为N时,则OUT产生的信号为计数时钟的N分频,高电平为(N-1)个计数时钟周期,低电平为1个计数时钟周期。当GATE为低电平时,计数器暂停计数,GATE端的上升沿使计数器重新读入时常数。GATE信号的作用效果计数过程中写入新的时常数,它只能在下一次分频脉冲后起作用方式2的特点:在置方式2的控制字后,OUT端变为高电平;在置入时常数后,下一个CLK脉冲期间,将时常数从CR读入CE,并开始“减1”计数;当CE计数到01时,在OUT端输出一个负脉冲,并重新读入时常数进行计数;正常情况下,当计数通道的时常数为N时,OUT产生的信号为计数时钟的N分频;

例如,向8253的=11B的地址写入10010100B,则表示计数器2设置成方式2,并且采用低8位时常数,假设时常数为13,则计数器2的初始化程序段如下:MOVDX,COUNTD ;写入8253的方式控制字MOVAL,10010100BOUTDX,ALMOVDX,COUNTC ;计数器2置入时常数MOVAL,13OUTDX,AL这样在OUT2端就产生了CLK2的13分频信号3.方式3——

方波信号形成功能:方式3类似于方式2,只是在OUT上产生对称的或近似对称的方波。GATE=1时,将计数器设置成方式3后,OUT端输出高电平;向CR置入时常数N(设N为偶数)后,下一个CLK脉冲将时常数从CR读入CE,并开始“减2”计数;

当计数到0时,OUT端变为低电平;重新将时常数从CR读入CE,并进行“减2”计数,当计数到0时,OUT端再次变为高电平,产生一个时钟周期的方波信号;

重复这一过程,可以产生周期的对称方波信号。

当设定的时常数N为奇数时,在将时常数从CR读入CE时会自动减1,使CE中的初步变成N-1(偶数),OUT端输出高电平,并开始“减2”计数;

当计数到0时,再经过1个CLK后使OUT端变成低电平;重新将时常数从CR读入CE,并进行“减2”计数,当计数到0时,OUT端再次变为高电平,产生一个时钟周期的方波信号,重复这一过程,可以产生周期的近似对称的方波信号。GATE=1时方式3的计数过程(时常数为偶数)GATE=1时方式3的计数过程(时常数为奇数)当GATE为低电平时,计数器暂停计数,GATE端的上升沿使计数器重新读入时常数。GATE信号的作用效果方式3的特点:在置方式3的控制字后,OUT端变为高电平;在置入偶数的时常数后,OUT端产生一个周期的对称方波信号;在置入奇数的时常数后,产生一个周期的近似对称方波信号,高电平占(N+1)/2个计数时钟周期,低电平占(N-1)/2个计数时钟周期;正常情况下,当计数通道的时常数为N时,OUT产生的信号为计数时钟的N分频方波信号;8253的计数值的读取在任何时刻都可以读取某个计数器的当前计数值,分两步实现:输出计数器锁存命令,将方式控制字中=00B,这样可以将相应计数通道中的当前计数值锁存到OL锁存器,而CE会继续计数;用IN指令读取OL内容。例如,要读取计数器1中的计数值,其程序如下:MOVDX,COUNTD MOVAL,01000000BOUTDX,ALMOVDX,COUNTBINAL,DX;从OL读取低位字节

XCHGAH,ALINAL,DX;从OL读取高位字节

XCHGAH,AL这时,AX的内容就是计数器1的当前计数值8253初始化编程1.一般原则对8253初始化编程分两步,首先写控制字,然后写入对应通道的计数初值。至于先写哪个通道,则由用户任意选择。每一个通道的控制字都必须写入控制寄存器(AlA0=11),初值必须写入相应计数器对应的端口。2.计数初值的计算假设已知8253相应通道的CLK端接入的时钟频率为f,周期记为t=1/f,要求产生的周期性信号频率为F(周期为T)或定时时间为T,则所需计数初值n为

n=T/t=f/F=T*f[例1]已知8253口地址为158H~15BH,其A1和A0与相应地址线相连,要求计数器0工作在方式0,计数初值为1000,二进制计数;计数器1工作在方式1,计数初值为86,BCD码计数;计数器2的OUT端产生最大宽度的方波,写出8253的初始化程序。计数器0的控制字:00110000B=30H初值:1000(超过256,用16位计数)

计数器1的控制字:01010011B=53H初值:86(小于256,用低字节计数)

计数器2的控制字:10110110B=B6H初值:0000(最大方波) MOVAL,30H;计数器0控制字

MOVDX,15BH;控制寄存器端口

OUTDX,AL;写计数器0控制字

MOVAX,1000;计数器0初值

MOVDX,158H;计数器0端口

OUTDX,AL;写计数器0计数初值低字节

MOVAL,AH OUTDX,AL;写计数器0计数初值高字节

MOVAL,53H;计数器1控制字

MOVDX,15BH;控制寄存器端口

OUTDX,AL;写计数器1控制字

MOVAL,86H;十进制计数,所以写成十六进制的形式

MOVDX,159H;计数器1端口

OUTDX,AL;写计数器1计数初值

MOVAL,0B6H;计数器2控制字

MOVDX,15BH;控制寄存器端口

OUTDX,AL;写计数器2控制字

MOVAL,0;计数器2初值

MOVDX,15AH;计数器2端口

OUTDX,AL;写计数器2计数初值低字节

OUTDX,AL;写计数器2计数初值高字节[例2]某应用系统中,系统提供一个频率为10KHZ的时钟信号,要求每隔10ms向CPU提出中断申请,试完成8253的初始化编程。

(1)选择工作方式由于系统每隔10ms完成一次申请,则可选用方式2来实现。(2)确定计数初值已知fCLK0=10KHZ

温馨提示

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

最新文档

评论

0/150

提交评论