常用可编程接口芯片1定时器

上传人:tia****nde 文档编号:69160786 上传时间:2019-01-12 格式:PPT 页数:54 大小:736.31KB
返回 下载 相关 举报
常用可编程接口芯片1定时器_第1页
第1页 / 共54页
常用可编程接口芯片1定时器_第2页
第2页 / 共54页
常用可编程接口芯片1定时器_第3页
第3页 / 共54页
常用可编程接口芯片1定时器_第4页
第4页 / 共54页
常用可编程接口芯片1定时器_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《常用可编程接口芯片1定时器》由会员分享,可在线阅读,更多相关《常用可编程接口芯片1定时器(54页珍藏版)》请在金锄头文库上搜索。

1、第 8 章 常用接口技术,8.1 定时控制接口 8.2 并行接口 8.3 异步串行通信接口 8.4 模拟接口,8.1 定时控制接口,定时控制具有极为重要的作用 微机控制系统中常需要定时中断、定时检测、定时扫描等 实时操作系统和多任务操作系统中要定时进行进程调度 PC机的日时钟计时、DRAM刷新定时和扬声器音调控制都采用了定时控制技术 可编程定时器芯片 软硬件相结合、方便灵活的定时电路 软件延时方法 处理器执行延时子程序,8.1.1 定时器8253/8254,定时器(计数器):由数字电路中的计数电路构成,记录输入脉冲的个数 脉冲信号具有一定随机性,往往通过脉冲的个数可以获知外设的状态变化次数(计

2、数) 脉冲信号的周期固定(使用高精度晶振产生脉冲信号),个数乘以周期就是时间间隔(定时) Intel 8253/8254可编程间隔定时器 3个独立的16位计数器通道 每个计数器有6种工作方式,1. 内部结构和引脚,与计算机系统总线的接口 3个相互独立的计数器通道,结构完全相同 计数器0 计数器1 计数器2,每个计数器通道 16位减法计数器 16位预置寄存器 输出锁存器,定时器外设引脚,CLK时钟输入信号 在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1 GATE门控输入信号 控制计数器工作,可分成电平控制和上升沿控制两种类型 OUT计数器输出信号 当一次计数过程结束(计数

3、值减为0),OUT引脚上将产生一个输出信号,连接处理器引脚,D7D0数据线 A1A0地址线注意,当在8086,IA-32构架上使用,一般通过系统数据总线D7D0传送数据,这时应该使用偶数地址(A0=0) RD*读信号 WR*写信号 CS*片选信号,假设A15A3为0000 0000 0100 0*0,奇数地址有误,可编程计数器/定时器功能,功能体现在两个方面: 一是:作为计数器。 即在设置好计数初值后,便开始减1计数,减到0时,输出一个信号 二是:作为定时器。 即在设置好定时时间常数后,便开始减一计数,并按定时时间常数不断地输出时钟周期整数倍的定时信号。 两者之间的差别: 计数器只输出一个信号

4、,除非冲服触发 定时器输出连续信号(减到0后,自动回复时间常数初值并重新开始计数)。,典型用处,在多任务的分时系统中作为中断信号实现程序的切换。 可往I/O设备输出精确的定时信号。 作为一个可编程的波特率发生器。 实现时间延迟。,基本结构原理,原理就是可预置初值的减法计数器。 主要组成包括: (1)初值寄存器接收并保存CPU送来的初值 (2)计数寄存器从初值寄存器接收计数初值,减法计数器。 计数脉冲就是时钟输入信号,在门控信号有效时开始计数。 (3)控制寄存器接收CPU的控制信号,选择不同的工作模式等 (4)状态寄存器保存计数器的状态 基本原理图如下图,2. 工作方式,8253有6种工作方式,

5、由方式控制字确定 每种工作方式的过程类似: 设定工作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束,(1)定时器方式0:计数结束中断, 设 定 工 作 方 式, 设 定 计 数 初 值, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,方式0的波形如图所示.,当控制字写入控制字寄存器后,输出OUT就变低,当计数值写入计数器后开始计数,在整个计数过程中,OUT保持为低,当计数到0后,OUT变高;GATE的高低电平控制计数过程是否进行。,写控制字,写计数初值,GATE=1计数,工作方式0有如下特点:, 计数器只计一遍,当计

