D8.2计数器定时器芯片8253_第1页
D8.2计数器定时器芯片8253_第2页
D8.2计数器定时器芯片8253_第3页
D8.2计数器定时器芯片8253_第4页
D8.2计数器定时器芯片8253_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

8.2计数器/定时器接口芯片8253定时器和计数器的应用含义:定时器或计数器输入信号in输出信号out定时或计数值8.2计数器/定时器接口芯片8253微机系统中经常会要求有一些实时时钟以实现定时或延时控制,也要求有计数器对外部事件计数实现上述要求可采用3种方法:

1.硬件定时用数字逻辑电路来构成,通用性、灵活性较差

2.软件定时利用程序段实现,通过正确挑选指令和安排循环次数很容易改变定时时间,但软件定时占用了CPU,降低了CPU的利用率。

3.采用可编程定时器/计数器定时时间与计数值可由软件来确定和改变,设定后与CPU并行工作,不占用CPU的时间。8.2.18253的内部结构2.控制寄存器——存放CPU送来的控制字,控制8253的工作方式。1.三个独立的计数/定时通道——计数器0,计数器1,计数器2。每个计数器的结构为:(1)16位计数初值寄存器(CR)——存放计数的初值(预置);(2)16位的计数执行部件(CE)——16位减1计数器;(3)16位输出锁存器(OL)——跟随CE变化,但可以锁存,便于CPU读取。CR、CE、OL的相互关系为:1.数据线D7~D0——8位,双向、三态,用于8253与CPU之间的数据传送。包括:向8253写控制字,送计数初值及读计数器的现行值。2.读写控制信号RD,WR3.片选及地址线CS,A1,A0——用于芯片及内部寄存器、计数器的寻址。在IBM-PC机中,A9A8A7A6A5=00010选中(CS=0),A4A3A2未用,A1A0接8253的A1A0。8.2.28253的引脚功能A9A8A7A6A5A4A3A2A1A0

功能 基本地址00010×××00 选中计数器0 040H00010×××01 选中计数器1 041H00010×××10 选中计数器2 042H00010×××11 选中控制寄存器 043H(其他)××××× 芯片禁止(说明:8253有32个地址,除基本地址外,其余为影像地址)译码电路A9A8A7A6A5A1A0CSA1A0去8253CS去8253A9A8A7A6A5A1A0A1A0等价关系5.计数器门控输入信号GATE0~GATE2——启动或控制计数/定时信号;6.计数器输出信号OUT0~OUT2——计数结束、定时到输出信号或分频输出信号。4.计数器时钟输入CLK0~CLK2——计数/定时的基值信号8253:0~2MHz8254-2:0~10MHz8.2.28253的编程1.控制字格式(必须记住)计数初值为8位,则控制字中的RL1、RL0应取01,初值只写入CR的低8位,高8位会自动置0;若是16位初值,而低8位是0,则RL1RL0应取10,初值高8位写入CR的高8位,CR的低8位会自动置0;若是一般16位初值,则RL1,RL0应取11,应分两次写入初值,先写低8位、再写入高8位(此顺序不能反)2.计数初始值计数初始值写入对应计数器的计数初值寄存器CR

;3.初始化流程先写入工作方式控制字,接着写入计数初始值单个计数器初始化写方式控制字写计数低字节写计数高字节写方式控制字(计数器0)写方式控制字(计数器1)写方式控制字(计数器2)写计数低字节(计数器0)写计数高字节(计数器0)写计数低字节(计数器2)写计数高字节(计数器2)写计数低字节(计数器0)写计数高字节(计数器0)多个计数器初始化计数器的顺序是任意的,不必一定按照计数器0、l、2的顺序初始化;可先写所有计数器的工作方式控制字,再装入各计数器的计数值(但先控制字再计数值的顺序不能错);计数值先写低再写高的顺序不能错;其他顺序无关紧要MOVAL,00110111B;对计数器0送工作方式字OUT43H,ALMOVAX,1234H;送计数初值OUT40H,ALMOVAL,AHOUT40HALMOVAL,10010100B;对计数器2送工作方式字OUT43H,ALMOVAL,61H;送计数初值OUT42H,AL例:选择计数器0工作于方式3,计数初值为1234,十进制计数方式;计数器2工作于方式2,计数初值为61H,采用二进制计数方式,设8253的端口地址为40~43H。其初始化编程如下:

(2)初值写入后,要经过1个时钟CLK的上升沿和1个下降沿后,计数执行部件才开始计数;(3)在CLK的上升沿时,计数器对门控信号GATE进行采样,来决定工作状态(计数、触发、停止、重新置初值);(4)在CLK的下降沿时,计数器执行部件从初值开始作减1计数;其中0是最大初值,1是最小初值;若以二进制数制计数,则0相当于216=65536若以BCD(十进制)数制计数,则0相当于104=100008253初始化规则(1)对计数器设置初值前必须先写入控制字,此时,全部控制逻辑电路复位,输出OUT为初始状态(高电平或低电平);读到的是执行输入指令瞬间计数器的现行值。16位计数值要分两次读至CPU,故必须将数据锁存。有两种办法:利用外加控制信号GATE使计数器暂停计数,然后按照工作方式控制字中RL1RL0的规定读取规定字节。CPU向8253发出锁存命令字(SC1SC000XXXX)锁存计数器的当前计数值(当前计数值锁存在输出锁存器OL,而减1计数器可以继续计数),再读取输出锁存器的计数值。当CPU读取了规定的字节数后,OL自动解除锁存状态,其值又跟随计数器而变化。读计数值——将某计数器的计数值读到CPU中8.2.48253的工作方式8253有6种工作方式:不同方式下,启动方式、GATE信号的作用、OUT输出波形都有所不同,但以下几条基本规则是相同的:工作方式控制字写入计数器时,输出端OUT进入初始状态(高电平或低电平);计数初值写入CR后,在下一个CLK脉冲才装入减1计数器CE,因此该CLK脉冲并不影响计数;CE的减1计数操作发生在CLK的下降沿;计数器对门控信号GATE的采样是在CLK上升沿说明:①初值装入后,要经过1个CLK的周期(1个上升沿和1个下降沿)后,计数器才开始计数,所以,输出OUT要经过N+1个时钟周期后才有输出;

