微机原理第9章计数器和定时器电路.ppt_第1页
微机原理第9章计数器和定时器电路.ppt_第2页
微机原理第9章计数器和定时器电路.ppt_第3页
微机原理第9章计数器和定时器电路.ppt_第4页
微机原理第9章计数器和定时器电路.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、第9章 计数器和定时器电路 intel8253/8254-PIT,9.1 概述 9.2 8253-PIT的控制字 9.3 8253-PIT的工作方式 9.4 8253-PIT的编程 9.5 Intel 8254-PIT,9.1 概 述,8253-PIT的主要功能有: (1)有3个独立的16位计数器。 (2)每个计数器都可以按照二进制或BCD码进行计数。 (3)每个计数器的计数速率可高达2MHz(8254-2计数频率可达到10MHz)。 (4)每个计数器有6种工作方式,可由程序设置和改变。 (5)所有的输入输出引脚电平都与TTL电平兼容。 8253的内部结构如图所示。,8253的内部结构,(1)

2、数据总线缓冲器。这是8253与CPU数据总线连接的8位双向三态缓冲器。CPU用输入输出指令对8253进行读写的所有信息,都是通过这8条总线传送的。 (2)读/写逻辑。这是8253内部操作的控制部分。 (3)控制字寄存器。在8253初始化编程时,由CPU写入控制字以决定计数器的工作方式。此寄存器只能写入而不能读出。 (4)计数器#0、计数器#1、计数器#2。这是三个计数器/定时器,每一个都是由一个16位的可预置值的减法计数器构成。这三个计数器的操作是完全独立的。,8253-PIT的引线,9.2 8253-PIT的控制字,在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字,它

3、规定了8253的工作方式。其格式如图所示。 (1)计数器选择(D7D6)。控制字的最高两位决定这个控制字是哪一个计数器的控制字。,8253的控制字,(2)数据读/写格式(D5D4)。CPU向计数器写入初值和读取它们的当前状态时,有几种不同的格式。 (3)工作方式(D3D2D1)。8253的每个计数器可以有6种不同的工作方式,由这三位决定。每一种方式的特点,随后介绍。 (4)数制选择(D0)。8253的每个计数器有两种计数制:二进制计数和BCD码计数,由这位决定。,9.3 8253-PIT的工作方式,方式0计完最后一个数时中断 在这种方式下,当控制字CW(Control Word)写入控制字寄存

4、器,则使OUT输出端变低,此时计数器没有赋予初值,也没开始计数。 要开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中 OUT线一直维持为低,直到计数到“0”时。OUT输出变高。,9.3.1 6种工作方式,方式0波形,方式0时GATE信号的作用,方式0在计数过程中改变计数值,方式1可编程序的单拍脉冲 在这种方式下,当CPU写控制字之后(的上升沿),输出将保持为高(若原为低,则由低变高)。当CPU写完计数值后,计数器并不开始计数,直到外部门控脉冲GATE启动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT变低。因整个计数过程中,OUT都维持为低,直到计数到0

5、,输出变为高,因此,输出为一个单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。,方式1波形,方式1时GATE信号的作用,方式1在计数过程中改变计数值,方式2速率发生器 在这种方式下,当CPU输出控制字后,输出将为高。在写入计数值后,计数器将立即自动对输入时钟CLK计数。在计数过程中输出始终保持为高,直至计数器减到1时,输出将变低,经过一个CLK周期,输出恢复为高,且计数器开始重新计数。每输入n个CLK脉冲,会输出一个脉冲(宽度为一个CLK),方式2波形,方式2时GATE信号的作用,方式2在计数过程中改变计数值,方式3方波速率发生器 方式3和方式2的输出都是周期性的,它们的主要区别是,方

6、式3在计数过程中输出有一半时间为高,另一半时间为低。,方式3在计数值为偶数时的波形,方式3在计数值为奇数时的波形,方式3时GATE信号的作用,方式4软件触发选通 在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能开始新的计数。,方式4波形,方式4时GATE信号的作用,方式4在计数过程中改变计数值,方式5硬件触发选通 在这种方式下,设置了控制字后,输出为高。在设置了计数值后,计数器并不立即开始计数,

7、而是由门控脉冲的上升沿触发启动。当计数到0时,输出变低,经过一个CLK脉冲,输出恢复为高,停止计数。要等到下次门控脉冲的触发才能再计数。,方式5波形,方式5时GATE信号的作用,方式5在计数过程中改变计数值,9.3.2 8253工作方式小节,计数值的设置 6种方式都是在写入计数值后开始计数,方式0、2、3、4是在写入计数值后,计数过程就开始了,方式1、5则是需要外部触发启动,才开始计数。 6种方式中,方式2、3是连续计数,其他方式是一次性计数;方式0、4由写入计数值(软件)启动,方式1、5要由外部信号(硬件)启动,1. 输出OUT信号的初始状态,计数值N与输出波形,3. 门控信号的作用,4.

