收藏 分享(赏)

第3章 CHMOS可编程时间间隔定时.ppt

上传人:kpmy5893 文档编号:8804942 上传时间:2019-07-12 格式:PPT 页数:46 大小:653KB
下载 相关 举报
第3章 CHMOS可编程时间间隔定时.ppt_第1页
第1页 / 共46页
第3章 CHMOS可编程时间间隔定时.ppt_第2页
第2页 / 共46页
第3章 CHMOS可编程时间间隔定时.ppt_第3页
第3页 / 共46页
第3章 CHMOS可编程时间间隔定时.ppt_第4页
第4页 / 共46页
第3章 CHMOS可编程时间间隔定时.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、第三章 CHMOS可编程时间间隔定时器芯片82C54,3.1 概述82C54是专为Intel系列微处理机而设计的一种可编程时间间隔定时器/计数器,它是一种通用芯片,在系统软件中可以把多级定时元素当成输入/输出端口中的一个阵列看待。,82C54的特点:,1. 与所有Intel系列兼容 2. 操作速度高,与8MHz的8086、80186一起可实现“零等待状态”的操作。 3. 可处理从直流到10M频率的输入。 4. 适应性强 5. 三个独立的16位计数器 6. 低功耗的CHMOS 7. 与TTL完全兼容 8. 6 种可编程的计数模式 9. 以二进制或BCD计数 10. 状态读返回命令,82C54解决

2、了在系统控制之下精确的时间延迟问题。,82C54的计数器/定时器功能还有: 1. 实时时钟 2.平滑计数器 3. 数字一次通过 4.可编程速率生成 5. 方波发生器 6. 二进制速率乘法器 7. 复杂波形发生器 8.复杂马达控制器,3.2 82C54的体系结构,3.2.1 82C54的方框图 D7D0 CLK0GATE0 RD# OUT0 WR# CLK1GATE1 A0 OUT1 A1 CLK2GATE2 CS# OUT2,82C54,图3-1,3.2.2 82C54的体系结构,CLK0 GATE0OUT0RD CLK1 WR GATE1 A0 OUT1 A1 CSCLK2GATE2OUT2

3、,数据 缓冲 总线,读写 逻辑,控制字 寄存器,计数 器0,计数 器1,计数 器2,D7D0,图3-3,数据总线缓冲器、读/写逻辑、控制字寄存器与三个计数器部件介绍:,1.数据总线缓冲器:是82C54与系统总线连接的接口,由三态门、双向8位的缓冲器。 2.读/写逻辑部件:对82C54的控制信号,A1和A0是计数器的选择;RD#和WD#为读写控制;CS#是控制RD#和WD#的信号。 3.控制字寄存器:由A1A0的二进制数和读写逻辑部件来选择控制字寄存器。 4.计数器:三个独立的16位计数器(216值),举例:例3-1,82C54接收到10010000B的控制字,在这种情况下其配置如何设置? 分析

4、:控制字寄存器的格式为:D7 D6 D5 D4 D3 D2 D1 D08位 SC1 SC0 RW1 RW0 M2 M1 M0 BCDSC1 SC0选择计数器; RW1 RW0读写控制 M2 M1 M0计数器的方式选择; BCD二进制或二进制编码的十进制计数。,10010000B控制字为: SC1 SC0 = 10时,选择计数器0。 RW1 RW0 = 01时,读写低字节。 M2 M1 M0 = 000时,计数器工作在方式0。 BCD = 0时,为16位二进制计数器。,4.三个计数器,表3-2 读/写82C54寄存器操作CS# RD# WR# A1 A0 描述0 1 0 0 0 写计数器00 1

5、 0 0 1 写计数器10 1 0 1 0 写计数器20 1 0 1 1 写控制字0 0 1 0 0 读计数器00 0 1 0 1 读计数器10 0 1 1 0 读计数器2,例3-2 82C54的微处理机接口,图结构: 82C54IORC#IOWC#A15 A14 A2A7 A3A6A5A4,RD# WR# A0 A1 CS#,D7D0,图3-5,要求:,计数器0:二进制计数,方式0,初值1234H 计数器1:BCD计数,方式2,初值100H 计数器2:二进制计数,方式4,初值1FFFH. 1.确定82C54的基址:即计数器0的地址,这是通过A3A2 = 00来确定的。为选择82C54工作,必

