第10章 可编程定时计数器芯片_第1页
第10章 可编程定时计数器芯片_第2页
第10章 可编程定时计数器芯片_第3页
第10章 可编程定时计数器芯片_第4页
第10章 可编程定时计数器芯片_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

06二月20231第10章可编程定时计数器芯片10.1定时/计数器的概念10.28253A可编程定时/计数器10.38253A控制字和工作方式10.48253A的编程应用06二月2023210.1定时/计数器的概念定时日常生活:日时钟、实时钟。微机系统:系统时钟、DRAM刷新定时、周期性控制信号。定时与计数的关系相同点由数字电路中的计数电路构成;定时就是采用时间单位进行计数。不同点定时是对固定频率的脉冲信号进行计数;计数是对随机性的脉冲信号进行计数。06二月20233微机系统中的定时内部定时:CPU(主机)本身工作的控制时序,如时钟周期;由硬件结构确定,微机中所有操作都要严格按照此节拍来完成,是固定的,无法更改的。一般为ns(纳秒)级;外部定时:外设工作时,所需要的时序关系;实时监控系统的定时中断、定时监测、定时扫描等;对I/O设备运行速度和工作频率的调整和控制;一般定时为ms(毫秒)级;06二月20234外部定时方法(1/2)软件定时:定时方法:通过CPU执行一段循环程序,而产生等待延时;需要按延时的时间来计算时间常数。优点:节省硬件成本;缺点:占用CPU的时间,降低了CPU的工作效率;软件延时的时间随主机频率不同而发生变化,通用性差。适用于短时间或不频繁发生延时的简单系统。06二月20235延时程序:

……

……MOVDX,

0FFFFH

AGAIN:

MOVCX,DXWAIT:NOPLOOPWAITDECDXJNZAGAIN

……

……也可单独作为一延时程序,延时时间较短延时常数决定于:需要的延时时间、系统主频、指令的执行时间延时常数06二月20236外部定时方法(2/2)硬件定时:方法:采用可编程定时/计数器或单稳延时电路产生定时或延时。特点:不占用CPU时间,提高了CPU的利用率;可以产生精确的时间时隔,形成各种脉冲序列,灵活性强;定时不受主机频率影响,定时程序通用性强。可用于各种定时计数场合。06二月2023710.28253A可编程定时/计数器1、8253A芯片的工作特点2、8253A芯片的外部引脚特性3、8253A的内部结构4、计数初值的设置06二月202381、8253A芯片的工作特点每片8253A上都有3个独立的16位的计数通道;最大可计数值为216=65536;每个通道计数均可编程设置为二进制或BCD码计数;BCD码计数即十进制计数;每个计数通道都有6种工作方式,可以编程选择;每种工作方式的输出波形、触发方式等不同;计数通道都是减法计数器;计数/定时启动之前需要设置计数初值/定时常数;06二月202392、8253A芯片的外部引脚特性数据总线片选及读写控制信号片内端口选通信号计数通道0的输入、输出信号计数通道1的输入、输出信号计数通道2的输入、输出信号06二月202310计数通道的外部信号时钟输入信号CLK定时计数时,每经过一个脉冲/时钟周期,计数值减1;门控输入信号GATE用于控制计数的启停;可有开关作用和触发作用;计数器输出信号OUT各种波形输出端;可供CPU检测状态,也可用于提供请求信号。06二月202311定时/计数器的读写操作类型06二月2023123、8253A的内部结构数据总线缓冲器:三态双向8位寄存器;8253A与CPU之间数据交换的部件;读/写控制逻辑:接收CPU有关控制信号,决定操作对象及类型。控制字寄存器:接收CPU发出的控制字,决定各计数器的工作方式;三个计数通道共用一个命令端口区分该芯片内部的端口类型!计数通道为数据端口,每个计数通道分别占用一个端口地址;(计数通道0—304H、计数通道1—305H、计数通道2—306H)控制字寄存器为命令端口,占用一个端口地址(307H);无状态端口。06二月202313计数通道的内部结构存放CPU发出的计数初值,在计数过程中不发生变化;用于自动重装计数初值。锁存当前的计数值,以供CPU读取。装入计数初值,每个计数脉冲到来时执行减1操作。时钟脉冲输入端控制输入端,对计数操作起开关作用或触发作用输出端,其输出波形由操作方式决定注意CPU对计数器内部部件的可访问性!16位当前计数值锁存器 —— 只读16位减1计数器 —— 不可访问16位计数初值寄存器 —— 可读写06二月2023144、计数初值的设置8253A芯片的初始化步骤:按照命令字格式写出满足当前操作的命令字,使用I/O指令将其写入命令端口;写入命令字后,计数初值寄存器清零;确定计数初值(定时常数),使用I/O指令将初始值装入指定计数通道的初值寄存器。计数初值会通过初值寄存器送入减1计数器;当计数条件满足时,减1计数器即开始定时/计数。06二月202315计数初值的确定按定时时间计算:t—定时时间、TCLK