8、在计数过程中改变计数值,5. 计数到0后计数器的状态: 方式0、1、4、5,计数器计到0后,都从最大计数值继续倒计数;方式2、3是连续计数。,9.4 8253-PIT的编程,要使用8253必须首先进行初始化编程,初始化编程的内容为:必须先写入每一个计数器的控制字,然后写入计数器的计数值。计数器的控制字和计数值,是通过两个不同的端口地址写入的。控制字都是写入至控制字寄存器(地址总线低两位A1A0=11),由控制字中的D7D6来确定是哪一个计数器的控制字;而计数值是由各个计数器的端口地址写入的。,初始化编程的步骤为: (1)写入计数器控制字,规定计数器的工作方式。 (2)写入计数值。 计数器初值计

9、算:N=fCLK/fOUT,例:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器0,工作模式2,仅使用低8位,初值为100,计数值使用二进制,MOV AL, 14H OUT 73H, AL MOV AL, 100 OUT 70H, AL,例:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器1,工作模式1,使用16位,初值为1234,计数值使用BCD数,MOV AL, 0111 0011B OUT 73H, AL MOV AX, 1234H OUT 71H, AL MOV AL, AH OUT 71H, AL,每个计数器的初值寄存器

10、(CR)、输出锁存器(OL)都是16位的,但它们对应相同的一个8位端口地址,所以16位的CR、OL作为两个8位寄存器读写,由控制寄存器控制读写高8位/低8位,读出命令,1)发出锁存命令,使当前计数值锁存在输出锁存器中 2)读输出锁存器,获得当前计数值,例:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。读出计数器0的当前计数值,放在BX中,MOV AL, 0000 0000B OUT 73H, AL IN AL, 70H MOV BL, AL IN AL, 70H MOV BH, AL,8253的应用,例:以2MHz输入8253,实现每5秒定时中断 (设8253端口地

11、址40H43H),分析:8253最大初值65536,CLK=2MHz可实现最大时间间隔 65536/(2106)=32.769ms,所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输入,计数器1:模式2,OUT1每5ms输出一个脉冲 初值(2106)/(1/0.005)=10000 计数器0:模式2,OUT0每5s输出一个脉冲 初值(1/0.005)/(1/5)=1000,程序:,MOV AL, 0111 0100B OUT 43H, AL MOV AX, 10000 OUT 41H, AL MOV AL, AH OUT 41H, AL MOV AL, 0011 0100B OUT

12、43H, AL MOV AX, 1000 OUT 40H, AL MOV AL, AH OUT 40H, AL,8253应用例题要求计数器0工作于方式2,输出脉冲周期为10ms;计数器1产生10KHZ的方波信号,计数器2工作于方式0,输出脉冲周期为5ms(设端口地址为120H123H),10KHz,10ms,5ms,计算计数初值:N=fCLK/fOUT或N=Tout/Tclk CNT0:10ms/0.5us=20000 CNT1:2 MHz/10KHz=200 CNT2: 5ms/0.5us=10000 确定控制字: CNT0:方式2,16位计数值 CNT1:方式3,低8位计数值 CNT2:方

13、式0, 16位计数值,8253初始化编程,CNT0: MOV DX,0123H MOV AL,0011 0100B OUT DX,AL MOV DX,0120H MOV AX,20000 OUT DX,AL MOV AL,AH OUT DX,AL,CNT1: CNT2: ,例题,用8253构成定时、计数系统,要求系统完成如下功能:通道0用于外部事件计数,计满100次通过中断控制器8259向CPU发出中断请求;通道1产生频率为1kHz的方波;通道2用于产生标准定时时钟,1秒钟通过8259中断控制器向CPU发出一次中断请求信号。设8253口地址为0e00e3h 分析:计数器0应设置为方式0,即计数

14、结束中断方式。其计数初值设为100,输出的上升沿送至8259的IR0。计数器1设为方式3,计数初值为2MHZ/1KHZ=2000.计数器2也应设为方式0,即计数结束产生中断,以实现计时功能,每秒钟用OUT2向CPU发出一次中断请求。由于输出脉冲的周期为1s,所以可将通道1与通道2级连。通道2的输入时钟频率为1khz,所以计数初值为1s/0.001=1000,通道2的输出送8259的IR1,CLK0,GATE0,OUT1,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8253,CLK2,GATE1,GATE2,+5V,CLK1,2MHz,OUT0,OUT2,intel8259,IR0,IR1,外部事件,1kHz,8253初始化编程,CNT0: MOV AL,0001 0000B OUT 0e3h,AL MOV Al,100 OUT 0e0h,AL CNT1: Mov al, 0111 0110b Out 0e3h,al Mov ax,2000,Out 0e1h,al Mov al,ah Out 0e1h,al CNT2: ,作业,1.设8253三个计数器的端口地址为7

温馨提示

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

评论

0/150

提交评论