6、须使CS# = 0,这样就要让高位地址A15A4 = 000000000100B。若将低位地址A3A2A1A0 = 0000拼接在一起,形成基地址为:0000 0000 0100 0000B = 40H,2.控制寄存器的选择:在选择控制寄存器时,使82C54的A1A0 =A3A2 = 11(外接地址)。最后形成:A15A0 = 0000 0000 0100 1100B = 4CH 计数器0的地址:40H 计数器1的地址:44H 计数器2的地址:48H 3.根据82C54 控制字中各位的定义,确定这三个计数器的方式字,即; 计数器0的方式字 = 0011 0000B = 30H 计数器1的方式字

7、 = 0101 0101B = 55H 计数器2的方式字 = 1011 1000B = B8H,设置程序段:,MOV AL, 30H OUT 40H AL OUT 4CH, AL MOV AL 00H MOV AL, 55H OUT 44H, AL OUT 4CH AL MOV AL, 01H MOV AL , 0B8H OUT 44, AL OUT 4CH, AL MOV AL, 0FFH MOV AL, 34H OUT 48H, AL OUT 40H, AL MOV AL, 1FH MOV AL, 12H OUT 48H, AL,例3-3 编写一个在计数进行的过程中进行读计数器2内容的程序

8、段,并把读取的值装入AX寄存器。82C54的地址40H,分析:先锁存计数器2的内容,然后从斩存器中读取这个值。其程序为 MOV AL, 1000 x x x xB OUT 4CH, AL IN AL , 48H MOV AH , AL MOV AL, BL,计数器的内部结构(图3-6),控制字寄存器,控制 逻辑,状态锁存,状态寄存,CRm,CR1,计数部件CE,OLm,OL1,1,2,2,3,3,内部总线,工作原理:,CE-计数部件,是16位的同步计数器。 OLm和OL1-是两个8位的锁存器,m和1分别表示最高和最低有效字节。 CRm和CR1也是两个8位的寄存器。 控制逻辑是由CLKn、GAT

9、En和OUTn控制的。,5. 82C54系统接口,OUT GATE CLK OUT GATE CLK OUT GATE,地址总线(16位),控制总线,数据总线(8位),A1 A0 CS# D0D7 RD# WR# 82C54 计数器0 计数器1 计数器2,3.3 程序设计基础,1. 82C54程序控制通过给82C54写一个控制字,然后再用初始化计数值的方法对计数器进行程序控制。当A1A0 = 11时,全部控制字信息都写入被选中的控制字寄存器内。相反,初值被写进了计数器,而不是将其写入控制字寄存器。用A1A0的输入信号来选择被写入的计数器,初值计数值格式由所用控制字确定。,2. 写操作,必须记住

10、两点: (1)对每一个计数器而言,在写初始计数值之前,必须写控制字寄存器。 (2)初始计数值必须根据控制字所规定的格式计数,要么只是最低有效字节,要么只是最高有效字节,或者先低后高。 表3-3列出了一些常用的程序设计次序P84,3. 读操作,读计数器内的值有三种可行办法选择: (1)简单的读操作 (2)计数器锁存命令操作:它相当于一个控制字,因为它是把命令写到控制字寄存器内的:如下图A1A0 = 11;CS# = 0;RD# = 1;WR# = 0D7 D6 D5 D4 D3 D2 D1 D0sc1 sc0 0 0 x x x x Sc1、sc0表示计数器被锁存 D5、D4 =00表示计数器锁

11、存命令,图3-8,(3)读回命令操作(READ-BACK),读回命令的格式如下图A1A0 = 11 ;CS# = 0 ;RD# = 1;WR# = 0D7 D6 D5 D4 D3 D2 D1 D01 1 COUNT# STATUS# CNT2 CNT1 CNT0 0D5 = 0 锁存选中的计数器计数值 D4 = 0 锁存选中的计数器状态 D3 = 1 选择计数器2 D2 = 1 选择计数器1 D1 = 1 选择计数器0 D0 保留,图3-9,计数器状态字节格式,D7 D6 D5 D4 D3 D2 D1 D0D7 = 1,表示输出管脚为1 D7 = 0 , 表示输出管脚为0 D6 = 1 , 表