6、数到0时,不重新开始计数保持为高,直到输入一新的计数值,OUT才变低,开始新的计数; 计数值是在写计数值命令后经过一个输入脉冲,才装入计数器的,下一个 脉冲开始计数,因此,如果设置计数器初值为N,则输出OUT在N1个 脉冲后才能变高; 在计数过程中,可由GATE信号控制暂停。 当GATE0时,暂停计数; 当GATE1时,继续计数;, 在计数过程中可以改变计数值,且这种改变是立即有效的,分成两种情况: 若是8位计数,则写入新值后的下一个脉冲按新值计数; 若是16位计数,则 在写入第一个字节后,停止计数,写入第二个字节后的下一个脉冲按新值计数。,(2)定时器方式1:可编程单稳脉冲, 设 定 工 作

7、 方 式, 设 定 计 数 初 值, 硬 件 启 动, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,方式1的波形如图所示,CPU向8253写入控制字后OUT变高,并保持,写入计数值后并不立即计数,只有当外界GATE信号启动后(一个正脉冲)的下一个脉冲才开始计数,OUT变低,计数到0后,OUT才变高,此时再来一个GATE正脉冲,计数器又开始重新计数,输出OUT再次变低,.,因此输出为一负脉冲,脉冲宽度受计数初值控制,由GATE信号触发。,特点,输出OUT宽度为计数初值的单脉冲; 输出受门控信号GATE的控制,分三种情况: 计数到0后,再来GATE脉冲,则重新开始计数,OU

8、T变低; 在计数过程中来GATE脉冲,则从下一CLK脉冲开始重新计数,OUT保持为低; 改变计数值后,只有当GATE脉冲启动后,才按新值计数,否则原计数过程不受影响,仍继续进行,即新值的改变是从下一个GATE开始的。 计数值是多次有效的,每来一个GATE脉冲,就自动装入计数值开始从头计数,因此在初始化时,计数值写入一次即可。,(3)方式2 分频器,方式2的波形如图所示。在这种方式下,CPU输出控制字后,输出OUT就变高,写入计数值后的下一个CLK脉冲开始计数,计数到1后,输出OUT变低,经过一个CLK以后,OUT恢复为高,计数器重新开始计数。因此在这种方式下,只需写入一次计数值,就能连续工作,

9、输出连续相同间隔的负脉冲(前提:GATE保持为高),即周期性地输出,,特点,通道可以连续工作; GATE可以控制计数过程,当GATE为低时暂停计数,恢复为高后重新从初值;(注意:该方式与方式0不同,方式0是继续计数) 重新设置新的计数值即在计数过程中改变计数值,则新的计数值是下次有效的,同方式1。,(4)定时器方式3:方波发生器,方式3的波形如图所示,这种方式下的输出与方式2都是周期性的,不同的是:输出的是方波。 当计数值N是偶数,输出正负脉冲宽度 N/2的方波 当计数值N是奇数,正脉冲宽度 (N+1)/2, 负脉冲宽度(N-1)/2。,特点, 通道可以连续工作; 关于计数值的奇偶,若为偶数,

10、则输出标准方波,高低电平各为N/2个;若为奇数,则正脉冲宽度(N1)/2个CLK周期,负脉冲宽度(N1)/2个CLK周期; GATE信号能使计数过程重新开始,当GATE0时,停止计数,当GATE变高后,计数器重新装入初值开始计数,尤其是当GATE0时,若OUT此时为低,则立即变高,其它动作同上; 在计数期间改变计数值不影响现行的计数过程,一般情况下,新的计数值是在现行半周结束后才装入计数器。但若中间遇到有GATE脉冲,则在此脉冲后即装入新值开始计数。,(5)定时器方式4:软件触发选通信号,方式4的波形如图所示。CPU写入控制字后,OUT立即变高,写入计数值开始计数,当计数到0后,OUT变低,经

