7_-_实时时钟与计数器定时器接口

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

1 选中计数器0# 0 1 选中计数器1# 0 1 选中计数器2# 0 1 选中控制寄存 器
对计数器寄存器CR送初值 读输出锁存器OL当前值 对计数器寄存器CR送初值 读输出锁存器OL当前值 对计数器寄存器CR送初值 读输出锁存器OL当前值 由控制字格式中SC1,SC0位 决定属于哪个计数器
12.2.2 8253/8254的工作方式
计数器0:定时中断
计数器0:方式3,计数值:65536,输出频率为 1.19318MHz÷65536=18.206Hz的方波 门控为常启状态,这个方波信号不断产生 OUT0端接8259A的IRQ0,用作中断请求信号 每秒产生18.206次中断请求,或说每隔55ms (54.925493ms)申请一次中断 DOS系统利用计数器0的这个特点,通过08号中断 服务程序实现了日时钟计时功能
2 写入计数值
选择二进制时 计数值范围:0000H~FFFFH 0000H是最大值,代表65536 选择十进制(BCD码) 计数值范围:0000~9999 0000代表最大值10000
示例
计数值写入计数器各自的I/O地址
3 读取计数值
8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然 后读取: 向控制字I/O地址:给8253写入锁存命令 从计数器I/O地址:读取锁存的计数值
12.2 8253/8254定时计数器
3个独立的16位计数器通道 每个计数器有6种工作方式,按二进制或十进制 (BCD码)计数 每个计数器在开始工作前必须预制时间常数
每个计数器在工作过程中的当前计数值可被CPU 读出。(注:时间常数也可在计数过程中更改) 8254是8253的改进型
12.2.1 8253/8254的内部结构和引脚
示例
Biblioteka Baidu
D1
D0
BCD
计数器
读写格式
00 01 10 11
计数器0 00 计数器1 01 计数器2 10 非法 11
000 计数器锁存命令方式0 0 二进制 001 只读写低字节 方式1 1 BCD码 010 只读写高字节 方式2 011 方式3 先读写低字节 方式4 100 后读写高字节 方式5 101
8253有6种工作方式,由方式控制字确定 熟悉每种工作方式的特点才能根据实际应用 问题,选择正确的工作方式 不同工作方式的区分点: 输出波形 计数过程中门控信号的影响 启动触发方式
每种工作方式的过程类似: ⑴ 设定工作方式 ⑵ 设定计数初值 〔 ⑶ 硬件启动 〕 ⑷ 计数初值进入减1计数器 ⑸ 每输入一个时钟计数器减1的计数过程 ⑹ 计数过程结束
实验1
计数开始 计数开始
实验2
计数开始
12.2.3 8253/8254的编程
8253加电后的工作方式不确定 8253必须初始化编程,才能正常工作 写入方式控制字 写入计数初值 读取计数值 8254新增读回命令
1 写入方式控制字(A1A0=11)
D7 D6 D5 D4 D3 D2
工作方式
12.3.2 扬声器控制
计数器2的输出控制扬声器的发声音调 计数器2只能工作在方式3,才能输出一定频率的方 波,经滤波后得到近似的正弦波,进而推动扬声器发 声 扬声器还受控于并行接口(8255芯片) 必须使PB0和PB1同时为高电平,扬声器才能发出 预先设定频率的声音
扬声器控制(频率设置)
speaker proc push ax mov al,1011 0110B;0b6h out 43h,al;写入控制字 pop ax out 42h,al;写入低8位计数值 mov al,ah out 42h,al;写入高8位计数值 ret endp
方式0 计数结束中断(一次有效)
写入控制字之后,相应的输出信号OUT就开 始变成低电平。 计数器写完计数值时,开始计数。当计数器 减到零时,OUT立即输出高电平。
① 方式0
② ④


WR
CLK GATE
4
4 3 2 1 OUT
0
④ ① ⑥② ⑤ 计 数 计设 计设 值 定 数 定 数 送 结计 过工 入 数 束 作 程 计 初 方 数 值 式 器
计数器1:定时刷新

需要重复不断提出刷新请求 门控总为高,选择方式2或3

