1、第八章第八章 可编程接口芯片可编程接口芯片 8.1计数器计数器/定时器电路定时器电路8253-PIT 一一.8253的结构和功能的结构和功能 计算机系统中,实现定时或延时有三种方法:计算机系统中,实现定时或延时有三种方法:软软件定时件定时、不可编程的硬件定时不可编程的硬件定时、可编程的硬件定时器可编程的硬件定时器。8253为可编程的硬件定时为可编程的硬件定时/计数器。计数器。1.主要功能主要功能 A、具有具有3个个独立独立的的16位位计数器通道;计数器通道;B、每个计数器均可按、每个计数器均可按二进制二进制或或十进制(十进制(BCD)计数;计数;C、每个计数器的计数速率高达每个计数器的计数速率
2、高达2MHz;D、每个通道有、每个通道有6种工作方式种工作方式,可由程序设置和改变;,可由程序设置和改变;E、所有的输入输出都与所有的输入输出都与TTL(晶体管晶体管-晶体管逻辑电路的英文缩晶体管逻辑电路的英文缩写写,Transister-Transister-Logic)兼容。兼容。二二.8253 的引线的引线 1、数据线(、数据线(D7D0)2、地址线:选择内部寄、地址线:选择内部寄 存器;存器;3、控制线:完成片选和、控制线:完成片选和 读写操作。读写操作。CLK:输入脉冲线;:输入脉冲线;GATE:门控信号输入线;:门控信号输入线;GATE=0 禁止计数,禁止计数,GATE=1 允许工
3、作;允许工作;OUT:输出引脚;:输出引脚;当计数到“当计数到“0”时,时,OUT 端输出一信号。端输出一信号。8253引脚排列图引脚排列图 8253 GATE1 Vcc WR RD CS A1 CLK2 OUT2 GATE2 CLK1 OUT1 GATE0 D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GND A0 三三.8253的内部结构(书的内部结构(书283页)页)4、三个计数器(减法器)、三个计数器(减法器)计数器的计数器的3个引脚个引脚 3个独立的个独立的16位减法器,位减法器,可作定时可作定时/计数器使用;计数器使用;计数器按二计数器按二/BCD方式减方式减
4、法计数,从预常减到零时,法计数,从预常减到零时,OUT端输出一信号。端输出一信号。数据总线数据总线 缓冲器缓冲器 计数计数 器器0 读读/写写 逻辑逻辑 控制字控制字 寄存器寄存器 计数计数 器器1 计数计数 器器2 CLK0 CLK1 CLK2 GATE0 GATE1 GATE2 OUT0 OUT1 OUT2 D7 D0 RD WR A0 A1 CS 8253内部结构内部结构 内部数据总线内部数据总线 1、数据总线缓冲器数据总线缓冲器(传送信息传送信息)写控制字写控制字,写时常,写时常,读计数值读计数值 2、读写逻辑、读写逻辑幻灯片幻灯片 3 3、控制字寄存器、控制字寄存器(存放控制字存放控
5、制字)四四.8253-PIT的控制字(书的控制字(书285页)页)00 选择计数器选择计数器0 01 选择计数器选择计数器1 10 选择计数器选择计数器2 11 非法选择非法选择 0=二进制二进制 1=BCD 计数器计数器 读读/写格式写格式 工作方式工作方式 数制数制 D0 D1 D2 D3 D4 D5 D6 D7 在在8253的初始化编程中,由的初始化编程中,由CPU向向8253的控制字寄存的控制字寄存器写入一个控制字来规定器写入一个控制字来规定8253的工作方式。的工作方式。00 计数器锁存命令计数器锁存命令 10 只读只读/写高位有效字节(高八位)写高位有效字节(高八位)01 只读只读
6、/写低位有效字节(低八位)写低位有效字节(低八位)11 先读写低位有效字节然后读写高位先读写低位有效字节然后读写高位有效字节有效字节 000 方式方式0 001 方式方式1*10 方式方式2*11 方式方式3 100 方式方式4 101 方式方式5 五、五、8253的工作方式的工作方式 8253有有6种工作方式,由种工作方式,由方式控制字方式控制字确定确定 熟悉每种工作方式的特点才能根据实际应用问题,熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式选择正确的工作方式 每种工作方式的过程类似:每种工作方式的过程类似:设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启
7、动 计数初值进入减计数初值进入减1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1的计数过程的计数过程 计数过程结束计数过程结束 方式方式0 计数结束中断计数结束中断 GATE OUT CLK 0 3 1 2 4 4 方式方式0 WR 设设 定定 工工 作作 方方 式式 设设 定定 计计 数数 初初 值值 计计 数数 值值 送送 入入 计计 数数 器器 计计 数数 过过 程程 计计 数数 结结 束束 计数开始的时刻计数开始的时刻 需要注意:需要注意:处理器写入处理器写入8253的计数初值只是写入了预置的计数初值只是写入了预置寄存器,之后到来的第一个寄存器,之后到来的第一个CLK输入
8、脉冲输入脉冲(需(需先由低电平变高,再由高变低先由低电平变高,再由高变低)才将预)才将预置寄存器的初值送到减置寄存器的初值送到减1计数器。计数器。从从第第二二个个CLK信号信号的的下降沿下降沿,计数器才真正,计数器才真正开始减开始减1计数。计数。方式方式1 可编程单稳脉冲可编程单稳脉冲 设设 定定 工工 作作 方方 式式 设设 定定 计计 数数 初初 值值 硬硬 件件 启启 动动 计计 数数 值值 送送 入入 计计 数数 器器 计计 数数 过过 程程 计计 数数 结结 束束 GATE OUT CLK 0 3 1 2 4 4 方式方式1 WR*CW写入,写入,OUT=0;*写入时常,通道开始计数
9、;写入时常,通道开始计数;*计数到零,计数到零,OUT=1;*计数器只计数一遍;计数器只计数一遍;*OUT是是N+1个个CLK后变后变高;高;*计数过程中,计数过程中,GATE=0,计数暂停;计数暂停;*计数过程中可改变计数计数过程中可改变计数值;(书图值;(书图96)1.方式方式0(书上书上287页页)4 3 2 1 0 FF OUT GATE=1 CLK WR CW=10 LSB=4 3 2 2 2 0 FF OUT GATE CLK WR CW=10 LSB=3 1 置时常置时常 方式方式1(可编程单拍脉冲(可编程单拍脉冲)(书上)(书上288页)页)*写入控制字写入控制字OUT=1,写
10、入常数不计数;写入常数不计数;*GATE启动计数,启动计数,OUT=0;*计数到,计数到,OUT=1。*单拍脉冲宽度为单拍脉冲宽度为N;*由由GATE重新启动;重新启动;*计数中,可重新启动;计数中,可重新启动;*计数中,可改变计数计数中,可改变计数值,再次启动有效。值,再次启动有效。3 2 3 0 FF OUT GATE CLK WR CW=12 LSB=3 1 3 2 3 0 OUT GATE CLK WR CW=12 LSB=3 1 2 1 方式方式2(速率发生器(速率发生器分频工作方式)分频工作方式)*写入控制字写入控制字OUT=1;*写入常数立即对写入常数立即对CLK计数;计数;*计
11、数到计数到1,OUT=0;*一个一个CLK周期后,周期后,OUT=1,重新计数。重新计数。*通道连续工作不需重置时通道连续工作不需重置时常;常;*计数过程中,计数过程中,GATE=0,计数暂停,计数暂停,GATE变高后重变高后重新计数;新计数;*计数过程中可改变计数值;计数过程中可改变计数值;新的计数值在下一次有效。新的计数值在下一次有效。3 2 OUT GATE CLK WR CW=14 LSB=3 3 2 1 3 2 3 2 1 OUT GATE=1 CLK WR CW=14 LSB=3 3 2 1 3 方式方式3(方波速率发生器)(方波速率发生器)*与方式与方式2的区别在于:输出的区别在
12、于:输出为周期是为周期是N个个CLK脉冲的方波。脉冲的方波。*若计数值为偶数,每个若计数值为偶数,每个CLK使计数值减使计数值减2,计到,计到0,OUT改变状态,重装计数值开改变状态,重装计数值开始新的计数。始新的计数。*若计数值为奇数,第一个脉冲先减若计数值为奇数,第一个脉冲先减1,以后,每个,以后,每个CLK使计数值减使计数值减2,计到计到0 时,时,OUT改变状态,重装计数值后,第一个脉冲减改变状态,重装计数值后,第一个脉冲减3,以后,每个,以后,每个CLK使计数值减使计数值减2,计到,计到0时,时,OUT改变状态。改变状态。*GATE信号控制计数过信号控制计数过程;程;*计数过程中写入
13、新的计计数过程中写入新的计数值将在半周期结束时装数值将在半周期结束时装入计数器。入计数器。5 4 2 OUT GATE=1 CLK WR CW=16 LSB=5 2 5 4 5 2 5 2 4 2 4 OUT GATE=1 CLK WR CW=16 LSB=4 2 4 2 4 2 例:要求计数器例:要求计数器0工作于工作于方式方式3,输出,输出方波方波的的频率为频率为2KHz,计数,计数脉冲的频率为脉冲的频率为2.5MHz,采用,采用BCD计数,试写出初始化程序段。计数,试写出初始化程序段。1.常数计算:常数计算:n=TOUT/TCLK=fCLK/Fout=2.5MHz/2KHz=125012
14、50H(BCD)MOV AL,37H OUT 83H,AL 已知:已知:8253的端口地址为:的端口地址为:80H,81H,82H,83H。00 011 11 1 2.8253的方式控制字为:的方式控制字为:3.初始化程序段:初始化程序段:37H MOV AL,50H OUT 80H,AL MOV AL,12H OUT 80H,AL 方式方式4(软件触发选通)(软件触发选通)*写入控制字写入控制字OUT=1;*写入常数立即对写入常数立即对CLK计数;计数;*计数到计数到0,OUT=0;*一个一个CLK周期后,周期后,OUT=1,计数器停止计数。,计数器停止计数。*计数器只计数一遍;计数器只计数
15、一遍;*OUT是是N+1个个CLK后变低;后变低;*计数过程中,计数过程中,GATE=0,计数暂停;计数暂停;*若在计数过程中,改变计若在计数过程中,改变计数值,则按新的计数值重新数值,则按新的计数值重新开始计数。开始计数。3 2 1 OUT GATE=1 CLK WR CW=18 LSB=3 0 FF FE FD 3 2 1 OUT GATE=1 CLK WR CW=18 LSB=3 0 1 FF 2 LSB=2 方式方式5(硬件触发选通)(硬件触发选通)*写入控制字写入控制字OUT=1;*写入常数后,由写入常数后,由GATE的上升沿启动计数;的上升沿启动计数;*计数到计数到0,OUT=0;
16、*一个一个CLK周期后,周期后,OUT=1,计数器停止计,计数器停止计数数。*计数器只计数一次;计数器只计数一次;*OUT是是N+1个个CLK后变低;后变低;*在在 计数过程中出现的计数过程中出现的GATE脉脉冲,冲,将使将使 计数器重新开始计数,计数器重新开始计数,对输出状态没有影响;对输出状态没有影响;*若在计数过程中改变计数值,若在计数过程中改变计数值,只要没有只要没有GATE信号触发,不影信号触发,不影响计数过程。有新的响计数过程。有新的GATE信号信号触发则按新的计数值开始计数。触发则按新的计数值开始计数。3 2 1 OUT GATE CLK WR CW=1A LSB=3 0 FF 3 3 2 1 OUT GATE CLK WR CW=1A LSB=3 0 FF 3 2 六六.8253-PIT工作方式小结工作方式小结 1.输出端输出端OUT的初始状态的初始状态 只有方式只有方式0是在写入控制字后输出为低,其它均为高是在写入控制字后输出为低,其它均为高;2.计数值的设置计数值的设置 任一种方式,只有在写入计数值后才能开始计数,任一种方式,只有在写入计数值后才能开始计数,方式方式