初始化程序流程 写入顺序 写控制字 可按计数器分别写 入控制字和初值 写计数值低8位 也可先写所有计数 非必须 器控制字,再写入 它们的初值 写计数值高8位
26 初始化程序流程 写控制字 写计数值低8位 写计数值高8位 * 非必须 写入顺序: 可按计数器分别写 入控制字和初值。 也可先写所有计数 器控制字,再写入 它们的初值
8253应用举例 采用8253作定时计数器,其接口地址为 0120H~0123H。 输入8253的时钟频率为2MHz。 计数器0:每10ms输出1个cLK脉冲宽的负脉冲 计数器1:产生10KHz的连续方波信号 计数器2:启动计数5ms后OUT输出高电平。 画线路连接图,并编写初始化程序
27 8253应用举例 ⚫ 采用8253作定时/计数器,其接口地址为 0120H~0123H。 ⚫ 输入8253的时钟频率为2MHz。 ⚫ 计数器0: 每10ms输出1个CLK脉冲宽的负脉冲 计数器1: 产生10KHz的连续方波信号 计数器2: 启动计数5ms后OUT输出高电平。 ⚫ 画线路连接图,并编写初始化程序
8253应用举例(续) ●确定计数初值: cNT0:10ms/05us=20000 CNT1: 2MHZ/10KHZE 200 CNT2: 5ms/0, 5us 10000 ●确定控制字: cNT0:方式2,16位计数值00110100 cNT1:方式3,低8位计数值 0101011 19x cNT2:方式0,16位计数值101000
28 8253应用举例(续) ⚫ 确定计数初值: CNT0: 10ms/0.5us = 20000 CNT1: 2MHz/10KHz = 200 CNT2: 5ms/0.5us = 10000 ⚫ 确定控制字: CNT0:方式2,16位计数值 00 11 010 0 CNT1:方式3,低8位计数值 01 01 011 0 CNT2:方式0, 16位计数值 10 11 000 0
8253应用举例(续) 线路连接图: +5V 8253 GATEO DB DO-D7 GATE1 2MHZ GATE2 WR CLKO IOR RD CLKI A1 Al CLK2 AO OUTO OUTI 译码器 OUT2
29 8253应用举例(续) CLK0 GATE0 OUT1 D0~D7 WR RD A1 A0 CS DB IOW IOR A1 A0 译码器 8253 CLK2 GATE1 GATE2 +5V CLK1 2MHz OUT0 OUT2 ? 线路连接图:
8253应用举例初始化程序 CNTO: MOV ALAH MOV DX,0123H: OUT DX, AL MOV AL 34H CNT1 OUT DX. AL MOV DX, 0120H: CNT2 MOV AX 20000 ■■■■■ OUT DX AL 30
30 8253应用举例 初始化程序 CNT0: MOV DX, 0123H MOV AL, 34H OUT DX, AL MOV DX, 0120H MOV AX, 20000 OUT DX, AL MOV AL, AH OUT DX, AL CNT1: …… CNT2: ……