七章定时器计数器电路.ppt

上传人:sccc 文档编号:5363758 上传时间:2023-06-29 格式:PPT 页数:56 大小:701.03KB
返回 下载 相关 举报
七章定时器计数器电路.ppt_第1页
第1页 / 共56页
七章定时器计数器电路.ppt_第2页
第2页 / 共56页
七章定时器计数器电路.ppt_第3页
第3页 / 共56页
七章定时器计数器电路.ppt_第4页
第4页 / 共56页
七章定时器计数器电路.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《七章定时器计数器电路.ppt》由会员分享,可在线阅读,更多相关《七章定时器计数器电路.ppt(56页珍藏版)》请在三一办公上搜索。

1、第七章 定时器/计数器电路,概述可编程定时器/计数器芯片82548254在PC系列机定时系统中的应用,2,7.1 概 述,在各种计算机系统中,经常要用到定时/延时和计数控制。,实现定时/延时的基本方法:,软件定时:执行循环程序。CPU利用率低。,不可编程硬件定时:采用中小规模集成电路器 件实现。,单稳/555定时器-外加阻容器件加/减计数器-通过改变初值可改变定时长短,电路连接好后,定时值不便控制和改变。,可编程硬件定时:用可编程计数器实现。通过编程 改变其计数初值和计数脉冲频率即可改变定时长短。,3,7.1 概述,可编程定时器/计数器典型结构:,4,可编程定时器/计数器的主要用途:,以均匀分

2、布的时间间隔中断分时操作系统,以便切换 程序;,向I/O设备输出周期可控的定时信号;,用作可编程波特率发生器;,检测外部事件发生的频率或周期;,统计外部某过程中某一事件发生的次数;,作为向CPU的定时或定次数中断源;,PC系列微机中普遍采用的可编程定时器/计数器是i8253/8254芯片。,7.1 概述,5,7.2 可编程定时器/计数器芯片i8254/8253,i8254是i8253的改进型,两者的功能基本相同,硬件组成、外部引脚和编程特性完全兼容。差别只在三点:,7.1 概述,6,7.2.1 8254的基本功能,有3个独立的16位计数器通道;,每个计数器可按二进制或十进制(BCD)计数;,每

3、个计数器可工作于6种不同工作方式;,每个计数器允许的最高计数频率为10MHz(8253为2MHz),有读回命令(8253没有),可以读出当前计数单元的内 容和状态寄存器内容。,每个计数器通道的逻辑功能完全相同,既可作定时器用,又可作计数器用。无论用作定时器还是计数器,计数初值寄存器内容都可由CPU预置或修改。,7,7.2.2 8254内部结构与引脚信号,结构图,引脚图,8,7.2.2 8254内部结构与引脚信号,8254各主要组成部分:,数据总线缓冲器,控制字寄存器,8位只写寄存器,用于存放CPU写入芯片的方式选择控制字或命令字,由它来控制各计数器通道的工作方式。,控制字寄存器为3个计数器通道

4、所共用。,写入控制字时,将同时清除计数初值寄存器内容。,9,计数器通道(3个):彼此独立,但结构和内容 完全相同。,任一通道作计数器或定时器用时,其内部操作完全相同,区别仅在于:,7.2.2 8254内部结构与引脚信号,10,(1)计数工作单元(CE)不能直接读/写。只能 通过写计数初值寄存器(CR)实现对CE初 值的修改,通过读输出锁存器(OL)实现 对CE内容的读取(先写读回命令,再读OL)。,(2)状态寄存器(SR)也不能直接读,只能通 过读状态锁存器(SL)实现(先写读回命 令,再读SL)。,(3)CE、CR和OL都是16位,对CR写入和对OL读出 必须分两次进行。若初始化时只写CR一

5、个字 节,则另一字节保持为0。,7.2.2 8254内部结构与引脚信号,注意:,11,读/写控制逻辑:接收系统总线来的地址和读写 信号,并变换为内部控制信号。,8254各端口读/写控制作用,7.2.2 8254内部结构与引脚信号,12,7.2.3 8254的工作方式,各计数器通道均有6种工作方式可供选择:,方式0计数结束中断方式,方式1硬件可重触发单稳方式,方式2速率波发生器方式,方式3方波方式,方式4软件触发选通方式,方式5硬件触发选通方式,13,7.2.3 8254的工作方式,1.方式0:计数结束中断方式,基本功能:,写入控制字后,OUT信号变为低电平,并维持低电平至CE的内容到达零时,此

