8253微机原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(4) 方式3 —— 方波频率发生器
同频率发生器,区别在于,方波频率发生器在计数过程中输出一半时间为 高,一半时间为低。即其输出是N(N为计数值)个CLK脉冲的方波。
特点: 1. 若计数值为偶数,在装入计数值后,每个CLK脉冲使计数值减2,当计数 到 0 时,一方面输出改变状态,一方面重新装入计数值开始新的计数。 若计数值N 为奇数,则(N+1)/2个CLK脉冲为高电平,(N-1)/2个CLK脉冲为低电平。
注: ① 写入控制字后,所有控制逻辑电路复位,输出端OUT进入 初始状态。 ② CPU向8253写入的计数初值,要在CLK端输入一个正脉冲 ( )后才能被真正装入指定通道(若在此CLK下降沿之前 读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK )才开始计数,且每次在脉冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计数。
0
0 1
1
1 ×
0
0 ×
1
1 ×
0
1 ×
8253的控制字
◆ 8253控制字可以选择计数器、工作方式、计数数制( 2#或 10#——BCD码),以及计数器的读/写方法等。 ◆ 8253控制字格式(8位) :
D7 SC1 D6 SC0 D5 RW1 D4 RW0 D3 M2 D2 M1 D1 M0 D0 BCD
门控信号(GATE) 计数状态信号(OUT)
计数初值寄存器
计数值锁存器
◆计数功能实现过程: 在预先设置好计数初值后,便开始对外部给的触发脉冲做减 “1”计数,当计数值减为“0”时,输出一个“计数到”的信 号。
定时/计数器的特点与应用
◆触发计数减1功能的信号必须是触发脉冲信号。 ◆计数器的触发脉冲信号可以是周期恒定,也可以是周期随 意,仅当计数值减到“0”时,输出一个计数结束信号。 ◆定时器的触发脉冲信号必须是周期恒定的时钟信号,在计 数值减到“0”时,输出一个计数为“0”的信号;并把计数 初值自动重新装入,再继续重复做减“1”计数,从而输出 一个恒定的周期性信号。 ◆定时/计数器的应用: 在多任务系统中产生定时中断信号,实现多任务程序的分 时切换; 在定时数据采集,或者实时控制系统中,产生精确的对外 部事件的计数信号,或定时控制信号; 常做一个可编程的波特率(时钟)发生器使用。
计数器选择
0 0: 计数器0 0 1: 计数器1 1 0: 计数器2 1 1: 无意义
读/写方法
0 0:锁存计数值命令 0 1:只读/写低8位 1 0:只读/写高8位 1 1:读/写16位 ( 先低8位后高8位)
工作方式选择
0 0 0:方式0 0 0 1:方式1 ×1 0:方式2 ×1 1:方式3 1 0 0:方式4 1 0 1:方式5
8253的计数初值
◆8253计数初值N的计算: N=CLK输入频率/OUT输出频率 ◆设置计数初值N要符合控制字的计数器位数规定。 若用低位字节,或高位字节计数,8位计数初值一次写。 若用高、低位字节计数,16位计数初值分两次写入,先写 低字节,后写高字节。 ◆计数初值0是计数器所能容纳的最大计数值。
8253方式0~方式5 的输出波形
(正常计数的OUT状态)
写控制字 写N=4
WR CLK
减1计数器的值 方式0 OUT 方式1 OUT 4 3 2 1 。。。
方式2 OUT
方式3 OUT 方式4/5 OUT
未定态
计数初态
计数态
结束态/计数态
(1) 方式0 —— 计数结束中断
当控制字写入控制字寄存器时,即使OUT输出端变低,在写入计数初值后, 计数器开始计数(此时GATE信号必须为高),计数结束后OUT输出端变高。
特点: 2. GATE信号能使计数过程重新开始。GATE=0,计数停止,当GATE=1后, 计数器将重新装入计数初值,重新开始计数。
特点: 3. 若在计数期间写入新的计数值,并不影响现行计数过程。但若此时收到 GATE信号,则计数器将在下一个CLK脉冲时装入新的计数值并开始计数。
(5) 方式4 —— 软件触发选通
数制选择
0:二进制 1:BCD码
2.初始值命令
计数器的初始值可以是8位,也可以是16位。如果是16位,则 要用2条指令来完成计数初值的设定,先写入低8位字节,后写入高 8位字节。如果是8位,在计数器内部全部当成16位的两字节处理, 缺少的字节自动补上0。
3.锁存命令
锁存命令是为了配合CPU读计数器当前值而设置的。 在读计数器时必须先用锁存命令将当前计数值在输出锁 存器中锁定,才可由CPU输入。
控制寄存器
D7~D0
数据总线 缓冲器
计数器0
初值寄存器
减1计数器
RD
WR
CS A1 A0
读/写 控制 逻辑
输出锁存器
CLK0 GATE0 OUT0
计数器1 计数器2
CLK1 GATE1 OUT1 CLK2 GATE2 OUT2
(2) 结构
8位双向三态。用于与CPU交换信息。 • 初始化时,CPU向其写入命令字等, 计数值; • CPU读取计数值。
计数器/
定时器通 接收来自系统总线 的控制信号,以产 生控制整个芯片工 作的控制信号 数据总线 缓冲器 计数器 0号 道。 由16位的 可预置值 的减法计 数器构成。 读/ 写 逻辑 计数器 1号
初始化时,由CPU 写入控制字以决定 某通道的工作方式。
控制字 寄存器
计数器 2号
8253的管脚性能
◆ D7~D0:8位、双向、三态数据线,直接和系统数据总线 连接。 ◆ CS:片选信号,低电平有效。 ◆ RD,WR:读信号,写信号,低电平时有效。 ◆ A1,A0:8253端口选择线。00~10分别选择计数器0~2, 11选择控制端口。 ◆ CLK0~CLK2:分别是计数器0~2的计数脉冲输入端,做计 数速率的控制。 ◆ GATE0~GATE2:分别是计数器0~2门控输入端,做计数 允许/禁止的控制 。 ◆ OUT0~OUT2:分别是计数器0~2的输出端,做计数器计数 状态的输出。
特点: 4. 在计数过程中,CPU可改变计数初值,这时计数过程不受影响,计
数到 0 后输出为高。若再次触发启动,则计数器将按新的计数值计数。 所以改变计数值是下次有效的。
(3) 方式2 —— 频率发生器
当控制字写入控制字寄存器后,OUT输出为高。在写入计数值后,计数 器将立即自动对输入脉冲 CLK 计数。在计数过程中,OUT一直保持为高, 直到计数器减到 1 时,OUT变低,经过一个CLK后,OUT恢复为高,计数器 重新开始工作。
特点: 4. 8253内部没有中断控制电路,也没有专用的中断请求引线,因此, 若要用于中断,则可用OUT 信号作为中断请求信号,但需要有外接 的中断优先权排队电路与中断向量产生电路。
在PC机中,用 8259A 作中断优先权排队电路与中断向量产生电路。
(2) 方式1 —— 可编程的单拍脉冲
当控制字写入控制字寄存器后,OUT输出保持为高,当CPU写完计数值后, 计数器并不开始计数,直到 GATE 信号启动之后的下一个输入CLK脉冲的下降沿
8253操作的控制逻辑
CS 0 0 0 0 0 0 RD 0 0 0 0 1 1 WR 1 1 1 1 0 0 A1 0 0 1 1 0 0 A0 0 1 0 1 0 1 操作说明
计数器0→数据总线 计数器1→数据总线 计数器2→数据总线 非法状态 数据总线→计数器0 数据总线→计数器1 数据总线→计数器2 数据总线→控制寄存器 D7~D0呈高阻状态
在这种方式下,当写入控制字后,输出为高,当写入计数值后立即开始计数。 计数到 0 后,输出变低,经过一个CLK周期,输出又变高,计数器停止计数。这 种计数方式是一次性的,当输入新的计数值后,才能开始新的计数。
特点: 1. CPU写入计数值的下一个CLK脉冲,将计数值装入计数器,再下一个 CLK脉冲开始计数,即在装入计数值后的第 N+1 个脉冲后,才输出一个 负脉冲。
例如,(8253端口地址40H~43H) MOV AL,40H ;计数器1的锁存命令 OUT 43H,AL IN AL,41H ;读低8位计数值 MOV CL,AL IN AL,41H ;读高8位计数值 MOV CH,AL ;CX中为读取的16位计数值
8253的读操作编程
8253的工作方式
◆8253有六种工作方式: 方式0──计数结束产生中断 方式1──可重复触发的单稳态(脉冲)触发器 方式2──频率发生器(分频器) 方式3──方波频率发生器 方式4──软件触发选通信号发生器 方式5──硬件(GATE)触发的选通信号发生器 ◆六种工作方式的主要区别: 输出波形不同; 启动计数的触发方式不同; 门控(GATE)信号对计数过程的影响不同; 计数过程中,修改计数初值对计数过程的影响不同。
微机Leabharlann Baidu理与接口技术
第 6 章 控制器接口
6.3 定时/计数器
6.3.1 定时/计数器工作原理
6.3.2 可编程定时/计数器8253 6.3.3 8253应用例
本节复习题
计数器/定时器工作原理
◆计数器/定时器是一个具有可编程计数功能的专用芯片。 ◆计数器/定时器的结构:
D 7 ~ D0
“写” 减1计数器 “读” D7~ D0 触发脉冲信号(CLK)
8253的初始化设置
◆8253计数器的初始化设置:
1. 设置控制字
2. 设置计数初值N ◆8253的计数器设置之后,当检测到门控(GATE) 信号有效时,计数器按照其设置工作。 ◆控制字——“写”到控制端口
◆计数初值N ——“写”到对应的计数器端口
8253初始化: 对一个通道
先写入控制字 再写入时间常数(计数初值)
特点: 2. GATE=0,禁止计数,GATE=1,允许计数。因此要做到软件触发, GATE必须保持为高。但GATE不影响输出。
特点: 3. 若在计数期间写入新的计数值,则按新的计数值重新开始计数。
(6) 方式5 —— 硬件触发选通
8位计数初值0,若做2# 计数值是256(100H),若做10# (BCD码)计数值是100;
16位计数初值0,若做2#计数值是65536(10000H),若做 10#(BCD码)计数值是10000 。
◆读取计数器的当前值,可以动态了解计数情况。 ◆ 8253计数器的读操作有直接读和锁存读两种。 直接读操作:计数输出寄存器随减1计数寄存器一直在动态 变化,直接读得不到稳定值,不太可靠(一般不用)。 锁存读操作:先用锁存命令(控制字D5D4为00)把计数值 锁存到计数输出寄存器,然后再读。当计数值读走后,锁 存功能自动失锁。
00010000
特点: 1. 计数器只计一遍。当计数到 0 时,并不恢复计数初值,不开始重新 计数,且输出一直保持为高。只有在写入下一个计数值时,OUT 变低,开始新的计数。
特点: 2. 在计数过程中,可由门控信号GATE控制暂停。GATE=0, 计数暂停, GATE变高后,接着计数。
特点: 3. 在计数过程中,可改变计数值。在写入新的计数之后,计数器按新 的值重新开始计数。
开始计数),OUT输出端变低。在整个计数过程中,OUT 都维持为低,直到计数 为 0 时,输出变为高,输出一个单脉冲。
特点: 1. 若设置的计数值为N,则输出的单脉冲宽度即为N个输入脉冲间隔。 2. 当计数到 0 后,可再次由外部触发启动,输出一个同样宽度的 单拍脉冲,而不用再次送计数值。
特点: 3. 在计数过程中,外部可发门控信号进行再触发,在触发脉冲上升沿 后的下一个CLK脉冲的下降沿,计数器将重新开始工作。
特点: 1. 不用重新设置计数值,计数器能够连续工作,输出固定频率的脉冲。
特点: 2. 计数过程可由门控信号GATE控制。当GATE变低时,暂停计数;在 GATE变高后的下一个CLK脉冲使计数器恢复初值,重新开始计数。
特点: 3. 在计数过程中可以改变计数值,这对正在进行的计数过程没有影响, 但在计数到 1 输出变低后,下一个计数周期,计数器将按新的计数值计数。所 以改变计数值是下次有效的。
8253的主要功能
Intel 8253 定时/计数器的功能:
◆有3个独立的16位计数器通道,既可以做16位计数器,也 可以做8位计数器使用。
◆每个计数器可以选择 2# 计数,或者10# (BCD码)计数。 ◆每个计数器都可以编程设定6种工作方式之一。 ◆每个计数器最高计数速率可达2.6MHz。
8253的内部结构
相关文档
最新文档