CWN=4WRCLKGATEOUT

NN43210FF装控制字装初值计数开始计数结束1.方式0——计数结束产生中断②输出OUT的有效电平为高电平,并可同时触发中断请求;③门控GATE的作用:高电平时计数,低电平或下降沿时停止计数;④CW为写入控制字,N=4表示写入初值。N+12.方式1——可重触发的单稳态触发器

CWN=3WRCLKGATEOUT

NN3210FF3210FF装控制字装初值计数开始计数结束说明:①方式字和初值装入后,在门控GATE的上升沿触发下,经过1个CLK的上升沿和1个下降沿后,计数器开始从初值减1计数,同时使OUT=0;当计数结束(归0)时,OUT=1,使输出产生1个宽度为TW=N×TCLK的负脉冲——单稳态触发器。②在GATE的上升沿触发下,输出可再次产生1个宽度为TW负脉冲——可重触发。说明:①方式字装入后,OUT=1为初始状态。②初值装入后,经过1个CLK的周期,计数器开始从初值减1计数,计到1(不是0)时,使输出OUT=0并保持1个CLK周期,然后OUT=1,开始下一个新的计数周期,使输出为CLK的时钟1/N分频信号,占空比q=(N-1)/N。③门控GATE的作用:高电平时计数,低电平停止计数;用GATE的上升沿可以触发分频重新开始——称为硬同步;而在GATE=1时,用装初值的方法启动分频开始——称为软同步

CWN=3WRCLKGATEOUT

NN32132132133.方式2——分频器4.方式3——方波发生器说明:特点与方式2类似,主要区别:输出方波,其占空比q为①当N为偶数时,q=0.5;②当N为奇数时,q=(N+1)/2N。

CWN=4WRCLKGATEOUT

NN432143214325.方式4——软件触发的选通信号发生器说明:①初值装入后,经过1个CLK的周期,计数器开始从初值减1计数,计数结束(归0)时,使输出OUT产生一个宽度为1个CLK周期的负脉冲——选通信号。②(用指令)重新装入初值后,经过N+1个CLK周期,又可使OUT产生一个选通信号——(用软件)可重触发。③门控GATE的作用:高电平时计数,低电平时停止计数;

CWN=3WRCLKGATEOUT

NN3210FFFE3210FFN=3

CWN=3WRCLKGATEOUT

NN3210FFFE3210FF6.方式5——硬件触发的选通信号发生器说明:①初值装入后,在GATE的上升沿的触发下,经过1个CLK的周期,计数器开始从初值减1计数,计数结束(归0)时,使输出OUT产生一个宽度为1个CLK周期的负脉冲——选通信号。②用GATE的上升沿可重新触发,使OUT产生一个选通信号——(用硬件)可重触发。8.2.58253应用举例5s2000Hz50H②计数器1工作于方式3方波方式,产生2000Hz喇叭音调,方式控制字为:01110111B(77H),即方式3,先低后高,BCD数制;初值(分频比)=(1.4×106)/2000=700(H)。分析:①计数器0工作于方式2分频方式,每隔50个CLK0产生一个中断INT;方式控制字为:00010101B(15H),即方式2,只装低8位,BCD数制,初值为50(H)。十进制的表示主程序段: MOV AL,15H;置计数器0方式

OUT 43H,AL;

MOV AL,50H;装初值

OUT 40H,AL;

MOV AL,00H;关8255的PC0 OUT 63H,AL;

MOV AL,77H;置计数器1方式

OUT 43H,AL;

MOV AL,00H;装初值

OUT 41H,AL;

MOV AL,07H;

OUT 41H,AL;

STI;

LOP:HLT;

JMP LOP;(再次声明:在装入8253计数器的初值时,不管是二进制数制还是BCD数制,初值后均要加“H”。)中断服务程序:INTP: MOV AL,01H;开8255的PC0 OUT 63H,AL;

CALL DLY5S;调5S延迟子程序

MOV AL,00H;关8255的PC0 OUT 63H,AL;

IRET;练习:用8253设计洗衣机定时程序,设输入频率为2MHz,要求能产生3分、6分和12分的定时,定时到产生中断,试画出8253的连接示意图并编写相应的程序段。送8259产生INTCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT22MHz5ms1s分析:计数器0工作于方式3,初值N=0(10000)(H)计数器1工作于方式3,N=200(H)计数器2工作于方式0,初值由3分、6分、12分除1S(减1)得出MOVAL,00110111B;OUT43H,AL;MOVAL,00H;OUT40H,AL;OUT40H,AL;MOVAL,01110111B;OUT43H,AL;MOVAL,00H;OUT41H,AL;MOVAL,02H;OUT41H,AL;计数器0工作于方式3,初值N=0(10000)(H)计数器1工作于方式3,N=200(H)3分定时:N=180/1=180MOVAL,10110001B;OUT43H,AL;MOVAL,80H;OUT42H,AL;MOVAL,01H;OUT42H,AL;6分定时:N=360/1=360MOVAL,10110001B;OUT43H,AL;MOVAL,60H;OUT42H,AL;MOVAL,03H;OUT42H,AL;计数器2工作于方式0,初值由3分除1S(减1)得出计数器2工作于方式0,初值由6分除

温馨提示

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

评论

0/150

提交评论