6、后OUT信号变为高电平,并维持高电平至再次写入新的计数值或重新写入控制字。GATE用于开放(“1”)或禁止(“0”)计数。OUT输出的计数结束信号可作为中断请求信号。,14,工作特点:,计数由软件启动,每次写入计数初值,只启 动一次计数。,CPU写计数初值到CR后,CR内容并不立即装入 CE,而是在其后的下一个CLK脉冲下降沿才CR 内容装入CE,对该CLK脉冲不计数。所以,若 计数初值为n,则必须在出现n+1个CLK脉冲后,OUT才变高。,计数过程中,如果GATE=0则暂停计数,直到 GATE=1后再接着计数。,计数过程中写入新的计数初值,从写入后下一 个时钟脉冲开始,以新的初值计数。,15

7、,方式0定时波形:,7.2.3 8254的工作方式,0,16,2.方式1:硬件可重触发单稳方式,基本功能:,计数器相当于一个可编程的单稳态触发电路,触发输入为GATE信号(上升沿),单脉冲输出为OUT信号。,7.2.3 8254的工作方式,17,工作特点:,从GATE上升沿起下一个CLK脉冲使OUT由高变低,直到CE计为0,OUT才恢复为高,形成一个宽度 为n倍CLK周期的输出负脉冲。,此方式允许多次触发(即具有可重触发性),一旦控制字设置为方式1,并向CR置了初值,在 没有新的初值置入前,此初值在CR中保持不变。,在OUT未恢复高电平前,若GATE端又出现新的触 发信号上升沿,则CE又从初值

8、开始重新计数,其结果将延长OUT输出的负脉冲宽度。,18,方式1定时波形:,7.2.3 8254的工作方式,19,3.方式2:速率波发生器方式(n分频方式),基本功能:,OUT端输出一周期性负脉冲序列,其负脉冲宽度为一个CLK脉冲周期,负脉冲频率为CLK信号频率的1/n(n为CR初值)。,7.2.3 8254的工作方式,20,工作特点:,写入控制字使计数器进入工作方式后,OUT 输出高电平,这时若装入计数初值n,则从其 后的下个CLK下降沿起立即开始计数,OUT保 持高电平不变;待计数值减到1时,OUT输出宽 度为一个CLK周期的负脉冲,至计数值为0时,自动重新装入计数初值n,实现循环计数。,

9、可由软件通过写计数初值启动(GATE恒为高电平),也可由GATE上升沿启动(已装入计数初值)。,GATE变低电平时停止计数;而当GATE由低重新变 高时,重新由初值开始计数。,21,方式2定时波形:,7.2.3 8254的工作方式,22,.方式:方波方式,基本功能:,OUT输出的是方波(计数初值为偶数时)或近似方波(计数初值为奇数时)信号。其典型用法是作波特率发生器。,7.2.3 8254的工作方式,23,工作特点:,当写入控制字使之进入该方式后,OUT输出低 电平;在装入计数初值后的下个CLK下降沿,OUT由低变 高,开始减法计数。,若计数初值n为偶数,作减2计数,计至0时OUT 变低;然后

10、再自动从初值开始作减2计数,计 至0时OUT又变高。如此周而复始,OUT输出的 是占空比为1/2、周期为n个CLK周期的方波。,24,若n为奇数,在OUT变高时,初值减1成为偶数,再对CLK作减2计数,减至0时延迟一个CLK脉冲 后OUT变低;此时初值再次减1后作减2计数,至0时OUT变高。如此周而复始,OUT端得到的 是占空比为,周期为n个CLK周期的近似方波。,7.2.3 8254的工作方式,工作特点(续):,25,计数过程中出现GATE变低时,CE暂停对CLK计 数,直到GATE再次由低变高时,重新启动计数 过程,从初值n开始计数。,要改变输出方波的速率,可在任何时候向CR重 新写入新的

11、计数初值n,并从下一个CLK脉冲开 始起作用。,工作特点(续):,26,方式3定时波形:,7.2.3 8254的工作方式,27,5.方式4:软件触发选通方式,基本功能:,由软件通过写计数初值触发(启动),在OUT端产生一个宽度为1个CLK周期的负选通脉冲。,7.2.3 8254的工作方式,28,工作特点:,当写入控制字使之进入方式4后,OUT变高;此 后从装入计数初值的下个CLK下降沿开始作减 1计数,计至0时,OUT端输出一个宽度为1个 CLK周期的负脉冲。,计数过程中若GATE变低,则停止计数,直到GATE 恢复到高时,重新从初值开始减1计数。,计数过程中若改变(重写)计数初值,将从改变

