第10章 定时计数器8253.

合集下载

定时器

定时器

;8253控制口地址 ;通道0工作在方式0 ;8253通道0地址 ;给通道0送计数值
;通道1工作在方式3 ;8253通道1地址
;给通道1送计数初值低8位 ;给通道1送计数值高位
;通道2工作在方式0
MOV MOV OUT MOV OUT MOV MOV OUT MOV MOV OUT MOV OUT MOV OUT STI FF:
发声子程序:
SSP PROC NEAR ;8253初始化: MOV AL,10110110B ;计数器2,模式3,初值16位,二进制 OUT 43H, AL MOV AX, 1983 ; 计数初值=1.19MHZ600HZ=1983 OUT 42H,AL ;送计数初值低位字节 MOV AL,AH OUT 42H,AL次 ;送计数初值高位字节
方式0——计数结束产生中断
图 8-22
方式0——计数结束产生中断
方式1——可编程的单脉冲(单稳)触发器

图 8-22
单脉冲触发器
方式2——分频器( 速率发生器)
图 8-23
分频器
方式3——方波发生器
图 8-23 方波发生器
方式4——软件触发的选通信号发生器
图 8-23 软件触发的选通信号发生器
计数初始值=时钟频率*T
8_2_1 8253芯片内部结构
1.数据总线缓冲器 往计数器设置计数初值; 从计数器读取计数值; 往控制寄存器设置控制字。 2.读/写逻辑电路 A1 A0:端口选择 0 0:通道0(0号计数器) 0 1:通道1(1号计数器) 1 0:通道2(2号计数器) 1 1:控制字寄存器
3.通道0、通道1、通道2
计数器0:CLK0——计数器0的时钟输入。 GATE0——计数器0的门脉冲控制输入。 OUT0——计数器0的输出。 计数器1 计数器2

微机原理课件第十章

微机原理课件第十章

重新初始计数
重新初始计数 无作用 启动计数
允许计数
允许计数 允许计数 无作用
下午9时48分37秒
25
10.5
8253的应用举例
设要求A/D转换器的采样周期为250ms,采样信 号持续时间为1s。试用8253连接硬件电路,并 编程实现此功能。
下午9时48分37秒
26
硬件连接图
数据线 D7 D7~D0 INTR CPU 地 址 译 码
7
表10-1
8253输入信号与各功能的对应关系
CS 0 0 0 0 0 0 0
RD WR 1 1 1 1 0 0 0 0 0 0 0 1 1 1
A1 0 0 1 1 0 0 1
A0 0 1 0 1 0 1 0
功 能 对计数器0设置计数初值 对计数器1设置计数初值 对计数器2设置计数初值 设置控制字或给一个命令 从计数器0读出计数值 从计数器1读出计数值 从计数器2读出计数值
下午9时48分37秒
8
(3) 计数器 (4)控制寄存器
下午9时48分37秒
图10.3
8253计数器结构图
9
10.3
8253的控制字
下午9时48分37秒
图10.4
8253的控制字
10
1、计数方式的设定 8253有两种计数方式:二进制计数和BCD码计数。选择数制采用控 制字的D0位来设定。 2、工作方式的设定
┇ D0
数据线
A/D
IN EOC START
8255A PC4 PC3
模 拟 量 输 入
IN:输入 EOC:转换结束 START:A/D转换启动
CS
CS CLK0 方式2 GATE0 OUT0 CLK1 方式1 GATE1 数据线 OUT D7~D0 CLK1 2 D7~D0 方式3 GATE2 · OUT2 8253

8253定时计数器知识点总结

8253定时计数器知识点总结

8253定时/计数器知识点总结1、8253简介8253是用来测量时间或者脉冲的个数,通过计量一个固定频率的脉冲个数,将时间信息转化为数字信息,供计算机系统使用。

8253有着较好的通用性和灵活性,几乎可以在所有由微处理器组成的系统中使用。

2、性能描述(1)每个8253芯片有3个独立的16位计数器通道;(2)每个计数器通道都可以按照二进制或二—十进制计数;(3)每个计数器的计数速率可以高达2MHz;(4)每个通道有6种工作方式,可以由程序设定和改变;(5)所有的输入、输出电平都与TTL兼容。

3、结构组成结构框图如下(1)数据总线缓冲器8253内部实现与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某一时刻的实时计数值。

(2)读写逻辑控制控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的址地信号以实现片选、内部通道选择以及对读/写操作进行控制。

(3)控制寄存器在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。

(4)计数通道0号、1号、2号三个独立的、结构相同的计数器/定时器通道,每个通道包含一个16位计数寄存器存放计数初始值,一个16位的减法计数器,一个16位的锁存器。

锁存器在计数器工作的过程中,跟随计数值的变化。

接收到CPU的读计数值命令时,锁存计数值,供CPU读取。