-时钟周期则计算公式为:n=t/TCLK

按脉冲序列频率计算:fCLK-输入时钟频率;fOUT-输出波形频率则计算公式为:n=fCLK/fOUT计数初值的范围:二进制:00000~0FFFFH十进制(BCD码):00000~9999其中,最大值为0,因为计数器计数时先减1后判断。n-计数初值(定时常数)06二月202316计数初值/定时常数计算例子假定输入时钟频率fCLK=2MHz要求1:定时20msn=t/TCLK=t×fCLK=20×10-3×2×106=40000要求2:产生1KHz的方波n=fCLK/fOUT=2×106/1×103=200006二月20231710.38253A的控制字和工作方式工作方式控制字的作用初始化操作中使用按计数通道的使用设置工作方式控制字;将计数初值写入对应的计数通道;读通道中的当前计数值使用工作方式控制字,设置对应通道的锁存命令;读对应通道,得到当前计数值;06二月202318工作方式控制字SC1SC0RL1RL0M2M1M0BCD计数器选择00计数器001计数器110计数器211不用计数数制0二进制1BCD码命令类型00锁存命令01读/写低8位10读/写高8位11先读/写低8位再读/写高8位工作方式选择000方式0001方式1010方式2011方式3100方式4101方式5110无效11106二月202319工作方式控制字的应用举例(1/4)例1.选择计数通道2,工作在方式3下,计数初值为533H,采用二进制计数,试写出其初始化程序段。工作方式控制字初始化程序段写入命令字:写入计数初值(先写低字节,再写高字节):MOVDX,306HMOVAL,05HMOVDX,307HMOVAL,0B6HOUTDX,ALOUTDX,ALMOVAL,33HOUTDX,ALSC1SC0RL1RL0M2M1M0BCD1011011006二月202320初始化程序段MOVDX,307HMOVAL,0B6HOUTDX,ALMOVDX,306HMOVAL,33HOUTDX,ALMOVAL,05HOUTDX,AL初始化程序执行过程1011011000110011000001010000010100110011000000000000000006二月202321工作方式控制字的应用举例(2/4)例2.计数通道1工作于方式0,用二进制计数,计数初值为128。工作方式控制字初始化程序段

MOVDX,307H MOVAL,50H

OUTDX,AL

MOVDX,305H

MOVAL,128

OUTDX,ALSC1SC0RL1RL0M2M1M0BCD0101000006二月202322工作方式控制字的应用举例(3/4)例3.计数通道0工作于方式1,按BCD码计数,计数值为3000。工作方式控制字初始化程序段 MOVDX,307H MOVAL,33H OUTDX,AL

MOVDX,304H

MOVAX,3000

