微型计算机接口技术:第八章 可编程定时计数器8253及其应用_第1页
微型计算机接口技术:第八章 可编程定时计数器8253及其应用_第2页
微型计算机接口技术:第八章 可编程定时计数器8253及其应用_第3页
微型计算机接口技术:第八章 可编程定时计数器8253及其应用_第4页
微型计算机接口技术:第八章 可编程定时计数器8253及其应用_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章可编程定时/计数器8253及其应用1 北京工业大学计算机学院主要内容8253工作原理8253的内部结构和引脚信号初始化编程步骤和门控信号的功能8253的工作方式8253的应用举例 8253定时功能的应用例子8253计数功能的应用例子8253在PC/XT机中的应用2 北京工业大学计算机学院定时是最常见和最普遍的问题,一天24小时的定时,称为日时钟。长时间的定时(日、月、年)称为实时时钟。计算机实时控制和处理系统中,要按一定的采样周期对处理对象进行采样,或定时检测某些参数等,都需要定时信号。计数使用得更多,在生产线上对零件和产品的计数;对大桥和高速公路上车流量的统计,等等对外部事件进行计数。

2、定时与计数的关系定时的本质就是计数,只不过这里的“数”的单位是时间单位。如果把计时单位累加起来,就可获得一段时间。因此, 定时的本质就是计数。3 北京工业大学计算机学院 采用可编程通用的定时/计数器电路产生定时。这种方法不占用CPU的时间CPU利用率高,定时时间由软件设置定时时间长,使用灵活。尤其是定时准确,定时时间不受主机频率影响,定时程序具有通用性,故得到广泛应用。目前,通用的定时/计数器集成芯片种类很多,如Intel8253/8254,Zilog的CTC等。本章对Intel8253定时/计数器进行详细讨论。(1)软件定时 利用CPU内部定时机构,运用软件编程,循环执行一段程序而产生的等待

3、延时。优点: 不需增加硬设备,简单只需编制相应的延时程序以备调用。缺点: 增加了CPU的时间开销, CPU执行延时时间越长,这种等待开销越大,降低了CPU的效率,浪费CPU的资源。并且,软件延时的时间随主机频率不同而发生变化,即定时程序的通用性差。实现定时的方法 (2)硬件定时 硬件定时常采用可编程和不可编程的硬件电路来实现定时。软件定时硬件定时采用555芯片和阻容器件构成定时电路。优点:电路简单,改R,C值可改变定时时间。缺点:不灵活,定时时间不可由程序控制和改变。且定时精度不高。4 北京工业大学计算机学院8-1 8253的工作原理 定时和计数的本质是相同的,它们都是对一个输入脉冲进行计数,

4、定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔。例如,输入脉冲的频率为2MHz,则:计数 2 1 0 6 - 定时1秒。 计数电路如果记录外设提供的具有一定随机性的脉冲信号时,主要反映脉冲的个数,又称为计数器。因此,使用同一个接口芯片,既能进行计数,又能进行计时,统称为定时/计数器。(Timer/Counter简称T/C)。5 北京工业大学计算机学院Intel 8253是一种可编程定时/计数器具有如下功能:具有3个独立的16位减法(-1)计数器;每一个计数器均可编程工作在6种方式下;能进行二进制/十进制(BCD)计数;计数频率为0 2MHz(8253-5

5、最高计数频率为5MHz);可作方波频率产生器、分频器和单脉冲发生器等。8-1 8253的工作原理6 北京工业大学计算机学院一、8253的内部结构和引脚信号见图8-1和8-28-1 8253的工作原理数据总线缓冲器控制字寄存器计数器 2计数器 1读/写逻辑电路计数器 0内部总线内部总线D7D0RDWRA0A1CSCLK0CLK2CLK1GATE0GATE1GATE2OUT0OUT2OUT18253的内部结构图7 北京工业大学计算机学院 24引脚双列直插式封装8-1 8253的工作原理8 北京工业大学计算机学院 1、数据总线缓冲器 8位 双向 三态发送或接收数据往计数器设置计数器初值从计数器读取数