读取完毕之后,输出锁存器又跟随减1计数器变化。

另外,计数器的值为0的状态,还反映在状态锁存器中,可供读取。

4、引脚说明与CPU 的接口信号:(1)D0—D7:双向三态数据线,与CPU 相连用以传送数据、控制字以及状态信息。

(2)CS :片选输入信号,低电平有效。

(3)W R RD ,:读/写控制信号,低电平有效。

(4)10,A A :8253的内部计数器和一个控制寄存器的编码选择信号,其功能如下:10,A A 与其他控制信号,如CS ,W R RD ,共同实现对8253的寻址,如下图:8253寻址读写操作逻辑表与外部设备的接口信号(1)CLK 0、1、2:时钟脉冲输入端,输入定时脉冲或计数脉冲信号,CLK最高频率可达2MHz。

定时计数器8253

定时计数器8253

古晓辉制作
2 写入计数值
示例
选择二进制时
计数值范围:0000H~FFFFH 0000H是最大值,代表65536
选择十进制(BCD码)
计数值范围:0000~9999 0000代表最大值10000
计数值写入计数器各自的I/O地址
古晓辉制作
3 读取计数值
示例
对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行 锁存,然后读取:
0
OUT
④ ② ① ⑥ ⑤ 计 数 设 设 计 计 值 定 定 数 数 送 计 工 结 过 入 数 作 束 程 计 初 方 数 值 式 器
古晓辉制作
古晓辉制作
方式1可重复触发的单稳方式
① ② 4 ④ ⑤ ⑥

⑥ ② ⑤ ① 计 ③ 数 计 设 计 设 值 硬 数 定 数 定 送 件 结 计 过 工 入 启 束 数 程 作 计 动 初 数方 值 器式
计数初值
8253内部包含3个功能完全相同的通道,每个通道内部 设有一个16位计数器,可以进行二进制或十进制(BCD码) 计数。 8253是一种减1计数器,因此在开始计数(定时)之前,一 定要根据计数(定时)的要求,先算出计数初值(定时常数), 并装入计数初值寄存器。
定时常数=要求定时的时间/时钟脉冲的周期
古晓辉制作
9.2.2 8253的工作模式
方式0——计数结束产生中断 方式1——可重复触发的单稳态触发器 方式2——分频器 方式3——方波发生器 方式4——软件触发的选通信号发生器 方式5——硬件触发的选通信号发生器
古晓辉制作
方式0 计数结束中断
① ② ④ 4 ⑤ ⑥
WR CLK GATE
方式0
4 3 2 1

第10章-可编程定时计数器8253概要

第10章-可编程定时计数器8253概要
通道2:fCLK2 = 1MHz, T = 50ms N =fCLK2 × T =1MHz × 50ms = 50000= C350H
21
确定各通道控制字
读写高低字节 通道0: 方式3
BCD码计数
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
0 0 1 1 011 1 37H
读写高低字节 通道1: 方式3
29
10.3 8253 的工作方式
共同遵守的3个基本原则: ● 控制字写入计数器时,所有的控制逻辑电路立即复 位,输出端OUT进入初始状态 ● GATE信号是上升沿起作用,GATE信号的作用是 在下一个CLK周期的下降沿生效 ● 计数初值装入计数器和减1计数都是在输入脉冲的 下降沿有效的
30
10.3 8253 的工作方式
11 先读/写低8位,后读/写高8位计数值 15
10.2 8253 的编程
8253的计数初值
当输出信号为连续的周期波时:假设计数器输入信 号CLK的频率为fCLK,要求OUT端输出信号的频率为 fOUT,则计数初值N的计算公式为
N = fCLK ÷ fOUT 当计数器/定时器工作在一次性有效的定时方式时:如 希望的定时时间为T,则计数初值 N的计算公式为:
5
8254芯片
3
NUIST
10.1 8253 的引脚功能和编程结构
8253的主要功能 ● 3个独立的16位计数器 ● 每个计数器都可以按二进制或BCD码计数 ● 每个通道的计数频率可达2MHz ● 每个计数器都具有6种不同的工作方式 ● 每个计数器的计数初值都可以通过编程设置 ● 所有的输入输出都与TTL兼容
4
10.1 8253 的引脚功能和编程结构
8253的引脚功能

定时计数器8253课件

