82538254的基本原理及应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

8253/8254的基本知识•8253/8254是一个有3个独立的16位的通用定时计数器•8254与8253的引脚与功能完全相同,只是8254的最高工作频率要比8253高。•8253占用4个端口,3个定时器各占1个,控制端口占1个。(P290)8253/8254的引脚•8位数据线:与CPU相连•WR、RD、CS、A0、A1的用途与8255一样•3个定时器分别有:–CLK:输入脉冲信号–OUT:输出信号–GATE:输入门控信号8253内部逻辑数据总线缓冲器读/写控制逻辑控制寄存器计数器2OOO计数器1CLK1GATE1OUT1CLK2GATE2OUT2D0D7~RDWRA0A1CS计数器0CLK0GATE0OUT0计数器0计数初值寄存器高8低8执行部件输出锁存寄存器D0D7~8253基本原理图8253内部结构及引脚•写8253的控制字,写入控制寄存器(A1,A0=11)•写入计数值,写到相应的计数器。•8253控制寄存器格式D0D1D2D3D4D5D6D7BCDM1M2M3RW0RW1SC0SC1工作方式选择000:方式0001:方式1010:方式2101:方式5......计数值写入顺序00:读计数值(锁存)01:写低8位,高8位为010:写高8位,低8位为011:先写低8位,后写高8位计数器选择00:计数器001:计数器110:计数器211:*8254读回8253的编程计数值形式0:二进制1:BCD码计数过程中读计数值•读取当前计数值:–先向控制寄存器写锁存命令(即D5D4=00),把当前计数值锁存到输出锁存器–再执行读相应端口数据•读取装入的计数值:–直接读取相应的端口–分两次读出:先低字节,后高字节8253工作方式•8253的工作方式有6种:–方式0:计数结束产生中断–方式1:程序可控单稳–方式2:频率发生器–方式3:方波频率发生器–方式4:软件触发–方式5:硬件触发方式0:计数结束产生中断•向计数器写完计数值时,开始计数,OUT变为0•计数到0时OUT输出为1•GATE为高电平时,计数器工作,为低电平时停止计数•在计数时,若重新写入新的技术值,则按新的值重新工作WRN=4初始低电平43210OUTGATE=1计数到0产生高电平写入计数值开始计数计数值一次有效方式1:可编程单拍脉冲•设置方式后,OUT即变为高电平•写入计数值后,并不开始计数,只有其后当GATE的上升沿才开始工作,OUT变为低。计数到0后,OUT变高•计数过程中若GATE又出现0-1的脉冲,则重新装入原始计数值,重新开始计数。•若计数中改变计数值,则要下次才会以新数计数。WRGATEOUTN=332103210计数值写入计数值不计数GATE触发开始计啥初始高电平GATE再次触发再计数计数值多次有效方式2:频率发生器•为自动装入计数常数的计数器。计数期间OUT为1,计数到0后输出1个周期的0,并重新装入计数值开始计数。•计数过程中若GATE又出现0-1的脉冲,则重新装入原始计数值,重新开始计数。•若计数中改变计数值,则要下次才会以新数计数。N=4WROUT4321(4)0321周期等于计数值NGATE=11个CLK自动连续循环计数不用触发计数值多次有效写入计数值开始计数方式3:方波发生器•方式3与方式2相似•OUT输出是一个占空比为1:1的方波•若计数为奇数,则前面的1比后面的0多1个脉冲432103210543210N24242N=奇数,高电平N+12低电平N-125+125-12其它同方式2计数值N=偶数,输出对称的方波WROUTN=33210GATE=1软件触发写入计数值开始计数1个CLK计数值一次有效,再计数需在次写入计数值方式4:软件触发选通•写入计数值后输出为高,开始计数•计数结束时,输出1个脉冲低电平,再变高•若计数中改变计数值,则要结束后才会以新数计数。WRN=3GATEOUT3210写入计数值不计数GATE触发计数3210GATE再次触发,再次计数计数值多次有效1个CLK6、方式5(硬件触发选通)方式5:硬件触发选通•写入计数值后由GATE上升沿启动计数•其余与方式4相同方式012345自动装入计数常数nnyynn启动计数写入门控写入写入写入门控写入控制字后输出011111改变计数值后有效立即触发结束结束结束触发GATE为0暂停计数ynyyyn各种方式的比较000RDWRCSA1A0D0~D7GATE0GATE1GATE2CLK0CLK1CLK2OUT0OUT1OUT2IORIOW74LS138A1A0D0~D7+5V8255PB01.19318MHz82538259A的IR0,系统计时每隔55ms产生一次中断。8237的DRQ0,作DMA请求&低通8255PB1PC机系统板上的8253在PC机上编写音乐程序•硬件连接:8254输入均接1.193180MHz,Gate2接8255PB0,输出OUT2与8255PB1相与后送喇叭。•8255/8253的端口基础地址分别为60/40•频率的计算:A4为440Hz,高一个半音,相差倍。如B的频率为440*2^(1/6)=493.9•定时常数为输入频率/输出频率,即1193180/发音频率•发声编程步骤:–初始化2号定时器:向43端口送0B6H–定时常数分两次(先低后高)送42口–置8255的B0与B1位为1,打开喇叭:端口为61H–延时一段时间后关闭此两位122PC机的0号定时器•0号定时器为系统日时钟功能,定时用•定时常数为0,工作在方式3,输出为1.19318MHz/65536=18.2Hz,接8259的0级中断(INT8)•INT8中断程序中对计时内存变量(两个字:40:6C-6F)进行加1操作,实现计时功能。•0号定时常数可以重新定义,加快中断频率,但使用时要重新定义INT8中断,并在使用完后恢复定时常数与中断向量。

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功