SC1SC0RL1RL0M2M1M0BCD00110011OUTDX,ALMOVAL,AHOUTDX,ALH06二月202323工作方式控制字的应用举例(4/4)例4.读取1号计数器的当前计数值,并判断是否为全1。读当前计数值的操作: 先发锁存命令,锁存当前计数值; 再用输入指令从计数器的当前计数值锁存器中读取数据。命令字:程序段 发锁存命令

MOVDX,307H MOVAL,40H OUTDX,ALSC1SC0RL1RL0M2M1M0BCD01000000读计数值判断处理MOVDX,305HINAL,DXCMPAX,0FFFFHJEYES…………INAL,DXMOVAH,ALXCHGAL,AH假定初始化的工作方式控制字的RL位为11。06二月2023248253A对计数通道的访问类型写计数通道写计数通道的初值寄存器;读计数通道读计数通道的初值寄存器;直接读取计数通道;读计数通道的当前计数值;先使用工作方式控制字发锁存命令,再读取计数通道;06二月2023258253A的工作方式8253A共有6种工作方式,三个计数通道都可以工作在这6种工作方式下。学习这6种工作方式的要点:输出波形;计数的触发方式;软件触发、硬件触发、软硬触发;计数过程中,门控信号GATE的变化对计数的影响;不影响、停止计数、暂停计数、重新计数;重装计数初值后,对计数过程的影响;不影响、立刻生效、下次计数生效;06二月2023261.方式0——计数结束产生正脉冲每次用命令字设置计数器为方式0或写入计数初值后,输出端OUT的起始电平为低电平;写入计数初值后,经过一个时钟周期,将计数初值送入减1计数器开始计数,OUT输出维持低电平;直至计数值变为0,OUT输出端变为高电平,并维持到下次使用计数器。CWn=33210CLKWR#OUT06二月202327门控信号GATE对计数起开关作用。即当GATE=1时,允许计数;当GATE=0时,禁止计数。计数过程中,GATE变为低电平,暂停计数;当GATE再次变为高电平时,从中止计数处继续开始计数。GATE的变化并不影响OUT端的输出状态。0门控信号的作用n=3322CLKWR#OUTGATE106二月202328计数过程中,若计数初值发生变化,则计数器会在下一时钟周期将新的计数值写入减1计数器,并重新开始计数;方式0是软件触发(写计数初值的OUT指令)的计数方式。方式0的计数初值只一次有效;若要再次计数,即使计数值不变,也需重新写入计数初值。n=4n=3324CLKWR#OUTGATE321改变计数初值的影响06二月2023293n=3WR#CW2.方式1——硬件可重复触发的单脉冲发生器当命令字设定方式1后,输出端OUT以高电平为起始电平;写入计数初值后,经过一个时钟周期,将计数初值送入减1计数器,但并不开始计数;当门控信号GATE出现上升沿,则开始计数,计数开始的同时,OUT输出端变为低电平,作为单脉冲的开始;直到计数值为0,OUT输出变回高电平,计数结束,即单脉冲结束。20CLKOUTGATE106二月202330GATE信号对计数过程起触发作用。GATE的上升沿会使计数过程重新开始;但其高、低电平及下降沿不影响计数。实质上,GATE的上升沿使计数初值寄存器将当前的计数初值再次装入减1计数器中;GATE变化不影响OUT的输出状态,但会影响输出单脉冲的宽度。n=3320CLKWR#OUTGATE321门控信号的作用06二月202331n=4n=3计数初值多次有效,即该方式下计数过程可以重复被触发。计数过程中,若计数初值发生变化,则当GATE再次出现上升沿时,立即以新的计数初值开始计数;否则,计数初值的改变不会影响当前的计数过程。32CLKWR#OUTGATE14321改变计数初值的影响06二月202332方式0与方式1的比较输出波形大致相同;在一次计数过程中输出单次负脉冲;触发方式不同;方式0——软件触发;方式1——硬件触发;方式0主要使用计数结束的上升沿脉冲作为请求信号使用;方式1主要用作定时器使用。方式1是由硬件触发计数的,因此方式1输出的负脉冲宽度是可以由计数初值精确计算的,而方式0不可。06二月20233311n=3CWWR#3.方式2——分频器当命令字设置方式2后,OUT输出端的初始状态为高电平;装入计数初值后,开始计数,输出端仍维持高电平;直到计数值为1时,OUT输出一个时钟周期的低电平,一次计数结束,输出恢复高电平;然后自动重装计数初值,再次进行同样的计数,从而产生连续的脉冲序列。320CLKOUT32006二月202334n=3门控信号GATE对计数过程有开关作用,也有触发作用。当GATE=1时,允许计数;当GATE=0时,禁止计数;当GATE出现上升沿时,可以触发计数重新开始。0CLKWR#OUTGATE321322计数过程中,仅计数初值发生变化若没有GATE上升沿,则不影响本次的计数过程;只是在当前计数归0,自动装入新的计数初值开始新的计数;若出现GATE上升沿,则在下个时钟周期立刻装入新的计数初值开始计数;门控信号的作用06二月2023354n=4CW4.方式3——方波发生器当命令字设置方式3后,OUT输出端的初始状态为高电平;装入计数初值后,开始计数,输出端仍维持高电平;当计数到一半时,OUT输出变为低电平,直到计数值为0,恢复高电平的输出;然后自动重装计数初值,再次进行同样的计数,从而产生连续的方波序列。输出方波或基本对称的矩形波,常作为某些慢速外设的时钟输入信号320CLKWR#OUT14306二月202336计数初值的一半:当计数初值为偶数时,计数到n/2,输出端OUT发生负跳变,得到占空比为1:1的方波;当计数初值为奇数时,计数到(n+1)/2,输出端OUT发生负跳变,得到占空比为(n+1)/2:(n-1)/2的矩形波。门控信号GATE对计数过程起开关作用和触发作用,同方式2。计数过程中写入新的计数初值,则会在半周期结束或门控脉冲触发时,重新装入新值,开始计数。关于门控信号和计数初值06二月202337方式2和方式3的比较方式2主要用于产生周期性负脉冲;