定时计数器8253课件
3个计数通道 通道控制寄存器 数据总线缓冲器 读/写控制电路
20010.12
定时计数器8253
3
计数通道
• 通道0、通道1和通道2
• CLK:计数器的脉冲输入端,GATE: 计数器的门控信 号,OUT: 计数器的输出信号,一般与计数溢出有关。
• 工作原理:
• 8253计数器工作在减1状态,每输入一个计数脉冲,计数 器值减1,当计数器
• 分为4部分,通道选择、计数器读/写方式、工作方式和计
数码的选择。
计数器选择(SC1、SC0)
计数器读/写方式(RLl、RL0)
20010.12
定时计数器8253
9
• 计数器的锁存操作
• 8253一旦初始化后,就不需要CPU参与而自动计数。为了 读出计数值时不干扰实际计数过程,同时读出的值又是稳 定的,就要求对通道计数器中的计数值进行锁存。
读/写控制电路
❖ 片选信号 CS ❖ A1A0的组合 :选择三个通道、一个控制寄
存器,共4个端口 ❖ 读信号 R D 和写信号W R 由CPU提供,低电平
有效。
20010.12
定时计数器8253
7
8253的管脚分配
• 通道管脚
• CLKn:通道n的脉冲输入管脚.外部事件
或定时脉冲由这三个管脚输入;
OUT 8253控制口,AL
MOV AL,40H
;置8253通道0时间常数,
OUT 通道0端口,AL ; 第一次写初始计数值的低8位,
MOV AL,38H
; 第二次写高8位。3840H=14400秒=4小时
OUT 通道0端口,AL
……
中断程序中有关程序段如下:
……
MOV AL,00000001B ;8255置位/复位控制字,使PC0=1

可编程定时计数器8253

可编程定时计数器8253
A
1000,1000 400,1000 400000,400000 400,400
ห้องสมุดไป่ตู้21
B
C
D
提交
6. 8253的应用
8253初始化方法有两种: (1)以计数器为单位逐个进行初始
化 (2)先写所有计数器的控制字,再 送入各计数器初值
22
应用举例
用8253的通道0工作在方式3,输入
频率为2KHz的时钟信号,产生方波 (周期1s),其输出作为通道1的输 入信号;通道1工作在方式2,产生 分频信号(周期5s)。 通过2个发光二极管(共阳极)分别 观察OUT0和OUT1的输出信号。
11

门控信号GATE在CLK的上升沿被采 样(采用电平或边沿触发方式) GATE高电平有效对方式0、4; GATE上升沿有效对方式1、5; GATE高电平和上升沿均有效对方式2、 3。 ④ 在CLK下降沿,计数器作减1计数
12
方式0——计数结束产生中断 方式1——可编程的单脉冲发生器 方式2——分频器 方式3——方波发生器 方式4——软件触发的选通信号发生器 方式5——硬件触发的选通信号发生器
个CLK的负脉冲(周期为N个时钟周期, 频率为1/N的时钟频率,正脉冲为N-1 个时钟脉冲宽度,负脉冲为1个时钟 脉冲宽度,实际上是对CLK的N分频)
16
方式3-方波发生器
3
1
2 4
17
(4)当计数初值为偶数N时,计数到
N/2反向。脉冲宽度T×N/2,方波周期 为 T× N 。 当计数初值为奇数N时,开始OUT为高 电平,计数到(N+1)/2的下一个CLK时 OUT反向(OUT正脉冲宽度为 T×(N+1)/2);OUT低电平时在计数 到剩下的(N-1)/2时反向(负脉冲宽 度为T×(N-1)/2),方波周期仍然是 T × N。

定时器计数器8253实验

定时器计数器8253实验

【本次实验所使用的模块区,见下两页】
CODE SEGMENT 'code' ASSUME CS:CODE START: MOV DX,307H MOV AL,01110110B OUT DX,AL MOV DX,305H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL MOV DX,307H MOV AL,10110110B OUT DX,AL MOV DX,306H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL MOV AH,4CH INT 21H CODE ENDS END START
实验程序8253key1.ASM
;注:03E8H=1000D
思考题
① 利用8253、8259和8255设计中断方式走马灯电路, 8253每秒通过总线向8253发出一次中断申请, 8259中断允许后,8255的A端口输出一个数据,使 得和A端口相连的8个发光二极管依次变亮且每次 只亮一个。 ② 利用8253和8255设计查询方式走马灯电路,8253 每秒使的PC4的电位变化一次,编程查询PC4的状 态,当PC4为低电平时从8255的A端口输出一个数 据,使得和A端口相连的8个发光二极管依次变亮 且每次只亮一个。
附录 8253的端口地址
0号计数器 304H 1号计数器 305H 2号计数器 306H 计数器控制寄存器 307H
8253控制寄存器(1)
8253控制寄存器(2)
实验八
定时器/计数器8253
【实验名称】 定时器/计数器8253 【实验目的】 了解定时器/计数器8253的原理,掌握编制定时器/计数器 程序设计方法。 【实验内容】 设计连线和程序,以1MHz的信号为时钟信号,利用8253产 生1s的定时控制发光二极管变化。 【实验原理图】 实验原理图见下页,其中译码电路见实验六存储器连接。

8253计数器

