可编程定时器计数器8254及其应用课件

上传人:我*** 文档编号:145639763 上传时间:2020-09-22 格式:PPT 页数:29 大小:1,001KB
返回 下载 相关 举报
可编程定时器计数器8254及其应用课件_第1页
第1页 / 共29页
可编程定时器计数器8254及其应用课件_第2页
第2页 / 共29页
可编程定时器计数器8254及其应用课件_第3页
第3页 / 共29页
可编程定时器计数器8254及其应用课件_第4页
第4页 / 共29页
可编程定时器计数器8254及其应用课件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《可编程定时器计数器8254及其应用课件》由会员分享,可在线阅读,更多相关《可编程定时器计数器8254及其应用课件(29页珍藏版)》请在金锄头文库上搜索。

1、6.4 可编程定时/计数器8254及其应用,定时器工作原理,6.4.1 8254定时器/计数器,(1)8254的外部引脚和内部结构,*A1 A0 选择片内各端口(3个通道和一个控制寄存器),0 0 0 1 1 0 1 1 通道0 通道1 通道2 控制寄存器,8254与CPU连接示例,8254,DB,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,1 0 0 0 0 0 1 1 0 0,1 0 0 0 0 0 1 1 0 1,1 0 0 0 0 0 1 1 1 0,1 0 0 0 0 0 1 1 1 1,20CH 选中通道0,20DH 选中通道1,20EH 选中通道2,20FH 选中

2、控制寄存器,设当A9A2的地址信息为:1 0 0 0 0 0 1 1 译码器输出有效信号,基本计数工作原理:,减法计数器 计数工作单元CE,代表外部事件 发生的计数脉冲,减法计数器 计数工作单元 CE,频率精确的时钟脉冲串,根据不同的工作方式, OUT输出不同的信号,CLK,基本定时工作原理:,CLK,计数初值N (定时系数),OUT,OUT,定时系数要求定时的时间 / 时钟脉冲周期,定时的本质还是计数,计数的对象必须是频率精确的脉冲串。如果时钟脉冲的周期是1s ,要求定时1ms,则计数1000次即可,即:定时系数为1000; (对秒计数60次就是1分钟),计数初值N,注意!,工作原理,在计数

3、工作方式下:计数初值写入CR;CE为0时表明计数达到规定值。,在定时工作方式下:定时系数写入CR;CE为0时表明定时时间到。,CLK:计数或定时脉冲输入引脚 GATE:门控引脚:允许/禁止计数;启动/终止计数 OUT:输出引脚:,计数通道的内部结构,不同的工作方式下有不同的输出,(2)8254的工作方式 8254的基本计数工作方式和基本定时工作方式是基础,在这两种基本方式下,可以演绎出6种工作方式。,注意 每一种方式下:,*定时或计数的启动方式 *GATE的控制作用 *OUT引脚上的输出波形,每一种方式分为基本功能和工作特点两部分,细节很多。我们通过波形图,介绍概要。 因为各种方式主要是通过O

4、UT引脚表现出来,请关注OUT。,1) 方式0 计数结束中断 典型的事件计数(基本计数工作方式),基本功能:完成计数,OUT输出高电平 工作特点: *写入控制字后,OUT的初始电平为低 *计数到0时,OUT送出高电平直到写入了新的计数初值。 *通常用OUT的低高变化来产生中断请求或查询信号。 *软件启动,不具备重复性,再次写入初值,开始新一轮计数 *写入计数初值到CR后,第一个计数脉冲的作用是把计数初值装入CE。所以当计数初值=4时,实际上当CLK输入5个计数脉冲后 OUT才为1。,*GATE=0,暂停计数;GATE=1,继续计数 *计数过程中可以写入新的计数初值,从写入后的下一个脉冲开始,以

