


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 可编程定时器/计数器8253及其应用【回顾】 可编程芯片的概念,端口的概念。【本讲重点】 定时与计数的基本概念及其意义,定时/计数器芯片Intel8253的性能概述, 内、外部结构及其与CPU的连接。8.1定时与计数1 .定时与计数在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或 者对外部过程进行计数。定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的 对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这 一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。2 .定时与计数的实现方法(1
2、) 硬件法专门设计一套电路用以实现定时与计数,特点是需要花费一定硬设备,而且当电路制 成之后,定时值及计数范围不能改变。(2) 软件法利用一段延时子程序来实现定时操作,特点,无需太多的硬设备,控制比较方便,但 在定时期间,CPU不能从事其它工作,降低了机器的利用率。(3) 软、硬件结合法即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。8.2定时/计数器芯片Intel8253Intel8253是8086微机系统常用的定时/计数器芯片,它具有定时与计数两大功能 -、8253的一般性能概
3、述1 .每个8253芯片有3个独立的16位计数器通道;2 .每个计数器通道都可以按照二进制或二一十进制(BCD码)计数;3 .每个计数器的计数速率可以高达 2MHz ;4 .每个通道有6种工作方式,可以由程序设定和改变;5 .所有的输入、输出电平都与 TTL兼容、8253内部结构8253的内部结构如图8-1所示,它主要包括以下几个主要部分:图8-18253的内部结构1 .数据总线缓冲器实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控 制信息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。2 .读/写控制逻辑控制8253的片选及对内部相关寄
4、存器的读/写操作,它接收CPU发来的地址信号以 实现片选、内部通道选择以及对读/写操作进行控制。3 控制字寄存器在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。4 .计数通道0#、1#、2# :这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数 寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在 计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减 1计数器变化。三、8253的外部引脚8253芯片是具有24个
5、引脚的双列直插式集成电路芯片,其引脚分布如图8 - 2所示。8253芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:1 . D7Do:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息2. Rd :来自于cpu的读控制信号输入引脚,低电平有效。3. WR :来自于CPU的写控制信号输入引脚,低电平有效CS :芯片选择信号输入引脚,低电平有效控制戏7r e5g41132325310i151 rl£2TITm13231910匹IS21IT2412CLK1 乜一GATE1*01111Di胧Da Da-*D sDe*-L
6、Dt帝一Al * cs»r Vcc 地CLKD GATED OUTOCLK2 劭TEE CUTS图8-28253的引脚0号计數聽1号计数器5 . A1、Ao:地址信号输入引脚,用以选择 8253芯片的通道及控制字寄存器。A。、A的状态与8253端口地址的对应关系如下表所示A1A0000井通道011井通道102井通道11控制端口6 . Vcc及GND : +5V电源及接地引脚7 . CLKi: i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟 信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。8 . GATEi: i=0,1,2,第i个通
7、道的门控信号输入引脚,门控信号的作用与通道的工作方式有 关。9 . OUTi: i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作 方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。四、8253的控制字8253有一个8位的控制字寄存器,其格式如下:计数器渎爸格式工作方式数制T? De Ds Dd Us 12 Di. Doia只读/写境高育效手节高£位)01只读丿写摄低有数宇节 (i e 位)片二谱制L1-BCDroao方式001方式xio方式W1J方式100才式K 191方戒图8-38253的控制字其中:Do:数制选择控制。为
8、1时,表明采用BCD码进行定时/计数;否则,采用二进制进行定 时/计数。D3Di:工作方式选择控制。000, 0; 001,1; X10,2 ; X11,3 ; 100,4 ; 101,5 ;D5、D4:读写格式。00,计数锁存命令;01,读/写高8位命令;10,读/写低8位命令; 11,先读/写低8位,再读写高8位命令。D7、D6:通道选择控制。000通道;01,1通道;10,2通道;11,非法1 . 8253的初始化编程要使用8253,必须首先进行初始化编程,初始化编程包括设置通道控制字和送通道计 数初值两个方面,控制字写入8253的控制字寄存器,而初始值则写入相应通道的计数寄存 器中。初
9、始化编程包括如下步骤:(1) 写入通道控制字,规定通道的工作方式(2) 写入计数值,若规定只写低 8位,则高8位自动置0,若规定只写高8位,则低8位自动置0。若为16位计数值则分两次写入,先写低 8位,后写高8位。D0:用 于确定计数数制,0, 二进制;1,BCD码【例1】 设8253的端口地址为:04H0AH,要使计数器1工作在方式0,仅用8位二 进制计数,计数值为128,进行初始化编程。控制字为:01010000B=50H初始化程序:MOV AL,50HOUT0AH , ALMOV AL,80HOUT 06H , AL【例2】 设8253的端口地址为:F8HFEH,若用通道0工作在方式1,
10、按二一一十进 制计数,计数值为5080H,进行初始化编程。控制字为:00110011B=33H初始化程序:MOV AL,33HOUT0FEH,ALMOV AL,80HOUT 0F8H,ALMOV AL,50HOUT 0F8H,AL【例3】 设8253的端口地址为:04H0AH,若用通道2工作在方式2,按二进制计数, 计数值为02F0H,进行初始化编程。控制字为:10110100B=0B4H初始化程序:MOV AL,0B4HOUT0AH , ALMOV AL,0F0HOUT 08H,ALMOV AL,02HOUT 08H,AL2 .读取8253通道中的计数值8253可用控制命令来读取相应通道的计
11、数值,由于计数值是16位的,而读取的瞬时 值,要分两次读取,所以在读取计数值之前,要用锁存命令,将相应通道的计数值锁存在 锁存器中,然后分两次读入,先读低字节,后读高字节。当控制字中,D5、D4=00时,控制字的作用是将相应通道的计数值锁存的命令,锁存 计数值在读取完成之后,自动解锁。如要读通道1的16位计数器,编程如下:地址 F8HFEH。MOV AL,40H ;OUT 0FEH,AL ;锁存计数值IN AL, 0FAHMOV CL,AL;低八位IN AL,0FAH ;MOV CH,AL;高八位五、8253在系统中的典型连接8253在系统中的连接如图8-4所示。Intel 8086图8-4
12、Intel8253 在系统中的连接六、8253的工作方式8253共有6种工作方式,各方式下的工作状态是不同的,输出的波形也不同,其中比较灵活的是门控信号的作用。由此组成了 8253丰富的工作方式、波形,下面我们逐个介绍:1 几条基本原则(1) 控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态。初始状态对不同的模式来说不一定相同。(2) 计数初始值写入之后,要经过一个时钟周期上升沿和一个下降沿, 计数执行部件才可以开始进行计数操作,因为第一个下降沿将计数寄存器的内容送减1计数器。 通常,在每个时钟脉冲CLK的上升沿,采样门控信号GATE。不同的工作方式下,门控 信号的触发
13、方式是有具体规定的,即或者是电平触发,或者是边沿触发,在有的模式中, 两种触发方式都是允许的。其中0、2、3、4是电平触发方式,1、2、3、5是上升沿触发。(4) 在时钟脉冲的下降沿,计数器作减1计数,0是计数器所能容纳的最大初始值。二进制相当于216,用BCD码计数时,相当于1042 方式0计数结束产生中断方式0的波形如图8-5所示,当控制字写入控制字寄存器后,输出 OUT就变低,当计 数值写入计数器后开始计数,在整个计数过程中, OUT保持为低,当计数到 0后,OUT 变高;GATE的高低电平控制计数过程是否进行。Ci=10 LSB=4CPUII|III.GA.TEiiiiirIVIIII
14、IIOKT :Iiii/I'丨;彳:IX ; 3 匕 X ; 0 :理:FE图8-5方式0波形从波形图中不难看出,工作方式 0有如下特点: 计数器只计一遍,当计数到0时,不重新开始计数保持为高,直到输入一新的计数值,OUT才变低,开始新的计数; 计数值是在写计数值命令后经过一个输入脉冲, 才装入计数器的,下一个脉冲开始计数, 因此,如果设置计数器初值为 N,则输出OUT在N + 1个脉冲后才能变高; 在计数过程中,可由GATE信号控制暂停。当GATE= 0时,暂停计数;当GATE= 1时, 继续计数; 在计数过程中可以改变计数值,且这种改变是立即有效的,分成两种情况:若是8位计数,则写
15、入新值后的下一个脉冲按新值计数;若是 16位计数,则在写入第一个字节后,停 止计数,写入第二个字节后的下一个脉冲按新值计数。3 方式1可编程的硬件触发单拍脉冲方式1的波形如图8-6所示,CPU向8253写入控制字后OUT变高,并保持,写入计 数值后并不立即计数,只有当外界 GATE信号启动后(一个正脉冲)的下一个脉冲才开始 计数,OUT变低,计数到0后,OUT才变高,此时再来一个GATE正脉冲,计数器又开始 重新计数,输出OUT再次变低,因此输出为一单拍负脉冲。CW=12 LSB=3nCLKJUWWWWWGATEOUT11;i11! 3 : 2 . L ; 0 tf; 3 2图8-6方式1波形
16、从波形图不难看出:方式1有下列特点: 输出OUT的宽度为计数初值的单脉冲; 输出受门控信号GATE的控制,分三种情况:计数到0后,再来GATE脉冲,则重新开始计数,OUT变低;在计数过程中来GATE脉冲,则从下一 CLK脉冲开始重新计数,OUT保持为低; 改变计数值后,只有当GATE脉冲启动后,才按新值计数,否则原计数过程不受影 响,仍继续进行,即新值的改变是从下一个 GATE开始的。 计数值是多次有效的,每来一个 GATE脉冲,就自动装入计数值开始从头计数,因此在初始化时,计数值写入一次即可。4、方式2速率发生器方式2的波形如图8-7所示,在这种方式下,CPU输出控制字后,输出OUT就变高,
17、 写入计数值后的下一个 CLK脉冲开始计数,计数到1后,输出OUT变低,经过一个CLK 以后,OUT恢复为高,计数器重新开始计数,因此在这种方式下,只需写入一次计数 值,就能连续工作,输出连续相同间隔的负脉冲(前提:GATE保持为高),即周期性地输出,方式2下,8253有下列使用特点: 通道可以连续工作; GATE可以控制计数过程,当GATE为低时暂停计数,恢复为高后重新从初值;(注意: 该方式与方式0不同,方式0是继续计数) 重新设置新的计数值即在计数过程中改变计数值,则新的计数值是下次有效的,同方式1。一 0=14our图8-7方式2波形ME!II 丨!I丨!I<IiI1*I>
18、5 .方式3方波速率发生器方式3的波形如图8-8所示,这种方式下的输出与方式 2都是周期性的,不同的是周 期不同,CPU写入控制字后,输出OUT变高,写入计数值后开始计数,不同的是减 2计 数,当计数到一半计数值时,输出变低,重新装入计数值进行减2计数,当计数到0时,输出变高,装入计数值进行减2计数,循环不止。在方式3下,8253有下列使用特点:JWWUWWUUW_II_I!II计数值为偶数一 CW=1& LSB巧oirr计数值为奇数;| 丨 I | 丨 | !丨 ICLKGATE图8-8 方式3时计数器的工作波形 通道可以连续工作; 关于计数值的奇偶,若为偶数,则输出标准方波,高低电
19、平各为N/2个;若为奇数,则在装入计数值后的下一个CLK使其装入,然后减1计数,(N + 1 ) /2,OUT改变状态, 再减至0,OUT又改变状态,重新装入计数值循环此过程,因此,在这种情况下,输出 有(N + 1) /2个CLK个高电平,(N 1) /2个CLK个低电平; GATE信号能使计数过程重新开始,当 GATE= 0时,停止计数,当GATE变高后,计数 器重新装入初值开始计数,尤其是当 GATE= 0时,若OUT此时为低,则立即变高,其 它动作同上; 在计数期间改变计数值不影响现行的计数过程,一般情况下,新的计数值是在现行半周 结束后才装入计数器。但若中间遇到有 GATE脉冲,则在
20、此脉冲后即装入新值开始计数。6.方式4软件触发的选通信号发生器方式4的波形如图8-9所示,在这种方式下,也是当 CPU写入控制字后,OUT立即 变高,写入计数值开始计数,当计数到 0后,OUT变低,经过一个CLK脉冲后,OUT变 高,这种计数是一次性的(与方式0有相似之处),只有当写入新的计数值后才开始下一次 计数。CLKGATEJUWUUWUWour图8-9方式4波形方式4下,8253有下列使用特点: 当计数值为N时,则间隔N + 1个CLK脉冲输出一个负脉冲(计数一次有效); GATE= 0时,禁止计数,GATE= 1时,恢复继续计数; 在计数过程中重新装入新的计数值,则该值是立即有效的(
21、若为16位计数值,则装入第一个字节时停止计数,装入第二个字节后开始按新值计数)。7 .方式5硬件触发的选通信号发生器方式5的波形如图8-10所示,在这种方式下,当控制字写入后,OUT立刻变高,写 入计数值后并不立即开始计数,而是由 GATE的上升沿触发启动计数的,当计数到 0时, 输出变低,经过一个CLK之后,输出恢复为高,计数停止,若再有 GATE脉冲来,则重新 装入计数值开始计数,上述过程重复。方式5下,8253有下列使用特点: 在这种方式下,若设置的计数值是 N,则在GATE脉冲后,经过(N + 1)个CLK才一 个负脉冲; 若在计数过程中又来一个 GATE脉冲,则重新装入初值开始计数,
22、输出不变,即计数值 多次有效; 若在计数过程中修改计数值,则该计数值在下一个GATE脉冲后装入开始按此值计数。五二壯 LA 15B= j II I 1I I | I , E; I ;0 iFF(3图8-10方式5波形尽管8253有6种工作模式,但是从输出端来看,仍不外乎为计数和定时两种工作方式。作为计数器时,8253在GATE的控制下,进行减1计数,减到终值时,输出一个信号。作 为定时器工作时,8253在门控信号GATE控制下,进行减1计数。减到终值时,又自动装 入初始值,重新作减1计数,于是输出端会不断地产生时钟周期整数倍的定时时间间隔。8 . 8253的工作方式小结下面,我们对8253的6
23、种工作模式的特点,作一番比较和总结。(1) 方式2、4、5的输出波形是相同的,都是宽度为一个 CLK周期的负脉冲,但方式2连 续工作,方式4由软件触发启动,方式5由硬件触发启动。(2) 方式5与方式1工作过程相同,但输出波形不同,方式1输出的是宽度为N个CLK脉 冲的低电平有效的脉冲(计数过程中输出为低),而方式5输出的为宽度为一个CLK脉冲 的负脉冲(计数过程中输出为高)。(3) 输出端OUT的初始状态,方式0在写入方式字后输出为低,其余方式,写入控制字后, 输出均变未能高。(4) 任一种方式,均是在写入计数初值之后,才能开始计数,方式0、2、3、4都是在写入计数初值之后,开始计数的,而方式
24、 1和方式5需要外部触发启动,才开始计数。(5) 6种工作方式中,只有方式2和方式3是连续计数,其它方式都是一次计数,要继续工作需要重新启动,方式0、4由软件启动,方式1、5由硬件启动。(6) 门控信号的作用;通过门控信号 GATE,可以干预8253某一通道的计数过程,在不同的工作方式下,门控信号起作用的方式也不一样,其中0、2、3、4是电平起作用,1、2、3、5是上升沿起作用,方式2、3对电平上升沿都可以起作用。(7) 在计数过程中改变计数值,它们的作用有所不同。(8) 计数到0后计数器的状态,方式0、1、4、5继续倒计数,变为FF、FE0 ooooo,而方 式2、3、,则自动装入计数初值继
25、续计数。七、8253的编程应用【例4】 在IBM PC/XT中,8253作为定时计数器电路,它的三个通道的作用分别为:计数器0编程为方式3,GATE0固定为高电平,OUT0作为中断请求信号接至8259A 中断控制器的第0级IRQ0。这个定时中断(约55ms )用于报时时钟的时间基准。计数器1编程为方式2,GATE1固定为高电平,OUT1的输出经过一个D触发器后作 为8237A 5DMA控制器通道0的DMA请求DREQ0,用于定时(约15us )启动刷新动 态RAM,这样在2ms内可以有132次刷新,大于128次(128次是系统的最低要求)。计数器2编程为方式3, 1KHZ的方波输出,通过滤波,
26、去除高频分量后送扬声器,GATE2是8255的PBO,OUT输出经一与门控制,控制信号为 8255的PB1,这样利用PB0、PB1同时为高的时间来控制发长音还是发短音。 定时时间T N 定时时间 N =时钟频率F为1.19MHZ,T=1/FT8253 5的地址为040H043H,ROM BIOS对8253 5的编程如下: 计数器0用于定时中断。MOV AL,00110110B ; 00110110 二进制OUT 43H,ALMOV AL,0 ;计数初值为0000,即为216OUT 40H,ALOUT 40H,AL;定时为:840ns 216 55ms,即频率为18.2HZ 每秒产生8.2次时
27、钟中断(CLK周期为:1/1.19M )计数器1用于定时DMA请求。MOV AL,01010100B ; 01010100 二进制OUT 43H,ALMOV AL,12H ;计数初值为 18D,定时:840ns 1815 sOUT 41H,AL计数器2用于产生1KHZ的方波送至扬声器发声,声响子程序为BEEP,入口地址为FFA08H。BEEP PROC NEARMOV AL,10110110B ; 10110110 二进制OUT 43H,ALMOVAX,0533H ;计数初值为1331OUT42H,ALMOVAL,AHOUT42H,ALIN AL, 61H ;取 8255B 端口MOVAH,A
28、L;存在 AHOR AL, 03H ;使 PBiPBo 11OUT 61H , AL;输出至82255的B端口,使扬声器发声SUB CX, CX;循环计数G7: LOOP G7MOVBH,0DECBX; BL的值为控制长短声,BL - 6 (长),BL- 1 (短)JNZG7MOVAL,AH ;恢复8255B端口值,停止发声OUT61H,ALRETBEEP ENDP【例5】CPU为8086,用8253的CH0 (通道0),每隔2ms输出一个负脉冲,设 CLK为2MHZ,完成软件设计 分析:时间常数的计算:已知时钟频率 F及定时时间t,求计数初值N :NtN t FF设用方式2,时间常数:2 10 3 2 1064 103控制字:00110100 二进制端口地址:CH0 H ;控制端口06H初始化编程:MOV AL,34H; 00110100BOUT 06H,ALMOV AX,4000OUT 00H,A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC TS 17021-5:2014 RU Conformity assessment - Requirements for bodies providing audit and certification of management systems - Part 5: Competence requirements for au
- 【正版授权】 ISO/IEC 17067:2013 RU Conformity assessment - Fundamentals of product certification and guidelines for product certification schemes
- 【正版授权】 IEC 62841-2-10:2017+AMD1:2024 CSV EN Electric motor-operated hand-held tools,transportable tools and lawn and garden machinery - Safety - Part 2-10: Particular requirements
- 幼儿园小班2025年春工作方案
- 中南传媒行业数据报告
- 幼儿中班个人工作方案2025年
- 2025年度乡镇政府工作方案演讲稿
- 2025年关于学校家访的工作方案
- 2025年学校教研个人工作方案
- 伺服系统与工业机器人 课件汇 第1-5章 伺服系统概述-伺服系统的控制结构与模式
- 2025浙江嘉兴市桐乡市部分国有企业招聘员工41人笔试参考题库附带答案详解
- 网络安全基本知识试题及答案
- 湖南省常德市2025届高三下学期模拟考试(二模)物理试卷(含答案)
- 甘肃省招聘卫生健康人才笔试真题2024
- 数据库开发与管理试题及答案
- 2025年北京市朝阳区区高三一模英语试卷(含答案)
- 大规模住区的物业管理创新模式研究
- 2024年中国烟草总公司辽宁省公司人员招聘笔试真题
- 库尔勒经济技术开发区工业废水处理回用项目环境影响报告书
- 2024年贵州贵州乌江煤层气勘探开发有限公司招聘考试真题
- 第六单元实验活动3二氧化碳的实验室制取与性质教学设计-2024-2025学年九年级化学人教版上册
评论
0/150
提交评论