8253计数器
8253计数器/定时器
8253内部包含3个完全相同的计数器/定时器通道的 操作完全是独立的每个通道都包含一个8位的控制字 寄存器、一个16位的计数初值寄存器、一个计数执 行部件(实际的计数器)和一个输出锁存器。
8253的3个计数器都各有3个引脚: (1)CLK0—CLK2计数器0—2的输入时钟脉冲端 (2)OUT0—OUT2计数器0—2的输出端 (3)GATE0—GATE2计数器0—2的门控脉冲输入端
▪ CLK0:307.2kHz ▪ cs: 200H ▪ 地址:控制字寄存器:203H
定时器0:200H 定时器1:201H 定时器2:202H
器高字节 11先读/写计数器低字节, 后读/写高字节
▪ M2M1M0—工作方式选择位
000—方式0 001方式1 X10方式2 X11方式3 110方式3 101方式3
▪ BCD—计数方式选择位
1 BCD码计数
0 2进制计数
8253的初始化步骤
▪ 写入控制字 ▪ 写入计数初值
初值可以是8位,也可以是16位数据。如是16位 数据,先送低8位数据,后送高8位数据。
门控信号控制功能
工作方式 GATE为低电平或下降沿 GATE为上升沿
GATE为高电 平
方式0
禁止计数
允许计数
方式1
从初值开始计数,下 一个时钟后输出变为 低电平
方式2 禁止计数,使输出变高 从初值开始计数
允许计数
方式3 禁止计数,使输出变高 从初值开始计数
允许计数
Байду номын сангаас
方式4
禁止计数
允许计数
方式5
从初值开始计数
控制字寄存器
D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD

可编程定时-计数器8253

可编程定时-计数器8253

接口技术
•8086/8088中断响应周期时,CPU的INTA引脚的 正确功能是—————— A.输出一个负脉冲,CPU从D7~D0读入中断类型码 B.输出两个负脉冲,在第二个负脉冲期间,CPU 从A7~A0读入中断类型码 C.输出两个负脉冲,在第二个负脉冲期间,CPU 从D7~D0读入中断类型码
D.输出一个负脉冲,CPU从A7~A0读入中断类型 码
接口技术
7.1.4 中断嵌套 当CPU执行优先级较低的中断服务程序时,允许响 应比它优先级高的中断源请求中断,而挂起正在处 理的中断。 (1)屏蔽同级和较低级中断请求。 (2)在保护现场、屏蔽同级和较低级中断完成后, 用STI指令来开中断。 (3)中断服务程序结束后,恢复现场前,用CLI指 令来关中断,然后才能恢复现场。 (4)恢复现场后,CPU应该重新开放中断,以便允 许任何其它等待着的中断请求有可能被CPU响应。
CNT2:标准定时,定时时间为1S。
8253
D7~D0

A1
统 总
A0 IOR
IOW
线
A2~A15
地址 译码器
D7~D0
CLK OUT
2 2
A1 A0
CLK 1 OUT 1
RD WR
CLK 0
OUT 0 CS GATE 1
GATE 2 GATE 3
送8259的IR 2端 2.5MHz 1kHz方波 外部事件
接口技术
计数结束时,输出一个时钟周期的负脉冲;
计数中写入新初值,待GATE信号重新启动之后 才置入计数器使用。
WR
CLK
GATE OUT
CW N=4
4 32 1 0 图7.19 方式5 的波形
接口技术
例7.5 IBM PC/XT主机板上有一片8253用作计 数/定时电路,各计数器及控制寄存器所占地 址及工作情况如下:

微机接口技术实验定时计数器8253

微机接口技术实验定时计数器8253

微机接口技术实验定时/计数器(8253)1. 实验原理TPC-USB平台上有一块8253定时/计数器芯片,除了片选引脚,其他信号都已接好。

有关结构和编程,请参考本章前几节内容。

2. 实验内容(1)计数器方式0实验将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

步骤如下:1)按图2.1虚线连接电路。

图2.1 TPC-USB平台计数器方式0实验连线图2)根据流程图2.2,编程并运行,观察实验结果。

图2.2 TPC-USB平台计数器方式0实验流程图3)实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV AL,10HMOV DX,283HOUT DX,ALMOV AL,0FHMOV DX,280HOUT DX,ALLL: MOV AL,00HMOV DX,283HOUT DX,ALMOV DX,280HIN AL,DXCMP AL,9JBE L1ADD AL,7L1:ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AH MOV AH,02H INT 21HMOV AH,6MOV DL,0FFH INT 21H JZ LLMOV AH, 4CH INT 21H CODE ENDS END START(2)计数器方式3实验将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。

步骤如下:1)按图2.3连接电路。

U5 8253+5V+5V图2.3 TPC-USB 平台计数器方式3实验连线2)根据流程图2.4,编程并运行,观察实验结果。

