定时计数技术.pptVIP

  • 0
  • 0
  • 约7.88千字
  • 约 55页
  • 2022-09-26 发布于广东
  • 举报
5.4 8253 编程与应用 * AB 控制寄存器 高8位 低8位 CR 高8位 低8位 CE OL 高8位 低8位 1 2 3 地址 译码 CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2 Vcc GND DB RD WR READY M/IO A0 A1 CS CR: Count Register CE: Count Executor OL: Output Latch Register 第30页,共55页,编辑于2022年,星期三 方式字的作用 指定使用哪个计数器。 指定某个计数器的工作方式。 指定计数初值的长度、装入顺序以及计数值的码制。 指定是向计数器写入初值,还是锁存其当前计数值。 * (1) 方式字 第31页,共55页,编辑于2022年,星期三 8253 方式命令字的格式 * D7 D6 D5 D4 D3 D2 D1 D0 00: 计数器0 01: 计数器1 10: 计数器2 11: 8253不用 计数器 00: 锁存当前值 01: 只读写初值低8位, 高8位置0 10: 只读写高8位, 低8位置0 11: 先读写低8位, 然后高8位 读写格式 000: 方式0 001: 方式1 x10: 方式2 x11: 方式3 100: 方式4 101: 方式5 工作方式 0: 二进制编码 1: BCD编码 数制 第32页,共55页,编辑于2022年,星期三 计数初值的计算 8253/8254是一种减1计数器,计数初值决定了定时的长短与计数的多少。 已知:定时时间Tout = 计数时钟周期TCLK ×计数初值,故 举例 已知8253的计数脉冲频率为1MHz,若要定时1ms时间,则计数初值 n = 1M/(1/10-3) = 1000。 * (2) 计数初值 第33页,共55页,编辑于2022年,星期三 写方式字 将方式字送入控制端口,其对应的 A1A0 = 11。 写计数初值 将计数初值写入相应的计数器端口。 计数器0的初值写入 A1A0 = 00对应的端口。 计数器1的初值写入 A1A0 = 01对应的端口。 计数器2的初值写入 A1A0 = 10对应的端口。 * (3) 8253 初始化编程与应用 第34页,共55页,编辑于2022年,星期三 * ━ CS ━ RD ━ WR A1 A0 操 作 地址 0 1 0 0 0 向计数器0写入“计数初值” 40H 0 1 0 0 1 向计数器1写入“计数初值” 41H 0 1 0 1 0 向计数器2写入“计数初值” 42H 0 1 0 1 1 向控制寄存器写入“方式控制字” 43H 0 0 1 0 0 从计数器0读出“当前计数值” 40H 0 0 1 0 1 从计数器1读出“当前计数值” 41H 0 0 1 1 0 从计数器2读出“当前计数值” 42H 0 0 1 1 1 无操作 (三态) 1 × × × × 禁止 (三态) 0 1 1 × × 无操作 (三态) 第35页,共55页,编辑于2022年,星期三 【5-3】设计数器的端口地址为40H~43H。已知:选择2号计数器,工作在方式3,计数初始值为533H,采用二进制计数。请写出初始化程序段。 * MOV AL ;计数器2的初始化命令字 OUT 43H, AL ;写入命令寄存器 MOV AX,533H ;计数初值 OUT 42H,AL ;先送低字节到计数器2 MOV AL,AH ;取高字节送入AL OUT 42H,AL ;后送高字节到计数器2 第36页,共55页,编辑于2022年,星期三 【5-4】设8253计数器的端口地址为40H~43H。请编写程序,实现读出并检查1号计数器的当前值是否为全1(假定计数值只有低8位)。 注:要遵循“先锁存、后读取当前值”的原则。 * L: MOV AL ;计数器1的锁存命令 OUT 43H,AL ;写入命令寄存器 IN AL,41H ;读计数器1的当前计数值 CMP AL,0FFH ;比较 JNE L ;不是全“1”,再读 HLT

文档评论(0)

1亿VIP精品文档

相关文档