方式3主要用于产生方波或矩形波;方式2和方式3的计数触发方式均为软硬件触发。软件触发方法——重新写入计数初值;在一个完整的计数周期(方式2)或半周期(方式3)输出完成后,按照新的计数初值开始计数;硬件触发方法——门控信号出现上升沿;立即(下个时钟周期)触发新的计数过程,即输出脉冲序列的频率随GATE信号的变化而随时发生改变。06二月202338n=35.方式4——软件触发选通的单脉冲发生器当用命令字设置方式4后,OUT输出端的初始状态为高电平;装入计数初值后,即开始计数;在计数过程中,输出端始终维持高电平;当计数为0,OUT输出一个时钟周期的负脉冲,结束计数。CW3210CLKWR#OUT06二月202339n=3CW6.方式5——硬件触发选通的单脉冲发生器当命令字设置方式5后,OUT输出端的初始状态为高电平;装入计数初值后,并不立即开始计数;当GATE出现上升沿时,开始减1计数,OUT维持高电平;当计数为0时,OUT输出一个时钟周期的负脉冲,结束计数。320CLKWR#OUTGATE106二月202340方式4和方式5的比较输出波形完全相同;一次计数得到单次单拍负脉冲;计数的触发方式不同;方式4——软件触发;触发方式、GATE和计数初值改变时,对计数的影响同方式0;方式5——硬件触发;触发方式、GATE和计数初值改变时,对计数的影响同方式1;06二月202341各种工作方式的功能方式功能输出波形描述输出波形0计数结束产生正脉冲单次负脉冲1单脉冲发生器单次负脉冲2分频器连续脉冲波3方波发生器连续方波4软件触发选通单次单拍负脉冲5硬件触发选通单次单拍负脉冲n0n0n0n0n0n0n0n006二月202342计数器启动和重复计数的条件方式功能启动条件重复条件0计数结束产生正脉冲软件触发写计数值1单脉冲发生器硬件触发GATE信号触发2分频器软硬件触发3方波发生器软硬件触发4软件触发选通软件触发写计数值5硬件触发选通硬件触发GATE信号触发06二月202343门控信号GATE的作用方式GATE信号的状态低电平或下降沿上升沿高电平0暂停计数不影响计数允许计数1不影响计数重新计数不影响计数2停止计数重新计数允许计数3停止计数重新计数允许计数4暂停计数不影响计数允许计数5不影响计数重新计数不影响计数06二月202344计数过程中改变计数初值的结果方式功能改变计数初值0计数结束产生中断信号立即有效1单脉冲发生器门控信号触发后有效2分频器(速率发生器)当前计数周期结束