图2.4 TPC-USB平台计数器方式3实验流程图3)实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV AL,37HMOV DX,283HOUT DX,ALMOV AL,00HMOV DX,280HOUT DX,ALMOV AL,10HOUT DX,ALMOV AL,77HMOV DX,283HOUT DX,ALMOV AL,00HMOV DX,281HOUT DX,ALMOV AL,10HOUT DX,ALMOV AH,4CHINT 21HCODE ENDSEND START(3)计数器级联实验将计数器0设置为方式3(方波),计数器1设置为方式2(分频)。

定时器-计数器8253

定时器-计数器8253
2021年1月30日星期六
1.2 8253的结构及其外部引脚
8253具有3个功能相同的16位减法计数器CNT0、CNT1和CNT2,可 进行二进制或8421 BCD码计数或定时操作。工作方式和计数常数可 由软件编程来设定,可以方便地与PC总线连接,外部引脚如图1-26 (a)所示,其内部结构如图1-26(b)所示,每个计数器有3个引脚: CLK为时钟输入端,作为定时或计数方式时的减1计数脉冲输入端, 当CLK输入为恒定周期的时钟信号时,则主要作为定时器用(定时器 是一种特殊的计数器),若CLK用于工业控制或实验中脉冲信号输入, 则一般来说,CLK的无固定的时钟周期只能看成计数器;OUT为计数 器输出端,当计数器减到0时,根据所置的工作方式输出相应的信号; GATE为门控端,用于启动或禁止计数器操作。控制字寄存器用来寄 存工作方式控制字,只能写入不能读出。
定时器/计数器8253
1.1 定时器/计数器概述
通常有3种方法来实现定时或计数:软件法、硬件法以及可 编程的硬件定时/计数法。
(1)软件实现。 (2)简单硬件实现。 (3)利用可编程定时器/计数器。由于它的定时值及计数范 围可以由软件来设定改变,因此,可以脱离CPU独立定时/计数。 它不占用CPU大量时间,所以使用方便,且功能强大。
2021年1月30日星期六
2021年1月30日星期六
图1-26 8253外部引脚和内部结构
1.3 8253的控制字和编程命令
1.8253的控制字 8253每个计数器的工作方式和计数值都必须由CPU通过输出指 令来设定。对8253的初始化要求是: (1)通过8253的控制端口向控制寄存器写入相应通道的控制 字,一般情况下,应指定通道的工作方式(6种工作方式之一)、 通道计数器的读/写方式(是读/写高/低8位数据,还是16位数据) 和通道计数器/定时器所采用的计数制(BCD/二进制)。 (2)通过8253的通道端口向相应的通道计数器写入计数初始 值。如果在控制字中已经确立为16位的控制方式,则应分两次对 通道端口进行写操作,先写入初始值的低8位,再写入初始值的高 8位。

第10章(8253定时器)

第10章(8253定时器)

工作方式 000=方式0 001=方式1 010=方式2 011=方式3
0=二进制 1=BCD码源自100=方式4101=方式5
2.初始化编程:向8253分别写入控制字和计数初值, 顺序为:
注意: 1) A1A0=00 读/写计数器0 A1A0=01 读/写计数器1 A1A0=10 读/写计数器2 A1A0=11 写8253控制字 2)写入计数初值,如果是8位,只写入一次,如果 16位,则先写低8位,后写高8位。
3.控制寄存器:8位,对8253初始化时,由CPU发 来的控制字经数据总线缓冲器、内部数据总线写 入该寄存器。 4.计数通道:8253有3个相互独立的计数通道, 分别为计数器0、计数器1和计数器2 。每个通道 包含一个8位的控制寄存器,用来存放计数器的 工作模式字;一个16位的初值寄存器CR,8253工 作前要对其置初值;一个16位计数执行单元CE, 接收计数初值寄存器CR送来的内容,并对该内容 执行减1计数操作;一个16位输出锁存器OL,锁 存CE的内容,供CPU读取。
• 【例2】IBM/PC微机的某扩展板上使用一 片8253,其端口地址为400H~403H,要 求从定时器0的输出端OUT0得到250HZ的 方波信号,从定时器1的输出端OUT1得 到10HZ的连续单拍负脉冲信号。已知系 统提供的计数脉冲频率为125KHZ,硬件 连接如图所示,试编写程序。
① 确定工作方式 根据题目要求,OUT0端输出的是连续方波,所 以定时器0应工作在方式3,而OUT1端输出连续 的单拍负脉冲,因此,定时器1必须工作在方式2。
1.8253的控制字:用来设置8253每个计数通道的 工作方式及计数初值进制。 如下图所示:
8253工作方式控制字 D7 D6 D5 D4 D3 M2 D2 M1 D1 D0

微机原理_定时计数器8253

微机原理_定时计数器8253

