8253是在单片机系统常用的定时/计数器接口芯片,他能扩展几个定时/计数器,而不占用单片机的cpu时间,而且在pc机的应用很很广。下面介绍8253引脚图和内部结构及引脚定义等。
8253由以下几个部分组成:(1) 数据总线缓冲器(8位、三态、双向);
(2) 读/写控制逻辑;
CS:片选信号,低电平有效;
RD:读信号,低电平有效;
WR:写信号,低电平有效
A1A0:端口选择信号
(3) 三个通道( 0 ~ 2);
(4) 一个控制寄存器;
《8253引脚图》当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连Intel 8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。每个通道都可以编程设定6种工作方式之一种;由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
表8-4 控制功能表CS RD WRA1A0功 能0100 0写计数器00100 1写计数器10101 0写计数器20101 1写控制字寄存器0010 0读计数器00010 1读计数器10011 0读计数器20011 1
无操作1XXX X禁止使用011X X无操作计数器(0 ~ 2)即三个计数器/定时器通道。每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。作定时器用:其CLK端上的输入脉冲应是标准的、精确的;作计数器用:对其CLK端上的脉冲计数,脉冲宽度可以不等。采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间 = 时钟脉冲周期X预置的计数初值 每个通道:CLK计数脉冲或标准脉冲输入端
OUT计数值为0时输出一个脉冲
GATE允许端,当GATE=1时允许计数
8253在 PC机中的应用
例8.5.2: 设计一个程序,使扬声器发出600Hz频率的声音,按下任意键声音停止。PC机的发声系统以计数器2为核心。CLK2的输入频率1.19MHz,改变计数器初值可以由OUT2得到不同频率的方波输出对于600Hz,计数初值1.19MHz/600Hz=1938,发声系统受8255芯片B口的两个输出端线PB0、PB1的控制。PB0为1,使GATE2为1,计数器2能正常计数。PB1为1,打开输出控制门。CODE SEGMENTASSUME CS:CODESTART:IN AL, 61H //8253端口OR AL, 03HOUT 61H, ALMOV AX, 1983OUT 42H, ALMOV AL, AHOUT 42, ALMOV AH, 01HINT 21HIN Al, 61HAND AL, 0FCHOUT 61H, ALMOV AH, 4CHINT 21HCODE ENDSEND START
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。