6、值写控制寄存器2、读/写控制逻辑产生控制整个器件工作的控制信号CS:片选RD:CPU正在读计数器的值WR:CPU正在写计数器初值或写入控制字A1、A0:用来对3个计数器和控制器进行寻址,若8253的端口基地址为40H,计数器0,1,2和控制寄存器端口地址分别为,40H,41H,42H,43H。8-1 8253的工作原理9 北京工业大学计算机学院读/写控制逻辑10 北京工业大学计算机学院3、计数器028253内部包含3个完全相同的计数/定时器通道,这三个计数器相互独立,可各自按不同的方式工作。每个通道包括一个8位控制字寄存器,一个16位的计数初值寄存器,一个16位计数器执行部件和一个16位计数值

7、的输出锁存器(用于CPU从中读出当前计数值)。16位寄存器均可分为高8位和低8位寄存器来使用 每个通道对输入CLK信号的计数是“减1计数”。可按2进制和10进制进行,采用倒计数法先预置初值,开始递减计算。8-1 8253的工作原理11 北京工业大学计算机学院3、计数器02减1计数的具体操作过程:CPU把“控制字”,写入“控制寄存器”,把“计数初始值”写入“初值寄存器”, 定时/计数器按控制字要求计数。计数从“计数初始值 开始,每当CLK信号出现一次,计数值减1。当计数值减为0时,从OUT端输出规定的信号(具体形式与工作方式有关)。当CLK信号出现时,是否计数,受“门控信号”GATE的影响,一般

8、,仅当GATE有效时,才减1计数。8-1 8253的工作原理12 北京工业大学计算机学院3、计数器02用作定时器时,CLK引脚上应输入精确的时钟脉冲,即 定时时间=时钟脉冲周期*预置的计数初值8253 CLK引脚的时钟频率不得大于2MHzCLKi: 计数器的时钟输入 GATEi:计数器的门控制信号输入 OUTi: 计数器的输出8-1 8253的工作原理13 北京工业大学计算机学院4、控制字寄存器 是只写寄存器,用作选定计数器通道、规定各计数器通道的工作方式,读写格式控制。控制字如P275所示。 SC1 SC0-通道选择位 RL1 RL0-读写控制位 M2 M1 M0-工作方式选择位 BCD 计

9、数方式选择位 8-1 8253的工作原理14 北京工业大学计算机学院8253控制字格式计数值格式0 二进制格式1 BCD码格式方式选择000方式0001方式1010方式2011方式3100方式4101方式5读写指示00 计数器锁存,供CPU读01 只读写低位字节10 只读写高位字节11 先读写低位字节,后读写高位字节计数器选择00 计数器001 计数器110 计数器211 无意义D7 D6 D5 D4 D3 D2 D1 D0SC1 |SC0| RW1 | RW0 | M2 | M1 | M0 |BCD15 北京工业大学计算机学院在CPU为8088的PC/XT机中: 若8253的端口基地址为40

10、H,则计数通道0、1、2和控制寄存器端口的地址分别为:40H、41H、42H和43H。8253CSA1A0I/O译码8088高位地址线 A1 A016 北京工业大学计算机学院在CPU为8086的系统中: 8253的D7-D0可以接到数据总线D15-D8,也可以接到低8位数据总线D7-D0。在实际中,经常接到低8位数据总线。这样CPU就要求芯片的内部的各个端口都使用偶地址。使用CPU的A2A1来选择端口。8086高位地址线 A2 A18253CSA1A0I/O译码17 北京工业大学计算机学院1、8253初始化步骤 上电后8253可编程芯片,处于无定义状态,必须初始化后才可使用,具体初始化过程为:

11、写入控制字:用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该计数器工作方式和计数格式;起到复位作用,计数器清零写入计数初值:用输出指令向选中的计数器端口地址中写入一个计数初值,初值可以是8位或16位数据。16位数据分两次写入。计数初值写入8253,还要经过一个时钟脉冲的上升沿和下降沿,才能将计数数值装入实际的计数器,然后在门控信号GATE控制下对CLK引脚输入的脉冲进行递减计数。 二、初始化编程步骤和门控信号功能18 北京工业大学计算机学院计数器1计数器2H8 L8数据总线RDWRM/IO地址译码A0A1CSWRRDCLK1GATE1OUT1CLK2CLK0GATE2GATE0

12、OUT2OUT0D7D0控制寄存器计数器0高8位低8位高8位低8位计数初值寄存器 (CR)计数执行部件 (CE)输出锁存器 (OL)GNDVcc+5V19 北京工业大学计算机学院例1:在8086系统中,8253的基址为70H。编程使计数器0工作在方式2,计数初值的写入和计数值的读出仅使用低8位,初值为100,采用二进制计数方式。 MOV AL,00010100 B;控制字 OUT 76H,AL MOV AL,100;计数初值 OUT 70H,AL 1、8253初始化步骤20 北京工业大学计算机学院例2:在8088系统中,8253的基址为70H。编程使计数器1工作在方式1,计数初值的写入和计数值

13、的读出使用16位,先低后高,初值为1234,采用BCD计数方式。 MOV AL,01110011B;控制字 OUT 73H,AL MOV AX,1234H;BCD 1234 OUT 71H,AL;计数初值低8位 XCHG AL,AH OUT 71H,AL;计数初值高8位1、8253初始化步骤21 北京工业大学计算机学院例3:在8086系统中,8253的基址为800H。欲使计数器2工作在方式5,初值为4000,采用BCD计数方式。试写出初始化程序。MOVDX, 0806HMOVAL, 10111011BOUTDX, ALMOVDX, 0804HMOVAX,4000HOUTDX,ALMOVAL,A

14、HOUTDX,AL1、8253初始化步骤22 北京工业大学计算机学院2、门控信号控制功能门控信号GATE在各种工作方式下功能如P279-P282六种工作方式。 23 北京工业大学计算机学院三、8253的工作方式在计数方式下: 当计数器被赋予初值时,由CLK时钟在GATE开启状态下,对计数器进行减1计数,在一串CLK脉冲作用下,计数器减到0时,由OUT端输出一信号。在定时方式下: 当定时器被赋予初值时,由CLK时钟脉冲在GATE开启状态下触发定时器开始工作,定时器在OUT端不间断地产生CLK时钟整数倍的定时时间间隔。 8253A每个计数器都有6种工作方式。8253A可工作在计数和定时两种方式下2

15、4 北京工业大学计算机学院1、方式0计数结束中断方式写入控制字为方式0时,out输出端为低电平n值被写入8253的计数器初值寄存器,写信号在上升沿后的时钟脉冲的下降沿,才把n装入通道内的实际计数器中开始减1计数。方式0,要使8253计数,门控信号GATE必须为高电平如果GATE变为低电平,则暂停减1计数,直到GATE为高电平继续计数方式0进行计数时,计数器只计数一次,重新计数需重新写入计数值25 北京工业大学计算机学院2、方式1可编程单稳态输出方式写入控制字为方式1时,out输出端为高电平n值写入计数器,GATE形成一个上升沿后,在下一个时钟脉冲的下降沿,才把n装入计数器,同时out输出一个低