工作方式举例:方式2 二、工作方式举例:方式2
GATE门控 门控 信号
写入计 数初值 写入控 制字 WR GATE CLK OUT
方式2 方式2的工作特点是 计数,输出为持续不 断的周期信号
CLK 输入
计数脉冲 软件写入计数器启动 OUT 可预置初值计数器 计数,输出为持续不 计数, 输出
设计数初值为3 设计数初值为3
—— 启动 启动 启动 —— 启动
允许 —— 允许 允许 允许 ——
三、设置工作方式和计数值 对8253设置工作方式和设置计数值是连续 进行的。 步骤是:
1、对控制端口写:设置工作方式及计数值格式 2、对计数端口写:计数值低8位(可选) 3、对计数端口写:计数值高8位(可选)
控制字格式:
D7 SC1
1.19MHz / 533H = 900Hz
如果需要自定义频率值为263,则可以: MOV DX, 12H MOV AX, 3480H MOV SI, 263 DIV SI ;在AX中就得到了 计数值
音阶和频率的对应关系: 音符 1 2 3 4 5 6 7 1 频率 262 294 330 347 392 440 523 524 音符 1 2 3 4 5 6 7 1 频率 524 588 660 698 784 880 988 1048
8088
译码
A1 A0 AD7 | AD0 /WR /RD
8253
/CS A1 A0 D7 | D0 /WR /RD CLK0 OUT0 GATE0
10HZ频率 发生器
+5V
+5V +5V
0 1 2 3 4 5
定时计数器0
程序段如下
MOV OUT MOV OUT MOV OUT HLT AL , 0011 0000B 43H , AL ;写控制字 AL , 50 40H, AL ; 写计数初值低8位 AL , 0 40H, AL ; 写计数初值低8位

1 定时、计数器8253

1 定时、计数器8253
1、方式0:计数结束产生中断 采用方式0时,计数器在减到0时使输出端OUT 变为高电平,以向CPU发出中断申请,其工作 波形如下图所示。
当写入控制字后,计数器的输出OUT变成低电平, 若门控信号GATE为高电平,计数器开始减1计数并 且维持OUT为低电平,当计数器减到0时,输出端 OUT变成高电平,并且一直保持到重新装入初值或 复位时为止。 门控信号GATE可以暂停计数,当GATE =0时,计数停止,GATE恢复为高电平后,继续计 数。所以,如果在计数过程中,有一段时间GATE变 为低电平,那么,输出端OUT的低电平持续时间会 因此而延长相应的长度。 在计数过程中可以改变计数值,若是8位数,在写 入新的计数值后立即按新值重新开始计数,若是16 位数,写入第一个字节后计数停止,写入第二个字 节后立即按新值重新计数。

计数过程受门控信号GATE的控制,GATE为低电平时 暂停计数,由低电平恢复为高电平后的第一个时钟 下降沿从初值开始重新计数。在计数过程中改变初 值,对正在进行的计数过程没有影响,但计数到1, OUT变低一个CLK周期后,计数器将按新的计数值重 新开始计数。
4、方式3:方波发生器

采用方式3时,OUT端输出连续方波,若计数值N为偶 数,则输出对称方波,前N/2个脉冲期间为高电平, 后N/2个脉冲期间为低电平;若N为奇数,则前(N+ 1)/2个脉冲期间为高电平,后(N-1)/2个脉冲期 间为低电平。除输出波形不同外,方式3的其它情况 均同方式2。下图为方式3的工作波形图。

(2)与外设的接口引脚:
CLK0~2:计数器0、1、2的外部计数时钟输入端。 GATE0~2:计数器0、1、2的门控信号输入端。门 控信号用来禁止、允许或重新开始一个新计数过程。 OUT0~2:计数器0、1、2的计数输出端。当定时/ 计数时间到时,该端输出标志信号。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十章定时计数器8253/8254基本内容:8253/8254的功能、编程结构和工作原理,掌握8253/8254的外部接线、编程和使用方法。

基本要求:了解8253/8254的编程结构、工作原理及模式;掌握8253/8254的编程应用。

重点内容:8253/8254的编程结构、工作原理及模式和编程应用。

难点内容:8253/8254的编程结构和工作模式。

可编程控制接口芯片的学习要点:(1)不强调对接口芯片内部电路原理的具体分析;(2)侧重掌握接口芯片的外特性。

①主要引脚的名称及定义;②内部逻辑结构框图及功能描述;③控制字、状态字的组成及定义;④工作方式的定义。

第一节概述一、定时信号的获得定时/计数技术用于构建微机系统的定时子系统。

所谓定时(计数)就是通过硬件或软件的方法产生一个时间基准,以此来实现对系统的定时或延时控制。

定时有三种主要方法:软件定时、纯硬件定时及可编程的硬件定时器/计数器。

(1)软件定时使用延迟子程序由于执行每条指令都需要时间,则执行一个程序段就需要一个固定的时间,通过适当地挑选指令和安排循环次数来实现软件的定时。

该方法要求完全占用CPU的时间,因而降低了CPU的利用率。