2ms内刷新128次,即15.6s刷新一次
计数初值为18
8253初始化(定时刷新)
mov al,0101 0100B ;计数器1为方式2, ;采用二进制计数,只写低8位计数值 out 43h,al;写入方式控制字 mov al,18 ;计数初值为18 out 41h,al;写入计数值
读取计数值,要注意读写格式和计数数制
12.3 8253在PC机上的应用
IOR — RD IOW — WR A0 — A0 A1 — A1 T/CCS — CS OUT0 8253 +5V D Q OUT1 DRQ0 接至DMA控制器 IRQ0
D0~D7
1.19318MHz +5V PB0 PB1
D0~D7
2 与处理器接口
D0 ~ D7数据线
RD*读信号 CS*片选信号
A0 ~ A1地址线
WR*写信号
缺点:1. 在8254上电后初始化之前,其输出信号 OUT的电平不确定。 2. 没有输出比较、输入捕获功能。
CS
A1
A0
WR
RD


0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0
方式5
4
3
WR
CLK GATE 4 3 2 1 OUT 3 2 1 3 2 1
计数开始的时刻
需要注意 •当控制字写入8253时,所有的控制逻辑电路自动复 位,这时输出端OUT进入初始状态。 •处理器写入8253的计数初值只是写入了预置寄存器, 要经过一个时钟上升沿和一个时钟下降沿,减法计数 器才开始工作。
④在微机控制系统中,控制某工序定时启动。
[计数电路]如果记录外设提供的具有一定随机性 的脉冲信号时,它主要反映脉冲的个数(进而获知 外设的某种状态),常又称为计数器。 计数举例: ①对零件和产品的计数; ②对大桥和高速公路上车流量的统计。
定时功能的实现方法
软件延时——是利用CPU每执行一条指令都需要 几个固定的指令周期的原理,运用软件编程的方式 进行定时。利用微处理器执行一个延时程序段实现。 不可编程的硬件定时——采用分频器、单稳电路 或简易定时电路控制定时时间 可编程的硬件定时——软件硬件相结合、用可编 程定时器芯片构成一个方便灵活的定时电路
WR CLK GATE OUT
CW
n=3
3
2
1
3
2
1
重新记数
重新记数
方式3 方波发生器
与2方式基本相同,也具有自动装入时间常数(计数初 值)的功能,不同之处在于: 工作在3方式,引脚OUT输出的不是一个时钟周期的 负脉冲,而是占空比为1:1或近似1:1的方波;当计 数初值为偶 数时,输出在前一半的计数过程中为高电 平,在后一半的计数过程中为低电平。 由于3方式输出的波形是方波,并且具有自动重装计 数初值的功能,因此,8253一旦计数开始,就会在输 出端OUT输出连续不断的方波。
CLK0 CLK1 CLK2 GATE0 GATE1 GATE2
CLK
DACK0 BRD OUT2
接至扬声器驱动器
12.3.1 定时中断和定时刷新


从阅读初始化程序段 看计数器0作为定时中断的作用

