可编程定时器计数器8254及其应用.ppt_第1页
可编程定时器计数器8254及其应用.ppt_第2页
可编程定时器计数器8254及其应用.ppt_第3页
可编程定时器计数器8254及其应用.ppt_第4页
可编程定时器计数器8254及其应用.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

6.4可编程定时/8254及其应用,定时器工作原理,6.4.18254定时器/计数器,(1)8254的外部引脚和内部结构,*A1A0选择片内各端口(3个通道和一个控制寄存器),00011011通道0通道1通道2控制寄存器,8254与CPU连接示例,8254,DB,A9A8A7A6A5A4A3A2A1A0,1000001100,1000001101,1000001110,1000001111,20CH选中通道0,20DH选中通道1,20EH选中通道2,20FH选中控制寄存器,设当A9A2的地址信息为:10000011译码器输出有效信号,基本计数工作原理:,减法计数器计数工作单元CE,代表外部事件发生的计数脉冲,减法计数器计数工作单元CE,频率精确的时钟脉冲串,根据不同的工作方式,OUT输出不同的信号,CLK,基本定时工作原理:,CLK,计数初值N(定时系数),OUT,OUT,定时系数要求定时的时间/时钟脉冲周期,定时的本质还是计数,计数的对象必须是频率精确的脉冲串。如果时钟脉冲的周期是1s,要求定时1ms,则计数1000次即可,即:定时系数为1000;(对秒计数60次就是1分钟),计数初值N,注意!,工作原理,在计数工作方式下:计数初值写入CR;CE为0时表明计数达到规定值。,在定时工作方式下:定时系数写入CR;CE为0时表明定时时间到。,CLK:计数或定时脉冲输入引脚GATE:门控引脚:允许/禁止计数;启动/终止计数OUT:输出引脚:,计数通道的内部结构,不同的工作方式下有不同的输出,(2)8254的工作方式8254的基本计数工作方式和基本定时工作方式是基础,在这两种基本方式下,可以演绎出6种工作方式。,注意每一种方式下:,*定时或计数的启动方式*GATE的控制作用*OUT引脚上的输出波形,每一种方式分为基本功能和工作特点两部分,细节很多。我们通过波形图,介绍概要。因为各种方式主要是通过OUT引脚表现出来,请关注OUT。,1)方式0计数结束中断典型的事件计数(基本计数工作方式),基本功能:完成计数,OUT输出高电平工作特点:*写入控制字后,OUT的初始电平为低*计数到0时,OUT送出高电平直到写入了新的计数初值。*通常用OUT的低高变化来产生中断请求或查询信号。*软件启动,不具备重复性,再次写入初值,开始新一轮计数*写入计数初值到CR后,第一个计数脉冲的作用是把计数初值装入CE。所以当计数初值=4时,实际上当CLK输入5个计数脉冲后OUT才为1。,*GATE=0,暂停计数;GATE=1,继续计数*计数过程中可以写入新的计数初值,从写入后的下一个脉冲开始,以新的初值进行计数,下图中用波形表达了3种情况:*1GATE=1,完整的一轮计数*2计数过程中,GATE=0,暂停计数*3计数过程中,重新写入计数初值的计数情况,2)方式1硬件可触发单稳,基本功能:计数器相当于一个可编程的单稳态触发器。可用此方式来产生由程序控制脉冲宽度的负单脉冲,该脉冲的宽度(低电平持续时间)由计数初值N确定。,工作特点:*输入控制字后,OUT以高电平为初始电平*以GATE的上升边为起点,一个CLK脉冲后,OUT为低,计数完成后OUT又回到高电平,产生一个负的单脉冲。相当于单稳电路从稳态(高)到暂稳态(低)又回到稳态*该单脉冲的宽度(低电平继续时间)是CLK周期的N倍*可重复触发。GATE的上升边启动新一轮工作。,图中用波形表达了3种情况:*1正常的一次单稳动作全过程。*2N=3,表明暂稳态为3个CLK时间;在暂稳态过程中,再次触发,再进行一次3个CLK周期的暂稳态。*3改变计数初值N=4,由于没有GATE启动新一轮动作,本次仍然完成3个CLK暂稳态过程。当GATE上升边到来后,N=4的单稳操作才开始。,3)方式2分频器(N分频方式,频率发生器)基本功能:输出频率固定的脉冲(控制输出信号的高/低电平的比例。)工作特点:*控制字写入后,OUT以高电平为初始电平。计数器减到1时,OUT输出一个宽度为一个CLK的负脉冲。*OUT输出的脉冲串,以N1个CLK脉冲为高电平,以一个CLK脉冲为低电平。实际上,OUT输出的脉冲频率为CLK脉冲的N分频。*GATE门控:为高,计数器工作;为低,暂停工作。,该波形图叙述了3种情况:*1GATE=1,OUT持续输出分频脉冲串(高电平为N-1,低电平为1)*2分频过程中,GATE=0,暂停工作,OUT变为高电平;=1,继续工作,重新计数*3GATE=1,工作过程中改写N,CE要把本次的计数初值减到0,才开始新一轮分频工作。,4)方式3方波发生器基本功能:基本上与方式2相同,只是OUT输出的是完全对称方波或基本对称的连续方波。工作特点:若N为偶数,则输出脉冲的高、低电平持续时间相同;若为奇,则高电平持续时间为(N+1)/2,低电平持续时间为(N-1)/2。,3种情况:*1GATE=1,偶数,OUT输出对称方波*2GATE=1,奇数,OUT输出不对称方波(高电平多一个CLK时间)*3GATE=0,暂停工作;GATE=1,从初值开始工作,5)方式4软件触发选通基本功能:单脉冲发生器,以装入计数初值来启动计数器开始工作。工作特点:*无重装初值功能*装入控制字后,OUT的初始电平仍为高。*装入计数初值后,计数器开始倒数计数,到0后OUT输出一个负脉冲(宽度为一个CLK),然后又恢复为高电平,直到装入下一个计数初值来启动新一轮计数。*通常用它来作为负选通信号,3种情况:*1GATE=1,正常软件启动计数过程*2GATE在计数过程中的作用:=0,禁止计数;恢复1,重新计数*3计数过程中,改写初值对计数过程的影响,6)方式5硬件触发的选通信号发生器基本功能:以外部GATE信号来启动计数器开始工作,OUT输出宽度为一个CLK的负脉冲。工作特点:*装入控制字后,OUT的初始电平为高。*装入计数初值后,必须等GATE引脚输入一个上升边后,计数器才开始倒数计数,到0后OUT输出一个负脉冲,宽度为一个CLK脉冲通常用它来作为负选通信号,然后又恢复为高电平,直到装入下一个计数初值来启动新一轮计数。,工作方式小结,1)门控信号的影响高电平允许,当GATE=0,即使出现CLK,也不计数方式0,2,3,4上升沿允许(上升沿触发)方式1,52)OUT信号的状态写入方式字后,OUT的状态计数过程中,OUT的状态计数终了,OUT的状态3)计数操作可否重复不可重复方式0,4自动重复方式2,3条件重复方式1,5,(3)8254编程*8254有3个通道,即3个定时器/计数器单元,选择哪个通道?*每一个定时器/计数器又有6种工作方式,如何确定工作方式?*每一种方式下又必须写入计数初值,怎么送?*在某些情况下需要读出计数器的余值或计数器的状态,怎么读?,借助于用“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读出。锁存命令字一次只能锁存一个通道(计数器)读回命令字能同时规定锁存几个通道。,=1通道2,=1通道1,=1通道0,D7D6必须为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,无效计数,D5.D0与方式控制字的对应位一致。,例:要读通道0的状态和余值,设8254的地址为20CH、20DH、20EH、20FH,读回命令的用法,标识位,写读回命令字:11001000C8H,锁存余值,锁存状态,锁存通道0,MOVDX,20FHMOVAL,0C8HOUTDX,ALMOVDX,20CHINAL,DXMOVBL,ALINAL,DXMOVCL,ALINAL,DXMOVCH,AL,先读回状态,读回余值低八位,读回余值高八位,编程方法及示例,1)初始化编程,可编程接口芯片,都有一个初始化编程问题,*8254的初始化编程有两个步骤,对控制寄存器写入控制字,确定某个通道的工作方式对通道写入计数初值设8254各个端口的地址为:通道0:20CH通道1:20DH通道2:20EH控制寄存器:20FH,例1设置通道0工作于方式0,计数100次,填写方式字:00010000选中只读写方式0二进制通道0低字节方式控制字为10H,初始化编程MOVDX,20FH;取控制寄存器地址MOVAL,10H;取通道0的方式控制字OUTDX,AL;方式控制字送入控制寄存器,MOVDX,20CH;取通道0地址MOVAL,64H;取通道0计数初值OUTDX,AL;计数初值送入通道0;到此,随着CLK0引脚上的脉冲输入,初值进入CE,开始计数。,例2设置通道1工作在方式3,输出频率为1KHz的方波,填写方式字:01110110选中先低方式3二进制通道1后高方式控制字为76H,计算计数初值:设从CLK1输入的时钟脉冲的频率是2.5M,周期为0.4s,110-3/0.410-6=2500D=9C4H,每计满2500(9C4H)个时钟脉冲,OUT输出一个间隔为1ms的脉冲,初始化编程,MOVDX,20FH;取控制寄存器地址MOVAL,76H;取通道1的方式控制字OUTDX,AL;方式控制字送入控制寄存器MOVDX,20DH;取通道1地址MOVAX,09C4H;取通道1计数初值OUTDX,AL;先送计数初值的低字节(C4H)MOVAL,AH;OUTDX,AL;再送高字节(09H);到此,OUT1输出频率为1000Hz的方波,例3通道级联要求通道2定时1秒如果仍采用2.5M的时钟脉冲,按16位的最大计数值65536计算0.410-665536=26214.4s26ms不能定时1000ms(1秒)解决的办法:采用级联。,用通道1,通道2联合完成1秒定时。,通道安排:通道1:工作在方式3下,输出频率为1000Hz的方波(周期为1ms),作为通道2的时钟脉冲。通道2:工作在方式0,对周期为1ms的脉冲计数,计满1000次,OUT2输出高电平,表明1秒定时到。,填写通道2方式字:10110001选中先低方式0十进制通道2后高通道2方式控制字为:B1H,初始化编程:通道1初始化.(同例2)MOVDX,20FH;取控制寄存器地址MOVAL,0B1H;取通道2的方式控制字OUTDX,AL;方式控制字送控制寄存器MOVDX,20EH;取通道2的地址MOVAX,1000H;取通道2的计数初值OUTDX,AL;先送低字节(00)MOVAL,AHOUTDX,AL;再送高字节(10);以此为起点,一秒到时,OUT变为高电平,工作编程a)工作过程中改变计数初值b)对控制寄存器写入命令字(计数器锁存命令字或读回命令字)为读某通道的当前CE内容和状态寄存器内容作准备。c)从通道(0,1,2)读回状态字d)从通道(0,1,2)读回CE当前值(余值),例4读取通道2的当前计数值(余值),锁存命令字10000000,选中通道2,特征值,无意义,可任选,计数器锁存命令字80H,MOVAL,80H;取通道2计数器锁存命令字MOVDX,20FH;取控制寄存器地址OUTDX,AL;锁存通道2的CE当前值到锁存器MOVDX,20EH;取通道2地址INAL,DX;从通道2锁存器读回余值低8位MOVCL,AL;转存CLINAL,DX;读回余值高8位MOVCH,AL;转存CH,实验装置8254接线图,IN指令产生IOR;OUT产生IOW,D0D7:传送控制字,命令字,余值,状态,6.4.28254在PC中的应用(课外阅读),PC使用一片8254,其3个计数通道分别用于日时钟计时、DRAM刷新定时和控制扬声器发声声调。,扬声器发声的前提:GATE2=1,即PB0=1与门控制端=1,即PB1=1OUT2输出一定频率的脉冲串,8255B口地址:61H,周期:0.838s,每55ms申请一次中断,8254的4个端口地址:T0:40HT1:41HT2:42H控制寄存器:43H,定时中断和定时刷新,MOVAL,54H;计数器工作为方式2(分频器(频率发生器);采用二进制计数,只写低8位计数值OUT43H,AL;写入方式控制字MOVAL,18;计数初值为18(15s。计算P204)OUT41H,AL;写入计数值;到此,OUT1连续输出周期为15s的脉冲串,如要求扬声器发出频率为600Hz的声音,则:AX=1.19318106600=1988.6D=7C5HAH=07HAL=C5H,;发音频率设置子程序,入口参数:AX=1.19318106发音频率SPEAKERPROCPUSHAXMOVAL,0B6H;定时器2为方式3,;先低后高写16位计数值OUT43H,ALPOPAXOUT42H,AL;写入低8位计数值MOVAL,AHOUT42H,AL;写入高8位汁数值RETSPEAKERENDP,SPEAKONPROC;扬声器开子程序PUSHAXINAL,61H;读取61H端口的原控制信息ORAL,03H;D1

温馨提示

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

评论

0/150

提交评论