(2)纯硬件定时采用固定的电路,如可以采用小规模集成电路555,外接电阻和电容构成单稳延时电路。

这样的定时电路简单,而且通过改变电阻和电容,可以使定时在一定的范围内调整。

但它由纯硬件来完成,给使用带来不便。

(3)可编程硬件定时器/计数器这是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围,功能强,使用灵活。

在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。

Intel 8253/8254就是常用的可编程定时/计数器。

8253最高工作频率2.6MHz,8254最高工作频率为10MHz。

计数器/定时器的用处:①作为中断信号②输出精确的定时信号③作为波特率发生器④实现延迟二、可编程计数器/定时器的工作原理计数器/定时器的基本原理图计数器/定时器可以有下面几种工作模式:①计数结束产生中断②可重复触发的单稳态触发器③分频器④方波发生器⑤选通信号发生器第二节可编程计数器/定时器8253 一、8253的编程结构3个计数器,每个计数器内部有:8位的控制寄存器16位的计数初值寄存器计数执行部件输出锁存器8253的编程结构二、8253的工作原理8253的工作原理图1、计数器0,计数器1,计数器2计数器0、计数器1、计数器2是三个完全独立、结构相同的计数器,每一个计数器都是由一个16位的可预置的减法计数器构成。

每一个计数器都有CLK、GATE、OUT三个引脚。

①每一个计数器都是由一个16位的可预置的减法计数器构成,计数器的初值n 由程序预置。

②CLK:计数脉冲输入端。

每进入一个脉冲,计数器计数值就减1。

③OUT:脉冲输出端。

当计数器计数值减到“0”时,就从OUT端输出一个信号,输出信号的波形取决于工作方式。

则:定时时间 = 时钟周期 (T) ×预置的计数器初值( n )④GATE:门控信号端,当GATE为低电平时,禁止计数器工作;当 GATE为高电平时,才允许计数器工作。

2、数据总线缓冲器功能:①往计数器设置初值②从计数器读取计数值③往控制寄存器设置控制字3、读写逻辑电路A1、A0 对计数器和控制寄存器寻址,A1、A0为:00----计数器0,01----计数器1,10----计数器2,11----控制器RD 读信号,读取选中计数器的内容(计数值)WR 写信号,向选中的计数器写入计数初值,或向选中控制器写入控制字CS 片选信号,有效表明8253被选中。

4、控制寄存器在8253初始化时,由CPU写入控制字来设置计数器的工作方式。

特点:只能写入而不能读出。

三、8253 的控制字和编程1、编程——即对8253初始化刚接通电源时,8253处于未定义的状态,需用程序将其设置为一个特定的模式,即初始化。

步骤:①写入控制字;②写入计数器初值。

注意:①三个计数器应该分别初始化②计数器一旦初始化之后,就在设置的模式下进行减1计数2、控制字的格式①SC1、SC0:这两位决定这个控制字是哪一个计数器的控制字②RL1、RL0:设置数据读/写格式。

在读取计数值时,可令RL1、RL0 = 00,先将写控制字时的计数值锁存,然后再读取。

③M2、M1、M0:设置每个计数器的工作方式。

④BCD:用于选择每个计数器的计数制。

在二进制计数时,计数初值的范围是0000H~FFFFH,其中0000H是最大值,代表65536。

在BCD码计数时,计数初值的范围中0000~9999,其中,0000是最大值,代表10000。

注意:最大计数为0000,不是FFFFH或9999。

除方式3外,最小值都为1。

四、8253的工作模式8253的基本规则:①控制字写入时,进入初始状态②初值写入后,要经过上升沿和一个下降沿,才开始计数③在CLK的上升沿被采样④在CLK下降沿,计数器作减1计数Intel 8253有6种工作方式:方式0—计数结束后输出由低变高方式1—可编程序的单拍脉冲方式2——频率发生器(分频器)方式3 —方波发生器方式4——软件触发选通方式5——硬件触发选通6种工作方式的主要区别是:1.输出的波形不同( 时序图) ,2.计数过程中GATE信号对计数操作的影响不同,3.启动计数器的触发方式不同。

1、模式0——计数结束产生中断(计数结束后输出由低变高)特点:当计数到达0时,输出端OUT为高电平模式0的时序图如下:注:CW=10H①写入控制字后,OUT输出端变为低电平。

当写入计数初值后,计数器开始减1计数。

在计数过程中OUT一直保持为低电平,直到计数到0时,OUT输出变为高电平。

此信号可用于向CPU发出中断请求。

②计数器只计数一遍。

当计数到0 时,不恢复计数初值,且输出一直保持为高电平。

只有在写入新的计数值时,OUT才变低,并开始新的计数。

③GATE是门控信号,GATE=1时允许计数,GATE=0时,禁止计数。

