第六章 微机接口技术2.ppt_第1页
第六章 微机接口技术2.ppt_第2页
第六章 微机接口技术2.ppt_第3页
第六章 微机接口技术2.ppt_第4页
第六章 微机接口技术2.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、6.3 定时/计数器芯片 8253/8254,在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。 在计算机系统中经常要用到定时信号,如动态存储器的刷新定时、系统日历时钟的计时,系统定时中断以及喇叭的声源等都是用定时信号来产生的。,定时信号可以是软件定时和硬件定时。硬件定时又可分为不可编程的硬件定时和可编程的硬件定时两种。 (

2、1)硬件法。硬件定时主要指用单稳延时电路或计数电路来实现延时和定时。可编程定时/计数方法的优点是定时或计数时,不占用CPU空间。特点是需要花费一定硬设备,而且当电路制成之后,定时值及计数范围不能改变。 (2)软件法。软件定时是根据所需要的时间常数来设计一个延迟子程序, 无需太多的硬设备,控制比较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。 (3)软、硬件结合法,即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。,一、 8253的功能概述,每个8253芯片有3个独立

3、的16位计数器通道 每个计数器通道都可以按照二进制或二十进制计数 每个计数器的计数速率可以高达2MHz 每个通道有6种工作方式,可以由程序设定和改变 所有的输入、输出电平都与TTL兼容,二、8253内部结构和引脚功能,1)内部结构,2)8253的外部引脚,8253芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,如下: D7D0:双向、三态数据线引脚,用以与系统的数据线连接,传送控制、数据及状态信息。 RD:来自于CPU的读控制信号输入引脚,低电平有效。 WR:来自于CPU的写控制信号输入引脚,低电平有效。 CS:芯片选择信号输入引脚,低电平有效 VCC及GND:+5V电源及接地引

4、脚,A1、A0:地址信号输入引脚,一般接CPU地址总线的A1、A0位,用以选择8253芯片的通道及控制字寄存器。、的状态与8253端口地址的对应关系000通道011通道102通道11控制端口 CLKi:i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。 GATEi:i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道 的工作方式有关。 OUTi:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式 由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向 CPU

5、发出的中断请求信号。,3. 8253的端口寻址,三、 8253的编程命令,8253的三个计数器在工作前必须分别进行初始化编程。每个计数器的编程步骤均由写入控制字开始,选定一种工作方式,然后写入计数初值。8253的编程主要包括设置控制字、赋初值、发锁存命令和读计数值。 1) 设置控制字 2) 赋初值, 设置控制字后,按规定给计数器赋初值。 3锁存命令。在读计数值时,应先用锁存命令将计数器当前的计数值在锁存器中锁定,然后再加以读取。目的是为了获取正确的当前计数值。锁存器的输出会随计数执行部件的内容而变化,当计数器收到一个锁存命令时,锁存器的输出将保持当前的计数值不再发生变化。 4. 读计数值。读计

6、数值即CPU通过执行输入指令来获取当前计数值。读计数值时,必须符合控制字的有关规定,即只读低位字节还是只读高位字节或高低位字节都读。,1.8253控制字,2 初始化编程,要使用8253,必须首先进行初始化编程,初始化编程包括设置通道控制字和送通道计数初值两个方面,控制字写入8253的控制字寄存器,而初始值则写入相应通道的计数寄存器中。 初始化编程包括如下步骤: (1)写入通道控制字,规定通道的工作方式 (2)写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,则低8位自动置0。若为16位计数值则分两次写入,先写低8位,后写高8位。 D0:用于确定计数数制,0,二进制;1,BCD码

7、,3 、8253的锁存命令,四、 8253的工作方式,1方式0计数结束产生中断 当控制字写入控制字寄存器后,输出OUT就变低,当计数值写入计数器后开始计数,在整个计数过程中,OUT保持为低,当计数到0后,OUT变高;GATE的高低电平控制计数过程是否进行。, 计数器只计一遍,直到输入一新的计数值,OUT才变低,开始新的计数; 计数值是在写计数值命令后经过一个输入脉冲,才装入计数器的,下一个 脉冲开始计数,因此,如果设置计数器初值为N,则输出OUT在N1 脉冲后才能变高; 在计数过程中,GATE信号控制暂停。当GATE0时,暂停;当GATE1时,继续计数 在计数过程中可以改变计数值,且这种改变是

8、立即有效的.,2方式1可编程的硬件触发单拍脉冲 CPU向8253写入控制字后OUT变高,并保持,写入计数值后并不立即计数,只有当外界GATE信号启动后(一个正脉冲)的下一个脉冲才开始计数,OUT变低,计数到0后,OUT才变高,此时再来一个GATE正脉冲,计数器又开始重新计数,输出OUT再次变低,因此输出为一单拍负脉冲。,输出OUT业宽度为计数初值的单脉冲; 输出受门控信号GATE的控制,分三种情况: 计数到0后,再来GATE脉冲,则重新开始计数,OUT变低; 在计数过程中来GATE脉冲,则从下一CLK脉冲开始重新计数,OUT保持为低; 改变计数值后,只有当GATE脉冲启动后,才按新值计数,否则

9、原计数过程不受影响,仍继续进行,新值的改变是从下一个GATE开始的。 计数值是多次有效的,每来一个GATE脉冲,就自动装入计数值开始从头计数,因此在初始化时,计数值写入一次即可。,3、方式2速率发生器 CPU输出控制字后,输出OUT就变高,写入计数值后的下一个CLK脉冲开始计数,计数到1后,输出OUT变低,经过一个CLK以后,OUT恢复为高,计数器重新开始计数,输出连续相同间隔的负脉冲(前提:GATE保持为高),即周期性地输出,,通道可以连续工作; GATE可以控制计数过程,当GATE为低时暂停计数,恢复为高后重新从初值;(注意:该方式与方式0不同,方式0是继续计数) 重新设置新的计数值即在计