12、示空计数值 D6 = 0 , 表示读的计数值有效 D5 D0 计数器程序控制方式,OUTPUT,NULL COUNT,RW1,RW0,M2,M1,M0,BCD,图3-10,3.4 82C54计数器的操作,操作常用术语 CLK脉冲: 一个上升沿,然后一个下降沿为一个计数器的CLK输入。 触发:由计数器GATE输入的上升边。 计数器装载:将计数值从计数器寄存器CR传送到计数部件CE。 对GATE输入的作用如下表,表3-5 GATE 对每种操作方式的影响,操作 方式,GATE信号状态及影响,低电平或下降沿,0,禁止计数,上升沿,高电平,允许计数,1,1、开始计数;2、下一 时钟后,输出为低电平,2,

13、1、禁止计数; 2、输出立变高电平,开始计数,允许计数,3,1、禁止计数; 2、输出立变高电平,开始计数,允许计数,4,禁止计数,允许计数,5,开始计数,3.4.1 操作方式0:计数终止中断方式,用于事件计数 控制字被写之后,最初OUT = 0 并在计数器到达0之前仍保持0电平。 当计数器到达0之后,OUT = 1(变高电平),并在一个新的计数值和新操作方式0控制字未写入计数器之前OUT = 0。 当GATE = 1时,允许计数。 当GATE = 0时,禁止计数操作,GATE对信号OUT无效。,全部操作方式时序说明:,1、计数器在程序的控制之下进行二进制计数,仅对最底有效字节(LSB)进行读/

