现代微机原理与接口技术 第6章定时与计数技术 61概述 61.1定时与计数 1定时 定义:提供的时间基准。 分类:内部定时、外部定时。 2计数 定时与计数本质上是一致的。 计数的信号随机,定时的信号具有周期性。 3应用 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 1 第6章 定时与计数技术 6.1 概 述 6.1.1 定时与计数 1.定时 定义:提供的时间基准。 分类:内部定时、外部定时。 2.计数 定时与计数本质上是一致的。 计数的信号随机,定时的信号具有周期性。 3.应用
现代微机原理与接口技术 612定时方法 1软件定时 通过软件指令周期方法定时,如执行循环程序。 增加CPU负担,通用性差,一般用于短延时。 2不可编程硬件定时 采用中小规模IC构成。 不增加CPU负担,成本低,定时值不可改变。 3可编程硬件定时 采用可编程计数器完成,软件可改变计数值 可编程定时计数器:实质上定时和计数本质上都是脉 冲计数器,定时计的是内部基准时钟源产生的脉冲, 计数是计外部脉冲 te science Engineering 2 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 2 6.1.2 定时方法 1.软件定时 通过软件指令周期方法定时,如执行循环程序。 增加CPU负担,通用性差,一般用于短延时。 2.不可编程硬件定时 采用中小规模IC构成。 不增加CPU负担,成本低,定时值不可改变。 3.可编程硬件定时 采用可编程计数器完成,软件可改变计数值。 可编程定时/计数器:实质上定时和计数本质上都是脉 冲计数器,定时计的是内部基准时钟源产生的脉冲, 计数是计外部脉冲
现代微机原理与接口技术 613定时/计数器基本原理 1内部逻辑 控制寄存器 CPU接口 CLK 计数初值寄存器 译码、操作 GATE 内部总线 控制遇辑 外设接口: 计数器〔工作单元〕 时钟信号 K输出锁存器 控制、输出 状态锁存器 状态寄存器 内部逻辑: REG 2.工作过程 设初值、控制、输出 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 3 6.1.3 定时/计数器基本原理 1.内部逻辑 CPU接口: 译码、操作 外设接口: 时钟信号、 控制、输出 内部逻辑: REG 2.工作过程 设初值、控制、输出
现代微机原理与接口技术 6.2 Intel 8254 8253-825482801BA。 62.18254-2基本功能 3个独立的16位定时计数器(T/C); 每个TC功能: 可按二、十进制(BCD)计数; 有6种不同的工作方式; 最高频率10MHz;(82801BA为143188MH 有读回状态功能。(8253没有) Department of Computer Science Engineering 4 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 4 6.2 Intel 8254 8253→8254→82801BA。 6.2.1 8254-2基本功能 3个独立的16位定时/计数器(T/C); 每个T/C功能: 可按二、十进制(BCD)计数; 有6种不同的工作方式; 最高频率10MHz;(82801BA为14.31818MHz) 有读回状态功能。(8253没有)
现代微机原理与接口技术 62282542结构与引脚 1.内部逻辑 数据总线 计数器 CLKO 缓冲器 GATED OUTO D了-D0 读泻 计数器 CLK1 WR A1 控制逻辑 内部总线 1 GATE1 oUT1 控制字 计数器 CLK2 寄存器 GATE2 ′OUT2 总线缓冲器8位R/w]:写工作方式、计数初值、当前 计数值 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 5 6.2.2 8254-2结构与引脚 1.内部逻辑 总线缓冲器[8位R/W]:写工作方式、计数初值、当前 计数值
2计数器内部逻辑 现代微机原理与接口技术 锁存后读出当前值LSB MSB CR:16位 16位当前计数值锁存器OL 写入「两次、清零 CE:16位 写入、计数、输出 16位减1计数器CE OUT CLK (减1至0时) OL:16位 GATE 先锁存再读出 16位计数初值寄存器CR 状态REG:8位 装入/读出初值 LSB MSB 先锁存再读出 注意:GATE信号的作用与应用,重写CR的效果。 计数初值:N=fLK;/foum,在不同工作方式及定时计 数时的应用不同。 Department of Computer Science Engineering 「计算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 6 2.计数器内部逻辑 16位当前计数值锁存器OL 16位减1计数器CE 16位计数初值寄存器CR OUT (减1至0时) 锁存后读出当前值 LSB MSB 装入/读出初值 LSB MSB & CLK GATE CR:16位 写入[两次]、清零 CE:16位 写入、计数、输出 OL:16位 先锁存再读出 状态REG:8位 先锁存再读出 注意:GATE信号的作用与应用,重写CR的效果。 计数初值:N=fCLKi/fOUTi,在不同工作方式及定时/计 数时的应用不同
3外部引脚 现代微机原理与接口技术 DT 24 十5 D6 R D5 D4 D3 8254 鸟1 D2 鸟0 D1 CLKI DO 卡OUT2 CLKO 〔鸟TE2 CLKI 〔TE 〔AE1 GND ¤UT1 (1)译码:CS与A1A: (2)读/写:RD、WR Department of Computer Science Engineering 7 「计算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 7 3.外部引脚 (1)译码:CS与A1A0: (2)读/写:RD、WR;
现代微机原理与接口技术 4CPU操作功能及命令 I/O端口地址:8254提供四个端口(使用AA0); 命令:初始化一设置工作方式、设置计数器初值; 操作一重写计数器初值、取状态命令 状态:当前计数值、工作方式及当前状态。 I/O端口操作冲突时解决方法: 写工作方式与写读取状态命令采用特征位方法; 读取当前计数值或读取状态采取时序方法。 8254命令关系表: Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 8 4.CPU操作功能及命令 I/O端口地址:8254提供四个端口(使用A1A0); 命令:初始化—设置工作方式、设置计数器初值; 操 作—重写计数器初值、取状态命令。 状态:当前计数值、工作方式及当前状态。 I/O端口操作冲突时解决方法: 写工作方式与写读取状态命令采用特征位方法; 读取当前计数值或读取状态采取时序方法。 8254命令关系表:
操作 特征位 时序 CS RD WRAL AO DiD 01000计数初值写入0#计数器 01001计数初值写入1#计数器 010 0计数初值写入2#计数器 0 1向控制字REG写控制字00~10 无无无无无 无 写“读计数值状态”命11 令 00100读0#计数器当前计数值 无前一命令A1A0=1时, 读0#计数器状态 无7D6:11且D为0或DnD6 为非11且D5D4为00时, 00101读1#计数器当前计数值无读取的是当前计数值 读1#计数器状态 无D7D为11且D4为0读取 00110读2计数器当前计数值无的是状态。 读2#计数器状态 无 00111无操作 禁止使用 01 无操作 计算机科学与工程系 http://qsyangyeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 9 操 作 特征位 时序 D7D6 0 1 0 0 0 计数初值写入0#计数器 ** 无 0 1 0 0 1 计数初值写入1#计数器 ** 无 0 1 0 1 0 计数初值写入2#计数器 ** 无 0 1 0 1 1 向控制字REG写控制字 00~10 无 写“读计数值/状态”命 令 11 无 0 0 1 0 0 读0#计数器当前计数值 无 前一命令A1A0=11时, D7D6为11且D5为0或D7D6 为非11且D5D4为00时, 读取的是当前计数值; D7D6为11且D4为0读取 的是状态。 读0#计数器状态 无 0 0 1 0 1 读1#计数器当前计数值 无 读1#计数器状态 无 0 0 1 1 0 读2#计数器当前计数值 无 读2#计数器状态 无 0 0 1 1 1 无操作 1 * * * * 禁止使用 0 1 1 * * 无操作 CS RD WR A1 A0
62.38254-2命令及编程 现代微机原理与接口技术 1工作方式控制字(A1A0=1 D? D6 D5 D4 D3 D2 D1 DO SC1SC0RW1R硎M2MMU「BCD 计数器选择读泻格式选择工作方式选择计数码制选择 特征位:D7D6=00~10、D5D4=01~11; D7D6选择计数器:00-T/C0;01-T/C1;10-T/C2 D5D4选择读泻写方式:01一只写低字节;10—只写高 字节;11一先写低字节再写高字节(16位) D3D2D选择工作方式:000~101六种工作方式, X10—方式2,X11方式3 例: MOV AL,01110100B;T/C1,先低后高字节 OUT43H,AL;方式2,二进制方式 Department of Computer Science Engineering 10 「计算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 10 6.2.3 8254-2命令及编程 1.工作方式控制字(A1A0=11) 特征位:D7D6=00~10、D5D4=01~11; D7D6选择计数器:00-T/C0;01-T/C1;10-T/C2 D5D4选择读/写方式:01-只写低字节;10-只写高 字节;11-先写低字节再写高字节(16位) D3D2D1选择工作方式:000~101六种工作方式, X10-方式2,X11-方式3 例:MOV AL,01110100B ;T/C1,先低后高字节 OUT 43H,AL ;方式2,二进制方式