10、数过程中改变计数值,则新的计数值是下次有效的,同方式1。,4方式3方波速率发生器 这种方式下的输出与方式2都是周期性的,不同的是周期不同,CPU写入控制字后,输出OUT变高,写入计数值后开始计数,不同的是减2计数,当计数到一半计数值时,输出变低,重新装入计数值进行减2计数,当计数到0时,输出变高,装入计数值进行减2计数,循环不止,通道可以连续工作; 关于计数值的奇偶,若为偶数,则输出标准方波,高低电平各为N/2个;若为奇数,输出有(N1)/2个CLK个高电平,(N1)/2个CLK个低电平; GATE信号能使计数过程重新开始,当GATE0时,停止计数,当GATE变高后,计数器重新装入初值开始计数

11、,尤其是当GATE0时,若OUT此时为低,则立即变高,其它动作同上; 在计数期间改变计数值不影响现行的计数过程,新的计数值是在现行半周结束后才装入计数器。但若中间遇到有GATE脉冲,则在此脉冲后即装入新值开始计数。,5方式4软件触发的选通信号发生器 当CPU写入控制字后,OUT立即变高,写入计数值开始计数,当计数到0后,OUT变低,经过一个CLK脉冲后,OUT变高,这种计数是一次性的(与方式0有相似之处),只有当写入新的计数值后才开始下一次计数。,当计数值为N时,则间隔N1个CLK脉冲输出一个负脉冲(计数一次有效); GATE0时,禁止计数,GATE1时,恢复继续计数; 在计数过程中重新装入新

12、的计数值,则该值是立即有效的(若为16位计数值,则装入第一个字节时停止计数,装入第二个字节后开始按新值计数)。,6方式5硬件触发的选通信号发生器 当控制字写入后,OUT立刻变高,写入计数值后并不立即开始计数,而是由GATE的上升沿触发启动计数的,当计数到0时,输出变低,经过一个CLK之后,输出恢复为高,计数停止,若再有GATE脉冲来,则重新装入计数值开始计数,上述过程重复,在这种方式下,若设置的计数值是N,则在GATE脉冲后,经过(N1)个CLK才一个负脉冲; 若在计数过程中又来一个GATE脉冲,则重新装入初值开始计数,输出不变,即计数值多次有效; 若在计数过程中修改计数值,则该计数值在下一个

13、GATE脉冲后装入开始按此值计数。,五、 8253的编程应用,1、8253在PC机中的应用,1)计数器0。8253作为定时计数器电路,将计数器0编程为方式3,GATE0固定为高电平,OUT0作为中断请求信号接至8259A中断控制器的第0级IRQ0。这个定时中断(约55ms)用于报时时钟的时间基准。 MOVAL,00110110B;00110110二进制 OUT43H,AL MOVAL,0;计数初值为0000,即为216 OUT 40H,AL OUT 40H,AL;定时为:即频率为每秒产生18.2次时钟中断(CLK周期为:1.19KHZ),2)计数器1 。为动态存储器刷新提供信号,定时方式2,计

14、数值18,每15us刷新一次。 MON AL,54H OUT 43H,AL MOV AL,18 OUT 41H,AL,3)计数器2。编程为方式3,600HZ的方波输出,通过滤波,去除高频分量后送扬声器,GATE2是8255的PB0,OUT输出经一与门控制,控制信号为8255的PB1,这样利用PB0、PB1同时为高的时间来控制发长音还是发短音。 时钟频率F为1.19MHZ,T=1/F,T=838ns 82535的地址为040H043H,,BEEPPROCNEAR MOVAL,10110110B;10110110二进制 OUT43H,AL MOVAX,1989 OUT42H,AL MOVAL,AH

15、 OUT42H,AL INAL,61H;取8255B端口 MOVAH,AL;存在AH ORAL,03H; OUT 61H,AL;输出至82255的B端口,使扬声器发声,SUBCX,CX;循环计数 G7:LOOPG7 MOVBH,0 DECBX;BL的值为控制长短声,BL6(长),BL1(短) JNZG7 MOVAL,AH;恢复8255B端口值,停止发声 OUT61H,AL RET BEEPENDP,2、 8253的应用举例,8253可与各种微型计算机系统相连并构成完整的定时、计数或脉冲发生器。在使用8253时有两项工作要做,一是要根据实际应用要求,设计一个包含8253的硬件逻辑电路或接口,二是

16、对8253进行初始化编程。,例1 将8253的计数器1作为5ms定时器,设输入时钟频率为200kHz,试编写8253的初始化程序。 (1)计数初值N计算 已知输入时钟CLK频率为200kHz,则时钟周期为5us,于是计数初值N=5ms/T=1000。 (2) 确定控制字 按题意选计数器1,按BCD码计数,工作于方式0,由于计数初值N=1000,控制字D5D4应为11,于是8253的控制字为:01110001B=71H。 (3) 选择8253各端口地址 设计数器1的端口地址为201H,205H控制口地址 为203H,207H。,(4) 初始化程序如下 MOV AL,71H ;控制字 MOV DX,203H ;控制口地址 OUT DX,AL ;控制字送8253控制寄存器 MOV DX,201H ;计数器1端口地址 MOV AL,00 ;将计数初值N=1000的低8位 写入计数器1 OUT DX,AL MOV AL,10 ;将N的高8位写入计数器1 OUT DX,AL,例2:

温馨提示

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

评论

0/150

提交评论