12、之后的下个CLK脉冲起,按新初值重新开始计数。,软件装入的计数初值只一次有效。,29,方式4定时波形:,7.2.3 8254的工作方式,30,6.方式5:硬件触发选通方式,基本功能:,通过由GATE端引入的硬件触发信号,在OUT端产生一个宽度为1个CLK周期的负选通脉冲。,7.2.3 8254的工作方式,31,工作特点:,当写入控制字使之进入方式5后,OUT输出高电平;装入计数初值后,待GATE端出现触发信号(上升沿),才开始减1计数,计至0时,OUT端输出一个宽 度为1个CLK周期的负脉冲。,当计数值计到0后,自动重新装入初值n,但并不开 始计数,而是待GATE端出现新的上升沿后才重新 作减

13、1计数。,32,CPU可在任何时候用输出指令装入新的计数 初值n,但并不影响正在进行的操作过程,要到下一个计数操作周期才按新的初值操 作。不过写入新初值后,若计数值到达0之 前GATE端加了触发信号(上升沿),则下一个 CLK脉冲将使新初值装入CE,并从它开始新 的计数。,工作特点(续):,33,方式5定时波形:,7.2.3 8254的工作方式,34,综上所述,对于不同的工作方式,门控信号GATE端所起的作用各不相同,8254/8253应用中必须正确使用它,才能保证计数通道的正常工作。,GATE在各种工作方式中的功能,7.2.3 8254的工作方式,35,7.2.4 8254的编程,下列情况需

14、要对8254编程:,工作之前写入控制字,以确定每个计数器通 道的工作方式(写端口3),工作之前写入每个计数器通道计数初值(写 端口0,1,2),工作过程中改变某通道的计数初值,写入命令字(包括计数器锁存命令字和读 回命令字,即写端口3),为读某计数通道 的当前CE内容和状态寄存器内容做准备,读状态字(读端口0,1,2),读当前CE内容(读端口0,1,2),36,7.2.4 8254的编程,1.控制字,8254/8253工作前,必须由CPU向它的控制寄存器(端口3)写入方式选择控制字。,8254控制字格式,37,2.命令字和状态字,8254有两种命令字:计数器锁存命令字和读回命令字。8253只有

15、锁存命令字。,锁存命令字:用来将当前的CE内容锁存到输 出锁存器OL,以供CPU读出。,其格式为:,7.2.4 8254的编程,38,读回命令字:用于将计数器通道的CE当前内容锁 存入OL或/和将状态寄存器内容锁存入状态锁存器。,和锁存命令不同,读回命令能同时锁存几个计数器通道的当前CE内容和状态寄存器内容。,7.2.4 8254的编程,39,状态字,每个计数器通道对应有一个状态寄存器和一个状态锁存器。各通道的状态字格式完全相同。,7.2.4 8254的编程,40,读当前计数值/状态字的方法和原则:,(1)要读当前计数值或/和当前状态,必须先写读 回命令,再读OL或/和SL。,(2)对同一通道

16、的计数器或状态寄存器发多次读 回命令,但每次未立即读取CE或SR,则只有 第一次读回命令引起的锁存操作是有效的,以后读出的值或状态仅是第一次读回命令锁 存的结果。,(3)若读回命令同时或先后锁存了同一通道的计数 值和状态,则对该通道第一次读出的结果一定 是状态字(8位),随后的一次或两次读出的 才是计数值(一次还是两次,取决于初始化时 控制字确定的计数值字节数)。,7.2.4 8254的编程,41,读回命令举例:,7.2.4 8254的编程,42,2.编程方法及举例,(1)编程方法,包括初始化编程和工作编程。,7.2.4 8254的编程,43,(2)编程举例,以8086系统中用8254构成的定

17、时、计数与脉冲发生器系统为例。,7.2.4 8254的编程,44,系统的硬件连接:,7.2.4 8254的编程,1s,45,CPU接口侧应注意两个特点:,(1)8254的数据线(D7D0)固定与系统总线的低8 位数据线(D7D0)相连。,(2)8254端口地址线A1、A0与系统地址线A2、A1相 连,系统地址线A0固定为“0”,参加高位地址 译码,以形成对8254的片选信号CS。(目的 是保证4个端口地址均为偶数地址。为什么?),这两点对初始化编程和工作编程有直接影响。,7.2.4 8254的编程,46,初始化程序:,先应根据硬件连接和系统要求,确定各计数通道的工作方式和计数初值。,STT:M

18、OV DX,port3;定义通道0工作于方式0 MOV AL,10H OUT DX,AL MOV DX,port0;给通道0送计数初值 MOV AL,64H OUT DX,AL MOV DX,port3;定义通道1为方式3 MOV AL,76H OUT DX,AL MOV DX,port1;给通道1送计数初值 MOV AX,09C4H OUT DX,AL;先送低字节(C4H)MOV AL,AH,7.2.4 8254的编程,47,初始化程序:(续),OUT DX,AL;再送高字节(09H)MOV DX,port3;定义通道2为方式3 MOV AL,B7H OUT DX,AL MOV DX,por