5、新 的初值进行计数,下图中用波形表达了3种情况: *1 GATE=1,完整的一轮计数 *2 计数过程中,GATE=0,暂停计数 *3 计数过程中,重新写入计数初值的计数情况,2)方式1 硬件可触发单稳,基本功能:计数器相当于一个可编程的单稳态触发器。可用此方式来产生由程序控制脉冲宽度的负单脉冲,该脉冲的宽度(低电平持续时间)由计数初值N确定。,工作特点: *输入控制字后,OUT 以高电平为初始电平 *以GATE的上升边为起点,一个CLK 脉冲后,OUT为低,计数完成后 OUT又回到高电平,产生一个负的单脉冲。 相当于单稳电路从稳态(高)到暂稳态(低)又回到稳态 *该单脉冲的宽度(低电平继续时间

6、)是CLK周期的N倍 *可重复触发。GATE的上升边启动新一轮工作。,图中用波形表达了3种情况: *1 正常的一次单稳动作全过程。 *2 N=3,表明暂稳态为3个CLK时间;在暂稳态过程中,再次触发,再进行 一次3个CLK周期的暂稳态。 *3 改变计数初值N=4,由于没有GATE启动新一轮动作,本次仍然完成3个 CLK暂稳态过程。当GATE上升边到来后,N=4的单稳操作才开始。,3)方式2 分频器(N分频方式,频率发生器) 基本功能:输出频率固定的脉冲(控制输出信号的高/低电平的比例。) 工作特点: *控制字写入后,OUT以高电平为初始电平。计数器减到1时,OUT输出一个宽度 为一个CLK的负

7、脉冲。 *OUT输出的脉冲串,以N1个CLK 脉冲为高电平,以一个CLK脉冲为低电平。 实际上,OUT输出的脉冲频率为CLK脉冲的N分频。 *GATE 门控:为高,计数器工作;为低,暂停工作。,该波形图叙述了3种情况: *1 GATE=1,OUT持续输出分频脉冲串(高电平为N-1,低电平为1) *2 分频过程中,GATE=0,暂停工作,OUT变为高电平;=1,继续工作,重新计数 *3 GATE=1,工作过程中改写N,CE要把本次的计数初值减到0,才开始新一轮分频工作。,4)方式3 方波发生器 基本功能:基本上与方式2相同,只是OUT输出的是完全对称方波 或基本对称的连续方波。 工作特点:若N为

8、偶数,则输出脉冲的高、低电平持续时间相同; 若为奇,则高电平持续时间为(N+1)/ 2,低电平持续时间为(N-1)/ 2。,3种情况: *1 GATE=1,偶数,OUT输出对称方波 *2 GATE=1,奇数,OUT输出不对称方波(高电平多一个CLK时间) *3 GATE=0,暂停工作;GATE=1,从初值开始工作,5)方式4 软件触发选通 基本功能:单脉冲发生器,以装入计数初值来启动计数器开始工作。 工作特点: *无重装初值功能 *装入控制字后,OUT的初始电平仍为高。 *装入计数初值后,计数器开始倒数计数,到0后OUT输出一个负脉冲(宽度为一 个CLK), 然后又恢复为高电平,直到装入下一个

9、计数初值来启动新一轮计数。 *通常用它来作为负选通信号,3种情况: *1 GATE=1,正常软件启动计数过程 *2 GATE在计数过程中的作用:=0,禁止计数;恢复1,重新计数 *3 计数过程中,改写初值对计数过程的影响,6) 方式5 硬件触发的选通信号发生器 基本功能:以外部GATE信号来启动计数器开始工作,OUT输出宽度为一个 CLK的负脉冲。 工作特点: *装入控制字后,OUT的初始电平为高。 *装入计数初值后,必须等GATE引脚输入一个上升边后,计数器才开始倒数计数,到0后OUT输出一个负脉冲,宽度为一个CLK脉冲通常用它来作为负选通信号, 然后又恢复为高电平,直到装入下一个计数初值来

10、启动新一轮计数。,工作方式小结,1)门控信号的影响 高电平允许,当GATE=0,即使出现CLK,也不计数方式0,2,3,4 上升沿允许(上升沿触发)方式1,5 2)OUT信号的状态 写入方式字后, OUT的状态 计数过程中, OUT的状态 计数终了, OUT的状态 3)计数操作可否重复 不可重复方式0,4 自动重复方式2,3 条件重复方式1,5,(3)8254编程 *8254有3个通道,即3个定时器/计数器单元, 选择哪个通道? *每一个定时器/计数器又有6种工作方式,如何确定工作方式? *每一种方式下又必须写入计数初值,怎么送? *在某些情况下需要读出计数器的余值或计数器的状态,怎么读?,借

