版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE 第九章 计数器和定时器概述在计算机系统中经常要用到定时信号,可用硬件和软件两种方法来获得。延时子程序是常用的软件方法,当延长数比较大时,常常将延时子程序设计为循环程序。软件延时优点是节省硬件,缺点是CPU一直被占用降低效率。如用硬件延时可用555等定时器芯片,可编程则用定时器计数器82538254等。方法是根据需要的定时时间,用指令对定时器设定定时常数,并用指令启动定时器,于是开始计数,定时到产生输出,突出的优点是不占用CPU的时间.9.1可编程计数器定时器的工作原理计数器与定时器的主要差别:作为计数器,减”1”到0后,输出一个信号便结束;作为定时器时,则不断产生信号.具体说,C/T
2、有如下用处:多任务分时系统中用来作为中断信号实现程序的切换.可以往IO设备输出精确的定时信号.作为一个可编程的波特率发生器.实现时间延迟.图9.0是典型的计数器定时器原理图大方框中有:4个寄存器(初始值寄存器,计数输出寄存器,控制寄存器和状态寄存器),它们都可被CPU访问.输入信号中有一个时钟(CLK),它决定了计数速率.还有一个门脉冲(GATE),它是由设备送来的,作为对时钟的控制信号.计数到达”0”时,输出端OUT有信号,可作中断请求信号,也有用来启动一个外设的输入输出操作.任何时候都可将计数器的值传输到计数输出寄存器中而被读出,读出过程不会干扰计数,因而计数输出寄存器起到了一个缓冲作用.
3、计数到达”0”时,一方面会在输出引腿OUT上输出一个信号,另一方面还会在状态寄存器的对应位上反映出来.既可请求中断,也可供软件查询.控制寄存器可用来控制工作模式,即门脉冲和时钟脉冲怎样配合产生输出模式:门脉冲控制时钟输入,门脉冲到来时,时钟有效.门脉冲结束时,时钟无效.用门脉冲来重新启动计数.用门脉冲停止计数,原来在计数,门脉冲一来,停止计数,OUT为高电平.单一计数,与门脉冲没有关系(但须有效电平),计数到0,输出停止.循环计数,计数到0,输出信号,又从初值寄存器获得初值,开始新的计数过程. 计数初值时钟频率TT为时间片的长度.9.2可编程计数器定时器82538253的结构和工作原理编程结构
4、Intel8253是NMOS工艺制成的可编程计数器定时器,最高计数速率为2.6MHz, 图9.1是8253的编程结构图8253内部有3个计数器,分别为计数器0,1,2,相互独立工作。每个计数器内有一个计数初值寄存器CR、计数执行部件CE、输出锁存OL它们都是16位寄存器,但也可作为8位寄存器用。CPU可以通过输入输出指令访问8253内部寄存器。8253的工作原理图9.3是8253的工作原理图图9.4给出了8253的引腿图计数器0,计数器1,计数器2每个计数器包含一个16位的初值寄存器,计数执行部件和一个锁存器。各计数器的外部输入输出信号如下:计数器0:CLK0计数器0的时钟输入。 GATE0计
5、数器0的门脉冲控制输入。 OUT0计数器0的输出。计数器1、计数器2(略)总线数据缓冲器(3方面功能)。(通过它)往计数器设置计数初值。从计数器读取计数值。往控制寄存器设置控制字读写逻辑电路A1、A0用来对3个计数器以及控制寄存器进行寻址RD、WR、CS含义明了。控制寄存器A1A011时,选中控制寄存器,可写入控制字。表9.5 8253输入信号与各功能的对应关系上表两点说明:除了表中7种信号组合外,其它组合下,数据总线为高阻状态。A1A0=11时,第一次写入的一定是控制字,此后写入的作为锁存命令。2. 8253控制寄存器的格式图 8253的控制寄存器的格式BCD位:1计数值为BCD码格式,0为
6、二进制格式M2、M1、M0为模式选择,共6中模式(05)RW1、RW0:读写指示位00对计数器进行锁存操作,以便读出。01只读写低8位字节10只读写高8位字节11先读写低8位字节,再读写高8位字节SC1、SC0:用来选择计数器00计数器0 01计数器1 10计数器2 11无意义3. 8253的编程命令因为8253的控制寄存器和3个计数器分别具有独立的编程地址,并且控制器本身的内容又确定了所控制的寄存器序号,所以编程没有太多严格的顺序规定。遵守下列两条即可:对计数器设置初值前必须先写控制字初值设置时,要符合控制字中的格式规定(即只写高位还是只写低位等)。编程命令有两类,读出命令和写入命令:读出命
7、令读出命令用来读取计数器当前的值。写入命令(有3个)设置控制命令字:用来选择计数器设定工作模式和计数格式.设置初始值:用来给出计数初值(8位或16位),16位要用两条输出指令.锁存命令: 配合读出命令,读计数值时,先要将计数值在输出锁存器中锁住.4. 8253的工作模式(共6种),共同原则如下:控制字写入计数器时,所有控制逻辑电路立即复位,输出端OUT进入初始态初始值写入后,要经过一个时钟上升沿和一个下降沿,执行部件开始计数通常门控信号在时钟CLK的上升沿被采样,门控信号触发方式有边沿和电平触发两种。模式0、4电平触发;模式1、5上升沿触发,2、3均可。 表7.2是经过归纳的各工作模式下受门控
8、信号影响的情况CLK的下降沿计数器作减1计数。0是计数器能容纳的最大初始值。6种模式逐一介绍如下:模式0计数结束产生中断8253作计数器用时一般工作在模式0,特点如下:控制字写入后OUT起始电平为低电平,保持到计数达0,转高电平直到写入新计数值控制字和计数初值写入后必须等下一个CLK,初值才送执行部件门控GATE=1并获计数初值开始计数,此时GATE0则停止计数,但门控不影响OUT电平,所以计数时如有一段时间GATE=0, OUT低电平相应延长.计数过程中又有新计数值输入,下一个CLK起按新计数值计数.2字节初值如在GATE=0时写入初值,当GATE=1时计数开始,N个CLK后转高电平图9.4
9、模式0的时序图模式1可重复触发的单稳态触发器写入控制字后OUT起始低电平,GATE上升沿到来时下一CLK起OUT变低,直到计数到0计数到0,OUT转高,直到下一次触发后第1个CLK来前。如果计数初值为N,输出OUT产生持续N个CLK的负脉冲。模式1可以重复触发,一个负脉冲结束后,又来一个门控上升沿,重复上述过程如在输出脉冲期间又来一个门控上升沿,则从下一CLK起又从初值减1延长如在输出脉冲期间又写入新计数值,当前输出不受影响,除非又来一个门控信号,触发后按新计数初值减1计数.图9.5模式1的时序图模式2分频器控制写入OUT高起始,计数值入下一CLK减1计数,减到”1”,OUT变低电平完成一次计
10、数后输出OUT又为高电平,开始一个新的计数过程,周而复始对于初值N,输出周期为N的信号,N-1高电平,1低电平门控GATE=1 时计数进行,=0停止计数.如在输出脉冲期间GATE0,OUT仍将高电平,但下一CLK重新计数用门控信号来硬件同步.在计数器写入控制字和初值后,如果GATE一直高电平下一CLK开始计数经过N-1个CLK,OUT变低,这种通过写入初值同步为软件同步.如计数期间写入新计数值,GATE一直处于高电平,OUT不受影响,但下一输出周期中按新计数值计数在计数到1之前,如写入新计数值,GATE又出现上升沿,下一CLK按新计数图9.6模式2分频器的时序图模式3方波发生器模式3和模式2类
11、似,但输出为方波或者基本对称的矩形波控制字输入后OUT高起始电平,写入计数值下一CLK开始计数,计到一半,OUT变低,直到计数终值又变高,产生周期N的输出信号N为偶数,对称方波,N为奇数时,高电平(N+1)/2,低电平(N1)/2GATE=1计数进行,0计数停止.OUT低时GATE变低OUT立即变高计数停止.在GATE又变高后,下一CLK开始重新计数.硬件同步.如果门控GATE一直高电平,写入控制和计数值后下一CLK软件同步正在计数时写入新计数值不影响当前周期,但若又受门控上升沿下一CLK按新值计数.图9.7是模式3的时序图模式4软件触发的选通信号发生器控制字写入后OUT高起始,计数值写入后一
12、个CLK开始计数,减到0时OUT变低,维持1个CLK后,又变恒高,此负脉冲可作选通信号.计数初值到计数初值寄存器后,下一CLK开始计数,N个CLK后出1个负脉冲GATE=1进行计数,=0停止计数,输出维持当时电平,只有减为0时才有负脉冲如计数时又写入新计数值,下一CLK(双字节从第2字节后)软件同步模式4时主要靠写入初值,来触发计数器,产生负脉冲软件触发选通信号图9.8模式4软件触发选通脉冲发生器模式5硬件触发的选通信号发生器控制字写入后OUT高起始,计数值写入后必须有门控上升沿到来,才在下一CLK开始计数,计数到0时,输出宽度为1个CLK的负脉冲:硬件触发选通脉冲如计数初值为N,遇到门控上升
13、沿再过1个CLK,计数到N后输出负脉冲.如果计数过程中,GATE又来上升沿,再过1个CLK,重获计数初值减到0止如在计数中写入新值,但无触发脉冲,当前输出周期不受影响,再受触发时,按新初值计数.如在计数过程中写入新值,本周期结束前又受触发,则下一CLK图9.9是模式5的时序图可见模式5和模式4很相似,4用软件触发,5用硬件触发。各工况两点注意:时钟周期和输出周期的区别,输出周期是OUT的输出波形.8253的输出波形都是在时钟周期下降沿时产生电平的变化尽管8253有6种工作模式,从输出端看,仍不外乎计数器 定时器.8253应用举例例子,用8253级联定时图9.10 8253级联定时应用要求825
14、3的OUT1发光二极管,亮1秒,熄灭1秒; OUT2发光二极管,亮2秒,熄灭2秒8253各通道地址为:FFE9HFFEFH,试编程。计数器0的CLK0来自2MHz经D触发器转化为T触发器2分频,OUT0作为计数器1、2的时钟,CLK1、CLK2初始化程序段:通道0的控制字为:00 11 010 1B=35H通道1的控制字为:01 11 011 1B=77H通道2的控制字为:10 11 011 1B=0B7H地址分别为:0FFE9H0FFEFH各通道计数初值分别为:通道0计数初值(BCD码):2000通道1计数初值(BCD码):1000通道2计数初值(BCD码):2000 程序段如下:MOV D
15、X,0FFEFHMOV AL,35HOUT DX,AL ;写通道0的控制字MOV AL,77HOUT DX,AL ;写通道1的控制字MOV AL,0B7HOUT DX,AL ;写通道2的控制字MOV DX,0FFE9HMOV AL,00OUT DX,AL ;写通道0的计数初值低8位MOV AL,20HOUT DX,AL ;写通道0的计数初值高8位MOV DX,0FFEBHMOV AL,00OUT DX,AL ;写通道1的计数初值低8位MOV AL,10HOUT DX,AL ;写通道1的计数初值高8位MOV DX,0FFEDHMOV AL,00OUT DX,AL ; 写通道2的计数初值低8位MO
16、V AL,10HOUT DX,AL ;写通道2的计数初值高8位1用8254测量外部频率计数器0 方式0;计数器1 方式1;计数器2 方式0计数器2的GATE2恒为高电平,一旦写入控制字OUT2即为初始低电平,写入计数初值后开始计数,OUT2保持低电平直到计数到0,转为高电平,不再变化。OUT2作为GATE1,计数器1被GATE1高电平触发后,输出单稳态负脉冲,此脉冲经过反相器变正脉冲后后作为GATE0。计数器0写入计数初值后,等待GATE0成为高电平,GATE0高电平期间计数器0计数,GATE0降为低电平后停止计数,停止计数后读取计数器0的计数值,频率可求。例2用8253进行外部事件计数,要求
17、:用计数器0外部事件计数,计满350向CPU发中断请求利用计数器1产生频率为1kHz的正弦波利用计数器2产生宽度为0.5ms的单稳态脉冲从图上看出,端口地址为18H1EH,外部事件CLK0输入计数器0工作在方式0,计满350从OUT0发中断请求计数器1输入时钟2MHz,方式3,产生1kHz方波计数初值为:1ms/0.5s=2000,有源滤波后成正弦波计数器2方式1,初值为500s0.5s1000 BCD码计数器0的计数初值为350,地址为18H计数器1地址为1AH;计数器2地址为1CH;控制口1EH;初始化程序如下:MOV AL,31HOUT 1EH,AL;写计数器0控制字MOV AL,50HOUT 18H,AL;写计数器0计数初值低8位MOV AL,03HOUT 18H,AL;写计数器0计数初值高8位MOV AL,77HOUT 1EH,AL;写计数器1控制字MOV AL,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年遥感监测服务协议3篇
- 2025版灯光照明工程安装、调试及维护服务合同3篇
- 物联网工程合同范本智能
- 酒店餐饮部酒店厨师招聘合同
- 钢铁行业业务员聘用合同
- 银行业金融科技投资系统升级协议
- 农产品瑕疵品处置
- 邮政快递员聘用协议书
- 太阳能产业易制毒品监管
- 药品冷藏车租赁服务协议
- 海尔集团培训管理手册
- GB/T 16252-2023成年人手部尺寸分型
- 中间有0的三位数乘两位数计算题
- 小学音乐-(演唱)小拜年教学设计学情分析教材分析课后反思
- 中国联通5G网联无人机系统安全架构白皮书
- 《企业采购成本控制现状、问题及对策研究-以伊利乳业集团为例(论文)10000字》
- 中华医学会杂志社作者贡献声明
- 市场营销学吴健安七套期末考试试题卷及的答案
- 《物理学之美 插图珍藏版 》读书笔记思维导图PPT模板下载
- 7人英语短剧剧本(5篇)
- 学生假期安全承诺书200字(5篇)
评论
0/150
提交评论