19、t2;给通道2送计数初值 MOV AX,03E8H OUT DX,AL;先送低字节(E8H)MOV AL,AH OUT DX,AL;再送高字节(03H)MOV DX,8259A偶地址端口;对8259A初始化,先写入ICW1、ICW2;ICW4和OCW1。定义8254通道0和通道2的;中断类型代码分别为50H和52H。MOV AL,13H;写ICW1 OUT DX,AL MOV DX,8259A奇地址端口 MOV AL,50H;写ICW2,7.2.4 8254的编程,48,初始化程序:(续),7.2.4 8254的编程,OUT DX,AL MOV AL,03H;写ICW4 OUT DX,AL M

20、OV AL,0FAH;写OCW1 OUT DX,AL STI,49,7.3 8254在PC系列机定时系统中的应用,PC系列机定时系统包括两部分:,CPU内部控制时序产生电路:主要用于内部 指令执行过程。,I/O接口芯片的定时产生电路:由8254负责。以PC/AT机为例则:,日历时钟由通道0完成,DRAM刷新由通道1完成,音频信号产生(驱动扬声器)由通道2完成,50,7.3 8254在PC系列机定时系统中的应用,8254各通道在AT定时系统中的作用及信号规定:,51,PC/AT机定时系统结构框图,7.3 8254在PC系列机定时系统中的应用,52,8254三个通道在PC/AT机中的使用原理,通道

21、0:工作于方式3,计数初值(即65536)。用作实时时钟信号发生器,每输出一 个方波,产生一次0级中断,调用 INT 8H一次。,INT 8H中断服务程序的功能:,完成日时钟计时;,实现软驱马达开启时间管理,使其开启一段 时间完成数据存取操作后,自动延时关停;,进行INT 1CH软中断调用,为用户提供 可用的定时操作服务程序入口。,7.3 8254在PC系列机定时系统中的应用,53,通道1:工作于方式2,计数初值为18(即 0012H)。每隔15.08s产生一负脉 冲,用作DRAM刷新时的定时控制。,通道 2:工作于方式3,计数初值为0533H输出频 率约为900HZ的方波,为扬声器发声提 供

22、音频信号。,利用通道2的配置,可实现软件控制发声,也可实现硬件控制发声。,软件控制发声:CPU控制8255A的PB1(即端口61H的D1 位)的电平变化使扬声器发声。这时需要将8254的 OUT2置于高电平,以允许来自PB1的音频信号通过与门。,硬件控制发声:利用8254通道2工作于方式3输出音频 信号来使扬声器发声。这是AT机定时系统提供的一项 基本功能。改变其计数初值,可改变发音声调。,7.3 8254在PC系列机定时系统中的应用,54,IN AL,61H AND AL,0FCH;使PB1、PB0为0,关闭扬声器 OUT 61H,AL MOV AL,0B6H;设置通道2方式控制字,使之工作

23、于方式3 OUT 43H,AL MOV AX,1352;按A调设置计数初值 OUT 42H,AL;写初值低字节 MOV AL,AH;写初值高字节 OUT 42H,AL IN AL,61H;使PB1、PB0为1,启动扬声器工作 OR AL,03H OUT 61H,AL,实现硬件控制发声例程:,7.3 8254在PC系列机定时系统中的应用,55,BIOS对8254的初始化编程,MOV AL,36H;设置通道0方式控制字,选择双字节写,方式3 OUT 43H,AL;二进制计数 MOV AL,0;计数初值设定位65 536 OUT 40H,AL;写入低字节 OUT 40H,AL;写入高字节 MOV A

24、L,01010100B;设置通道1方式控制字,定义只写低位字节 OUT 43H,AL;方式2,二进制计数 MOV AL,18;预置计数初值 OUT 41H,AL,7.3 8254在PC系列机定时系统中的应用,56,7.3 8254在PC系列机定时系统中的应用,MOV AL,10110110B;设置通道2方式控制字,定义双字节写 OUT 43H,AL;方式3,二进制计数 MOV AX,533H;写计数初值 OUT 42H,AL;先写低字节 MOV AL,AH;再写高字节 OUT DX,AL IN AL,61H;以下使8255的PB0、PB1为1,控制 扬声器发声 MOV AH,AL;将8255B口的内容保存于AH OR AL,03H OUT 61H,AL,BIOS对8254的初始化编程(续),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号