11、过一个CLK脉冲后,OUT变高,这种计数是一次性的(与方式0有相似之处),只有当写入新的计数值后才开始下一次计数。,当计数值为N时,则间隔N1个CLK脉冲输出一个负脉冲(计数一次有效); GATE0时,禁止计数,GATE1时,恢复继续计数; 在计数过程中重新装入新的计数值,则该值是立即有效的(若为16位计数值,则装入第一个字节时停止计数,装入第二个字节后开始按新值计数)。,(6)定时器方式5:硬件触发选通信号,当控制字写入后,OUT立刻变高,写入计数值后并不立即开始计数,而是由GATE的上升沿触发启动计数的,当计数到0时,输出变低,经过一个CLK之后,输出恢复为高,计数停止,若再有GATE脉冲

12、来,则重新装入计数值开始计数,上述过程重复。,特点,在这种方式下,若设置的计数值是N,则在GATE脉冲后,经过(N1)个CLK才一个负脉冲; 若在计数过程中又来一个GATE脉冲,则重新装入初值开始计数,输出不变,即计数值多次有效; 若在计数过程中修改计数值,则该计数值在下一个GATE脉冲后装入开始按此值计数。,3. 8253/8254的编程,8253是可编程接口芯片 8253/8254需要处理器对他进行初始化编程,才能正确工作。 编程指的是 设置控制字 设置时间常数 等,(1)控制寄存器与控制字,有两个模式设置寄存器和读出控制寄存器 模式设置控制字,(a)BCD计数初值格式,=0,二进制 =1

13、,BCD码,地址:最高端口控制端口,(b)M2,M1,M0模式选择 000 模式0 001 模式1 X10 模式2 X11 模式3 100 模式4 101 模式5 (c)WR1,WR0读/写指示位。 00 对计数器进行锁存,以便读出 01 只读/写低8位 10 只读/写高8位 11 先读/写低8位,后读/写高8位,(d)SC1,SC0 计数器选择 00 选择计数器0 01 选择计数器1 10 选择计数器2 11 读出控制字的标识码,只要该2位=0,写入的是读出模式控制字,控制字写入控制字I/O地址:A1A011,00 计数器0 01 计数器1 10 计数器2 11 非法 (8253) 11 读

14、回命令 (8254),00 计数器锁存命令 01 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节,000 方式0 001 方式1 *10 方式2 *11 方式3 100 方式4 101 方式5,0 二进制 1 十进制,设置模式设置控制字举例,假设8253端口:80H,82H,84H,86H,通道0使用二进制计数,工作在模式0,通道1使用BCD计数,模式1,通道2使用二进制计数,模式2,全部通道16位计数器,先写低8位,后写高8位。 通道0模式控制字: 00110000B 通道1模式控制字: 01110011B 通道2模式控制字: 10110110B,MOV DX,86H;

15、MOV AL,30H;控制字 OUT DX,AL MOV AL,73H; OUT DX,AL MOV AL,0B6H OUT DX,AL,. 读出控制字,D7,D6,=11,为读出模式控制字,这时D0=0 D5:=0,将所选定的计数器当前计数值锁存,以便后面读取 D4:=0,将所选定的计数器的状态进行锁存, D3,D2,D1:分别对应3个计数通道,=1,选中通道被锁存 可以同时锁存多个通道的计数器的计数值 但不能同时锁存多个计数器的状态,地址:最高端口控制端口 写,(2) 状态寄存器,只有8254有状态端口,8253无该端口。,D7: 输出端OUT的状态 D6: 表示初值是否已装入计数器,=0

16、:已装入,=1未装入 D5D0:与模式寄存器含义相同,(3) 编程命令与初始化编程,编程原则: 设置初值前必须先写模式控制字 初值设置要符合控制字中的格式规定 要读取计数器的当前值(或读取状态字),必须用控制字先锁定,再读取。 编程命令有两类: 写入命令 读出命令,写入命令3个,有三个 (1)设置模式控制字命令 设置工作模式等。 (2)设置初始值命令 (3)锁存命令 与读出命令配合,在读出前,要先锁存,读出命令2个,(1)读取计数器当前的值。 要先锁定,然后再读出。 (2)对8254,还可读取状态字 要先锁定,然后再读出。 例如要读出通道2的计数值,先向读出控制寄存器写锁定命令,端口地址:70H,72H,74H,76H 例如要读出通道2的 11 0 1 1 0 0 0,读出控制字,D7,D6,=11,为读出模式控制字

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号