《第8章计器定时器》由会员分享,可在线阅读,更多相关《第8章计器定时器(36页珍藏版)》请在金锄头文库上搜索。
1、微型计算机技术微型计算机技术第第8章章 计数器计数器/定时器定时器计数计数器器与定时与定时器概述器概述可编程计数器可编程计数器/ /定时器定时器82538253 定时器定时器定时器定时器/ / / /计数器计数器计数器计数器8253825382538253内部结构内部结构内部结构内部结构 8253825382538253的的的的引脚功能引脚功能引脚功能引脚功能 8253825382538253的控制字的控制字的控制字的控制字 8253825382538253的工作方式的工作方式的工作方式的工作方式 8253825382538253编程举例编程举例编程举例编程举例 825382538253825
2、3应用举例应用举例应用举例应用举例耀咨墅华汪俱珠家乌劫刀扫串蹲饥壁头园隔回赠袄帜涵丁吭弯污脉叫香襄第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8.1 计数计数器器与定时与定时器概述器概述1. 1. 计数功能计数功能对事件的个数进行计数。对事件的个数进行计数。正计数:关心记录事件的次数。正计数:关心记录事件的次数。倒计数:关心预先设定事件次数发生完的时刻。倒计数:关心预先设定事件次数发生完的时刻。可由硬件计数器实现,事件作为计数器的时钟,此时事件可由硬件计数器实现,事件作为计数器的时钟,此时事件的出现频率不一定一成不变。的出现频率不一定一成不变。溢咒爷津界顺妇村婴澜晌英录碳抨铣祷
3、鲁烙虎搜庚敝慨羡辱夹衬愈赫陇秸第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术2.2.定时功能定时功能取得给定的时间间隔。取得给定的时间间隔。延时:某事件发生后间隔一定时间的时刻。延时:某事件发生后间隔一定时间的时刻。时标:给定时间间隔的连续脉冲。时标:给定时间间隔的连续脉冲。可由硬件计数器来实现,一定频率的信号作为计可由硬件计数器来实现,一定频率的信号作为计数器的时钟,如果只计数到就终止,即为延时。数器的时钟,如果只计数到就终止,即为延时。如果连续不断的计数即可输出时标。如果连续不断的计数即可输出时标。撤姬肆耘其找祖逐吐梢羞郑脖腔吴增员忽穴嘴坍踏泼净鹊何皖鼻换靶污沈第8章计器定时
4、器第8章计器定时器微型计算机技术微型计算机技术3. 3. 计数器计数器/ /定时器的用途定时器的用途计数功能计数功能作为计数个数到中断信号。作为计数个数到中断信号。记录外部特定事件发生的个数。记录外部特定事件发生的个数。定时功能定时功能作为周期性定时中断信号。作为周期性定时中断信号。用于分时性操作系统。用于分时性操作系统。用作系统时钟基准。用作系统时钟基准。作为一个可编程波特率发生器。用于异步串行通讯。作为一个可编程波特率发生器。用于异步串行通讯。作为作为I/O设备输出定时信号。实现外设与设备输出定时信号。实现外设与CPU的同步。的同步。节约节约CPU的时间延时。的时间延时。作为音源。作为音源
5、。中兵痒剂纹拳呼尊诱镊钉虞珐教讳戚忿币奶简己蚌欲待致术徘亏绕顽邱菠第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8.2 可编程计数器可编程计数器/定时器定时器82538253 8.2.1可编程计数器可编程计数器/定时器工作原理定时器工作原理 1、计数功能、计数功能C设置计数初值,按减设置计数初值,按减1或加或加1计数,减到计数,减到0或加到溢出时输出一或加到溢出时输出一个信号,标志预置的计数值到。此时输入的计数脉冲的间隔个信号,标志预置的计数值到。此时输入的计数脉冲的间隔不一定是固定的。不一定是固定的。C计数功能关心的是计数脉冲的个数,而非脉冲的时间间隔。计数功能关心的是计数脉冲
6、的个数,而非脉冲的时间间隔。 2、定时功能、定时功能C设定时常数(计数初值),对输入的周期性脉冲进行减设定时常数(计数初值),对输入的周期性脉冲进行减1或加或加1计数,计数为计数,计数为0时输出定时到脉冲,若连续计数便可按定时时输出定时到脉冲,若连续计数便可按定时常数输出时钟周期整数倍的定时间隔信号。常数输出时钟周期整数倍的定时间隔信号。C定时功能关心的是计数初值的写入时间与脉冲输出的时间间定时功能关心的是计数初值的写入时间与脉冲输出的时间间隔,要求输入的脉冲具有固定的频率。隔,要求输入的脉冲具有固定的频率。妖遮姨可很若饼味卓涅策撮韩袁陶核更蝉跋聪椎甚闲榆尚喂将装冶捐聘题第8章计器定时器第8章
7、计器定时器微型计算机技术微型计算机技术8.2.28.2.2 定时器定时器/ /计数器计数器82538253内部结构内部结构lIntel 8253Intel 8253是具有三个通道的是具有三个通道的1616位定时器位定时器/ /计数器,可由软计数器,可由软件设定件设定6 6种工作方式。种工作方式。82538253内部有三个独立的内部有三个独立的计数器计数器通道:通道:计数器计数器0 0、1 1、2 2,结,结构完全相同。构完全相同。每个通道有每个通道有6 6种工作方式,由控制寄存器选择种工作方式,由控制寄存器选择。控制寄存器为控制寄存器为8 8位,计数初值计数器位,计数初值计数器CRCR1616
8、位,计数执行位,计数执行部件部件CECE1616位,计数输出锁存器位,计数输出锁存器OLOL1616位。位。计数执行部件为计数执行部件为1616位的减法计数器,但位的减法计数器,但1616位寄存器都可位寄存器都可用于用于8 8位,便于与位,便于与8 8位数据总线相连。位数据总线相连。每个通道可对外部输入每个通道可对外部输入CLKCLK进行二进制或十进制减进行二进制或十进制减1 1计数。计数。计数由引脚计数由引脚GATEGATE控制。控制。计数器归计数器归0 0时由时由OUTOUT引脚输出信号。引脚输出信号。景师则赶涪诛按足富玫息传遵梆德珍您跑杨惕还崩诞哆汾藕蜗勇舱并涯抉第8章计器定时器第8章计
9、器定时器微型计算机技术微型计算机技术82538253的内部结构的内部结构D7D0缓冲器缓冲器RDWRA0A1CS读写读写控制控制逻辑逻辑数据数据控制控制寄存器寄存器计数器计数器0CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2计数器计数器1计数器计数器282538253内部结构内部结构孝褥磨斑眷燕主箩薪擞辽法叼烧参敞娘乖椭卧纲带懊撩欣颂摘撩言梳捞润第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8253内部每个计数器通道的结构图内部每个计数器通道的结构图8位控制寄存器位控制寄存器高高8位位 低低8位位高高8位位 低低8位位高高8位位 低低8位位计数器计
10、数器1 计数器计数器2计数初值计数初值寄存器寄存器(CR)计数执行计数执行部件部件(CE)计数输出锁存器计数输出锁存器 (OL)CLK0GATE0OUT0D7D0RDWRCSA1A0计数器计数器0白雪鳖篇起娇丝呻携威消爆但商启梯凳胁嘻泡静球盆阑躇驻傲衰配狰珐裴第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8.2.38.2.3 82538253的的引脚功能引脚功能8253具有具有24个引脚,各引脚功能如下:个引脚,各引脚功能如下:D7D0 数据总线,双向三态,可直接与计算机系数据总线,双向三态,可直接与计算机系统数据总线相连。统数据总线相连。RD 读信号,输入,低电平有效,若有效则
11、读信号,输入,低电平有效,若有效则CPU从从8253内部读取数据内部读取数据.WR 写信号,输入,低电平有效,若有效则写信号,输入,低电平有效,若有效则CPU将将数据写入数据写入8253内部寄存器。内部寄存器。CS 片选信号,输入,低电平有效,与计算机连接片选信号,输入,低电平有效,与计算机连接时分配有效地址。时分配有效地址。A1 A0 内部计数器选择信号。内部计数器选择信号。 8253内部有三个计内部有三个计数通道,使用数通道,使用4个端口地址。个端口地址。嚏董索斩怒斤脊宠拦湾馅登框坛缨电椎父附缩刻皂钨仓脉话腆唱孺挽锋酵第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8253引脚
12、功能引脚功能CLK0CLK0、CLK1CLK1、CLK2CLK2 通道通道0 0、通道、通道1 1和通道和通道2 2的计数时钟输入端,下的计数时钟输入端,下降沿使通道减降沿使通道减1 1。GATE0GATE0、GATE1GATE1、GATE2GATE2 门控制,输入,高电平有效或上升沿有效,门控制,输入,高电平有效或上升沿有效,有效时才允许计数器对输入时钟进行计数。有效时才允许计数器对输入时钟进行计数。OUT0OUT0、OUT1OUT1、OUT2OUT2 通道输出信号,当计数器计数到通道输出信号,当计数器计数到“0 0”时由此时由此引脚输出一信号。引脚输出一信号。0 1 0 0 1 0 0 0
13、0 00 1 0 0 1 0 0 10 10 1 0 0 1 0 1 01 00 1 0 0 1 0 1 11 10 0 1 0 00 0 1 0 00 0 1 0 10 0 1 0 10 0 1 1 00 0 1 1 0功功 能能对计数器对计数器0 0设置计数初值设置计数初值CSCSRDRDWRWRA1A1 A0A0对计数器对计数器1 1设置计数初值设置计数初值对计数器对计数器2 2设置计数初值设置计数初值设置控制字设置控制字从计数器从计数器0 0读出计数值读出计数值从计数器从计数器1 1读出计数值读出计数值从计数器从计数器2 2读出计数值读出计数值滇犯乃瘪扫哨景悄搪聚舆申舞丧柏潞树宛飘屋原
14、励台伺抵割迢衔踩描旋绚第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8.2.4 82538.2.4 8253的控制字及工作方式的控制字及工作方式 1. 82531. 8253控制字控制字控制字必须写入控制口,说明如下:控制字必须写入控制口,说明如下:SC1 SC0 SC1 SC0 计数器通道选择计数器通道选择0 0 0 0 通道通道0 00 1 0 1 通道通道1 11 0 1 0 通道通道2 21 1 1 1 非法非法D0D0SC1SC1D7D7SC0SC0BCDBCDRW1RW1RW0RW0M2M2M1M1M0M0让炙铃姓清涕广册彻运据喷蹈袭漱养荒祭捶涨无哈涪孤巾嗽才庶写疾者
15、再第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术82538253控制字控制字RW1 RW0 RW1 RW0 计数器读写选择计数器读写选择 0 0 0 0 计数器锁存计数器锁存0 1 0 1 只读写低只读写低8 8位位1 0 1 0 只读写高只读写高8 8位位1 1 1 1 先低先低8 8位,再高位,再高8 8位位M2 M1 M0 M2 M1 M0 计数器工作方式选择计数器工作方式选择0 0 0 0 0 0 方式方式0 00 0 1 0 0 1 方式方式1 1x 1 0 x 1 0 方式方式2 2x 1 1 x 1 1 方式方式3 31 0 0 1 0 0 方式方式4 41 0 1
16、 1 0 1 方式方式5 5BCD 计数器计数器计数模式计数模式选择选择 0 二进制计数器二进制计数器1 BCD码计数器码计数器娱买挎起夹虽勒努吧叙蓟姻汤啮澡陋蛙成琶众桂怪所乒食堆姚悔哉单篙栽第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术2. 8253 编程命令编程命令因各计数器有自己的端口地址,所以没有太多顺序因各计数器有自己的端口地址,所以没有太多顺序要求,但必须遵守两条规定:要求,但必须遵守两条规定:设置计数初值前必须先写控制字设置计数初值前必须先写控制字设置计数初值时要与控制字中的设置计数初值时要与控制字中的D5 D4D5 D4位规定的读写指示位规定的读写指示一致。一致。
17、命令字共命令字共4 4个:个:写控制字命令写控制字命令设置计数初值(时间常数)命令设置计数初值(时间常数)命令读出命令,读出当前计数值读出命令,读出当前计数值锁存命令,配合读出命令,先锁住,再读出。锁存命令,配合读出命令,先锁住,再读出。必株芦禽鲁翘奔戈细瑰曲贯轿凝棍抠这墨珠姓纫边骂芹铰蝴砍知交咙秦涝第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术3. 3. 8253工作方式工作方式模式模式0 0 计数结束产生中断计数结束产生中断控制字写入后控制字写入后OUTOUT即变为低电平,当计数器为即变为低电平,当计数器为0 0时,输时,输出出OUTOUT变为高电平,并停止现行操作。变为高电
18、平,并停止现行操作。计数初值写入后在下一个计数初值写入后在下一个CLKCLK下降沿才送入计数器,下降沿才送入计数器,因此因此OUT要在要在CPU写入计数初值后经写入计数初值后经N+1个个CLK之后之后才变高。才变高。当当GATEGATE变为低电平时计数停止,再变为高电平时计数变为低电平时计数停止,再变为高电平时计数继续进行。继续进行。若计数过程中重新送入初值,则按新值重新计数。若计数过程中重新送入初值,则按新值重新计数。CLKOUT43210FF方式方式0 0时序图时序图CWN=4WR玄帕为小菱揣宰秆怎审缮稿腿吴斤郑聪彝欢逊殴你丑烽缠测衷阅响橇浆僳第8章计器定时器第8章计器定时器微型计算机技术
19、微型计算机技术模式模式1 1 可重新触发单稳态触发器可重新触发单稳态触发器写入控制字后写入控制字后OUTOUT变为高电平,变为高电平,GATEGATE上升沿后,下一个上升沿后,下一个CLKCLK的下降沿使得的下降沿使得OUTOUT为低电平并开始计数,回零时为低电平并开始计数,回零时OUTOUT变为高变为高电平。电平。GATEGATE再来一次上升沿后会再次使再来一次上升沿后会再次使OUTOUT变为低电平,计数器以变为低电平,计数器以初值重新计数。初值重新计数。再次给通道写入时间常数,不影响现行操作过程,再次给通道写入时间常数,不影响现行操作过程,GATEGATE再再次触发后才按新的时间常数操作。
20、次触发后才按新的时间常数操作。方式方式1时序图时序图OUT3 2 1 0CLKCWN=3WRFFFE3 2GATE通智嚏膏逼脚韵沈哈善喂舱俏宋尚尤契帧噪簿膛烧秆录舵绰眉淹扒卸叉痹第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术模式模式2 2 分频器分频器写入控制字后写入控制字后OUTOUT为高电平,输入时间常数后,下一时钟开始计数,为高电平,输入时间常数后,下一时钟开始计数,减到减到1 1时输出变为低电平,经过一个时输出变为低电平,经过一个CLKCLK输出变为高电平,计数重新开输出变为高电平,计数重新开始。始。GATE=1GATE=1计数进行,计数进行,GATE=0GATE=0计数
21、停止,且下一个计数停止,且下一个CLKCLK下降沿计数器重新下降沿计数器重新赋初值,赋初值,GATEGATE变为高电平,计数重新开始。变为高电平,计数重新开始。计数期间送入新值,计数期间送入新值,GATEGATE若维持高电平,本周期继续进行,下一个周若维持高电平,本周期继续进行,下一个周期按新值计数操作。期按新值计数操作。在计数计到在计数计到1 1之前,若写入新值,而之前,若写入新值,而GATEGATE又出现上升沿,则在下一个又出现上升沿,则在下一个CLKCLK下降沿,以新值重新计数。下降沿,以新值重新计数。方式方式2时序图时序图OUT3 2 1CLKCWN=3WRGATE3 2 1 3 2
22、1啮孝泡帐湛伺妊建捌锦吭栈残孜钻裹姜步趟窝厢腊忍蚁叉高蜡尔忠郑适芦第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术模式模式3 3 方波发生器方波发生器写入控制字后写入控制字后OUTOUT为高电平为高电平, , 输入时间常数后,下一时钟开始计数,计输入时间常数后,下一时钟开始计数,计到一半时输出变为低电平,计到终值时变为高电平,并开始下一次计到一半时输出变为低电平,计到终值时变为高电平,并开始下一次计数过程。数过程。若若N N为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为(N+1N+1)/2/2,低电平持续时间为(
23、,低电平持续时间为(N-1N-1)/2/2。GATE=1GATE=1计数进行,计数进行,GATE=0GATE=0计数停止,计数停止,OUTOUT立即为高,计数器重新赋初值,立即为高,计数器重新赋初值,GATEGATE变高,在下一个变高,在下一个CLKCLK下降沿计数重新开始。下降沿计数重新开始。计数期间送入新值,本周期继续进行,下一个周期按新值计数。计数期间送入新值,本周期继续进行,下一个周期按新值计数。OUT3 2 1方式方式3时序图时序图CLKCWN=4WR3 2GATE441蹭残陇局身淬甸素氏练茸撇诈奖面伊附臭懒雹据必彼殉衙景状梦厄颇坛臭第8章计器定时器第8章计器定时器微型计算机技术微型
24、计算机技术模式模式4 4 软件触发选通软件触发选通信号发生器信号发生器 计数器主要是靠写入初始值这个软件操作来触发计数器工作的,每计数器主要是靠写入初始值这个软件操作来触发计数器工作的,每次通过写入新的初始值使计数器重新开始工作。次通过写入新的初始值使计数器重新开始工作。OUT平时为高电平,计数到平时为高电平,计数到0时,输出时,输出OUT 变低,一个时钟周期后变低,一个时钟周期后又变高。即只有在计数到又变高。即只有在计数到0时,才输出负脉冲作为选通信号。时,才输出负脉冲作为选通信号。GATE=1GATE=1允许计数,允许计数,GATE=0GATE=0禁止计数,禁止计数,GATEGATE不影响
25、不影响OUT电平电平输出。输出。计数期间送入新的时间常数,则下一个时钟按新值重新计数。计数期间送入新的时间常数,则下一个时钟按新值重新计数。OUT3 2 1方式方式4时序图时序图CLKCWN=3WRGATE0FFFEFDFC骤妙穗肪律尹劈迪寒浆锯尽匈驮限及飘杉帧磨乏苏窖毡抬粗寅藕牢皑草澎第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术模式模式5 5硬件触发选通硬件触发选通信号发生器信号发生器 写入控制字后写入控制字后OUTOUT变为高电平,输入时间常数后由变为高电平,输入时间常数后由GATEGATE上升沿启动计数。计数为上升沿启动计数。计数为0 0时输出一个时钟的负脉冲,时输出一个
26、时钟的负脉冲,并停止现行操作。并停止现行操作。计数过程中,若计数过程中,若GATEGATE又来一个上升沿,则下一个时钟计又来一个上升沿,则下一个时钟计数器重新赋值计数。数器重新赋值计数。计数过程中写入时间常数,当前周期不受影响,只有下计数过程中写入时间常数,当前周期不受影响,只有下一个一个 GATE GATE上升沿才启动新值计数。上升沿才启动新值计数。OUT3 2 1 0方式方式5时序图时序图CLKCWN=3WRFFFE3 2GATE10淬狼今鸥然战诅始收袖喷稼嚷酉兹籽鹏凛匆洋膨兆暗黑绣老许好侩淆证翰第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8.2.5 82538.2.5 8
27、253编程编程举例举例使用使用82538253时,必须首先进行初始化编程,其步骤为:时,必须首先进行初始化编程,其步骤为:先向控制口写入控制字;先向控制口写入控制字;再向每个通道端口地址写入计数初值:再向每个通道端口地址写入计数初值:若规定只写若规定只写低低8 8位,则高位,则高8 8位自动置位自动置0 0;若规定只写高;若规定只写高8 8位,则低位,则低8 8位自动置位自动置0 0;若规定写;若规定写1616位,则先写低位,则先写低8 8位,再写高位,再写高8 8位。位。最大计数初值最大计数初值0 0:二进制:二进制: 2 21616 =65536 =65536BCDBCD码:码: 10 1
28、04 4 =10000 =10000边播痢征膀顽甜常闹蠢值帝任云她鞭郁腰叛共曼市浩仇炙未桅枕派聋吃工第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术例例1: 82538253计数器工作于模式计数器工作于模式3,计数器初值,计数器初值15,时钟脉冲频率为时钟脉冲频率为2MHz,确定,确定OUT端输出方波的端输出方波的特性。特性。解:解:TCLK=1/2 s =500ns计数器初值计数器初值15为奇数,输出分频波高电平宽度:为奇数,输出分频波高电平宽度: TCLK(N+1)/2=4 s输出分频波低电平宽度:输出分频波低电平宽度: TCLK(N-1)/2=3.5 s钳急嘴期马彪跟疮约俭特
29、售弛治乡平百受橙秀鞋角踪扼赠脊蔗础绵衬萤唁第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术例例2 2:设:设82538253的口地址为的口地址为40H 43H,如要求,如要求82538253的通道的通道1 1工作工作于方式于方式3 3,按,按BCDBCD码计数,计数值为十进制码计数,计数值为十进制60006000;通道;通道2工作于工作于方式方式2,按二进制计数,计数初值为,按二进制计数,计数初值为390,试编程,试编程初始化初始化82538253。MOVMOVALAL,6 67 7H H ;控制字;控制字01,10,001,10,01 11,1 1,1 通道通道1 1,只装高,只
30、装高8 8位,方式位,方式1 1,BCDBCD码码OUTOUT43H43H,AL AL ;送通道;送通道1 1控制字控制字MOVMOV AL AL,60H 60H ;计数初值为;计数初值为60006000,只装高,只装高8 8位,低位,低8 8位自动赋位自动赋0 0 OUTOUT41H41H,AL AL MOVMOV AL AL,0B4H0B4H;1010,1111,010010,0 0 通道通道2 2,1616位,方式位,方式2 2,二进制,二进制OUTOUT 43H 43H,ALAL;送通道;送通道2 2控制字控制字MOVMOV AX AX, 390 390;OUTOUT 42H 42H,
31、ALAL;先写计数初值低;先写计数初值低8 8位位MOVMOV AL AL,AHAH;OUTOUT 42H 42H,ALAL;后写计数初值高;后写计数初值高8 8位位哄羡惶蚕觅沧构伤俩起两靠眠等绞绣慧豆矣鞘宇峡梢味避侦凝基舅第架顶第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术82538253的读操作方法及编程举例的读操作方法及编程举例为了对计数器的计数值进行显示或实时处理,常需要读为了对计数器的计数值进行显示或实时处理,常需要读取计数通道的当前计数值,它是由取计数通道的当前计数值,它是由CPUCPU访问每个通道的访问每个通道的计数值锁存器计数值锁存器OLOL实现的。读当前计数值的
32、端口地址和写实现的。读当前计数值的端口地址和写入计数初值的端口地址是相同的。读操作必须严格按控入计数初值的端口地址是相同的。读操作必须严格按控制字制字D5 D4D5 D4位确定的格式进行:如果是位确定的格式进行:如果是8 8位计数,则位计数,则 只只 需需 读一次;若是读一次;若是1616位计数,则同一端口地址要读两次,位计数,则同一端口地址要读两次,第一次读入低第一次读入低8 8位计数值,第二次读入高位计数值,第二次读入高8 8位计数值。位计数值。82538253有以下两种读当前计数值的方法有以下两种读当前计数值的方法 峡慧磁撒矛众钮它憎库蘑妇酱云傈倒舒啪宫缔雹计边谰伟唐固盆袋霍么醚第8章计
33、器定时器第8章计器定时器微型计算机技术微型计算机技术读之前先停止计数:读之前先停止计数:可以在读之前用可以在读之前用GATEGATE信号控制计信号控制计数器暂停计数,或由外部逻辑禁止所要读入的计数通数器暂停计数,或由外部逻辑禁止所要读入的计数通道的道的CLKCLK脉冲输入。如果不先停止计数,那么,分先脉冲输入。如果不先停止计数,那么,分先后两次读入的高低字节的值可能不属于同一个后两次读入的高低字节的值可能不属于同一个1616位计位计数值,所以最好先从外部禁止计数,然后执行类似如数值,所以最好先从外部禁止计数,然后执行类似如下程序读入(设下程序读入(设82538253的端口地址为的端口地址为E0
34、H E3H):): IN IN AL AL,0E0H0E0H;读入通道;读入通道0 0的低的低8 8位位 MOV MOV BL BL,ALAL IN IN AL AL,0E0H 0E0H ;读入通道;读入通道0 0的高的高8 8位位 MOV MOV BH BH,AL AL ;读入的;读入的1616位计数值存位计数值存入入BXBX中。中。走蛛妹碗襄氏天贿县筛诲俺戈负逊额年览疼衅瘤妊悉苯僳臭歉购绥卿短衷第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术读之前先送计数值锁存命令:读之前先送计数值锁存命令:计数值锁存命令是控制字的一种特计数值锁存命令是控制字的一种特殊形式,需写入控制寄存器的
35、端口地址。锁存命令的殊形式,需写入控制寄存器的端口地址。锁存命令的D7 D6D7 D6位的位的编码决定所要锁存的计数通道,锁存命令的编码决定所要锁存的计数通道,锁存命令的D5 D4D5 D4必须为必须为“0000”(锁存命令标志)。锁存命令的低(锁存命令标志)。锁存命令的低4 4位可以是全位可以是全“0 0”。因。因此,三个计数器的锁存命令分别为:通道此,三个计数器的锁存命令分别为:通道0 0是是00H00H,通道,通道1 1是是40H40H,通道通道2 2是是80H80H。例如,要读取通道例如,要读取通道2 2的计数值,程序如下:的计数值,程序如下:MOVMOV AL AL,80H80H;
36、10 00 0000B向向通道通道2 2 发锁存命发锁存命令令OUTOUT 0E3H 0E3H,ALAL;锁存命令写入控制寄存器(锁住通道;锁存命令写入控制寄存器(锁住通道2 2的计数值)的计数值) IN IN AL AL,0E2H0E2H;读通道;读通道2 2的的OLOL的低的低8 8位位MOVMOVBLBL,ALALININ AL AL,0E2H0E2H;读通道;读通道2 2的的OLOL的高的高8 8位位MOVMOV BH BH,AL AL 骑著历职隙忻聪腊王拼祷汗怒甥暴裹枝助铂早束戳馏冻缴赘隅篮倾抗箭滇第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8.2.6 8.2.6 I
37、BM PC/XT中的中的8253应用举例应用举例D7D0D7D0RDWRA1A0CSIORIOWA13A15A14A10A12A1174LS3074LS04A9+5VA8A7A6A5+5VCBA74LS138Y2G2AG2BG18253A1A0GATE0GATE1GATE2OUT0OUT1OUT2CLK0CLK1CLK2PB1(8255)+5VPB0(8255)IRQ0(8259)刷新电路刷新电路CPCLKDQQ74LS175驱动器驱动器8253的接口电路的接口电路旋棍直石关簧支盛卧憋酞乡朽跋筐吨异氨塘蒸乔我膛鲍狂弓晶戒肝椿栋纹第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术825
38、38253与与80888088计算机连接说明计算机连接说明A15A8 0 0端口端口0 00 11 01 1控制口控制口A7 A6 A5 A4 A3 A2A1地址地址040HA00 1 0X X X通道通道0通道通道1通道通道2041H042H043H82538253三个通道的时钟由三个通道的时钟由PCLKPCLK经经D D触发器二分频得到,频率为:触发器二分频得到,频率为:2.38636/2=1.1931816MHz2.38636/2=1.1931816MHz8253数据线数据线D7D0接系统数据总线的低接系统数据总线的低8位。位。8253的的A1和和A0分别接系统的分别接系统的A1和和A0
39、由由74LS138,74LS30和和74LS04译码选中译码选中8253楞瓢参磺拳壕焦鄙甚匆趣胳禄椎馆糖陕础羊滨祈牡肖均拎晒狈夏描剃摩饵第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术通道通道0 0定时定时OUT0OUT0接接8259A8259A的的IR0IR0,通道,通道1 1刷新动态存刷新动态存储器,通道储器,通道2 2控制扬声器发声。控制扬声器发声。通道通道0 0:为系统电子钟提供基准时间和软驱马达定时。计数器为系统电子钟提供基准时间和软驱马达定时。计数器0 0为模式为模式3 3(方波发生器)(方波发生器)GATE0GATE0固定高电平,固定高电平,OUT0OUT0作为中断请
40、作为中断请求接求接8259A8259A中断控制器的中断控制器的IRQ0IRQ0,OUT0OUT0输出时钟频率为输出时钟频率为1.19MHz/21.19MHz/21616 =18.2Hz =18.2Hz,即每秒产生,即每秒产生18.218.2次输出信号,输出一次输出信号,输出一个定时脉冲,产生一个中断请求(个定时脉冲,产生一个中断请求(周期约周期约55ms55ms),计时软件),计时软件据此计时。控制字为据此计时。控制字为36H36H。通道通道1 1:作为作为DRAMDRAM刷新的定时信号。工作于模式刷新的定时信号。工作于模式2 2,计数值为,计数值为12H=1812H=18(1.19MHZ/1
41、81.19MHZ/18分频分频 ),每隔),每隔15.12S15.12S产生一次刷新产生一次刷新请求,此信号送到请求,此信号送到DMA 8237A-5DMA 8237A-5的通道的通道0 0,作为,作为DMADMA请求信号。请求信号。由由8237A-58237A-5执行执行DMADMA操作完成操作完成DRAMDRAM一行的刷新。一行的刷新。通道通道2 2:输出信号接扬声器,工作于模式输出信号接扬声器,工作于模式3 3(方波发生器),初(方波发生器),初值为值为533H533H,方波频率为,方波频率为1.19MHz/1331=894Hz1.19MHz/1331=894Hz学绎矮谬进狱栖境括练革宇
42、症联澈歹蛙什鸥佯株翌耳呼卜啤逮玄钉引伺鸳第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术BIOS对对8253的初始化程序的初始化程序 通道通道0 0:MOVMOV AL AL,36H 36H ;控制字:控制字:0011011000110110通道通道0 0,1616位,方式位,方式3 3,二进制,二进制OUTOUT 43H 43H,AL AL ;写入控制寄存器;写入控制寄存器MOVMOV AL AL, 0 0;初值为;初值为0000H0000H,计数,计数6553665536次(最大)次(最大)OUT 40HOUT 40H,ALAL;写入;写入CR0CR0的低的低8 8位计数值位计
43、数值OUT 40HOUT 40H,ALAL;写入;写入CR0CR0的高的高8 8位计数值位计数值计数器计数器0 0工作于方波发生器方式,对工作于方波发生器方式,对CLKCLK(1.1931816MHz1.1931816MHz)进行)进行6553665536分频。分频。时钟周期时钟周期Tc=Tc=1/1.191/1.1910103 3 840ns840ns计数器计数器0 0的输出端的输出端OUT0OUT0接接82598259的的IR0IR0,每次归,每次归0 0产生一次中断请求,中断类产生一次中断请求,中断类型码由型码由BIOSBIOS设置为设置为8 8。OUT0OUT0端输出周期为端输出周期为
44、T0=840nsT0=840ns6553655ms6553655ms,即每隔,即每隔55ms55ms定时时间发出一定时时间发出一次中断请求。次中断请求。通道通道0 0的时间间隔是计算机系统时钟基础。的时间间隔是计算机系统时钟基础。OUT0OUT0端输出方波端输出方波频率频率f0=1/T0 f0=1/T0 18.2 18.2 ,即每秒钟来,即每秒钟来18.218.2次中断。次中断。鲤漱丹汝叶蛛毗着预现疤九奇魔岛肯稍宣灸掀柴理糊严谓姨嘿助没榔挠韶第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术通道通道1 1:MOVMOV AL AL,54H 54H ;控制字控制字01010100 01
45、010100 通道通道1 1,低,低8 8位,方式位,方式2 2,二进制,二进制OUTOUT43H43H,AL AL ;写入控制寄存器;写入控制寄存器MOVMOVALAL,12H 12H ;初值为;初值为1818OUTOUT41H41H,AL AL ;写入计数值低;写入计数值低8 8位,高位,高8 8位自动为位自动为0 0,通道通道1 1给给DMADMA控制器提供时钟,控制器提供时钟,用于定时(约用于定时(约15s15s)向)向DMADMA请求请求DRAMDRAM刷新,计数初值为刷新,计数初值为12H12H。OUT1OUT1输出周期为:输出周期为:T1=840nsT1=840ns1815.12
46、s1815.12s,于是,于是,2ms2ms内内可有可有132132次刷新,大于次刷新,大于IBM-PC/XTIBM-PC/XT要求的要求的DRAMDRAM刷新在刷新在2ms2ms内应内应有有128128次的规定。次的规定。OUT1OUT1输出频率为输出频率为f1=1/T1=66.1KHzf1=1/T1=66.1KHz的连续负脉冲。的连续负脉冲。淹谍罚庇古漠苍簇英火励弗邱猫制佑疙阻羊肩嚎贵稠峪讹男龟扶邯苛劈骑第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术通道通道2 2:MOVMOV AL AL,0B6H0B6H ;控制字控制字10110110 10110110 通道通道2 2,1
47、616位,方式位,方式3 3,二进制计数,二进制计数OUTOUT 43H 43H,AL AL ;写入控制寄存器;写入控制寄存器MOVMOV AX AX,533H 533H ;初值为;初值为533H533HOUT OUT 42H 42H,AL AL ;写入计数值低;写入计数值低8 8位位MOVMOV AL AL,AH AH ;OUTOUT 42H 42H,AL AL ;写入计数值高;写入计数值高8 8位。位。IN ALIN AL,62H 62H ;读入;读入82558255的的B B口数据口数据MOV AHMOV AH,AL AL ;保护;保护B B口原值口原值OR ALOR AL,03H 03
48、H ;置;置1 PB11 PB1和和PB0PB0OUT 62HOUT 62H,AL AL ;输出;输出通道通道2 2:控制字为:控制字为B6HB6H,计数初值为,计数初值为533H=1331 533H=1331 。OUT2OUT2输出方波周期输出方波周期T2T2840ns840ns13311.12ms13311.12ms,频率,频率f2=1/T2=894Hzf2=1/T2=894Hz,894Hz894Hz的方波送至扬声器,的方波送至扬声器,驱动扬声器发声。驱动扬声器发声。扬声器发声还受扬声器发声还受82558255的的PB0PB0和和PB1PB1控制。控制。柠苑凭停淘迁肆骤终袁幽际权沛蔓富闻经
49、愚攫惩厢帆个弟魁菜宅饰任巍畦第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8253应用举例应用举例例:由例:由82538253的计数器的计数器0 0定时定时55ms 55ms 控制扬声器变调发声,控制扬声器变调发声,响响5.55.5秒后停止。秒后停止。说明说明82538253计数器计数器0 0的的OUT0OUT0接接8259A8259A的的IR0IR0,由,由BIOSBIOS初初始化,中断类型码为始化,中断类型码为08H08H,并在完全嵌套方式,并在完全嵌套方式下工作。下工作。82538253计数器计数器0 0由由BIOSBIOS设置为模式设置为模式3 3,定时时间为,定时时间为
50、55ms55ms。扬声器由扬声器由82538253的计数器的计数器2 2控制发声频率,发声控制发声频率,发声允许由允许由82558255的的PB0PB0和和PB1PB1控制。控制。黄为舰翻旺多绣绕郴屎毕啼骚菇宛孕辱毁涟红呕误少凄菲俞君鹅衰煤误矿第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术DOSDOS功能调用功能调用25H25H号子功能为设置中断向量。号子功能为设置中断向量。入口参数入口参数AH=25HAH=25H,AL=AL=中断类型码中断类型码DS:DX DS:DX 中断服务程序入口地址中断服务程序入口地址返回参数:无返回参数:无DOSDOS功能调用功能调用35H35H号子功
51、能为取中断向量号子功能为取中断向量入口参数入口参数AH=35HAH=35H,AL=AL=中断类型码中断类型码返回参数返回参数ES:BX ES:BX 中断服务程序入口地址中断服务程序入口地址中断服务程序为中断服务程序为INT_08HINT_08H保护现场和恢复现场;保护现场和恢复现场;中断返回前要开中断并发中断返回前要开中断并发EOIEOI;中断返回中断返回IRETIRET。每次定时器每次定时器0 0中断使扬声器的发声频率的分频常数增加中断使扬声器的发声频率的分频常数增加100100,并使计数变量,并使计数变量countcount增增1 1。主程序查询主程序查询countcount到到10010
52、0后停止扬声器发声,恢复中断向量,程序退出。后停止扬声器发声,恢复中断向量,程序退出。骄冀钻医乏比融剐逸秋贫附练虑濒敞寓倔硝站惟稀酪摩公拳厘藩尝益就航第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术8253应用程序应用程序data segmentold_int08h dd ? count dw 0 constant dw 60 state db ?data endsst_seg segment stack db 256 dup (?)st_seg endscode segmentassume cs:code,ds:dataInt_08h proc far ; 中断服务子程序中断服务
53、子程序 push ax push dsmov ax, datamov ds, axmov al, 0b6hout 43h, almov ax, constantadd ax, 100mov constant, axout 42h, almov al, ahout 42h, alinc countmov al, 20h ;发发EOIout 20h, al做米好帖袒参恋喻糖恩胡瞬迅详背旨邢八冰序垒垃抒黍殆谤剂堡痪汀区找第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术pop dspop axsti iretInt_08h endp;主程序主程序main proc far mov ax,
54、data mov ds, ax cli ;关中断关中断 mov ah, 35h ;取中断向量取中断向量 mov al, 08h int 21h mov word ptr old_int08h, bxmov word ptr old_int08h2, espush cs ;设置新中断向量设置新中断向量 pop ds mov ah, 25h mov dx, offset int_08h mov al, 08h int 21h mov ax, data mov ds, ax;打开打开8255控制控制in al, 61hmov state, al or al, 3out 61h, alsti ;开中断
55、开中断奸束甘雨燃嫩旁怒趋湿罚姿慢蜂缝煌条畜辨枢捕健哑腻羡肋侯郊喜碌喊琼第8章计器定时器第8章计器定时器微型计算机技术微型计算机技术;判断判断5.5S是否到是否到main1: mov ax, count cmp ax, 100 jc main1 mov al, state ;恢复恢复8255状态状态 out 61h, al mov ah, 25h ;恢复原中断向量恢复原中断向量 lds dx, old_int08h mov al, 08h int 21h mov ax, 4c00h ;返回操作系统返回操作系统 int 21hmain endpcode ends end main挨攒娃筹湖冰她骚盟罩扣隔叛绸菏吏裳诅抿赚抛拦掀庆破晚涪僚癣扯贫祈第8章计器定时器第8章计器定时器