(计数到1后)或门控信号触发后有效3方波速率发生器当前半个计数周期结束(计数到一半或计数到0后)或门控信号触发后有效4软件触发选通立即有效5硬件触发选通门控信号触发后有效06二月20234510.48253A的编程应用1、微机系统中的应用2、两级计数例子3、波特率时钟发生器例子06二月2023461、微机系统中的应用(1)通道0——系统时钟更新中断信号工作于方式3,计数初值为0;(2)通道1——动态存储器的定时刷新信号工作于方式2,计数初值为18;(3)通道2——发声系统音频信号工作于方式3,计数初值为533H;06二月202347去8237PC系列机中定时系统结构框图端口地址为40H~43H作为系统时钟更新中断信号06二月202348(1)系统时钟更新中断信号(通道0)工作于方式3,计数初值为0;GATE0接+5Ⅴ,CLK0输入时钟频率为1.1931816MHz;OUT0输出频率为18.2Hz的方波;输出脉冲周期=1/18.2≈55ms;OUT0连接8259A的IRQ0上,约55ms产生1次中断,用于更新系统的日时钟计数。系统直接调用固化在BIOS中的中断类型号为08H的中断服务程序。初始化程序如下:MOVAL,00110110BOUT43H,ALMOVAL,0OUT40H,ALOUT40H,AL06二月202349(2)动态存储器的定时刷新信号(通道1)工作于方式2,计数初值为18;GATE1接+5Ⅴ,CLK1输入时钟频率为1.1931816MHz;OUT1每隔15.08μs输出一个负脉冲;OUT1连接到8237的DREQ0上;8237通道0用于控制DRAM的刷新;8253A的通道1定时产生DRAM的刷新请求信号,每个周期刷新存储器一行。初始化程序如下:MOVAL,01010100BOUT43H,ALMOVAL,18OUT41H,AL06二月202350(3)发声系统音频信号(通道2)工作于方式3,计数初值为533H;GATE2由8255A的PB0位控制,CLK2输入时钟频率为1.1931816MHz;OUT2输出频率约为900Hz的方波;输出信号与8255的PB1位(控制发声)共同经过滤波,作为系统扬声器发声的音频信号,进行提示和故障报警。初始化程序如下:MOVAL,10110110BOUT43H,ALMOVAX,533HOUT42H,ALMOVAL,AHOUT42H,AL06二月202351BIOS中对计数通道2的初始化编程BEEPPROCFAR INAL,61H MOVAH,AL PUSHAX

MOVAL,10110110B OUT43H,AL

MOVAX,0533H OUT42H,AL MOVAL,AH OUT42H,AL POPAX

ORAL,03H OUT61H,AL

NOPL1:LOOPL1

ANDAL,0FDH OUT61H,AL

MOVAL,AH OUT61H,AL

RETBEEPENDP读8255PB口保存方式3,写16位计数初值OUT2输出频率为1.1931816M/1331=896Hz的方波置PB0、PB1为1,打开扬声器由CX决定延时长短置PB0、PB1为0,封锁OUT2输出恢复原PB端口值发声系统连接图06二月202352发声系统连接图06二月202353使用入口参数