16、电平,计数器中开始减1操作。计数器减到0,out输出高电平。 OUT引脚上得到一个负脉冲,并可由编程控制负脉冲的宽度,等于时钟脉冲的宽度乘以计数n值。计数过程,GATE产生低跳变,不会影响计数过程,但若GATE又产生正跳变,重新开始计数,OUT负脉冲的宽度加大。26 北京工业大学计算机学院3、方式2-比率发生器写入控制字为方式2时,out输出端为高电平如果GATE为高电平,写入计数值后的下一个时钟脉冲,进行递减计数。当计数减为1时,out输出为低电平,计数减为0,out又输出为高电平,同时,重新装入计数值,开始新的过程,周而复始。若计数值为n,out引脚上,每隔n个时钟脉冲就产生一个负脉冲。计

17、数过程中写入新的计数值,计数周期结束后,才按新的计数值工作。计数过程,GATE变为低电平,将迫使OUT为高电平,并禁止计数,当GATE由低变为高电平,下一个时钟脉冲,预置初值,重新开始。27 北京工业大学计算机学院4、方式3-方波发生器CLKWRGATE“1”OUTCWN=4424242OUT54255424N=42524N=5和方式2类似,out输出为基本对称的方波。写入控制字为方式3时,out输出端为高电平,如果GATE为高电平,写入计数值后的下一个时钟脉冲,进行递减计数。写入计数初值为偶数,每输入一个脉冲,计数值减2。计数值减为0,out输出由高电平变为低电平。同时,自动重新装入计数初值

18、进行计数,当计数值减为0,out又变为高电平,开始新的循环。写入计数初值为奇数,第一个脉冲减1,以后计数值减2。从out输出方波的频率都等于时钟脉冲的频率除以计数值。计数过程,GATE变为低电平,将迫使OUT为高电平,并禁止计数,当GATE由低变为高电平,下一个时钟脉冲,预置初值,重新开始。28 北京工业大学计算机学院5、方式4-软件触发选通写入控制字为方式2时,out输出端为高电平如果GATE为高电平,写入计数值后的下一个时钟脉冲,进行递减计数。当计数减为0,out又输出为低,经过一个时钟周期又回到高电平。此方式装入的计数初值仅一次有效。计数过程中写入新的计数值,将按新的计数初值进行计数,同

19、样一次。计数过程,GATE变为低电平,则停止计数,当GATE变为高电平后,又重新预置初值,直至减为0,out输出一个负脉冲。29 北京工业大学计算机学院6、方式5-硬件触发选通写入控制字为方式5时,out输出端为高电平当装入计数值n,不管GATE如何减1计数器不工作,等到GATE引脚上输入正跳变时,在下一个时钟脉冲的下降沿后开始减1计数。当计数器减为0,out输出一个时钟周期的负脉冲。8253自动将计数初值装入计数器,再等待GATE引脚的正跳变才进行减1计数。计数过程中,如果GATE有上升沿可触发计数器,从计数初值开始计数30 北京工业大学计算机学院各种方式的主要特点概括:方式0:写入控制字后

20、,输出端变低,计数结束后,输出端变高,常用该输出端作为中断源,其余5种方式写入控制字后,输出端均变高,方式0可实现定时或对外部事件进行计数。方式1:用来产生单脉冲,脉冲宽度可与程序控制方式2:用来产生连续序列的负脉冲,脉冲宽度与时钟脉冲宽度相同方式3:用来产生连续的方波,方式2和方式3都实现对时钟脉冲进行n分频方式4和方式5的波形相同,都是在计数器回0后,从out端输出一个负脉冲,其宽度等于一个时钟周期。但方式4由软件(设置计数值)触发计数,方式5由硬件(门控信号)触发计数。方式0,1,4:计数初值仅一次有效,对于方式2,3,5减到0后,8253自动将计数值重装进计数器三、8253的工作方式3

21、1 北京工业大学计算机学院一、8253定时功能的应用例子1、用8253产生各种定时波形 在某个以8086为CPU的系统中使用了一块8253芯片,通道的基地址为310H,所用时钟脉冲频率为1MHz,要求3个计数器分别完成以下功能:a.通道0工作于方式3,输出频率为2kHz的方波b.通道1产生宽度为480us的单脉冲c.通道2用硬件方式触发,输出单脉冲,时间常数为26.据此设计画出硬件电路图;编写8253初始化程序;8-2、8253的应用举例32 北京工业大学计算机学院时间常数N0=1MHz/2kHz=500;通道0初始化程序MOV DX , 316HMOV AL , 00110111BOUT D