在计数过程中,如果GATE=0则计数暂停,当GATE=1后接着计数。

④在计数过程中可改变计数值。

若是8位计数,在写入新的计数值后,计数器将按新的计数值重新开始计数。

如果是16位计数,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器按照新的计数值开始计数。

如图所示。

GATE WRCLK OUTCW =10 HN =3N =2321212、模式1—— 可重复触发的单稳态触发器 特点:门控上升沿作为触发信号 是单稳态方式宽度主要决定于计数值模式1的时序图如下: 注:CW =12H①写入控制字后,输出OUT 将保持为高电平,计数由GATE 启动。

GATE 启动之后,OUT 变为低电平,当计数到0时,OUT 输出高电平,从而在OUT 端输出一个负脉冲,负脉冲的宽度为 n 个(计数初值)CLK 的脉冲宽度。

② 当计数到0后,不用送计数值,可再次由GATE 脉冲启动,输出同样宽度的单拍脉冲。

③ 在计数过程中,可改变计数初值,此时计数过程不受影响。

如果再次触发启动,则计数器将按新输入的计数值计数。

④ 在计数未到0时,如果GATE 再次启动,则计数初值将重新装入计数器,并重新开始计数。

3、模式2——分频器(频率发生器) 特点:是N分频的计数器正脉冲为N-1个时钟脉冲宽度负脉冲为1个时钟脉冲宽度模式2的时序图:CW=14H①写入控制字后,输出将变为高电平。

写入计数值后,计数立即开始。

在计数过程中输出始终为高电平,直至计数器减到1时,输出将变为低电平。

经过一个CLK周期,输出恢复为高,且计数器开始重新计数。

因此,它能够连续工作,输出固定频率的脉冲。

②如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。

因此,相当于对输入脉冲的N分频。

通过对N赋不同的初值,即可在输出端得到所需的频率,起到频率发生器的作用。

③计数过程可由门控脉冲控制。

当GATE=0时,暂停计数;当GATE变高自动恢复计数初值,重新开始计数。

④在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。

但在计数到1时输出变低,经过一个CLK周期后输出又变高,计数器将按新的计数值计数。

4、模式3——方波发生器特点:和模式2类似,但输出为方波或基本对称的矩形波模式3的时序图:CW=16H①输出为周期性的方波。

若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。

②写入控制字后,输出将变为高电平.当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。

③若计数值为偶数,则输出对称方波。

如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N—1)/2个CLK脉冲期间输出为低电平。

④GATE信号能使计数过程重新开始。

GATE=1允许计数,GATE=0禁止计数。

停止后OUT将立即变高开,当GATE再次变高以后,计数器将重新装入计数初值,重新开始计数。

5、模式4——软件触发的选通信号发生器特点:当计数到0时,输出变为低电平,并持续一个时钟周期变为高电平。

模式4的时序图:CW=18H①写入控制字后,输出为高电平。

写入计数值后立即开始计数(相当于软件触发启动),当计数到0后,输出一个时钟周期的负脉冲,计数器停止计数。

只有在输入新的计数值后,才能开始新的计数。

②当GATE=1时,允许计数,而GATE=0,禁止计数。

GATE信号不影响输出。

③在计数过程中,如果改变计数值,则按新计数值重新开始计数。

如果计数值是16位,则在设置第一字节时停止计数,在设置第二字节后,按新计数值中开始计数。

6、模式5——硬件触发的选通信号发生器特点:用门控上升沿触发即硬件触发计数到0时,输出端一个宽度为1个时钟周期的负脉冲,然后又自动变为高电平。

模式5的时序图:CW=1AH①写入控制字后,输出为高电平。

在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。

当计数到0时,输出一个CLK周期的负脉冲,并停止计数。

当门控脉冲再次触发时才能再计数。

②在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为0,才输出负脉冲。

③如果在计数过程中改变计数值,只要没有门控信号的触发,不影响计数过程。

当有新的门控脉冲的触发时,不管是否计数到0,都按新的计数值计数。

两个注意点:①时钟周期和输出周期的区别②输出波形在时钟下降沿产生电平变化例:假设一个8253在某系统中的端口地址40H~43H,如果要将计数器0设置为设置为工作方式3,计数初值为3060H,采用二进制计数法,则初始化方法如下:控制字:计数器0,写两个字节,方式3,二进制计数则控制字为:00 11 011 0MOV AL,36H ;设置控制字00110110OUT 43H,AL ;写入控制寄存器MOV AX, 3060H ;设置计数值OUT 40H, AL ;写低8位至计数器0MOV AL, AHOUT 40H, AL ;写高8位至计数器0例:已知8254各通道时钟接8MHz信号,端口地址为700H、702H、704H和706H,要求在OUT0产生周期为10us的方波,OUT1产生2KHz的连续脉冲信号,OUT3产生一个最大的负脉冲。

相关文档
最新文档