第8章 可编程定时计数器8253(8254)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编程定时/计数器8253(8254)
三种基本方法:软件定时、硬件定时、 三种基本方法:软件定时、硬件定时、可编程硬 件定时 主要内容: 主要内容: 8253/8254的内部结构及引脚信号 的内部结构及引脚信号 8253 /8254的工作方式 的工作方式 8253/8254的编程 的编程 8253最高工作频率 最高工作频率2.6MHz 最高工作频率 8254最高工作频率为 最高工作频率为10MHz 最高工作频率为
• • • • • • • • MOV DX,706H MOV AL,01110100B OUT DX,AL MOV DX 702H DX,702H MOV AX,4000 OUT DX,AL MOV AL,AH OUT DX,AL ;控制端口地址 ;CTC1控制字 ;CTC1口地址 CTC1 ;CTC1初值 ;先写低字节 ;取高字节 ;后写高字节
方式1 单稳负脉冲信号发生器
CW=12H WR CLБайду номын сангаас GATE OUT
3 2 1 0 FF
LSB=3
方式2 速率信号发生器
CW=14H WR CLK GATE OUT 3 2 1 3 2 1 3 2 1 LSB=3
方式3方波信号发生器—偶数初值
CW=16H LSB=4 WR CLK GATE OUT
;CTC2
• • • • • • • MOV DX,706H MOV AL,10110010B OUT DX,AL MOV DX,704H MOV AL,0 OUT DX,AL OUT DX,AL ;控制端口地址 ;CTC2控制字 ;CTC2口地址 ;CTC2初值 ;先写低字节 ;后写高字节
8253应用
8253/8254内部结构及引脚信号
二数数 1-8 D7-D0 22 23 19 20 21 Vcc 24 GND 12
二数数数 缓缓计
内 部 二 数 数 数
二二计 0号
9 11 10
CLK0 GATE0 OUT0
RD WR A1 A0 CS
读/写 逻逻
二二计 1号
15 14 CLK1 13 GATE1 OUT1 18 16 1 7
4 2 4 2 4 2 4 2 4 2
方式3 奇数初值
CW=16H WR CLK GATE OUT
5 4 2 4 2 5 4 2 4 2 5
LSB=5
方式4 软件触发的选通信号发生器
CW=18H WR CLK GATE OUT
3 2 1 0 FF FE
LSB=3
方式5 硬件触发的选通信号发生器
8253和8254的工作方式
方式0 —— 中断信号发生器 方式1 —— 单稳负脉冲信号发生器 方式2 —— 速率信号发生器 方式3 —— 方波信号发生器 方式4 —— 软件触发的选通信号发生器 方式5 —— 硬件触发的选通信号发生器
方式0 中断信号发生器
CW=10H WR CLK GATE OUT 4 3 2 1 0 FF FE LSB=4
控二写 寄计计
二二计 2号
CLK2 GATE2 OUT2
8253端口及其操作
CS 0 0 0 0 0 0 0 0 1 0 RD 0 0 0 0 1 1 1 1 × 1 WR A1 A0 操作 1 0 0 读计数器 0 1 0 1 读计数器 1 1 1 0 读计数器 2 1 1 1 无操作 0 0 0 写常数到计数器 0 0 0 1 写常数到计数器 1 0 1 0 写常数到计数器 2 0 1 1 写方式控制字 × × × 三态(禁止) 1 × × 无操作
1.19MHz CLK0 CLK1 CLK2 D7-D0 RD WR CS A1 A0 8253 +5V GATE0 GATE1 GATE2 8255 PB1 OUT0 OUT1 OUT2 1K方低 IRQ0 (8259的IR0) 55ms方低 去DMA 15us 连连低 驱驱 低低低低
D7-D0 IOR IOW 40H-43H A1 A0 8255 PB0
• • • • • • • • • • MOV AL,10110110B ;CTC2控制字 OUT 43H,AL ;写入控制口 MOV AX,1190 ;CTC2初值 OUT 42H,AL ;先写低字节 MOV AL, AH ;取高字节 OUT 42H,AL ;后写高字节 IN AL, 61H ;读8255A的B口的值 MOV AH, AL ;暂存AH中 OR AL, 00000011B OUT 61H, AL ;输出使扬声器发声
操操操操 方方通通 0 0=二二计计计 0 0 0=方方0 0 1=读/写低写写 0 0 1=方方1 1 0=读/写写写写 x 1 0=方方2 1 1=读/写16位(写) x 1 1=方方3 先低写写 1 0 0=方方4 后写写写 1 0 1=方方5
8253/8254计数范围
• 二进制计数 : 0000H~ FFFFH, 即 0~ , 65535 • BCD码计数:0000~9999 码计数: 码计数 ~ • 最 小 和 最 大 计 数 值 : 最大计数为0000, 不是 , 不是FFFFH或 9999。 或 。 最大计数为 除方式3外 最小值都为1。 除方式 外,最小值都为 。
8253/8254初始值计算
• 假设已知 假设已知8253相应通道的 相应通道的CLK端接入的时钟 相应通道的 端接入的时钟 频率为f 周期记为T 频率为 CLK , 周期记为 CLK=1/fCLK , 要求产 生的周期性信号频率为F(周期为 周期为T)或定时时 生的周期性信号频率为 周期为 或定时时 间为T(F=1/T),则所需计数初值 为: 间为 ,则所需计数初值n为
应用程序片段
• • • • • • • ;CTC0初值=55*1.19=65450 MOV AL,00110110B ;CTC0控制字 OUT 43H,AL ;写入控制端口 MOV AX,65450 ;CTC0初值 OUT 40H,AL ;先写低字节 MOV AL, AH OUT 40H,AL ;后写高字节
示例程序片段
• • • • • • • ;CTC0 MOV DX,706H ;控制端口地址 MOV AL,00010110B ;CTC0控制字 AL 00010110B CTC0 OUT DX,AL MOV DX,700H ;CTC0口地址 MOV AL,80 ;CTC0初值 OUT DX,AL
;CTC1
CW=1AH LSB=3 WR CLK GATE OUT
3 2 1 0 FF
8253/8254的编程方法
• 8253/8254控制字 8253/8254控制字
D7 D6 D5 D4 D3 M2 D2 M1 D1 M0 D0 BCD 0=二二二二二 1=BCD码二二 SC1 SC2 RL1 RL0 低通通通 0 0=二二计计0 0 1=二二计计1 1 0=二二计计2 1 1=8253非非 8254读读读读
n=
T t CLK
=
f CLK F
= T × f CLK
• 在计算时注意时间和频率的单位一致性。 在计算时注意时间和频率的单位一致性。
8253/8254编程示例
• 已知 已知8254各通道时钟接 各通道时钟接8MHz信号,端口地址 信号, 各通道时钟接 信号 为700H、702H、704H和706H,要求在 、 、 和 ,要求在OUT0 产生周期为10us的 方波 , OUT1产生 产生2KHz的 产生周期为 的 方波, 产生 的 连续脉冲信号, 产生一个最大的负脉冲。 连续脉冲信号,OUT3产生一个最大的负脉冲。 产生一个最大的负脉冲 • 分析: 分析: OUT0:初值 初值=10us*8MHz=80 方式3 初值 方式 OUT1:初值 初值=8MHz/2KHz=4000 方式 方式2 初值 OUT2:初值 初值=0 方式1 初值 方式
82538254的内部结构及引脚信号82538254的内部结构及引脚信号82538254的工作方式82538254的编程8253最高工作频率26mhz8254最高工作频率为10mhz8254最高工作频率为10mhz82538254内部结构及引脚信号82538254内部结构及引脚信号数据总线缓冲器计数器d7d0数据线clk0gate0out0181110缓冲器rdout0clk12215逻辑计数器rdwra1a0clk1gate1out12319201413控制字计数器a0csclk2gate2211816控制字寄存器计数器gate2out2vccgnd24128253端口及其操作8253端口及其操作csrdwra1a0操作无操作8253和8254的工作方式8253和8254的工作方式方式0中断信号发生器方式1单稳负脉冲信号发生器方式2速率信号发生器方式2速率信号发生器方式3方波信号发生器方式3方波信号发生器方式4软件触发的选通信号发生器方式5硬件触发的选通信号发生器方式0中断信号发生器cw10hlsb4wrclkgateoutfffeoutfffe方式1单稳负脉冲信号发生器方式1单稳负脉冲信号发生器wrcw12hlsb3wrclkgateoutoutff方式2速率信号发生器wrcw14hlsb3wrclkgateout方式3方波信号发生器偶数初值wrcw16hlsb4wrclkgateoutout方式3奇数初值cw16hlsb5wrclkgategateout方式4软件触发的选通信号发生器方式4软件触发的选通信号发生器wrcw18hlsb3wrclkgateoutoutfffe方式5硬件触发的选通信号发生器cw1ahlsb3wrclkgateoutff的编程方法82538254的编程方法d7d6d5d4d3d2d1d082538254控制字0二进制计数通道选择sc1sc2rl1rl0m2m1m0bcdd7d6d5d4d3d2d1d00二进制计数1bcd码计数方式选择1方式1操作类型1读写低字节通道选择0方式4方式先低字节后高字节18253非法8254读回命令1方式5后高字节82538254计数范围二进制计数
;应用程序CTC1
• • • • • ;初值=15*1.19=17.85 取 18=12H MOV AL,01010100B ;CTC1控制字 OUT 43H,AL ;写入控制端口 MOV AL,12H ;CTC1初值 OUT 41H,AL ;写初值至CTC1
;应用程序CTC2
• ;CTC2初值=1.19M/1K=1190
三种基本方法:软件定时、硬件定时、 三种基本方法:软件定时、硬件定时、可编程硬 件定时 主要内容: 主要内容: 8253/8254的内部结构及引脚信号 的内部结构及引脚信号 8253 /8254的工作方式 的工作方式 8253/8254的编程 的编程 8253最高工作频率 最高工作频率2.6MHz 最高工作频率 8254最高工作频率为 最高工作频率为10MHz 最高工作频率为
• • • • • • • • MOV DX,706H MOV AL,01110100B OUT DX,AL MOV DX 702H DX,702H MOV AX,4000 OUT DX,AL MOV AL,AH OUT DX,AL ;控制端口地址 ;CTC1控制字 ;CTC1口地址 CTC1 ;CTC1初值 ;先写低字节 ;取高字节 ;后写高字节
方式1 单稳负脉冲信号发生器
CW=12H WR CLБайду номын сангаас GATE OUT
3 2 1 0 FF
LSB=3
方式2 速率信号发生器
CW=14H WR CLK GATE OUT 3 2 1 3 2 1 3 2 1 LSB=3
方式3方波信号发生器—偶数初值
CW=16H LSB=4 WR CLK GATE OUT
;CTC2
• • • • • • • MOV DX,706H MOV AL,10110010B OUT DX,AL MOV DX,704H MOV AL,0 OUT DX,AL OUT DX,AL ;控制端口地址 ;CTC2控制字 ;CTC2口地址 ;CTC2初值 ;先写低字节 ;后写高字节
8253应用
8253/8254内部结构及引脚信号
二数数 1-8 D7-D0 22 23 19 20 21 Vcc 24 GND 12
二数数数 缓缓计
内 部 二 数 数 数
二二计 0号
9 11 10
CLK0 GATE0 OUT0
RD WR A1 A0 CS
读/写 逻逻
二二计 1号
15 14 CLK1 13 GATE1 OUT1 18 16 1 7
4 2 4 2 4 2 4 2 4 2
方式3 奇数初值
CW=16H WR CLK GATE OUT
5 4 2 4 2 5 4 2 4 2 5
LSB=5
方式4 软件触发的选通信号发生器
CW=18H WR CLK GATE OUT
3 2 1 0 FF FE
LSB=3
方式5 硬件触发的选通信号发生器
8253和8254的工作方式
方式0 —— 中断信号发生器 方式1 —— 单稳负脉冲信号发生器 方式2 —— 速率信号发生器 方式3 —— 方波信号发生器 方式4 —— 软件触发的选通信号发生器 方式5 —— 硬件触发的选通信号发生器
方式0 中断信号发生器
CW=10H WR CLK GATE OUT 4 3 2 1 0 FF FE LSB=4
控二写 寄计计
二二计 2号
CLK2 GATE2 OUT2
8253端口及其操作
CS 0 0 0 0 0 0 0 0 1 0 RD 0 0 0 0 1 1 1 1 × 1 WR A1 A0 操作 1 0 0 读计数器 0 1 0 1 读计数器 1 1 1 0 读计数器 2 1 1 1 无操作 0 0 0 写常数到计数器 0 0 0 1 写常数到计数器 1 0 1 0 写常数到计数器 2 0 1 1 写方式控制字 × × × 三态(禁止) 1 × × 无操作
1.19MHz CLK0 CLK1 CLK2 D7-D0 RD WR CS A1 A0 8253 +5V GATE0 GATE1 GATE2 8255 PB1 OUT0 OUT1 OUT2 1K方低 IRQ0 (8259的IR0) 55ms方低 去DMA 15us 连连低 驱驱 低低低低
D7-D0 IOR IOW 40H-43H A1 A0 8255 PB0
• • • • • • • • • • MOV AL,10110110B ;CTC2控制字 OUT 43H,AL ;写入控制口 MOV AX,1190 ;CTC2初值 OUT 42H,AL ;先写低字节 MOV AL, AH ;取高字节 OUT 42H,AL ;后写高字节 IN AL, 61H ;读8255A的B口的值 MOV AH, AL ;暂存AH中 OR AL, 00000011B OUT 61H, AL ;输出使扬声器发声
操操操操 方方通通 0 0=二二计计计 0 0 0=方方0 0 1=读/写低写写 0 0 1=方方1 1 0=读/写写写写 x 1 0=方方2 1 1=读/写16位(写) x 1 1=方方3 先低写写 1 0 0=方方4 后写写写 1 0 1=方方5
8253/8254计数范围
• 二进制计数 : 0000H~ FFFFH, 即 0~ , 65535 • BCD码计数:0000~9999 码计数: 码计数 ~ • 最 小 和 最 大 计 数 值 : 最大计数为0000, 不是 , 不是FFFFH或 9999。 或 。 最大计数为 除方式3外 最小值都为1。 除方式 外,最小值都为 。
8253/8254初始值计算
• 假设已知 假设已知8253相应通道的 相应通道的CLK端接入的时钟 相应通道的 端接入的时钟 频率为f 周期记为T 频率为 CLK , 周期记为 CLK=1/fCLK , 要求产 生的周期性信号频率为F(周期为 周期为T)或定时时 生的周期性信号频率为 周期为 或定时时 间为T(F=1/T),则所需计数初值 为: 间为 ,则所需计数初值n为
应用程序片段
• • • • • • • ;CTC0初值=55*1.19=65450 MOV AL,00110110B ;CTC0控制字 OUT 43H,AL ;写入控制端口 MOV AX,65450 ;CTC0初值 OUT 40H,AL ;先写低字节 MOV AL, AH OUT 40H,AL ;后写高字节
示例程序片段
• • • • • • • ;CTC0 MOV DX,706H ;控制端口地址 MOV AL,00010110B ;CTC0控制字 AL 00010110B CTC0 OUT DX,AL MOV DX,700H ;CTC0口地址 MOV AL,80 ;CTC0初值 OUT DX,AL
;CTC1
CW=1AH LSB=3 WR CLK GATE OUT
3 2 1 0 FF
8253/8254的编程方法
• 8253/8254控制字 8253/8254控制字
D7 D6 D5 D4 D3 M2 D2 M1 D1 M0 D0 BCD 0=二二二二二 1=BCD码二二 SC1 SC2 RL1 RL0 低通通通 0 0=二二计计0 0 1=二二计计1 1 0=二二计计2 1 1=8253非非 8254读读读读
n=
T t CLK
=
f CLK F
= T × f CLK
• 在计算时注意时间和频率的单位一致性。 在计算时注意时间和频率的单位一致性。
8253/8254编程示例
• 已知 已知8254各通道时钟接 各通道时钟接8MHz信号,端口地址 信号, 各通道时钟接 信号 为700H、702H、704H和706H,要求在 、 、 和 ,要求在OUT0 产生周期为10us的 方波 , OUT1产生 产生2KHz的 产生周期为 的 方波, 产生 的 连续脉冲信号, 产生一个最大的负脉冲。 连续脉冲信号,OUT3产生一个最大的负脉冲。 产生一个最大的负脉冲 • 分析: 分析: OUT0:初值 初值=10us*8MHz=80 方式3 初值 方式 OUT1:初值 初值=8MHz/2KHz=4000 方式 方式2 初值 OUT2:初值 初值=0 方式1 初值 方式
82538254的内部结构及引脚信号82538254的内部结构及引脚信号82538254的工作方式82538254的编程8253最高工作频率26mhz8254最高工作频率为10mhz8254最高工作频率为10mhz82538254内部结构及引脚信号82538254内部结构及引脚信号数据总线缓冲器计数器d7d0数据线clk0gate0out0181110缓冲器rdout0clk12215逻辑计数器rdwra1a0clk1gate1out12319201413控制字计数器a0csclk2gate2211816控制字寄存器计数器gate2out2vccgnd24128253端口及其操作8253端口及其操作csrdwra1a0操作无操作8253和8254的工作方式8253和8254的工作方式方式0中断信号发生器方式1单稳负脉冲信号发生器方式2速率信号发生器方式2速率信号发生器方式3方波信号发生器方式3方波信号发生器方式4软件触发的选通信号发生器方式5硬件触发的选通信号发生器方式0中断信号发生器cw10hlsb4wrclkgateoutfffeoutfffe方式1单稳负脉冲信号发生器方式1单稳负脉冲信号发生器wrcw12hlsb3wrclkgateoutoutff方式2速率信号发生器wrcw14hlsb3wrclkgateout方式3方波信号发生器偶数初值wrcw16hlsb4wrclkgateoutout方式3奇数初值cw16hlsb5wrclkgategateout方式4软件触发的选通信号发生器方式4软件触发的选通信号发生器wrcw18hlsb3wrclkgateoutoutfffe方式5硬件触发的选通信号发生器cw1ahlsb3wrclkgateoutff的编程方法82538254的编程方法d7d6d5d4d3d2d1d082538254控制字0二进制计数通道选择sc1sc2rl1rl0m2m1m0bcdd7d6d5d4d3d2d1d00二进制计数1bcd码计数方式选择1方式1操作类型1读写低字节通道选择0方式4方式先低字节后高字节18253非法8254读回命令1方式5后高字节82538254计数范围二进制计数
;应用程序CTC1
• • • • • ;初值=15*1.19=17.85 取 18=12H MOV AL,01010100B ;CTC1控制字 OUT 43H,AL ;写入控制端口 MOV AL,12H ;CTC1初值 OUT 41H,AL ;写初值至CTC1
;应用程序CTC2
• ;CTC2初值=1.19M/1K=1190