22、X, ALMOV DX , 310HMOV AL, 00HOUT DX, ALMOV AL, 05HOUT DX, AL8-2、8253的应用举例33 北京工业大学计算机学院时间常数N1=480s /1 s=480;通道1初始化程序MOV DX , 316HMOV AL , 01110011BOUT DX, ALMOV DX , 312HMOV AL, 80HOUT DX, ALMOV AL, 04HOUT DX, AL8-2、8253的应用举例34 北京工业大学计算机学院;通道2初始化程序MOV DX , 316HMOV AL , 10011011BOUT DX, ALMOV DX , 31

23、4HMOV AL, 26HOUT DX, AL8-2、8253的应用举例35 北京工业大学计算机学院2、控制LED的点亮或熄灭 要求点亮10秒后再让它熄灭10秒,重复此过程 设计过程:采用8086系统,8253的各端口地址为81H ,83H ,85H ,87H。8253的数据线D 7D 0和CPU的高8位数据总线D 15D 8相连(这样才能选中奇地址)。使8253的某个通道的out端输出方波(占空比1:1,周期为20秒),就能解决此问题。因为CLK端的频率为2MHz,所以一个通道的OUT端输出的脉冲周期最大为1/2M*65536=32.768ms,需用两个通道级连来实现 一、8253定时功能的

24、应用例子36 北京工业大学计算机学院2、控制LED的点亮或熄灭设计结果如下:2MHz加在CLK0,通道0工作在方式2,若选择N0=5000,则OUT0得到负脉冲频率为2MHz/5000=400Hz,周期为2.5ms 。再将该信号接CLK1,通道1工作在方式3,为使OUT1 输出20s周期的方波,应取时间常数N1=20s/2.5ms=8000一、8253定时功能的应用例子37 北京工业大学计算机学院;通道0初始化程序MOV AL , 00110101BOUT 87H, ALMOV AL, 00HOUT 81H, ALMOV AL, 50HOUT 81H, AL8-2、8253的应用举例;通道1初

25、始化程序MOV AL , 01110111BOUT 87H, ALMOV AL, 00HOUT 83H, ALMOV AL, 80HOUT 83H, AL38 北京工业大学计算机学院假设一个自动化工厂需要统计在流水线上所生产的某种产品的数量(每500个工件发一次中断),可采用8086CPU和8253来实现1、硬件电路设计:见黑板2、初始化编程:选择计数器1工作于方式0,按BCD码计数。先读/写低字节,后读/写高字节,选初值为499,经过N+1个脉冲,向CPU发出一次中断请求。3、计数值的读取:如果在计数中途需了解计数个数,由于计数值在不断变化,需要CPU在读取计数值时,对现行的计数值进行锁存,

26、然后再读出。 二、8253计数功能的应用例子39 北京工业大学计算机学院8-2、8253的应用举例;初始化程序MOV AL , 01110001BOUT 0F6H, ALMOV AL, 99HOUT 0F2H, ALMOV AL, 04HOUT 0F2 H, AL40 北京工业大学计算机学院计数值读出命令 在许多用到8253的计数功能的场合,需要读取计数器的现行计数值,由于读出命令用来读取计数器的当前计数值,读取命令分两步完成: ()发出锁存命令,使当前计数值锁存在输出锁存器(OL)中 ()读输出锁存器(OL),获得当前计数值。必须注意:计数值是16位的,但8253均为8位端口,必须分两次读取,才能获得16位的值,为了避免第1次读取后,计数值发生变化,必须使用锁存命令使计数值锁存在输出锁存

温馨提示

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

评论

0/150

提交评论