将计数器1作为定时刷新 看如何编写初始化程序段
8253初始化(定时中断)
mov al,0011 0110B ;计数器0为方式3,采用二进制计数, ;先低后高写入计数值 out 43h,al;写入方式控制字 mov al,0 ;计数值为0 out 40h,al;写入低字节计数值 out 40h,al;写入高字节计数值
CPU送数据同时输出一数 锁存器 8253 OUT 据选通信号,锁存数据。 STB 方式4可编程控制选通信号 发出时间。 控制字写入8253后,计数器输出OUT为高电平 在写入计数初值后,而且GATE为高电平时,开始计 数,计数到0后输出一个时钟周期的低电平脉冲。 门控信号GATE=1时允许计数,GATE=0禁止计数。 软件触发选通体现在当GATE为高电平时,写入计数 初值后开始计数。
计数初值存于预 置寄存器; 在计数过程中, 减1计数器的值不 断递减,而预置寄 存器中的预置不变。 OUT 输出锁存器用于 写入锁存命令时, 锁定当前计数值
1 计数器的3个引脚
CLK时钟输入信号——在计数过程中,此引脚上 每输入一个时钟信号(下降沿),计数器的计数值 减1 GATE门控输入信号——控制计数器工作,可分成 电平控制和上升沿控制两种类型 OUT计数器输出信号——当一次计数过程结束 (计数值减为0),OUT引脚上将产生一个输出信 号
0
8253的0方式时序波形
方式1 可编程单稳脉冲
写入计数初值后,计数器并不立即开始工作; 等待到GATE上升沿,才开始工作,使输出OUT 变成低电平; 直到计数器值减到零后,输出才变高电平。 计数到0,初值自动重置。 [单稳态触发器]只有一个稳态,一个触发脉冲 使触发器进入暂稳态,经过一段可调的时间间隔 后,又回到稳态。
D0--D7
方式4 WR CLK GATE
4
3
4 3 2 1 OUT
3 2
3 2 1
方式5 硬件触发选通信号
工作特点是由GATE上升沿触发计数器开始工作。 当写入计数初值后,计数器并不立即开始计数,而 要由门控信号的上升沿启动计数。 在计数过程中(或者计数结束后),如果门控再次 出现上升沿,计数器将从原装入的计数初值重新计数。 硬件触发选通:GATE信号一般由硬件产生。
第12章 实时时钟与计数器/定时器接口
概述
可编程计数器/定时器芯片8254
8254在PC机中的应用
12.1 定时器和计数器概述
定时控制在微机系统中极为重要 [定时器]由数字电路中的计数电路构成,通 过记录高精度晶振脉冲信号的个数,输出准 确的时间间隔。定时器强调的是精确的时间。
定时举例: ①一天24小时的计时,称为日时钟。 ②在监测系统中,对被测点的定时取样。 ③在读键盘时,为去抖,一般延迟一段时间,再 读。
D7~D0
数据总线 缓冲器 内 RD WR A0 A1 部 读写控制 逻辑 数 据 控制字 寄存器 总 线 计数器1 CLK 1 GATE OUT 1
1
计数器0
CLK 0 GATE OUT 0
0
CS
计数器2
CLK 2 GATE OUT 2
2
计数器结构示意图
预置寄存器 CLK
减1计数器 GATE 输出锁存器
CLK WR ① GATE OUT 4 3 2 1
n=4
0
GATE ② OUT ③ WR GATE OUT n=3
4
n=2
4
3
2
1
0
3
2
1
0
2
1
0
8253的1方式时序波形
方式2 频率发生器(分频器)
写入控制字之后,输出端OUT变为高电平。 计数器写完计数值时,开始计数。当计数器减到1时, OUT变为低电平。 完成一次计数过程,输出端OUT又变为高电平,开 始一个新的计数过程,周而复始。 对于计数初值N,输出端OUT 输出的信号的周期是 计数值N×时钟CLK的周期T,N-1个时钟周期为高,1 个时钟周期为低,为负脉冲 。 输出负脉冲的周期为时钟周期的N倍,频率是1/N, 称为分频器,可以用来给自动控制中的实时检测,实 时控制提供时钟信号。
方式3
WR
4
CLK
GATE 4 3 2 1 4 3 2 1 4 3 2 1
4 3 2 1
OUT
方式3
当计数值为奇数时,在前(N+1)/2计数期间, OUT输出高电平,而后(N-1)/2个计数期间, OUT输出为低电平。
WR CW n=5
CLK
GATE 5 OUT 4 3 2 1 5 4 3
方式4 软件触发选通信号

② 4



④ ⑥ ② ⑤ ① 计 ③ 计数设 计 设 硬 数值定 数 定 送 结件 过计 入工 束启 程数 计作 动 初 数方 值 器式
方式1
WR CLK GATE ③
4
3
2
1
0
OUT
方式1
在计数器工作期间,当GATE又出现一个上升 沿时,计数器重新装入原计数初值并重新开始 计数。 如果工作期间对计数器写入新的计数初值, 则要等到当前的计数值计满回零且门控信号再 次出现上升沿后,才按新写入的计数初值开始 工作。
方式0
门控信号GATE位高电平时,计数器工作;为 低电平时,计数器停止工作,计数值保持不变。 在计数器工作期间,如果重新写入新的计数值, 计数器将按新写入的计数值重新工作。
CLK ① WR OUT WR
n=5 5 n=5 5 n=9 9 8 4 3 2 1 0 4 3 2 1 0
② GATE
OUT ③ WR OUT 4 n=4 4 3 2 1 4
相关文档
最新文档