《第11章-可编程定时计数器PPT课件》由会员分享,可在线阅读,更多相关《第11章-可编程定时计数器PPT课件(71页珍藏版)》请在金锄头文库上搜索。
1、第第11章章 可编程定时计数器可编程定时计数器11.1 可编程定时计数器可编程定时计数器82C54的特点的特点11.2 82C54的工作方式的工作方式11.3 定时计数器的应用定时计数器的应用2024/8/21111.1 可编程定时计数器可编程定时计数器82C54的特点的特点11.1.0 定时与计数的基本概念定时与计数的基本概念11.1.1 82C54的组成和工作原理的组成和工作原理11.1.3 计数初值计数初值11.1.2 82C54的控制字和状态字的控制字和状态字2024/8/21211.1.0 定时与计数的基本概念定时与计数的基本概念定时定时日常生活日常生活:日时钟、实时钟。:日时钟、实
2、时钟。微机系统微机系统:系统时钟、:系统时钟、DRAM刷新定时、周期性控制信号。刷新定时、周期性控制信号。定时与计数的关系定时与计数的关系相同点相同点n由数字电路中的计数电路构成;由数字电路中的计数电路构成;n定时就是采用时间单位进行计数。定时就是采用时间单位进行计数。不同点不同点n定时是对固定频率的脉冲信号进行计数;定时是对固定频率的脉冲信号进行计数;n计数是对随机性的脉冲信号进行计数。计数是对随机性的脉冲信号进行计数。2024/8/213微机系统中的定时微机系统中的定时内部定时:内部定时:CPU(主机)本身工作的控制时序,如时钟周期;(主机)本身工作的控制时序,如时钟周期;由硬件结构确定,
3、微机中所有操作都要严格按照此节拍来完由硬件结构确定,微机中所有操作都要严格按照此节拍来完成,是成,是固定的固定的,无法更改的。,无法更改的。一般为一般为ns(纳秒)级;(纳秒)级;外部定时:外部定时:外设工作时,所需要的时序关系;外设工作时,所需要的时序关系;n实时监控系统的定时中断、定时监测、定时扫描等;实时监控系统的定时中断、定时监测、定时扫描等;n对对I/O设备运行速度和工作频率的调整和控制;设备运行速度和工作频率的调整和控制;一般定时为一般定时为ms(毫秒)级;(毫秒)级;2024/8/214外部定时方法(外部定时方法(1/2)软件定时:软件定时:定时方法:定时方法:n通过通过CPU执
4、行一段执行一段循环程序循环程序,而产生等待延时;,而产生等待延时;n需要按延时的时间来计算时间常数。需要按延时的时间来计算时间常数。优点:优点:n节省硬件成本;节省硬件成本;缺点:缺点:n占用占用CPU的时间,降低了的时间,降低了CPU的工作效率;的工作效率;n软件延时的时间随主机频率不同而发生变化,通用性差。软件延时的时间随主机频率不同而发生变化,通用性差。适用于短时间或不频繁发生延时的简单系统。适用于短时间或不频繁发生延时的简单系统。2024/8/215延时程序:延时程序: MOV DX , 0FFFFH AGAIN: MOV CX , DX WAIT : NOP LOOP WAIT DE
5、C DX JNZ AGAIN 也可单独作为一延也可单独作为一延时程序,延时时间时程序,延时时间较短较短延时常数决定于:延时常数决定于:需要的延时时间、系统主频、指令的执行时间需要的延时时间、系统主频、指令的执行时间延时常数延时常数2024/8/216外部定时方法(外部定时方法(2/2)硬件定时:硬件定时:方法:方法:n采用采用可编程定时可编程定时/计数器计数器或或单稳延时电路单稳延时电路产生定时或延时。产生定时或延时。特点:特点:n不占用不占用CPU时间,提高了时间,提高了CPU的利用率;的利用率;n可以产生精确的时间时隔,形成各种脉冲序列,灵活性强;可以产生精确的时间时隔,形成各种脉冲序列,
6、灵活性强;n定时不受主机频率影响,定时程序通用性强。定时不受主机频率影响,定时程序通用性强。可用于各种定时计数场合。可用于各种定时计数场合。2024/8/21711.1.1 82C54的组成和工作原理的组成和工作原理82C54A芯片的工作特点芯片的工作特点82C54A芯片的外部引脚特性芯片的外部引脚特性82C54A的内部结构的内部结构2024/8/218一、一、82C54A芯片的工作特点芯片的工作特点每片每片82C54A上都有上都有3个个独立的独立的16位位的计数通道;的计数通道;最大可计数值为最大可计数值为216=65536;每个通道计数均可编程设置为每个通道计数均可编程设置为二进制二进制或
7、或BCD码码计数;计数;BCD码计数即十进制计数;码计数即十进制计数; 每个计数通道都有每个计数通道都有6种种工作方式,可以编程选择;工作方式,可以编程选择;每种工作方式的输出波形、触发方式等不同;每种工作方式的输出波形、触发方式等不同;计数通道都是计数通道都是减法计数器减法计数器;计数计数/定时启动之前需要设置计数初值定时启动之前需要设置计数初值/定时常数;定时常数;2024/8/219二、二、82C54A芯片的外部引脚特性芯片的外部引脚特性数据总线数据总线片选及读写片选及读写控制信号控制信号片内端口片内端口选通信号选通信号计数通道计数通道0的输入、的输入、输出信号输出信号计数通道计数通道1
8、的输入、的输入、输出信号输出信号计数通道计数通道2的输入、的输入、输出信号输出信号2024/8/2110计数通道的外部信号计数通道的外部信号时钟时钟输入输入信号信号CLK定时计数时,每经过一个脉冲,计数值减定时计数时,每经过一个脉冲,计数值减1;门控门控输入输入信号信号GATE用于控制计数的启停;用于控制计数的启停;可有可有开关作用开关作用和和触发作用触发作用;计数器计数器输出输出信号信号OUT各种波形输出端;各种波形输出端;可供可供CPU检测状态,也可用于提供请求信号。检测状态,也可用于提供请求信号。2024/8/2111定时定时/计数器的读写操作类型计数器的读写操作类型2024/8/211
9、2三、三、82C54A的内部逻辑结构的内部逻辑结构数据总线缓冲器数据总线缓冲器:三态双向三态双向8 8位寄存器;位寄存器;82C54A82C54A与与CPUCPU之间之间数据数据交换交换的部件;的部件;读读/ /写控制逻辑写控制逻辑:接收接收CPUCPU有关控制有关控制信号,决定操作信号,决定操作对象及类型。对象及类型。控制字寄存器控制字寄存器:接收接收CPUCPU发出的控制字,决定各计发出的控制字,决定各计数器的工作方式;数器的工作方式;三个计数通道共用一个命令端口三个计数通道共用一个命令端口区分该芯片内部区分该芯片内部的端口类型!的端口类型!计数通道为数据端口,每个计数通道分别占计数通道为
10、数据端口,每个计数通道分别占用一个端口地址;用一个端口地址;(计数通道(计数通道0 304H、计数通道、计数通道1305H、计数通道计数通道2 306H)控制字寄存器为命令端口,占用一个端口地控制字寄存器为命令端口,占用一个端口地址址(307H );无状态端口。无状态端口。2024/8/2113计数通道的内部结构计数通道的内部结构存放存放CPUCPU发出的计数初值,发出的计数初值,在在计数过程中不发生变化计数过程中不发生变化;用;用于自动重装计数初值。于自动重装计数初值。锁存当前的计数值,锁存当前的计数值,以供以供CPUCPU读取。读取。装入计数初值,每个计数装入计数初值,每个计数脉冲到来时执
11、行减脉冲到来时执行减1 1操作。操作。时钟脉冲输入端时钟脉冲输入端控制输入端控制输入端,对计数操作起,对计数操作起开关作用或触发作用开关作用或触发作用输出端输出端,其输出波其输出波形由操作形由操作方式决定方式决定注意注意CPU对计对计数器内部部件数器内部部件的可访问性!的可访问性!16位当前计数值锁存器位当前计数值锁存器 只读只读16位减位减1计数器计数器 不可访问不可访问16位计数初值寄存器位计数初值寄存器 可读写可读写2024/8/211411.1.3 计数初值计数初值82C54芯片的初始化步骤:芯片的初始化步骤:1.按照命令字格式写出满足当前操作的按照命令字格式写出满足当前操作的命令字命
12、令字,使用,使用I/O指令指令将其写入将其写入命令端口命令端口;n写入命令字后,写入命令字后,计数初值寄存器清零计数初值寄存器清零;2.确定确定计数初值计数初值(定时常数),使用(定时常数),使用I/O指令将初始值装入指指令将初始值装入指定计数通道的初值寄存器。定计数通道的初值寄存器。n计数初值会通过初值寄存器送入减计数初值会通过初值寄存器送入减1计数器;计数器;n当计数条件满足时,减当计数条件满足时,减1计数器即开始定时计数器即开始定时/计数。计数。2024/8/2115计数初值的确定计数初值的确定按定时时间计算:按定时时间计算:t定时时间、定时时间、 TCLK 时钟周期时钟周期 则计算公式
13、为:则计算公式为: n = t / TCLK 按脉冲序列频率计算:按脉冲序列频率计算:fCLK输入时钟频率;输入时钟频率;fOUT输出波形频率输出波形频率 则计算公式为:则计算公式为: n = fCLK / fOUT计数初值的范围:计数初值的范围:二进制:二进制:000000FFFFH十进制(十进制(BCD码):码):000009999其中,其中,最大值为最大值为0,因为计数器计数时先减,因为计数器计数时先减1后判断。后判断。n n计数初值(定时常数)计数初值(定时常数)2024/8/2116计数初值计数初值/定时常数计算例子定时常数计算例子假定输入时钟频率假定输入时钟频率fCLK=2MHz要
14、求要求1:定时:定时20ms n = t / TCLK = t fCLK = 2010-32106 = 40000要求要求2:产生:产生1KHz的方波的方波n = fCLK / fOUT = 2106 / 1103 = 20002024/8/211711.1.2 82C54A的控制字和状态字的控制字和状态字工作方式控制字工作方式控制字初始化初始化时使用,用于选择计数通道及其工作方式;时使用,用于选择计数通道及其工作方式;也可作为也可作为计数值锁存命令计数值锁存命令使用;使用;读回命令控制字读回命令控制字在在82C54芯片使用过程中,由芯片使用过程中,由CPU发给发给82C54的命令;的命令;用
15、于用于锁存锁存某个计数通道中的某个计数通道中的当前计数值当前计数值、或、或状态信息状态信息;状态字状态字表示某计数通道当前的工作状态;表示某计数通道当前的工作状态;2024/8/21181、工作方式命令字、工作方式命令字SC1SC0RL1RL0M2M1M0BCD计数器选择计数器选择00计数器计数器001计数器计数器110计数器计数器211不用不用计数数制计数数制0二进制二进制1BCD码码命令类型命令类型00锁存命令锁存命令01读读/写低写低8位位10读读/写高写高8位位11先读先读/写低写低8位位再读再读/写高写高8位位工作方式选择工作方式选择000方式方式0001方式方式1010方式方式20
16、11方式方式3100方式方式4101方式方式5110无效无效1112024/8/2119工作方式命令字的应用举例(工作方式命令字的应用举例(1/4)例例1. 选择计数通道选择计数通道2 ,工作在方式,工作在方式3下,计数初值为下,计数初值为533H,采用,采用二进制计数,试写出其初始化程序段。二进制计数,试写出其初始化程序段。工作方式命令字工作方式命令字初始化程序段初始化程序段写入命令字:写入命令字:写入计数初值写入计数初值 (先写低字节,再写高字节先写低字节,再写高字节):MOV DX,306HMOV AL,05HMOV DX,307HMOV AL,0B6HOUT DX,ALOUT DX,A
17、LMOV AL,33HOUT DX,ALSC1SC0RL1RL0M2M1M0BCD1 01 10 1 102024/8/2120初始化程序段初始化程序段MOV DX,307HMOV AL,0B6HOUT DX,ALMOV DX,306H MOV AL,33H OUT DX,ALMOV AL,05HOUT DX,AL初始化程序执行过程初始化程序执行过程1011 01100011 00110000 01010000 0101 0011 00110000 00000000 00002024/8/2121工作方式命令字的应用举例(工作方式命令字的应用举例(2/4)例例2. 计数通道计数通道1工作于方式
18、工作于方式0,用二进制计数,计数初值为,用二进制计数,计数初值为128。工作方式命令字工作方式命令字初始化程序段初始化程序段MOV DX,307HMOV AL,50HOUT DX,ALMOV DX,305HMOV AL,128OUT DX,ALSC1SC0RL1RL0M2M1M0BCD0 10 10 0 002024/8/2122工作方式命令字的应用举例工作方式命令字的应用举例(3/4)例例3. 计数通道计数通道0工作于方式工作于方式1,按,按BCD码计数,计数值为码计数,计数值为3000。工作方式命令字工作方式命令字初始化程序段初始化程序段MOV DX,307HMOV AL,33HOUT D
19、X,ALMOV DX,304HMOV AX,3000SC1SC0RL1RL0M2M1M0BCD0 01 10 0 11OUT DX,ALMOV AL,AHOUT DX,ALH2024/8/2123工作方式命令字的应用举例(工作方式命令字的应用举例(4/4)例例4. 读取读取1号计数器的当前计数值,并判断是否为全号计数器的当前计数值,并判断是否为全1。 读当前计数值的操作:读当前计数值的操作:先发先发锁存命令锁存命令,锁存当前计数值;,锁存当前计数值;再用输入指令从计数器的当前计数值锁存器中再用输入指令从计数器的当前计数值锁存器中读取读取数据。数据。 命令字:命令字: 程序段程序段发锁存命令发锁
20、存命令MOV DX,307HMOV AL,40HOUT DX,ALSC1SC0RL1RL0M2M1M0BCD0 10 00 0 0 0读计数值读计数值判断处理判断处理MOV DX,305HIN AL,DXCMP AX,0FFFFHJE YES IN AL,DXMOV AH , ALXCHG AL,AH假定初始化的工作方式命假定初始化的工作方式命令字的令字的RL位为位为11。2024/8/21242、读回命令控制字、读回命令控制字11CNTSTCNT2CNT1CNT00特征位特征位特征位特征位计数通道选择计数通道选择100通道通道2010通道通道1001通道通道0其他其他无效无效锁存锁存计数值计
21、数值0锁存锁存1不锁存不锁存锁存锁存计数器状态计数器状态0锁存锁存1不锁存不锁存2024/8/2125读回命令控制字举例读回命令控制字举例例例5. 将将1号计数器的当前计数值读入号计数器的当前计数值读入AX寄存器。寄存器。读回命令控制字读回命令控制字控制程序段控制程序段11CNTSTCNT2CNT1CNT00 0 0 1 0 1 发锁存命令发锁存命令 MOV DX,307H MOV AL,0D4H OUT DX,AL读计数值读计数值 MOV DX,305H IN AL , DX MOV AH , AL IN AL , DX XCHG AL , AH2024/8/21263、状态字、状态字OUT
22、NULLRW1RW0M2M1M0BCD计数器输出端计数器输出端OUT的状态的状态计数初值的有效性计数初值的有效性0有效,计数初值已装入减有效,计数初值已装入减1计数器计数器1无效,计数初值未装入减无效,计数初值未装入减1计数器计数器同同“工作方式命令字工作方式命令字”的低的低6位位每个通道内部都有一个每个通道内部都有一个状态寄存器,通过对该状态寄存器,通过对该通道端口的读取获得。通道端口的读取获得。2024/8/2127读取读取82C54状态字举例状态字举例例例6. 试判断计数通道试判断计数通道1是否正在计数。是否正在计数。处理步骤处理步骤n发送读回命令发送读回命令n读取状态字信息并判断读取状
23、态字信息并判断控制程序段控制程序段11CNTSTCNT2CNT1CNT00 1 0 1 0 0 发锁存命令发锁存命令 MOV DX,307H MOV AL,0E4H OUT DX,AL读计数值读计数值 MOV DX,305H IN AL , DX判断当前的计数状态判断当前的计数状态 TEST AL , 40H JNZ NULL 2024/8/212882C54对计数通道的访问类型对计数通道的访问类型写计数通道写计数通道写计数通道的初值寄存器;写计数通道的初值寄存器;读计数通道读计数通道读计数通道的初值寄存器读计数通道的初值寄存器n直接读取直接读取读计数通道的当前计数值读计数通道的当前计数值n先
24、使用先使用工作方式命令字工作方式命令字或或读回命令字读回命令字发锁存命令,再读取;发锁存命令,再读取;读计数通道的状态字读计数通道的状态字n先使用先使用读回命令字读回命令字发锁存命令,再读取;发锁存命令,再读取;2024/8/212911.2 82C54的工作方式的工作方式82C54共有共有6种工作方式,三个计数通道都可以工作在这种工作方式,三个计数通道都可以工作在这6种工种工作方式下。作方式下。学习这学习这6种工作方式的要点:种工作方式的要点:输出波形;输出波形;计数的触发方式;计数的触发方式;n软件触发、硬件触发、软硬触发;软件触发、硬件触发、软硬触发;计数过程中,门控信号计数过程中,门控
25、信号GATE的变化对计数的影响;的变化对计数的影响;n不影响、停止计数、暂停计数、重新计数;不影响、停止计数、暂停计数、重新计数;重装计数初值后,对计数过程的影响;重装计数初值后,对计数过程的影响;n不影响、立刻生效、下次计数生效;不影响、立刻生效、下次计数生效;2024/8/21301. 方式方式0计数结束产生正脉冲计数结束产生正脉冲每次用命令字设置计数器为方式每次用命令字设置计数器为方式0或写入计数初值后,输出端或写入计数初值后,输出端OUT的起始电平为的起始电平为低电平低电平;写入计数初值后,经过一个时钟周期,将计数初值送入减写入计数初值后,经过一个时钟周期,将计数初值送入减1计计数器开
26、始计数,数器开始计数,OUT输出维持低电平;输出维持低电平;直至直至计数值变为计数值变为0,OUT输出端变为高电平,并维持到下次使输出端变为高电平,并维持到下次使用计数器。用计数器。CWn=33210CLKWR#OUT2024/8/2131门控信号门控信号GATE对计数起对计数起开关作用开关作用。即当即当GATE=1时,允许计数;当时,允许计数;当GATE0时,禁止计数。时,禁止计数。计数过程中,计数过程中,GATE变为低电平,变为低电平,暂停计数暂停计数;当;当GATE再次变再次变为高电平时,从中止计数处为高电平时,从中止计数处继续继续开始计数。开始计数。GATE的变化并不影响的变化并不影响
27、OUT端的输出状态。端的输出状态。0门控信号的作用门控信号的作用n=3322CLKWR#OUTGATE12024/8/2132计数过程中,若计数初值发生变化,则计数器会在计数过程中,若计数初值发生变化,则计数器会在下一时钟周下一时钟周期期将新的计数值写入减将新的计数值写入减1计数器,并重新开始计数;计数器,并重新开始计数;方式方式0是是软件触发软件触发(写计数初值的(写计数初值的OUT指令)的计数方式指令)的计数方式。方式方式0的计数初值只的计数初值只一次有效一次有效;若要再次计数,即使计数值不变,也需重新写入计数初值。若要再次计数,即使计数值不变,也需重新写入计数初值。n=4n=3324CL
28、KWR#OUTGATE321改变计数初值的影响改变计数初值的影响2024/8/21333n=3WR#CW2. 方式方式1硬件可重复触发的单脉冲发生器硬件可重复触发的单脉冲发生器当命令字设定方式当命令字设定方式1后,输出端后,输出端OUT以以高电平高电平为起始电平;为起始电平;写入计数初值后,经过一个时钟周期,将计数初值送入减写入计数初值后,经过一个时钟周期,将计数初值送入减1计计数器,但数器,但并不开始计数并不开始计数;当门控信号当门控信号GATE出现上升沿出现上升沿,则开始计数,计数开始的同时,则开始计数,计数开始的同时,OUT输出端变为低电平输出端变为低电平,作为单脉冲的开始;,作为单脉冲
29、的开始;直到计数值为直到计数值为0,OUT输出变回高电平输出变回高电平,计数结束,即单脉冲,计数结束,即单脉冲结束。结束。20CLKOUTGATE12024/8/2134GATE信号对计数过程起信号对计数过程起触发作用触发作用。 GATE的的上升沿上升沿会使计数过程重新开始;但其高、低电平会使计数过程重新开始;但其高、低电平及下降沿不影响计数。及下降沿不影响计数。实质上,实质上,GATE的上升沿使计数初值寄存器将当前的的上升沿使计数初值寄存器将当前的计数计数初值再次装入减初值再次装入减1计数器计数器中;中;GATE变化不影响变化不影响OUT的输出状态,但会的输出状态,但会影响影响输出单脉冲的输
30、出单脉冲的宽度。宽度。n=3320CLKWR#OUTGATE321门控信号的作用门控信号的作用2024/8/2135n=4n=3计数初值计数初值多次有效多次有效,即该方式下计数过程可以重复被触发。,即该方式下计数过程可以重复被触发。计数过程中,若计数初值发生变化,则计数过程中,若计数初值发生变化,则当当GATE再次出现上再次出现上升沿时,立即以新的计数初值开始计数升沿时,立即以新的计数初值开始计数;否则,计数初值的;否则,计数初值的改变不会影响当前的计数过程。改变不会影响当前的计数过程。32CLKWR#OUTGATE14321改变计数初值的影响改变计数初值的影响2024/8/2136方式方式0
31、与方式与方式1的比较的比较输出波形大致相同;输出波形大致相同;在一次计数过程中输出在一次计数过程中输出单次负脉冲单次负脉冲;触发方式不同;触发方式不同;方式方式0软件触发;方式软件触发;方式1硬件触发;硬件触发;方式方式0主要使用主要使用计数结束的上升沿脉冲计数结束的上升沿脉冲作为请求信号使用;作为请求信号使用;方式方式1主要用作主要用作定时器定时器使用。使用。方式方式1是由硬件触发计数的,因此是由硬件触发计数的,因此方式方式1输出的负脉冲宽度输出的负脉冲宽度是可以由计数初值精确计算的是可以由计数初值精确计算的,而方式,而方式0不可。不可。2024/8/213711n=3CWWR#3. 方式方
32、式2分频器分频器当命令字设置方式当命令字设置方式2后,后,OUT输出端的初始状态为输出端的初始状态为高电平高电平;装入计数初值后,装入计数初值后,开始计数开始计数,输出端仍维持高电平;,输出端仍维持高电平;直到直到计数值为计数值为1时,时,OUT输出输出一个时钟周期的低电平一个时钟周期的低电平,一次,一次计数结束,输出恢复高电平;计数结束,输出恢复高电平;然后然后自动重装自动重装计数初值,再次进行同样的计数,从而产生连计数初值,再次进行同样的计数,从而产生连续的脉冲序列。续的脉冲序列。320CLKOUT3202024/8/2138n=3门控信号门控信号GATE对计数过程有对计数过程有开关作用开
33、关作用,也有,也有触发作用触发作用。当当GATE1时,允许计数;当时,允许计数;当GATE0时,禁止计数;时,禁止计数;当当GATE出现上升沿时,可以触发计数重新开始。出现上升沿时,可以触发计数重新开始。0CLKWR#OUTGATE321322计数过程中,仅计数初值发生变化计数过程中,仅计数初值发生变化若若没有没有GATE上升沿上升沿,则不影响,则不影响本次的本次的计数过程;只是在计数过程;只是在当前计数归当前计数归0,自动装入新的计数初值开始新的计数;,自动装入新的计数初值开始新的计数;若若出现出现GATE上升上升沿,则在沿,则在下个时钟周期立刻装入下个时钟周期立刻装入新的计新的计数初值开始
34、计数;数初值开始计数;门控信号的作用门控信号的作用2024/8/21394n=4CW4. 方式方式3方波发生器方波发生器当命令字设置方式当命令字设置方式3后,后,OUT输出端的初始状态为输出端的初始状态为高电平高电平;装入计数初值后,开始计数,输出端仍维持高电平;装入计数初值后,开始计数,输出端仍维持高电平;当当计数到一半计数到一半时,时,OUT输出变为低电平,直到计数值为输出变为低电平,直到计数值为0,恢,恢复高电平的输出;复高电平的输出;然后然后自动重装自动重装计数初值,再次进行同样的计数,从而产生连计数初值,再次进行同样的计数,从而产生连续的方波序列。续的方波序列。输出输出方波或基本对称
35、的矩形波方波或基本对称的矩形波,常作为,常作为某些慢速外设的时钟输入信号某些慢速外设的时钟输入信号320CLKWR#OUT1432024/8/2140计数初值的一半:计数初值的一半:当计数初值为当计数初值为偶数偶数时,计数到时,计数到n/2,输出端,输出端OUT发生负发生负跳变,得到占空比为跳变,得到占空比为1:1的方波;的方波;当计数初值为当计数初值为奇数奇数时,计数到时,计数到(n+1)/2,输出端,输出端OUT发生发生负跳变,得到占空比为负跳变,得到占空比为(n+1)/2 : (n-1)/2的矩形波。的矩形波。门控信号门控信号GATE对计数过程起对计数过程起开关作用开关作用和和触发作用触
36、发作用,同方式,同方式2。计数过程中写入新的计数初值,则会在计数过程中写入新的计数初值,则会在半周期结束半周期结束或或门控门控脉冲触发脉冲触发时,重新装入新值,开始计数。时,重新装入新值,开始计数。关于门控信号和计数初值关于门控信号和计数初值2024/8/2141方式方式2和方式和方式3的比较的比较方式方式2主要用于产生周期性负脉冲;主要用于产生周期性负脉冲;方式方式3主要用于产生方波或矩形波;主要用于产生方波或矩形波;方式方式2和方式和方式3的计数触发方式均为的计数触发方式均为软硬件触发软硬件触发。软件触发方法软件触发方法重新写入计数初值;重新写入计数初值;n在一个完整的计数周期(方式在一个
37、完整的计数周期(方式2)或半周期(方式)或半周期(方式3)输)输出完成后出完成后,按照新的计数初值开始计数;,按照新的计数初值开始计数;硬件触发方法硬件触发方法门控信号出现上升沿;门控信号出现上升沿;n立即(下个时钟周期)触发新的计数过程立即(下个时钟周期)触发新的计数过程,即输出脉冲,即输出脉冲序列的频率随序列的频率随GATE信号的变化而随时发生改变。信号的变化而随时发生改变。2024/8/2142n=35. 方式方式4软件触发选通的单脉冲发生器软件触发选通的单脉冲发生器当用命令字设置方式当用命令字设置方式4后,后,OUT输出端的初始状态为输出端的初始状态为高电平高电平;装入计数初值后,即开
38、始计数;装入计数初值后,即开始计数;在计数过程中,输出端始终维持高电平;在计数过程中,输出端始终维持高电平;当计数为当计数为0 ,OUT输出输出一个时钟周期的负脉冲一个时钟周期的负脉冲,结束计数。,结束计数。CW3210CLKWR#OUT2024/8/2143n=3CW6. 方式方式5硬件触发选通的单脉冲发生器硬件触发选通的单脉冲发生器当命令字设置方式当命令字设置方式5后,后,OUT输出端的初始状态为输出端的初始状态为高电平高电平;装入计数初值后,并不立即开始计数;装入计数初值后,并不立即开始计数;当当GATE出现上升沿出现上升沿时,开始减时,开始减1计数,计数,OUT维持高电平;维持高电平;
39、当当计数为计数为0时,时,OUT输出输出一个时钟周期的负脉冲一个时钟周期的负脉冲,结束计数。,结束计数。320CLKWR#OUTGATE12024/8/2144方式方式4和方式和方式5的比较的比较输出波形完全相同;输出波形完全相同;一次计数得到一次计数得到单次单拍负脉冲单次单拍负脉冲;计数的触发方式不同;计数的触发方式不同;方式方式4软件触发;软件触发;n触发方式、触发方式、GATE和计数初值改变时,对计数的影响同方式和计数初值改变时,对计数的影响同方式0;方式方式5硬件触发;硬件触发;n触发方式、触发方式、GATE和计数初值改变时,对计数的影响同方式和计数初值改变时,对计数的影响同方式1;2
40、024/8/2145各种工作方式的功能各种工作方式的功能方式方式功能功能输出波形描述输出波形描述输出波形输出波形0计数结束产生正脉冲计数结束产生正脉冲单次负脉冲单次负脉冲1单脉冲发生器单脉冲发生器单次负脉冲单次负脉冲2分频器分频器连续脉冲波连续脉冲波3方波发生器方波发生器连续方波连续方波4软件触发选通软件触发选通单次单拍负脉冲单次单拍负脉冲5硬件触发选通硬件触发选通单次单拍负脉冲单次单拍负脉冲n0n0n0n0n0 n0n0n02024/8/2146计数器启动和重复计数的条件计数器启动和重复计数的条件方式方式功能功能启动条件启动条件重复条件重复条件0计数结束产生正脉冲计数结束产生正脉冲软件触发软
41、件触发写计数值写计数值1单脉冲发生器单脉冲发生器硬件触发硬件触发GATE信号触发信号触发2分频器分频器软硬件触发软硬件触发3方波发生器方波发生器软硬件触发软硬件触发4软件触发选通软件触发选通软件触发软件触发写计数值写计数值5硬件触发选通硬件触发选通硬件触发硬件触发GATE信号触发信号触发2024/8/2147门控信号门控信号GATE的作用的作用方式方式GATE信号的状态信号的状态低电平或下降沿低电平或下降沿上升沿上升沿高电平高电平0暂停计数暂停计数不影响计数不影响计数允许计数允许计数1不影响计数不影响计数重新计数重新计数不影响计数不影响计数2停止计数停止计数重新计数重新计数允许计数允许计数3停
42、止计数停止计数重新计数重新计数允许计数允许计数4暂停计数暂停计数不影响计数不影响计数允许计数允许计数5不影响计数不影响计数重新计数重新计数不影响计数不影响计数2024/8/2148计数过程中改变计数初值的结果计数过程中改变计数初值的结果方式方式功能功能改变计数初值改变计数初值0计数结束产生中断信号计数结束产生中断信号立即有效立即有效1单脉冲发生器单脉冲发生器门控信号触发后有效门控信号触发后有效2分频器分频器(速率发生器速率发生器)当前计数周期结束当前计数周期结束 (计数到计数到1后后)或或门控信号触发后有效门控信号触发后有效3方波速率发生器方波速率发生器当前半个计数周期结束当前半个计数周期结束
43、(计数到一半或计数到(计数到一半或计数到0后)后) 或或门控信号触发后有效门控信号触发后有效4软件触发选通软件触发选通立即有效立即有效5硬件触发选通硬件触发选通门控信号触发后有效门控信号触发后有效2024/8/214911.3 定时计数器的应用定时计数器的应用11.3.1 微机系统中的应用微机系统中的应用11.3.2 两级计数例子两级计数例子11.3.3 波特率时钟发生器例子波特率时钟发生器例子2024/8/215011.3.1 微机系统中的应用微机系统中的应用通道通道0系统时钟更新中断信号系统时钟更新中断信号工作于工作于方式方式3,计数初值为,计数初值为0;通道通道1动态存储器的定时刷新信号
44、动态存储器的定时刷新信号工作于工作于方式方式2,计数初值为,计数初值为18;通道通道2发声系统音频信号发声系统音频信号工作于工作于方式方式3,计数初值为,计数初值为533H;2024/8/2151去去8237PC系列机中定时系统结构框图系列机中定时系统结构框图端口地址为端口地址为40H43H作为系统时钟作为系统时钟更新中断信号更新中断信号2024/8/21521、系统时钟更新中断信号(通道、系统时钟更新中断信号(通道0)工作于工作于方式方式3,计数初值为,计数初值为0;GATE0接接+5,CLK0输入时钟频率为输入时钟频率为1.1931816MHz;OUT0输出频率为输出频率为18.2Hz的方
45、波的方波;输出脉冲周期输出脉冲周期= =1/18.255ms;OUT0连接连接8259A的的IRQ0上,上,约约55ms产生产生1次中断次中断,用于更新系统的日时钟计数。,用于更新系统的日时钟计数。系统直接调用固化在系统直接调用固化在BIOS中的中断类中的中断类型号为型号为08H的中断服务程序。的中断服务程序。 初始化程序如下初始化程序如下:MOV AL,00110110BOUT 43H,ALMOV AL,0OUT 40H,ALOUT 40H,AL2024/8/21532、动态存储器的定时刷新信号(通道、动态存储器的定时刷新信号(通道1)工作于工作于方式方式2,计数初值为,计数初值为18;GA
46、TE1接接+5,CLK1输入时钟频率为输入时钟频率为1.1931816MHz;OUT1每隔每隔15.08s输出一个负脉冲;输出一个负脉冲;OUT1连接到连接到8237的的DREQ0上;上;8237通道通道0用于控制用于控制DRAM的刷新;的刷新;82C54A的的通道通道1定时产生定时产生DRAM的刷新的刷新请求信号,每个周期刷新存储器一行。请求信号,每个周期刷新存储器一行。 初始化程序如下初始化程序如下:MOV AL,01010100BOUT 43H,ALMOV AL,18OUT 41H,AL2024/8/21543、发声系统音频信号(通道、发声系统音频信号(通道2)工作于工作于方式方式3,计
47、数初值为,计数初值为533H;GATE2由由8255A的的PB0位控制,位控制,CLK2输输入时钟频率为入时钟频率为1.1931816MHz;OUT2输出频率输出频率约为约为900Hz的方波;的方波;输出信号与输出信号与8255的的PB1位(控制发声)位(控制发声)共同经过滤波,作为系统扬声器发声共同经过滤波,作为系统扬声器发声的音频信号,进行提示和故障报警。的音频信号,进行提示和故障报警。初始化程序如下初始化程序如下:MOV AL,10110110BOUT 43H,ALMOV AX,533HOUT 42H,ALMOV AL , AHOUT 42H , AL2024/8/2155BIOS中对计
48、数通道中对计数通道2的初始化编程的初始化编程BEEP PROC FAR IN AL,61HMOV AH,ALPUSH AXMOV AL,10110110B OUT 43H,AL MOV AX,0533H OUT 42H,AL MOV AL,AH OUT 42H,ALPOP AX OR AL,03H OUT 61H,AL NOP L1:LOOP L1 AND AL,0FDH OUT 61H,AL MOV AL,AH OUT 61H,AL RET BEEP ENDP 读读8255 PB口保存口保存 方式方式3,写,写16位计数初值位计数初值 OUT2输出频率为输出频率为1.1931816M/133
49、1 =896Hz的方波的方波置置PB0、PB1为为1,打开扬,打开扬声器声器 由由CX决定延时长短决定延时长短置置PB0、PB1为为0,封锁,封锁OUT2输出输出恢复原恢复原PB端口值端口值 2024/8/2156使用入口参数使用入口参数指定扬声器的发声频率和发声持续时间指定扬声器的发声频率和发声持续时间 BIOS中对应程序中对应程序 ;功能:;功能:按照指定的时间间隔发指按照指定的时间间隔发指定频率的声音定频率的声音 ;入口参数:;入口参数:CX=指定频率,指定频率,BX=指定时间指定时间 ;返回:无;返回:无SOUND PROC FAR MOV AL,10110110B OUT 43H,A
50、L MOV AX,CXOUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H MOV AH,AL OR AL,03H OUT 61H,ALL1:MOV CX,5000H L2:LOOP L2 DEC BX JNZ L1 MOV AL, AH OUT 61H, AL RET SOUND ENDP 2024/8/215711.3.2 两级计数例子两级计数例子利用利用82C54A设计一个定时器,每设计一个定时器,每5秒钟输秒钟输出一个负脉冲,设外部时钟频率为出一个负脉冲,设外部时钟频率为2.5MHz。计数初值为计数初值为n=5/TCLK=5fCLK =5 2.5106 =
51、12.5106 故故 采用采用两级两级计数器;计数器;使用使用82C54A的计数通道的计数通道0和计数通道和计数通道1计数通道计数通道0:方式:方式3,产生频率低于外部时钟频率的,产生频率低于外部时钟频率的方波方波;计数通道计数通道1:方式:方式2,产生最终的负脉冲序列;,产生最终的负脉冲序列;82C54A的硬件连接的硬件连接通道通道0的的OUT输出端作为通道输出端作为通道1的的CLK时钟输入;时钟输入;两个通道的两个通道的GATE端均接高电平;端均接高电平; 655362024/8/2158两个通道的计数初值和命令字两个通道的计数初值和命令字总的计数初值总的计数初值n为为12.5106 ;采
52、用两级计数时,通道采用两级计数时,通道0、1的计数初值的计数初值n0、n1n=n0n1假定选择计数值为假定选择计数值为 n0:62500;n1:200设置命令字:设置命令字:计数通道计数通道0计数通道计数通道1SC1SC0RL1RL0M2M1M0BCD0 01 10 1 10SC1SC0RL1RL0M2M1M0BCD0 10 10 1 002024/8/2159硬件连接图硬件连接图输入输入2.5MHz的时钟的时钟工作于方式工作于方式2和方式和方式3下,下,使使GATE始终始终为高电平为高电平11输出输出40Hz的方波的方波作为计数器作为计数器1的输入的输入输出每输出每5秒一个负脉冲的脉冲序列秒
53、一个负脉冲的脉冲序列计数器计数器0输出脉冲序列的频率输出脉冲序列的频率OUT0 = CLK0 / n0 = 2.5MHz / 62500 = 40Hz82C54A OUT0GATE0CLK1GATE1CLK0OUT12024/8/2160初始化程序段初始化程序段计数器计数器0的初始化程序段:的初始化程序段: MOV DX,307HMOV AL,36HOUT DX,AL ;设置命令字;设置命令字MOV DX,304HMOV AX,62500OUT DX,ALMOV AL,AHOUT DX,AL ;设置计数初值;设置计数初值计数器计数器1的初始化程序段:的初始化程序段:MOV DX,307HMOV
54、 AL,54HOUT DX,AL ;设置命令字;设置命令字MOV DX,305HMOV AL,200OUT DX,AL ;8位计数初值位计数初值2024/8/2161答:答:其输出波形的其输出波形的负脉冲宽度负脉冲宽度会有不同。会有不同。单通道计数单通道计数输出负脉冲宽度为输出负脉冲宽度为1个时钟周期;个时钟周期;双通道计数双通道计数输出负脉冲宽度由第一级计数的输出决定。输出负脉冲宽度由第一级计数的输出决定。思思 考:考:本题中输出波形是否会因为采用的是两级计本题中输出波形是否会因为采用的是两级计数或单通道计数而有所不同?有何不同?数或单通道计数而有所不同?有何不同?2024/8/216211
55、.3.3 波特率时钟发生器的例子波特率时钟发生器的例子要求:设计一个波特率分为要求:设计一个波特率分为8档的波特率发生器,档的波特率发生器, 采用人机对话方式选择波特率,按采用人机对话方式选择波特率,按Esc键退出。键退出。已知:输入时钟为已知:输入时钟为1.19318MHz,波特率因子为,波特率因子为16, 所需的所需的8档输出波特率分别为档输出波特率分别为110b/s、 150b/s、 300b/s、 600b/s、 1200b/s、 2400b/s、 4800b/s、9600b/s。2024/8/2163定时常数的计算定时常数的计算利用利用82C54A方式方式3产生指定波特率的方波,用于
56、串行数据传送。产生指定波特率的方波,用于串行数据传送。定时常数:定时常数:TcCLK频率频率 / (Baud Factor)波特率波特率110b/s,Tc1.19318106/(11016)678波特率波特率150b/s, Tc1.19318106/(15016)497波特率波特率300b/s, Tc1.19318106/(30016)249波特率波特率600b/s, Tc1.19318106/(60016)124 2A6H1F1H0F9H07CH2024/8/2164波特率时钟发生器的设计波特率时钟发生器的设计硬件设计硬件设计82C54A的计数通道产生所需的时钟;的计数通道产生所需的时钟;n
57、CLK接输入时钟,接输入时钟,OUT得到输出时钟;得到输出时钟;nGATE接接8255A的的PC6,控制,控制82C54A的工作;的工作;软件设计软件设计定时常数定时常数事先设定,存于数据区;事先设定,存于数据区;根据指定的波特率,根据指定的波特率,查表查表选择定时常数,送入计数通道;选择定时常数,送入计数通道;TC_TABLEA602F1 01F9007C003E001F0010000800110b/s150b/s300b/s9600b/s 2024/8/2165程序流程图程序流程图开开 始始芯片等初始化芯片等初始化输出提示信息输出提示信息判断并处理键值判断并处理键值查表,找到对应的定时常数
58、,查表,找到对应的定时常数,并装入计数通道并装入计数通道允许计数开始允许计数开始有键按下?有键按下?时钟发生停止?时钟发生停止?禁止计数禁止计数结结 束束YYNN请选择波特率:请选择波特率:0110b/s;1 150b/s;2300b/s;3 600b/s;4 1200b/s;5 2400b/s;64800b/s;79600b/s2024/8/2166程序清单(程序清单(1/2);写;写82C54A工作方式命令字工作方式命令字MOV DX , 307HMOV AL , 10 11 011 0 BOUT DX , AL;写;写8255A的工作方式命令字的工作方式命令字MOV AL , 1 000
59、 0000 BOUT 63H , AL;使;使PC6=0,禁止计数,禁止计数MOV AL , 0000 1100 BOUT 63H , AL;输出字符串的;输出字符串的DOS功能调用功能调用LEA DX , INPUT_MESSMOV AH , 09HINT 21H;等待键盘输入;等待键盘输入INPUT: MOV AH , 08HINT 21H;判断按键是否合法;判断按键是否合法CMP AL , 0JB INPUTCMP AL , 7JA INPUT;按键值查表,获取定时常数;按键值查表,获取定时常数SUB AL , 30HMOV AH , 0SHL AX , 1LEA SI , TC_TAB
60、LEADD SI , AXMOV AX , SI2024/8/2167程序清单(程序清单(2/2);将定时常数写入计数通道;将定时常数写入计数通道MOV DX , 306HOUT DX , ALMOV AL , AHOUT DX , AL;允许计数;允许计数MOV AL , 0000 1101 BOUT 63H , AL;检测按键;检测按键LOP:MOV AH , 0BHINT 21HCMP AL , 0JZ LOP;有按键,则判断;有按键,则判断MOV AH , 08HINT 21HCMP AL , 1BHJE QUITJMP LOP;退出本次计数;退出本次计数QUIT: MOV AL ,
61、0000 110 0 BOUT 63H , ALJMP INPUT2024/8/2168本章小结本章小结了解定时和计数的联系和区别、内部定时和外部定时、软件了解定时和计数的联系和区别、内部定时和外部定时、软件定时和硬件定时;定时和硬件定时;熟悉熟悉82C54芯片计数通道的内部结构及外部引脚;芯片计数通道的内部结构及外部引脚;掌握掌握82C54计数初值的计算方法;计数初值的计算方法;掌握掌握82C54工作方式命令字的应用;工作方式命令字的应用;对芯片的初始化、读取当前计数值;对芯片的初始化、读取当前计数值;熟悉熟悉82C54方式方式03的基本情况,并能根据情况灵活应用不同的基本情况,并能根据情况
62、灵活应用不同的工作方式,能够写出芯片的初始化程序。的工作方式,能够写出芯片的初始化程序。2024/8/2169本章作业本章作业P2461、2、3、4、5、9、10(写在课本上)(写在课本上)补充作业补充作业1.82C54A有哪几种计数触发方式?请说明其具体的触发过程。有哪几种计数触发方式?请说明其具体的触发过程。2.要求要求82C54A的三个计数通道完成以下功能,试写出初始化程的三个计数通道完成以下功能,试写出初始化程序段,已知输入时钟脉冲的频率为序段,已知输入时钟脉冲的频率为1MHz;通道通道0输出频率为输出频率为2KHz的方波;的方波;通道通道1输出宽度为输出宽度为480s的单脉冲;的单脉冲;通道通道2由硬件触发,输出一个时钟周期的单脉冲,时间常由硬件触发,输出一个时钟周期的单脉冲,时间常数为数为26。3.请使用请使用82C54A产生周期为产生周期为2s,占空比为,占空比为3:2的矩形波。假定的矩形波。假定输入时钟频率为输入时钟频率为5MHz。2024/8/2170部分资料从网络收集整理而来,供大家参考,感谢您的关注!