110 likes | 356 Views
第九章 计数器和定时器 — Intel 8253. 一、 8253 的主要功能 (1) 具有三个独立的 16 位 减法 计数器; (2) 每个计数器可按二进制或十进制计数; (3) 每个计数器的计数速率可达 2MHZ ; (4) 每个计数器有六种工作方式; (5) 全部输入输出都与 TTL 电平兼容。 二、 8253 内部结构. 1 )数据总线缓冲器 8 位双向 3 态缓冲器, CPU 与 8253 数据联络通道。 2 )读写控制电路 CS — 片选信号 RD — 读 8253 WR — 写入 8253 A0 、 A1 — 计数通道地址选择
E N D
第九章 计数器和定时器 — Intel 8253 一、8253的主要功能 (1)具有三个独立的16位减法计数器; (2)每个计数器可按二进制或十进制计数; (3)每个计数器的计数速率可达2MHZ; (4)每个计数器有六种工作方式; (5)全部输入输出都与TTL电平兼容。 二、8253内部结构
1)数据总线缓冲器 8位双向3态缓冲器,CPU与8253数据联络通道。 2)读写控制电路 CS—片选信号 RD—读8253 WR—写入8253 A0、A1 —计数通道地址选择 3)控制字寄存器 8位寄存器,在8253初始化时,由CPU写入控制字,以决定计数通道的工作方式。
4)计数器通道 计数器0、计数器1、计数器2 独立16位减法计数器,计数值可写入或读出。 5)引线 CLK —时钟脉冲输入线 GATE—门控信号输入,为低时禁止计数器计数. OUT —计数/定时输出,当计数到0时输出信号. A0、A1 —通道地址选择 00 —计数器0;01 —计数器1; 10 —计数器2;11 —控制字寄存器
三、8253的控制字 • 控制字的作用是决定8253各计数器工作方式。 • 控制字寄存器实际上是3个,分别控制三个计数器,但它们的端口地址相同。 • D7、D6:计数器选择 • 00 — 计数器0; 01 — 计数器1 • 10 — 计数器2; 11 — 非法 • D5、D4:读写格式 • 00 — 计数器锁存;使当前计数值锁存,以后再读取;因计数器为16位,而数据线8位,故需锁存,分次读取。
01 — 只读写计数器的低8位,高8位自动为0; 10 — 只读写计数器高8位,低8位自动为0; 11 — 先读写计数器低8位,再读写高8位。 D3 D2 D1:计数器工作方式 000 — 方式0; 001 — 方式1; ×10 — 方式2; ×11 — 方式3; 100 — 方式4; 101 — 方式5; D0:计数数制,决定计数器按二进制计数或 BCD码(十进制)计数。 0 — 二进制; 1 — BCD码(十进制)
在二进制计数方式下,写入计数器初值范围为0000H~FFFFH,其中0000H的计数值最大,数值为216=65536在二进制计数方式下,写入计数器初值范围为0000H~FFFFH,其中0000H的计数值最大,数值为216=65536 • 在BCD码计数方式下,写入计数器初值范围为0000~9999,其中0000计数值最大,数值为10000。
四、8253的工作方式 • 方式0 ~ 方式5,共6种。详略 • 五、8253的初始化 • 在硬件连接好后,在使用8253时必须对其初始化。 • 对8253初始化编程有两项内容:先写入计数通道的控制字,再写入通道的计数值。 • 三个通道的控制字寄存器使用同一个端口地址由控制字的内容决定是哪个通道的控制字。 • 初始化步骤 • 1)写入通道控制字,设置通道工作方式 • 2)写入计数值
例、若8253分配的端口地址为F8H~FBH,现使用通道0,工作在方式1,按BCD计数,计数值5080,对该8253进行初始化。例、若8253分配的端口地址为F8H~FBH,现使用通道0,工作在方式1,按BCD计数,计数值5080,对该8253进行初始化。 1)确定通道控制字 D7D6=00;选通道0 D5D4=11; 先写低8位,再写高8位 D3D2D1=001;方式1 D0=1;按十进制计数 所以,通道0的控制字为00110011B=33H
2)确定计数值 低8位为80,高8位为50 3)初始化程序 端口地址 计数器:0F8H 控制字寄存器:0FBH MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL 若计数器工作后,要读取某时刻的计数值,则程序实现为:
控制字:00 00 001 1B=03H MOV AL,03H OUT 0FBH,AL IN AL,0F8H MOV CL,AL IN AL,0F8H MOV CH,AL