第八章可编程计数器定时器
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
2、适用场合:延时时间短,重复次数有限
三、
硬件
1、特点
1、编程简单
2、计数时不占用CPU
定时
Hale Waihona Puke Baidu
2、适用场合:各种场合
8.2 8253的编程结构和工作原理
16位的计数初值寄存器 一、 编程 结构 2、8位的控制寄存器 1、3个计数器 16位的计数执行部件 16位的输出锁存器
8253的编程结构
1、8位的控制寄存器
2、16位的CR 备注: 一、编程结 构: 1、8位的控 制寄存器 2、16位的 计数初值寄 存器CR 3、16位的 计数执行部 件CE 4、16位的 输出锁存器 OL
3、16位的CE: 减法计数器 4、16位的OL: 锁存CE的内容
注:CR、CE、OL都为16位寄存器,也可作8位寄存器用
工作过程: 1、初值→ CR→CE, CE减1计数,OL跟随 CE变化,减到终值, OUT输出一信号。 2、锁存命令到来, OL锁存当前计数,当 计数被读走,OL又随 CE变化。
OUT:输出信号
设置计数通 道工作方式
三、控制寄存器的格式
SC1 SC0 RW1 RW0 M2 M1 M0 BCD 计数格 式选择 1:BCD计数 0:二进制计数
计 数 器 选 择
读写控制 00:选计数器0 01:选计数器1 10:选计数器2 11:无意义
000 :模式0 001 :模式1 模式选择 ×10:模式2 ×11:模式3 00:锁存计数器 100 :模式4 01:只读写低字节 101 :模式5 10:只读写高字节 11:先读写低字节 再读写高字节
功 能 对计数器0设初值
对计数器1设初值
对计数器2设初值 设控制字或发锁存命令 读计数器0的计数值 读计数器1的计数值 读计数器2的计数值
注:1)CPU对控制字寄存器只能写,不能读。 2)A1A0 =11时,第一次写入的是控制字, 此后写入的是锁存命令。
CLK:时钟输入 GATE:控制计数器工 作的信号,在CLK的 上升沿被采样。
①初值→CR,下一时钟周期初值从CR→CE,不计数; ②GATE变高,开始计数。再经过N个时钟OUT变为高电平。 ③GATE信号可作为启动定时的同步信号。
6)应用 主要用于事件计数,OUT输出可作为中断请求信号。 例:用8253A监视一个生产流水线,统计流水线上经过 的工件数量。工件从光源与光敏电阻之间通过时,在晶 体管的发射极上会产生一个脉冲,此脉冲作为8253A计 数通道0的计数脉冲。
② 计数过程中GATE变低,计数暂停,OUT的状态不变, GATE变高后继续计数。
4)GATE=1时,写入新的初值对计数过程的影响
8位计数初值:写入新的计数初值后,计数器将按新初
值重新开始计数;
16位计数初值:写入第一个字节后,计数器停止,写入
第二个字节后,计数器按新初值开始计数。
5)GATE=0时,写入新的初值对计数过程的影响
二、功能结构
设置初值 读取计数值 设置控制字 00:计数器0 01:计数器1 10:计数器2 11:控制寄存器 功 能
6
8253输入信号与各功能的对应关系
CS
0 0 0 0 0 0 0
RD
1 1 1 1 0 0 0
WR
0 0 0 0 1 1 1
A1A0 0 0 0 1 1 0 1 1 0 0 0 1 1 0
9
8.3 8253的编程命令
一、编程要遵守的规则
1、设置初值前必须先写控制字; 2、初值设置要符合控制字中的格式规定。 3、输出锁存器的值必须先锁定,后读取。 二、编程命令 1、写入命令 设置控制字 设置初始值 锁存命令:配合读出命令
2、读出命令 :读取计数值
10
例1:设8253的端口地址为0120H~0126H,对计数器1编 程,使其工作于方式2,计数初值为2000H,计数按二进 制格式。编写初始化程序。
第8章 可编程定时器/计数器8253A
重点:
1、计数器/定时器8253A的编程结构和工作原理 2、8253A控制寄存器的格式
3、8253A的工作模式
4、8253A的应用
1
8.1 概述
1、软件方法
一、定时信号 获得方法
设计延迟子程序 2、硬件方法 使用计数器/定时器
二、
软件
定时
1、特点
(1)节省硬件 (2)延时时间用指令的执行时间 拼凑, 较麻烦 (3)延时子程序执行时,CPU一 直占用,降低CPU利用率
注:入射光强,光敏电阻阻值减小,入射光弱,光敏电阻阻值增大
13
二、8253工作方式
1、方式0-计数结束产生中断 特点:1)计数过程 ① OUT起始电平: 低电平。 ② 如GATE=1,计数到0,OUT变高,一直保持到新的 计数值写入。 ③ OUT在初值写入后经过N+1个时钟变为高电平。
14
2)启动计数方式 软启动:通过写入初值控制计数器的启动。 3)门控信号的影响 ① GATE=1时,CE获得初值后开始计数;
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
0 MOV MOV OUT MOV MOV OUT MOV OUT
1
1
1
×
1
0
0
AL,74H DX,0126H DX, AL ;设控制字 DX,0122H AL,0 DX,AL ;先写低8位初值 AL,20H DX,AL ;再写高8位初值
例2:设8253的端口地址为40H~46H,对计数器0编程, 使其工作于方式3,计数初值为1234H,计数按二 进制格式。编写程序将计数值读到BX寄存器。 MOV OUT MOV OUT MOV OUT AL,36H 46H,AL AL,34H 40H,AL AL,12H 40H,AL ; 0011×110B ;设控制字 MOV AL,00H ;0000 ××××H OUT 46H,AL ;锁存命令 IN AL,40H MOV BL,AL ;先读低8位计数值 IN AL,40H MOV BH,AL ;再读高8位计数值
;先写低8位初值
;再写高8位初值
8.4 8253的工作方式
一、各种方式遵守的基本规则
1、控制字写入计数器时,所有的控制逻辑电路立即复位,
输出端OUT进入初始状态。
2、初值写入CR后,要经过一个时钟脉冲的上升沿和下降
沿,初值送入CE,CE从下一个时钟开始进行计数。
3、在CLK的上升沿对GATE进行采样。 4、在CLK的下降沿计数器进行计数。
2、适用场合:延时时间短,重复次数有限
三、
硬件
1、特点
1、编程简单
2、计数时不占用CPU
定时
Hale Waihona Puke Baidu
2、适用场合:各种场合
8.2 8253的编程结构和工作原理
16位的计数初值寄存器 一、 编程 结构 2、8位的控制寄存器 1、3个计数器 16位的计数执行部件 16位的输出锁存器
8253的编程结构
1、8位的控制寄存器
2、16位的CR 备注: 一、编程结 构: 1、8位的控 制寄存器 2、16位的 计数初值寄 存器CR 3、16位的 计数执行部 件CE 4、16位的 输出锁存器 OL
3、16位的CE: 减法计数器 4、16位的OL: 锁存CE的内容
注:CR、CE、OL都为16位寄存器,也可作8位寄存器用
工作过程: 1、初值→ CR→CE, CE减1计数,OL跟随 CE变化,减到终值, OUT输出一信号。 2、锁存命令到来, OL锁存当前计数,当 计数被读走,OL又随 CE变化。
OUT:输出信号
设置计数通 道工作方式
三、控制寄存器的格式
SC1 SC0 RW1 RW0 M2 M1 M0 BCD 计数格 式选择 1:BCD计数 0:二进制计数
计 数 器 选 择
读写控制 00:选计数器0 01:选计数器1 10:选计数器2 11:无意义
000 :模式0 001 :模式1 模式选择 ×10:模式2 ×11:模式3 00:锁存计数器 100 :模式4 01:只读写低字节 101 :模式5 10:只读写高字节 11:先读写低字节 再读写高字节
功 能 对计数器0设初值
对计数器1设初值
对计数器2设初值 设控制字或发锁存命令 读计数器0的计数值 读计数器1的计数值 读计数器2的计数值
注:1)CPU对控制字寄存器只能写,不能读。 2)A1A0 =11时,第一次写入的是控制字, 此后写入的是锁存命令。
CLK:时钟输入 GATE:控制计数器工 作的信号,在CLK的 上升沿被采样。
①初值→CR,下一时钟周期初值从CR→CE,不计数; ②GATE变高,开始计数。再经过N个时钟OUT变为高电平。 ③GATE信号可作为启动定时的同步信号。
6)应用 主要用于事件计数,OUT输出可作为中断请求信号。 例:用8253A监视一个生产流水线,统计流水线上经过 的工件数量。工件从光源与光敏电阻之间通过时,在晶 体管的发射极上会产生一个脉冲,此脉冲作为8253A计 数通道0的计数脉冲。
② 计数过程中GATE变低,计数暂停,OUT的状态不变, GATE变高后继续计数。
4)GATE=1时,写入新的初值对计数过程的影响
8位计数初值:写入新的计数初值后,计数器将按新初
值重新开始计数;
16位计数初值:写入第一个字节后,计数器停止,写入
第二个字节后,计数器按新初值开始计数。
5)GATE=0时,写入新的初值对计数过程的影响
二、功能结构
设置初值 读取计数值 设置控制字 00:计数器0 01:计数器1 10:计数器2 11:控制寄存器 功 能
6
8253输入信号与各功能的对应关系
CS
0 0 0 0 0 0 0
RD
1 1 1 1 0 0 0
WR
0 0 0 0 1 1 1
A1A0 0 0 0 1 1 0 1 1 0 0 0 1 1 0
9
8.3 8253的编程命令
一、编程要遵守的规则
1、设置初值前必须先写控制字; 2、初值设置要符合控制字中的格式规定。 3、输出锁存器的值必须先锁定,后读取。 二、编程命令 1、写入命令 设置控制字 设置初始值 锁存命令:配合读出命令
2、读出命令 :读取计数值
10
例1:设8253的端口地址为0120H~0126H,对计数器1编 程,使其工作于方式2,计数初值为2000H,计数按二进 制格式。编写初始化程序。
第8章 可编程定时器/计数器8253A
重点:
1、计数器/定时器8253A的编程结构和工作原理 2、8253A控制寄存器的格式
3、8253A的工作模式
4、8253A的应用
1
8.1 概述
1、软件方法
一、定时信号 获得方法
设计延迟子程序 2、硬件方法 使用计数器/定时器
二、
软件
定时
1、特点
(1)节省硬件 (2)延时时间用指令的执行时间 拼凑, 较麻烦 (3)延时子程序执行时,CPU一 直占用,降低CPU利用率
注:入射光强,光敏电阻阻值减小,入射光弱,光敏电阻阻值增大
13
二、8253工作方式
1、方式0-计数结束产生中断 特点:1)计数过程 ① OUT起始电平: 低电平。 ② 如GATE=1,计数到0,OUT变高,一直保持到新的 计数值写入。 ③ OUT在初值写入后经过N+1个时钟变为高电平。
14
2)启动计数方式 软启动:通过写入初值控制计数器的启动。 3)门控信号的影响 ① GATE=1时,CE获得初值后开始计数;
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
0 MOV MOV OUT MOV MOV OUT MOV OUT
1
1
1
×
1
0
0
AL,74H DX,0126H DX, AL ;设控制字 DX,0122H AL,0 DX,AL ;先写低8位初值 AL,20H DX,AL ;再写高8位初值
例2:设8253的端口地址为40H~46H,对计数器0编程, 使其工作于方式3,计数初值为1234H,计数按二 进制格式。编写程序将计数值读到BX寄存器。 MOV OUT MOV OUT MOV OUT AL,36H 46H,AL AL,34H 40H,AL AL,12H 40H,AL ; 0011×110B ;设控制字 MOV AL,00H ;0000 ××××H OUT 46H,AL ;锁存命令 IN AL,40H MOV BL,AL ;先读低8位计数值 IN AL,40H MOV BH,AL ;再读高8位计数值
;先写低8位初值
;再写高8位初值
8.4 8253的工作方式
一、各种方式遵守的基本规则
1、控制字写入计数器时,所有的控制逻辑电路立即复位,
输出端OUT进入初始状态。
2、初值写入CR后,要经过一个时钟脉冲的上升沿和下降
沿,初值送入CE,CE从下一个时钟开始进行计数。
3、在CLK的上升沿对GATE进行采样。 4、在CLK的下降沿计数器进行计数。