11、助于用“0”“1”组成的“字”,把用户的意图告诉给8254,这些字是我们使用8254的基础,*方式控制字设置计数器工作方式,*命令字和状态字 两个命令字:计数器锁存命令字和读回命令字,*1计数器锁存命令字 功能:把当前计数工作单元CE的内容锁存到输出锁存器OL中,供CPU读出CE的 余值(如:预先设置计数初值=N,一段时间后,锁存,读剩余值n,在这 段时间内的计数值X=N-n),SC1,SC0:选择将要锁存哪一个通道的CE(11无意义) D5、D4 :特征值(标识),必须为00。,*2读回命令字 功能:把指定通道的CE当前值锁存到OL,或把状态寄存器内容锁存到状态锁存 器SL,以供CPU读出。

12、 锁存命令字一次只能锁存一个通道(计数器) 读回命令字能同时规定锁存几个通道。,=1 通道2,=1 通道1,=1 通道0,D7 D6 必须为11,D0必须为0 这是特征值(标识)。,D5:COUNT=0,锁存选中的所有计数器,D4:STATUS=0,锁存选中的所有状态寄存器,*状态字 功能:供用户查看8254某一通道的状态:计数值、工作方式、 OUT引脚的当前状态、BCD/二进制计数方式、读/写操作 状态字格式,D7:OUT引脚状态。 = 0,OUT=0;=1,OUT=1,D6:无效计数。 = 0,计数初值已装入计数工作单元CE,计数值有效 = 1,计数初值未装入计数工作单元CE,无效计数,D

13、5.D0 与方式控制字的对应位一致。,例:要读通道0的状态和余值,设8254的地址为20CH、20DH、20EH、20FH,读回命令的用法,标识位,写读回命令字: 1 1 0 0 1 0 0 0C8H,锁存余值,锁存状态,锁存通道0,MOV DX,20FHMOV AL,0C8HOUT DX,ALMOV DX,20CHIN AL,DXMOV BL,ALIN AL,DXMOV CL,ALIN AL,DXMOV CH,AL,先读回状态,读回余值低八位,读回余值高八位,编程方法及示例,1)初始化编程,可编程接口芯片,都有一个初始化编程问题,*8254的初始化编程有两个步骤,对控制寄存器写入控制字,确定

14、某个通道的工作方式 对通道写入计数初值 设8254各个端口的地址为: 通道0:20CH 通道1:20DH 通道2:20EH 控制寄存器:20FH,例1 设置通道0工作于方式0,计数100次,填写方式字: 0 0 0 1 0 0 0 0 选中 只读写 方式0 二进制 通道0 低字节 方式控制字为 10H,初始化编程 MOV DX,20FH ;取控制寄存器地址 MOV AL,10H ;取通道0的方式控制字 OUT DX,AL ;方式控制字送入控制寄存器,MOV DX,20CH ;取通道0地址 MOV AL,64H ;取通道0计数初值 OUT DX,AL ;计数初值送入通道0 ;到此,随着CLK0引

15、脚上的脉冲输入, 初值进入CE,开始计数。,例2 设置通道1工作在方式3,输出频率为1KHz的方波,填写方式字: 0 1 1 1 0 1 1 0 选中 先低 方式3 二进制 通道1 后高 方式控制字为 76H,计算计数初值: 设从CLK1输入的时钟脉冲的频率是2.5M,周期为0.4s,1 10-3 / 0.4 10-6 = 2500 D=9C4 H,每计满2500(9C4H)个时钟脉冲,OUT输出一个间隔为1ms的脉冲,初始化编程,MOV DX,20FH ;取控制寄存器地址 MOV AL,76H ;取通道1的方式控制字 OUT DX,AL ;方式控制字送入控制寄存器 MOV DX,20DH ;取通道1地址 MOV AX,09C4H ;取通道1计数初值 OUT DX,AL ;先送计数初值的低字节(C4H) MOV AL,AH ; OUT DX,AL ;再送高字节(09H) ;到此,OUT1输出频率为1000Hz的方波,例3 通道级联 要求通道2定时1秒 如果仍采用2.5M的时钟脉冲,按16位的最大计数值65536计算 0.4 10-6 65536 =26214.4s 26ms 不能定时 1000ms(1秒) 解决的办法:采用级联。,用通道1,通道2联合完成1秒定时。,通道安排: 通道1:工作在方式3下,输出频率为1000Hz的方波(周期为1ms),作为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号