第八章 计数器定时器
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬件定时 采用可编程通用的定时/计数器或单稳延时电路产生定时 或延时
优点
不占用CPU的时间,定时时间长,使用灵活 定时准确,定时时间不受主机频率影响,定时程序具有 通用性,故得到广泛应用
8.1.3 可编程计数器/定时器的工作原理
计数器,即在设置好计数初值后,便开始对外部触发脉冲 作减1计数,减为0时,输出一个信号 定时器,即在设置好定时常数后,便对外部时钟信号作减1 计数,并按定时常数不断地产生时钟周期整数倍的定时间 隔 这两种情况的工作过程没有根本差别,主要都是基于计数 器的减“1”
8.1 计数器/定时器的工作原理
8.1.1 微机系统中的定时
计时的本质就是计数,只不过这里的“数”的单位是时间 单位。 微机系统常常需要为处理器和外设提供时间标记,或对外 部事件进行计数。 微机系统中的定时,可分为内部定时和外部定时两类: 内部定时是计算机本身运行的时间基准或时序关系,计算 机每个操作都是按照严格的时间节拍执行的; 外部定时是外部设备实现某种功能时,本身所需要的一种 时序关系 ;
DQ U21
>C Q
74LS175
PCLK RESETDRV
图8-11 8253与系统总线的连接
例8-3 8253的3个计数器串级连接起来,为某A/D子系统提 供可调用的启动采样频率信号。
分析:连接电路如图8-12所示。设8253的计数器0,1,2分别工作在方 式2(分频器)、方式1(单稳触发器),方式3(方波发生器)。3个计数 器的初始值分别为L,M,N。系统时钟频率为F。
GATE1
驱
动
器
扬
图8-13声自动计数系统
器
• 设计:程序清单如下
•
MOV AL,15H ;写方式控制字(设计数器0工作于方式2)
•
OUT 43H,AL
•
MOV AL,80 ;设计数0的计数初值为80
•
OUT 40H,AL
•
STI
;置IF=1,开中断
• LOOP:HLT
•
JMP LOOP
• ;中断服务程序
OUT DX,AL
MOV DX,40H ;设计数器0
MOV AL,0
;写计数初值低字节
OUT DX,AL
MOV AL,60
;写计数初值高字节
OUT DX,AL
8.2.4 8253的应用举例
例3-2 IBM PC/XT系统板上8253的3个计数器的使用。 分析:IBM PC/XT机中,8253与系统总线的连接如图8-11所示。
读/写 控制
00 计数器锁存 01 只读/写计数器低字节 10 只读/写计数器高字节 11 读/写计数器16位数
先低字节,后高字节
图8-10 8253的方式控制字
1 十进制计数 0 二进制计数
000 方式0 001 方式1 ×10 方式2 ×11 方式3 100 方式4 101 方式5
设定计数初值
OUT
② WR OUT
n=4 2
n=5 3
2 2
2
图8-7 8253的方式3时序波形
2 2
3
5.方式4——单次负脉冲输出(软件触发)
CLK
n=5
① WR OUT
5
4
3
21
0
② GATE
OUT
5
5
43
2
1
0
③ WR OUT
n=3 3
n=2
2
1
02
10
图8-8 8253的方式4时序波形
6.方式5——单次负脉冲输出(硬件触发)
8.2 可编程计数器/定时器8253
8.2.1 8253内部结构及引脚功能 8253的内部结构
D7~D0
数据总线 缓冲器
计数器0
WR RD AAC01S
内
读/写 逻辑
部 总 线
计数器1
控制字 寄存器
计数器2
图8-2 8253内部结构
CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE20 OUT2
•
MOV AL,01H ;置GATE1=1(80H为8255PA口地址)
•
OUT 80H,AL
•
MOV AL,77H ;写方式控制字(设计数器1工作于方式3)
•
OUT 43H,AL
•
MOV AL,0 ;写计数初值低位
•
OUT 41H,AL
•
MOV AL,25 ;写计数初值高位
•
OUT 41H,AL
•
③ WR n=9 OUT
54 54 98
3
2
n=4
10
321
4
32
0 10
图8-4 8253的方式0时序波形
2.方式1——低电平输出(GATE信号上升沿重新计数)
CLK ①
WR GATE OUT ②
GATE OUT ③
WR GATE OUT
n=4 n=3
4
321
0
4 n=2
43
3
2 10
2
1
0
21
设计:8253的初始化程序段如下
MOV AL,14H OUT 307H,AL MOV AL,L OUT 304H,AL MOV AL, 73H OUT 307H,AL MOV AX,M OUT 305H,AL MOV AL,AH OUT 305H,AL MOV AL,96H OUT 307H,AL MOV AL,N OUT 306H,AL
0
图8-5 8253的方式1时序波形
3.方式2——周期性负脉冲输出
CLK n=4
① WR
OUT
n=4 ② WR
OUT n=3
WR
③
OUT
GATE
4
32
1
n=3
43
21
0
32
1’
0(3) 2
1 (0) 3
32
1 03
32
1 01
图8-6 8253的方式2时序波形
4.方式3——周期性方波输出
CLK ① WR
;设计数器0 为方式2,低8位二进制计数 ;置初值L ;设计数器1为方式1,16位BCD码数计数 ;置初值M低8位 ;置初值M高8位 ;设计数器2为方式3,低8位二进制数计数 ;置初值N
• 例8-4 图8-13所示为一自动计数系统。当工件从光源与光敏电阻之间通过 时,CLK0端即可接收到一个脉冲信号,由计数器0计数。
CALL D5S
;调5秒延时
•
MOV AL,0
•
OUT 80H,AL ;置GATE0=1,使计数器1停止工作
8253的引脚功能
D7 D6 D5 D4 D3 D2 D1 D0
CLK0 OUT0 GATE0 GND
1 24
2 23
3 22
4 21
5 20
6
8253 19
7 18
8 17
9 16
10 15
11 14
12 13
VCC WR
RD
CS
A1 A0 CLK2 OUT2 GATE2 CLK1 GATE1 OUT1
8253 (方式2)
OUT0 CLK0
GATE0
启动转换
A/D转换子系统
(方式1) OUT1 GATE1 CLK1
(方式3) OUT2 GATE2 CLK2
手动/继电器开关 +5V
时钟发生器
图8-12 8253的计数器串级连接应用电路
设8253的端口地址为304H,305H,306H,307H。初始值L,N 为二进制数,且小于256,M为BCD数,且大于100。
CLK
① WR
n=4
GATE
OUT
② GATE OUT
54
32ቤተ መጻሕፍቲ ባይዱ
10
54
5
4 3 21 0
图8-9 8253的方式5时序波形
8.2.3 8253编程
设定方式控制字
SC1 SC0 RW1 RW0 M2
M1 M0
BCD
计数格 式选择
00 计数器0 01 计数器1 10 计数器2 11 无意义
工作方式选择
• 每当有80个工件通过后,由输出端OUT0输出一个负脉冲作为中断请求信 号通知CPU。
• CPU在处理该中断的中断服务程序中启动计数器1,由OUT1产生2000Hz 的方波驱动蜂鸣器发声,提示工件以满80个,5秒后扬声器停止发声。
+5V
OUT0 TNT
工件
光
R
敏 电
阻
光源
5MHz 8255PA4
CLK1 OUT1
图8-3 8253 引脚
CS RD WR A1 A0 功能
00
1
0
0
00
1
0
1
00
1
1
0
01
0
0
0
01
0
0
1
01
0
1
0
01
0
1
1
读计数器0当前值 读计数器1当前值 读计数器2当前值 设置计数器0的初始值 设置计数器1的初始值 设置计数器2的初始值 设置控制字
表8-1 8253计数器的选择与操作
8.2.2 8253的工作方式及特点
例3-1 设8253计数器0工作于方式3下,计数初值为6000
(十进制格式),试写出其初始化程序。(设8253计数器0,
计数器1,计数器2及控制端口地址分别为40H~43H。)
根据题目要求,8253方式控制字应为00110111,具体程序
如下:
MOV DX,43H ;设定控制端口
MOV AL,37H ;写入控制字
DACK0BRD
A5 A6 AAAA789EN
74LS138 IOR
A
IOW
B C
Y2
GGG221AB
(8255) PB0
RD
U26
WR CS 8253-5
A1 A0 D7~D0
OOOUUUTTT012
GGGAAATTTEEE012 CCCLLLKKK012
74LS74 DQ
U73
DREQ0(8237) IRQ0(8259)
8253的每个计数器通道都有6种工作方式可供选用
区分这6种工作方式的主要标志有3点:
一是输出波形不同; 二是启动计数器的触发方式不同; 三是计数过程中门控信号GATE对计数操作的控制不同。
1.方式0——低电平输出(GATE信号上升沿继续计数)
① CLK WR
n=5
OUT
② WR n=5 GATE OUT
8.1.2 外部定时方法
软件定时
优点
• 它是利用CPU内部定时机构,运用软件编程,循环执行一段程序而 产生的等待延时。
• 这是常用的一种定时方法,主要用于短时延时。
•
• 不需要增加硬设备,只需编制相应的延时程序以备调用
缺点
• CPU执行延时等待时间增加了CPU的时间开销,延时时间越长,这 种等待开销越大,降低了CPU的效率,浪费CPU的资源,且定时程序 的通用性差
数据总线
CPU
地址总线 控制总线
控制寄存器 计数初值寄存器
计数器 计数输出寄存器
计数脉冲输入CLK 门控脉冲输入GATE 输出OUT
图8-1 可编程计数器/定时器的基 本结构以及与系统总线的连接
8.1.3 可编程计数器/定时器的工作原理
控制寄存器:控制计数器/定时器的操作方式 计数初值寄存器:存放计数器所需的初值 计数输出寄存器:存放计数器中的值 计数器:实际是一个减法器