580 likes | 800 Views
第一节 概述. 第九 章 计数器 和定时器电路. 第二节 Intel 8253 的控制字. 第三节 Intel 8253 的工作方式. 第四节 Intel 8253 在 IBM PC 机上的应用. 第五节 8253 的应用. 定时 / 计数器可以实现定时与计数两个功能,可用于: 系统时钟 DRAM 刷新定时 定时采样 实时控制 脉冲的计数 。。。. 第一节 概述. 如何实现定时?. 软件方法: 用一段程序实现延时 利用 程序循环 延迟指定的时间 缺点: CPU 占用率?延时精度?兼容? 硬件方法: 定时 / 计数器电路
E N D
第一节 概述 第九章计数器和定时器电路 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel8253在IBM PC机上的应用 第五节 8253的应用
定时/计数器可以实现定时与计数两个功能,可用于:定时/计数器可以实现定时与计数两个功能,可用于: 系统时钟 DRAM刷新定时 定时采样 实时控制 脉冲的计数 。。。 第一节 概述
如何实现定时? • 软件方法:用一段程序实现延时 • 利用程序循环延迟指定的时间 • 缺点:CPU占用率?延时精度?兼容? • 硬件方法:定时/计数器电路 • 利用脉冲计数在设定的时间输出定时信号 ● 8253是一种硬件定时/计数器芯片
外部引线及内部结构 • 8253概貌 • 3个16位的定时/计数器(通道) • 24引脚双列直插式 • 最高计数频率2MHz • TTL电平兼容 • 单电源+5V供电
3个独立的16位计数器通道 每个通道都可以通过编程设定为6种工作方式之一 可设定为按二进制计数或二―十进制计数 8253的基本功能
数据 总线 缓冲器 内部总线 计数器 0 CLK0 GATE0 OUT0 RD 读/写 控制 电路 WR 计数器 1 CLK1 A0 GATE1 A1 OUT1 CS 读/写 控制 电路 计数器 2 CLK1 GATE1 OUT1 8253的内部结构和引脚信号 D7-D0
外部引线及内部结构 连接系统端的主要引线: • D7~D0 • CS • RD • WR • A1,A0 • 用于选择四个编址部件之一 A1 A0 选 择 0 0 计数通道0 0 1 计数通道1 1 0 计数通道2 1 1 控制寄存器
外部引线及内部结构 计数通道的主要引线(每通道均相同): • CLKn时钟脉冲输入,计数器的计时基准。 • GATEn 门控信号输入,控制计数器的启停。 • OUTn计数器输出信号,不同工作方式下 产生不同波形。 • (n = 0~2)
定时/计数器的工作过程 1. 设置8253的工作方式 2. 设置计数初值到初值寄存器 3. 第一个CLK信号使初值寄存器的内容置入 计数寄存器 4. 以后每来一个CLK信号,计数寄存器减1 5. 减到0时,OUT端输出一特殊波形的信号 注:以上计数过程中还受到GATE信号的控制
第二节 Intel 8253的控制字 用于确定各计数器的工作方式。 8253必须先初始化才能正常工作。 每个计数器都必须初始化一次。 CPU通过OUT指令把控制字写入控制寄存器。
1 BCD码计数 0 2进制计数 计数器选择: 读写操作 方式选择 00 计数器0 01 计数器1 10 计数器2 1 1 无效 000 方式 0 001 方式 1 10 方式 2 11 方式 3 100 方式 4 101 方式 5 00 计数器锁存,供CPU读 01只读/写计数器低字节 10只读/写计数器高字节 11先读/写计数器低字节, 后读/写高字节 控制字寄存器 (A1A0 = 1 1) SC1 SC0 RL1 RL0 M2 M1 M0 BCD 8253控制字
若要用通道1,工作在方式2,按二--十进制计数,计数值为1005H,端口地址为04H~07H,则初始化编程为:若要用通道1,工作在方式2,按二--十进制计数,计数值为1005H,端口地址为04H~07H,则初始化编程为: • MOV AL,75H • OUT 07H,AL • MOV AL,05H • OUT 05H,AL • MOV AL,10H • OUT 05H,AL
读取通道0的16位计数值: MOV AL,00H OUT 07H,AL IN AL,04H MOV CL,AL IN AL,04H MOV CH,AL
工作方式 第三节 Intel 8253的工作方式 方式0——计数结束中断 方式1——可重复触发的单稳态触发器 方式2——频率发生器 方式3——方波发生器 方式4——软件触发选通 方式5——硬件触发选通
8253的工作方式 1、方式0 CW=10 LSB=4 WR CLK GATE OUT 4 3 2 1 0 FF FE 图9-4 方式0的波形
方式0特点: (1)计数器只计数一遍 (2)输出信号OUT会在N+1个CLK脉冲后变高 (3)GATE变低电平可以停止计数过程 (4)改变计数立即有效
2、方式1 CW=12 LSB=3 WR CLK GATE OUT 0 FF 3 2 1 3 2 图9-7 方式1的波形
LSB=4 图9-9 方式1在计数过程改变计数值
方式1特点: (1)计数到0后,如果有外部触发,就可以按原来的计数初值工作 (2)计数过程中GATE信号可以用作重新触发,计数器重新计数 (3)改变计数初值并不是立即有效
3、方式2 CW=14 LSB=3 WR CLK GATE OUT 3 2 1 0 2 1 0 图9-10 方式2的波形
方式2特点: (1)不用重新设置计数值,计数器可以连续工作 (2)以GATE信号停止计数。在GATE变成高电平后的下一个CLK脉冲,计数器恢复原来的初值,重新计数 (3)改变计数值不是立即有效
4、方式3 CW=16 LSB=4 WR CLK GATE OUT 4 2 4 2 4 2 4 2 4 2 图9-13 方式3波形(计数值为偶数)
方式3特点: (1)GATE信号由低变高可以使计数过程重新开始 (2)改变计数初值并不影响现行的计数过程
5、方式4 CW=18 LSB=3 WR CLK GATE OUT 3 2 1 0 FF FE FD 图9-16 方式4的波形
方式4特点: (1)如果设置计数初值为N,则输出信号OUT会在N+1个CLK脉冲后输出一个负脉冲。 (2)改变计数值为立即有效
6、方式5 CW=1A LSB=3 WR CLK GATE OUT 3 2 1 0 FF 3 图9-19 方式5的波形
方式5特点: (1)若设置计数值为N,则经过N+1个CLK脉冲后OUT引脚输出一个负脉冲 (2)GATE信号重新触发,可以令计数器重新计数 (3)改变计数初值并不是立即有效
编程控制计算机扬声器发声: (1)通过PB1对扬声器控制 PB0=0使得8253计数器2的OUT2输出为高电平。然后通过编程使得PB1不断进行反相操作,高低电平分别持续相同的时间,使得输出一定频率的方波,驱动扬声器发声
(2)通过8253计数器2对扬声器控制 8255PB0端口输出为高电平,使能8253计数器2;PB1端口也为高电平,打开与门。计数器2工作在方式3,通过预置合适的计数初值,使得计数器2输出一定频率的方波
第五节 8253的应用 • 一、计算机钢琴程序 1、设计要求: 利用8253定时器的作用,通过控制计算机内部的扬声器,当键盘输入为数字键1~8的时候,依次发出1~8八个音调。当键盘输入为CTRL+C时推出“钢琴”状态
2、设计思路 各音符的频率值 要使计算机成为可以弹奏的钢琴,需要使用系统调用的01H功能以接收键入字符,可以通过建立一张键入字符与频率值相关的表,在程序中通过查表的方法将键入字符转化成频率值