指定扬声器的发声频率和发声持续时间BIOS中对应程序;功能:按照指定的时间间隔发指定频率的声音

;入口参数:

CX=指定频率,BX=指定时间;返回:无SOUNDPROCFAR

MOVAL,10110110B OUT43H,AL MOVAX,CX OUT42H,AL MOVAL,AH OUT42H,AL

INAL,61H MOVAH,AL ORAL,03H OUT61H,ALL1:MOVCX,5000HL2:LOOPL2 DECBX JNZL1 MOVAL,AH OUT61H,AL

RETSOUNDENDP06二月2023542、两级计数例子

利用8253A设计一个定时器,每5秒钟输出一个负脉冲,设外部时钟频率为2.5MHz。计数初值为n=5/TCLK=5×fCLK=5×2.5×106=12.5×106

故采用两级计数器;使用8253A的计数通道0和计数通道1计数通道0:方式3,产生频率低于外部时钟频率的方波;计数通道1:方式2,产生最终的负脉冲序列;8253A的硬件连接通道0的OUT输出端作为通道1的CLK时钟输入;两个通道的GATE端均接高电平;>>6553606二月202355硬件连接图输入2.5MHz的时钟工作于方式2和方式3下,使GATE始终为高电平11输出40Hz的方波作为计数器1的输入输出每5秒一个负脉冲的脉冲序列计数器0输出脉冲序列的频率OUT0

=CLK0/n0=2.5MHz/62500=40Hz8253AOUT0GATE0CLK1GATE1CLK0OUT106二月202356两个通道的计数初值和命令字总的计数初值n为12.5×106;采用两级计数时,通道0、1的计数初值n0、n1n=n0×n1假定选择计数值为n0:62500;n1:200设置命令字:计数通道0计数通道1SC1SC0RL1RL0M2M1M0BCD00110110SC1SC0RL1RL0M2M1M0BCD0101010006二月202357初始化程序段计数器0的初始化程序段:MOVDX,307HMOVAL,36HOUTDX,AL;设置命令字MOVDX,304HMOVAX,62500OUTDX,ALMOVAL,AHOUTDX,AL;设置计数初值计数器1的初始化程序段:MOVDX,307HMOVAL,54HOUTDX,AL;设置命令字MOVDX,305HMOVAL,200OUTDX,AL;8位计数初值06二月202358答: 其输出波形的负脉冲宽度会有不同。 单通道计数——输出负脉冲宽度为1个时钟周期; 双通道计数——输出负脉冲宽度由第一级计数的输出决定。思考:

本题中输出波形是否会因为采用的是两级计数或单通道计数而有所不同?有何不同?06二月2023593、波特率时钟发生器的例子要求:设计一个波特率分为8档的波特率发生器,

采用人机对话方式选择波特率,按Esc键退出。已知:输入时钟为1.19318MHz,波特率因子为16,

所需的8档输出波特率分别为110b/s、150b/s、

300b/s、600b/s、1200b/s、2400b/s、

4800b/s、9600b/s。06二月202360定时常数的计算利用8253A方式3产生指定波特率的方波,用于串行数据传送。定时常数:Tc=CLK频率/(Baud×Factor)波特率110b/s,Tc=1.19318×106/(110×16)=678波特率150b/s,Tc=1.19318×106/(150×16)=497波特率300b/s,Tc=1.19318×106/(300×16)=249波特率600b/s,Tc=1.19318×106/(600×16)=124

2A6H1F1H0F9H07CH06二月202361波特率时钟发生器的设计硬件设计8253A的计数通道产生所需的时钟;CLK接输入时钟,OUT得到输出时钟;GATE接8255A的PC6,控制8253A的工作;软件设计定时常数事先设定,存于数据区;根据指定的波特率,查表选择定时常数,送入计数通道;TC_TABLEA602F101F9007C003E001F0010000800110b/s150b/s300b/s9600b/s…………06二月

温馨提示

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

评论

0/150

提交评论