1、第17章 可编程计数器_定时器825317.1. 基本功能l 三个独立的16位计数器;l 每个计数器有6种工作方式;l 能进行二进制或十进制计数(减法计数);l 计数频率为02MHz;l 可作计数器或定时器。17.2. 引脚及内部结构一个计数器内部结构17.3. 寻址方式A1 A0寻址操作0 0写计数器0初值(CR)读计数器0当前值(OL) 写读0 1写计数器1初值(CR)读计数器1当前值(OL)写读1 0写计数器2初值(CR)读计数器2当前值(OL)写读1 1写控制字写17.4. 工作方式控制字(CW)l 写控制字时,复位8253:OUT=初态, CR=0;l 写控制字,之后写对应计数器的初
2、值,之后才开始工作;l 读当前计数值时,必须先设置锁存操作控制字,之后读OL。17.5. 工作方式1. 方式0(计数结束中断方式,单次)过程:(1) 写CW,使OUT=0 ;(2) 写CR,在下一个CLK下降沿,CRCE(重装);(3) 每个CLK下降沿,CE减1;(4) 当CE=0时,OUT=1。(5) GATE是CLK的开关,可以关断CLK。作用:软件某个操作后,过多长时间(时间常数决定)后,可以产生一个事件(状态)。可用于申请中断。 2. 方式1(硬件触发(GATE)单稳态方式,单脉冲)过程:(1) 写CW,使OUT=1 ;(2) 写CR ,不重装;(3) GATE有一个上升沿后,下一个
3、CLK下降沿,CRCE(重装), OUT=0;(4) 每个CLK下降沿,CE减1;(5) 当CE=0时,OUT=1。 作用:由GATE触发,过多长时间(时间常数决定)后,可以OUT产生一个事件(状态)。3. 方式2(分频器, CLK的n分频,多次),周期信号过程:(1) 写CW,使OUT=1 ;(2) 写CR,在下一个CLK下降沿,CRCE(重装);(3) 每个CLK下降沿,CE减1;(4) CE=1时,OUT=0; CE=0时,OUT=1,并CRCE(重装); (5) GATE=0使计数暂停,GATE=1,重装CR-CE,并开始计数。(6) 计数过程中,修改CR,在下次重装时有效。作用:产生
4、多个CLK的n分频。4. 方式3(方波发生器,多次),周期信号过程:(1) 写CW,使OUT=1 ;(2) 写CR,在下一个CLK下降沿,CRCE(重装);(3) 每个CLK下降沿,CE减2;(4) 当CE=0时,OUT=变化,并CRCE(重装); (5) GATE=0使计数暂停,GATE=1,重装CR-CE,并开始计数。(6) 计数过程中,修改CR,在下次重装时有效。作用:产生方波。5. 方式4(软件触发选通方式,单脉冲)过程:(1) 写CW,使OUT=1 ;(2) 写CR,在下一个CLK下降沿,CRCE(重装); (3) 每个CLK下降沿,CE减1;(4) 当CE=0时,OUT=0;在下一
5、个CLK下降沿,OUT=1。(5) GATE=0使计数暂停,GATE=1,重装CR-CE,并开始计数。(6) 计数过程中,修改CR,立即有效。作用:软件某个操作后,过多长时间(时间常数决定)后,可以产生一个事件(脉冲)。6. 方式5(硬件触发选通,单脉冲)过程:(1) 写CW,使OUT=1 ;(2) 写CR ,不重装;(3) GATE有一个上升沿后,下一个CLK下降沿,CRCE(重装);(4) 每个CLK下降沿,CE减1;(5) 当CE=0时,OUT=1;在下一个CLK下降沿,OUT=1。 (6) 计数过程中,修改CR,在下次重装时有效。作用:由GATE触发,过多长时间(时间常数决定)后,可以
6、产生一个事件(状态)。17.6. 应用例1. 用8253-5监视一个生产线 P165 1. 硬件连接 2. 控制字设置 3. 程序设计主程序为: MOV AL,15H ;通道初始化OUT 43H,ALMOV AL,50H ;计数初值 OUT 40H,AL STI ;开中断 LOP: HLT ;等待中断 JMP LOP 中断服务程序为: MOV AL,01H ;通道1的GATE1置1,启动计数 OUT 80H,AL MOV AL,77H ;通道1初始化 OUT 43H,AL MOV AL,50H ;计数初值 OUT 41H,AL MOV AL,12H OUT 41H.AL CALL DL5S ;
7、延时5秒 MOV AL,00H ;通道1的GATE1置0,停止计数 OUT 80H,AL IRET例2 8253在IBM-PC机中的应用1.工作原理 2.8253的初始化程序(1) 对计数器0的初始化程序: MOV AL,00110110B ;写入计数器0的控制字,CW表示选择计数器0、 ;双字节写、方式3和二进制计数 OUT 43H,AL MOV AL,0 ;计数初值为65536,先写入低8位字节到CRL, ;后写入高8位字节到CRH OUT 40H,AL OUT 40H,AL (2) 对计数器1的初始化程序: MOV AL,01010100B ;写入计数器1的控制字,CW表示选择计数器1的
8、控制 ; 字寄存器,只写入低位字节,方始和二进制计数 OUT 43H,AL ;计数初值写如CRL中 MOV AL,18 OUT 41H,AL (3) 对计数器2的初始化程序: MOV AL,10110110B ;写入计数器2的控制字,CW表示选择计数器2的控 ;制字寄存器,双字节、方式3和二进制技术 OUT 43H,AL MOV AX,0533H ;计数初值0533依次写入CRL中 OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H ;完成对8255A PB0=PB1=1的设置,控制扬声器发声, ;8255A PB口的端口地址为061H MOV AH,AL OR AL,03H OUT 61H,AL