14、写操作。 2、计数器总是被选(CS#总是低电平) 3、CW指的是控制字;CW = 10是指10个控制字中的一个控制字,写入计数器内的是十六进制数。 4、LSB指的是计数值的最低有效数字。 5、图中的数值是计数值:低位数是最低有效字节。高位数是最高有效字节。因为计数器在程序的控制之下仅对LSB进行读/写操作,最高有效字节则不能进行读操作。6、N表示的是尚没有定义的计数,竖线表示的是计数值之间的转换。,操作方式0时序,CW=10 LSB=4 WR#CLKGATE OUTN N N N 0 0 0 0 04 3 2 1 0,操作方式0时序(续),CW = 10 LSB = 3 WR#CLKGATEO

15、UT0 0 0 0 0 0 FFN N N N 3 2 2 2 1 0 FF,3.4.2 操作方式1:可再触发的单稳,条件:信号OUT被初始化为高电平,而在CLK脉冲后触发器被触发,OUT又降为低电平,而且在计数器计至0之前,将保持低电平不变。在下次触发之后,CLK脉冲之前,OUT将变为高电平,且保持低电平不变。在写入控制字和初始化计数值之后,计数器处于待命状态在一个单稳脉冲期间,将一个新计数值写入计数器,当前单稳不受什么影响。,操作方式1的时序(图3-13),CW=12 LSB=3 WR#CLKGATEOUT,3.4.3 操作方式2(速率发生器),CW=12 LSB=3 WR#CLKGATE

16、OUTN N N N 0 0 0 0 0 0 03 2 1 3 2 1 2,图3-15,例3-5 P94,1.19318MHz+5VTT2=1/1.19318MHz=838ns T=18xT2=15.09us,CLK1GATE1OUT182C54,T2,图3-16,程序:,MOV AL, 01010101 B OUT 4C H, AL MOV AL 10010 B OUT 44 H, AL,3.4.4 操作方式3(方波发生器),波特速率:每秒钟传输的二进制数的数据位数。 操作条件: 1、OUT = 1 (最初为高电平)。 2、GATE = 1时,则允许计数;当GATE = 0时,则禁止计数。

17、3、在写控制字(CW)和初始计数值(LSB)之后,下一个CLK脉冲期间装载计数器。 4、装偶数:每次减2计数,在计数过程中,前一半为高电平,后一半为低电平。 5、装奇数,在一个CLK时钟脉冲内将初值减1后(变成偶数)再进行装载。,操作方式3工作时序(图3-17):,CW=16 LSB=4WR#CLKGATEOUTN N N N 4 2 4 2 4 2 4,例3-6-P95,图3-18所示的82C54的计数器的操作方式3之下操作,初值为十进制数15,设置为BCD计数,试计算在OUT1上输出方波的 周期T并编程 1.19318MHz+5VT2 T1T,CLK1GATE1OUT1 82C54,图3-

18、18,初始化程序段:,MOV AL , 01010111B OUT 4CH , AL MOV AL , 0FH OUT 44H , AL,计数器1,读写低字节,方式3,BCD计数,3.4.5 操作方式4(软件触发选通),工作条件: 1、输出最初为高电平:OUT=1 ;当最初计数值终止时,OUT=0变低电平,低电平的时间为一个CLK脉冲,之后又变为高电平。 2、GATE=1时计数;GATE=0时禁止计数。 3、在写入一个控制字和初值之后的下一个CLK脉冲装载计数器。,操作方式4的工作时序,CW=18 LSB=3 WR#CLKGATEOUTN N N N 3 2 1 0 FF,图3-19,例3-7

19、P98,如图3-20所示的82C54用计数器1在操作方式4下运行,要求在装入计数器10us后产生一个选通信号,计算初值和并写出初始化程序段。1.19318MHz+5VWR# CLKWR# 初始化编程 ? OUT1 T,CLK1GATE1OUT1 82C54,D0D7,图3-20,3.4.6 操作方式5(硬触发选通),CW=1A LSB=3 WR#CLKGATEOUTN N N N N 3 2 1 0,图3-21,3.4.7 个种方式下的通用操作,1、6种工作方式的比较: (1)操作方式0和操作方式1:共同点是输出OUT波形类似,OUT在计数开始时为0(低电平),并在计数过程中保持0电平不变;在

20、计数结束时变为1(高电平)。OUT作为计数结束的中断请求信号,并无自动重装载。不同点:在GATE上升沿对计数的影响及启动计数器的触发信号不同。,(2)、操作方式2和操作方式3:共同点是具有自动再装入的能力(减到0时自动装入)。所以,,OUT可输出连续的波形,其频率为fCLK/初值。不同点在于:方式2在计数过程中OUT输出高电平,每当减到0时输出一个宽度为1个TCKL的负脉冲。方式3在计数过程中,输出1/2初值 x TCKL (方波)高电平。 (3)、操作方式4和操作方式5:相同点是OUT输出波形相同,在计数过程中OUT为高电平,在计数结束后OUT输出一负脉冲。并无自动装入的能力。不同点在于两种

21、方式的计数触发信号不同,方式4由WR#启动计数;方式5由GATE的上升沿开始计数。,2. 程序设计:当一个控制字写入一个计数器时,所有的控制逻辑立即复位,输出,OUT变为一个已知状态,这些操作不需要CLK脉冲。3. GATE:这个输入信号的采集总是在时钟CLK的上升沿时实施。4. 计数器 :新计数值一旦被装,就要在CLK的下降沿进行减计数器的值。最初的最大值为0,即216=65536;相当于BCD(二十进制)计数的104。,第三章总结,1. 操作的对象实体:82C54定时/计数器 2. 特性描述:(1)三个独立的16位计数器。(2)时频10MHz。(3)6种可编程的计数方式。(4)以二进制或BCD码计数。(5)有状态读返回命令。(6)与TTL和所有Intel系列微处理器兼容。(7)低功耗。(8)温度范围广。 3. 体系结构:主要由4大部分组成: (1)数据缓冲器。(2)读写逻辑单元。(3)控制字寄存器。(4)三个独立的计数器。,4. 控制字寄存器、写操作和读操作命令格式:P78;P84; P85 。 5. 初始化编程规则: (1)必须先写控制字寄存器。(2)计算初值并置初值。 6.应用设计: (1)具体电路设计,即CS#译码问题。(2)初始化编程问题,即必须先写控制字寄存器,后写初值。(3)控制寄存器,写操作与读操作命令格式P79/P84/P85本章结束,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报