第7章 可编程计数器定时器8253及其应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章
可编程计数器定时器 8253及其应用
1
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS
8 9 7 11 6 10 5 4 15 3 14 2 13 8253 1 22 18 23 16 19 17 20 24 21 12
CLK0 GATE0 OUT0
CLK1 GATE1 OUT1 CLK2 GATE2 OUT2
24
作业:
P324 1、4
25
;控制口地址 ;通道1控制字,先低字节, ;后高字节,方式3,BCD计数 ;通道1口地址 ;先写低地址 ;后写高地址
;通道2控制字,只读写低字节, ;方式5,BCD计数 ;通Βιβλιοθήκη Baidu2地址 ;只写入低字节
21
例7-3 利用8253定时1s产生中断,同时对外部逻辑开关闭合 次数计数。当记满10次后,让指示灯亮,设主频f=2MHz,系 统分配给8253口地址为40H~43H。试设计接口电路,并编程。 (1)思路 ① 计数10次满,输出脉冲驱动LED亮,可用方式0,计数结 束产生中断,用计数器0; ② 定时1s 因f=2MHz,故要计数2M个脉冲时间才能实现1s的定时; 而1个计数器最多可计65536个脉冲,所以需用2个计数器串 接,一个为2000,一个为1000,将OUT1连接CLK2。 其中计数器1工作在方式2,采用分频器;计数器2工作在 方式0。
7
方式0——计数结束中断方式
8
方式1——可编程单稳态输出方式
9
方式2——比率发生器
10
方式3——方波发生器
11
方式4——软件触发选通
12
方式5 — 硬件触发选通
13
在计数的过程中读取数据
如要读通道1的计数值,8253端口地址F8H~FBH。 编程如下: MOV AL,0100 0000B; OUT 0FBH,AL ;锁存计数值 IN AL,0F9H MOV CL,AL ;低八位,与初始化设定有关 IN AL,0F9H MOV CH,AL ;高八位
17
(1)8253端口地址 因8253基地址为310H,所以各通道和控制R地址分别为 310H,312H,314H,316H。 则利用译码器进行译码时,各地址线电平要求如下:
18
(2)硬件电路设计
19
(3)工作方式选择及初值计算 ① 通道0工作于方式3,时间常数为1MHz/2KHz=500。 ② 通道1工作在方式1,时间常数为480μs/1μs=480。 ③ 通道2用硬件方式触发,工作在方式5,时间常数为26。 (4)对3个通道的初始化程序 ① 通道0初始化程序: MOV DX,316H ;控制口地址 MOV AL,00110111B ;通道0控制字,先低字节, ;后高字节,方式3,BCD计数 OUT DX,AL MOV DX,310H ;通道0地址 MOV AL,00H ;先写低字节 OUT DX,AL MOV AL,05H ;后写高字节 OUT DX,AL 20
14
15
16
例7-2 用8253产生各种定时波形 在某个以8086为CPU的系统中使用了一块8253芯片,通道 的基地址为310H,所用的时钟脉冲频率为1MHz。要求3个 计数通道分别完成以下功能: (1) 通道0工作于方式3,输出频率为2KHz的方波; (2) 通道1产生宽度为480us的单脉冲; (3) 通道2用硬件方式触发,输出单脉冲,时间常数为 26。
VCC
GND
2
3
4
5
6
例7-1 某微机系统的8253的3个计数器的端口地址分别为 3F0H、3F2H和3F4H,控制字寄存器的端口地址为3F6H,要 求8253的通道0工作于方式3,计数初值n=1234H。 则初始化程序为: MOV AL,00110111B ;控制字:选择通道0,先读/写低字节, ;后高字节,方式3,BCD计数 MOV DX,3F6H ;指向控制口 OUT DX,AL ;送控制字 MOV AL,34H ;计数值低字节 MOV DX,3F0H ;指向计数器0端口 OUT DX,AL ;先写入低字节 MOV AL,12H ;计数值高字节 OUT DX,AL ;后写入高字节
② 通道1初始化程序 MOV DX,316H MOV AL,01110011B OUT DX,AL MOV DX,312H MOV AL,80H OUT DX,AL MOV AL,04H OUT DX,AL ③ 通道2初始化程序 MOV DX,316H MOV AL,10011011B OUT MOV MOV OUT DX,AL DX,314H AL,26H DX,AL
22
(2)设计的电路图如下
23
(3)8253编程
*************************计数器0********************************* MOV AL,00010000B ;计数器0,方式0,只写低字节 OUT 43H,AL ;二进制计数,写入控制字 MOV AL,0AH ;计数器0置初值10 OUT 40H,AL *************************计数器1****************************** MOV AL,0111X101B ;计数器1,方式2 OUT 43H,AL ;先写入低字节,后高字节,十进制BCD计数 MOV AL,00H ;计数器1置初值2000 OUT 41H,AL ;先写低8位 MOV AL,20H OUT 41H,AL ;后写高8位 ************************计数器2********************************* MOV AL,10110001B ;计数器2,方式0 OUT 43H,AL ;先写入低字节,后高字节,十进制BCD计数 MOV AL,00H ;计数器2置初值1000 OUT 42H,AL ;先写低8位 MOV AL,10H OUT 42H,AL ;后写高8位
可编程计数器定时器 8253及其应用
1
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS
8 9 7 11 6 10 5 4 15 3 14 2 13 8253 1 22 18 23 16 19 17 20 24 21 12
CLK0 GATE0 OUT0
CLK1 GATE1 OUT1 CLK2 GATE2 OUT2
24
作业:
P324 1、4
25
;控制口地址 ;通道1控制字,先低字节, ;后高字节,方式3,BCD计数 ;通道1口地址 ;先写低地址 ;后写高地址
;通道2控制字,只读写低字节, ;方式5,BCD计数 ;通Βιβλιοθήκη Baidu2地址 ;只写入低字节
21
例7-3 利用8253定时1s产生中断,同时对外部逻辑开关闭合 次数计数。当记满10次后,让指示灯亮,设主频f=2MHz,系 统分配给8253口地址为40H~43H。试设计接口电路,并编程。 (1)思路 ① 计数10次满,输出脉冲驱动LED亮,可用方式0,计数结 束产生中断,用计数器0; ② 定时1s 因f=2MHz,故要计数2M个脉冲时间才能实现1s的定时; 而1个计数器最多可计65536个脉冲,所以需用2个计数器串 接,一个为2000,一个为1000,将OUT1连接CLK2。 其中计数器1工作在方式2,采用分频器;计数器2工作在 方式0。
7
方式0——计数结束中断方式
8
方式1——可编程单稳态输出方式
9
方式2——比率发生器
10
方式3——方波发生器
11
方式4——软件触发选通
12
方式5 — 硬件触发选通
13
在计数的过程中读取数据
如要读通道1的计数值,8253端口地址F8H~FBH。 编程如下: MOV AL,0100 0000B; OUT 0FBH,AL ;锁存计数值 IN AL,0F9H MOV CL,AL ;低八位,与初始化设定有关 IN AL,0F9H MOV CH,AL ;高八位
17
(1)8253端口地址 因8253基地址为310H,所以各通道和控制R地址分别为 310H,312H,314H,316H。 则利用译码器进行译码时,各地址线电平要求如下:
18
(2)硬件电路设计
19
(3)工作方式选择及初值计算 ① 通道0工作于方式3,时间常数为1MHz/2KHz=500。 ② 通道1工作在方式1,时间常数为480μs/1μs=480。 ③ 通道2用硬件方式触发,工作在方式5,时间常数为26。 (4)对3个通道的初始化程序 ① 通道0初始化程序: MOV DX,316H ;控制口地址 MOV AL,00110111B ;通道0控制字,先低字节, ;后高字节,方式3,BCD计数 OUT DX,AL MOV DX,310H ;通道0地址 MOV AL,00H ;先写低字节 OUT DX,AL MOV AL,05H ;后写高字节 OUT DX,AL 20
14
15
16
例7-2 用8253产生各种定时波形 在某个以8086为CPU的系统中使用了一块8253芯片,通道 的基地址为310H,所用的时钟脉冲频率为1MHz。要求3个 计数通道分别完成以下功能: (1) 通道0工作于方式3,输出频率为2KHz的方波; (2) 通道1产生宽度为480us的单脉冲; (3) 通道2用硬件方式触发,输出单脉冲,时间常数为 26。
VCC
GND
2
3
4
5
6
例7-1 某微机系统的8253的3个计数器的端口地址分别为 3F0H、3F2H和3F4H,控制字寄存器的端口地址为3F6H,要 求8253的通道0工作于方式3,计数初值n=1234H。 则初始化程序为: MOV AL,00110111B ;控制字:选择通道0,先读/写低字节, ;后高字节,方式3,BCD计数 MOV DX,3F6H ;指向控制口 OUT DX,AL ;送控制字 MOV AL,34H ;计数值低字节 MOV DX,3F0H ;指向计数器0端口 OUT DX,AL ;先写入低字节 MOV AL,12H ;计数值高字节 OUT DX,AL ;后写入高字节
② 通道1初始化程序 MOV DX,316H MOV AL,01110011B OUT DX,AL MOV DX,312H MOV AL,80H OUT DX,AL MOV AL,04H OUT DX,AL ③ 通道2初始化程序 MOV DX,316H MOV AL,10011011B OUT MOV MOV OUT DX,AL DX,314H AL,26H DX,AL
22
(2)设计的电路图如下
23
(3)8253编程
*************************计数器0********************************* MOV AL,00010000B ;计数器0,方式0,只写低字节 OUT 43H,AL ;二进制计数,写入控制字 MOV AL,0AH ;计数器0置初值10 OUT 40H,AL *************************计数器1****************************** MOV AL,0111X101B ;计数器1,方式2 OUT 43H,AL ;先写入低字节,后高字节,十进制BCD计数 MOV AL,00H ;计数器1置初值2000 OUT 41H,AL ;先写低8位 MOV AL,20H OUT 41H,AL ;后写高8位 ************************计数器2********************************* MOV AL,10110001B ;计数器2,方式0 OUT 43H,AL ;先写入低字节,后高字节,十进制BCD计数 MOV AL,00H ;计数器2置初值1000 OUT 42H,AL ;先写低8位 MOV AL,10H OUT 42H,AL ;后写高8位