8.第八章 可编程计数器.定时器及其应用_第1页
8.第八章 可编程计数器.定时器及其应用_第2页
8.第八章 可编程计数器.定时器及其应用_第3页
8.第八章 可编程计数器.定时器及其应用_第4页
8.第八章 可编程计数器.定时器及其应用_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章可编程计数器 定时器8253及其应用 内容提要概述8 18253的工作原理8 28253应用举例8 38254的读回功能 教学要求 理解定时与计数的基本概念及其意义 熟悉定时 计数器芯片Intel8253的性能 了解内 外部结构及其与CPU的连接 概述 每个微处理器厂家都研制并提供与本厂的微处理器配合工作的定时器 计数器接口芯片 微机系统在实时控制及数据采集中 都可以用这类器件完成 它可以作为计数器对外部事件的记数 也可以作为实时时钟对各种设备实现定时控制 早期的有Z 80CTC Motorola的6840和6520 Intel公司80系列的8253等 一 定时与计数1 定时定义 提供时间基准分类 内部定时 外部定时2 计数与定时在本质上是一致的 定时的触发信号要求等周期 而计数时其触发信号则不要求等周期 二 定时方法1 软件定时通过软件指令周期方法定时 如执行循环程序 缺点是增加CPU负担 通用性差 一般用于短延时 2 不可编程硬件定时采用中小规模IC构成 不增加CPU负担 成本低 但定时值不可改变 3 可编程硬件定时采用可编程计数器完成 软件可改变计数值 这种芯片通常被称为可编程定时器 计数器 三 微机定时方法1 软件定时 延迟子程序2 硬件定时 用计数器 定时器8253四 8253的用处1 在多任务的分时系统中用来作为中断信号实现程序的切换 2 可以往I O设备输出精确的定时信号 3 作为一个可编程的波特率发生器 4 实现时间延时 目录 8 18253的工作原理 一 8253芯片内部结构和引脚信号 图8 18253的内部结构 1 数据总线缓冲器 1 初始化编程时往控制寄存器设置控制字 2 往计数器设置计数初值 3 从计数器读取计数值 2 读 写逻辑电路 cs 片选信号 由地址总线译码电路产生 只有CS为低电平时 cpu才能对8253进行读写操作 A1A0 端口选择00 通道0 0号计数器 01 通道1 1号计数器 10 通道2 2号计数器 11 控制字寄存器 3 控制寄存器 8253的控制寄存器是个只写寄存器 对8253编程时 用输出命令向它写入控制字 来选定计数器通道 规定各计数器的工作方式 图8 18253的内部结构 4 通道0 通道1 通道28253内部有3个计数器 计数器0 1 2 每个计数器有三个引脚和外部联系 CLK 计数脉冲输入 计数器对该引脚出现信号进行计数 最高计数速率为2 0MHZ Gate 门控输入 用于控制计数器是否对CLK计数 OUT 输出信号端 计数器0 CLK0 计数器0的时钟输入 GATE0 计数器0的门脉冲控制输入 OUT0 计数器0的输出 计数器1 CLK1 计数器1的时钟输入 GATE1 计数器1的门脉冲控制输入 OUT1 计数器1的输出 计数器2 CLK2 计数器2的时钟输入 GATE2 计数器2的门脉冲控制OUT2 计数器2的输出 4 每个计数器包含一个16位的初始寄存器CR 一个16位的计数执行部件CE和一个16位的输出锁存器OL 计数执行部件CE 从初值寄存器中获得计数初值 在门控gate作用下 每输入一个脉冲 便进行减1计数 通道在工作时 输出锁存器OL的值随计数执行部件CE而变化 即OL与CE的内容是一致的 当收到锁存命令后 输出锁存器OL的值不再随计数执行部件CE而变化 即计数器的当前值被保存起来 直到CPU从相应的通道口读出为止 输出锁存器OL的值被读出后 OL的锁存状态自动被解除 输出锁存器OL的值又随计数执行部件CE而变化 表8 18253输入信号组合功能表 定时系数 计数初值 n 定时时间t 时钟频率fc 定时时间t 时钟周期Tc 时钟频率fc 输出脉冲频率 输出脉冲周期 时钟周期 图8 28253的引脚 8253 8254 5 8253的引脚 8位数据总线 计数器0脉冲输入端 计数器0输出端 计数器0门控脉冲输入端 计数器1 计数器2 端口地址 6 控制寄存器8253控制寄存器的格式 SC1SC0RW1RW0M2M1M0BCD 1 计数值为BCD码格式 初值范围0 9999 最大值0 104 0 计数值为二进制格式 初值范围 0 FFFFH 最大值0 65536 M2M1M0模式选择000模式0001模式1 10模式2 11模式3100模式4101模式5 00 对计数器当前值进行锁存 供CPU读取01 只读 写低8位字节10 只读 写高8位字节11 先读 写低8位字节 再读 写高8位字节 选定计数通道 从而规定通道的工作方式 00 选计数器001 选计数器110 选计数器211 无意义 图8 38253控制字格式 D7D6D5D4D3D2D1D0 二 初始化编程步骤和门控信号的功能 图8 48253的编程结构 00010100 11 1 写入控制字 选定计数通道 工作方式和计数格式 执行指令MOVAL 14H A1A0 11H OUT73H AL 通道0 只读写计数器低字节 模式2 二进制格式 A15 A1A0 8088总线 00 0064 2 写入计数初值 若规定只写低8位 则写入初值寄存器的低8位 高8位自动置 0 若规定只写高8位 则写入初值寄存器的高8位 低8位自动置 0 若是16位数 则分2次写入 先写低8位 后写高8位 执行指令 MOVAL 64H 64H是计数初值OUT70H AL A1A0 00H 64H送入计数器0的初值寄存器CR的低8位 初值进入初值寄存器CR后 再经过1个CLK周期 初值进入计数执行部件CE 开始进入减 1 计数 0064 14 1 初始化编程步骤 1 写入控制字 2 按控制字的要求写入计数初值 举例 设三个计数器的CR CE OL端地址为70H 71H 72H 控制寄存器端口地址为73H 计数器0 工作在模式2 计数初值和输出锁存器仅使用低8位 初值为100 计数值为二进制格式 MOVAL 00010100B 控制字14HOUT73H ALMOVAL 100 计数初值OUT70H AL 计数器1 工作在模式1 CR和OL使用16位 初值为1234 先写入低8位 再写高8位 计数值为BCD MOVAL 01110011B 控制字73HOUT73H ALMOVAX 1234H BCD1234OUT71H AL 计数初值低8位MOVAL AHOUT71H AL 计数初值高8位 计数器0 工作在模式0 读出命令 MOVAL 00110000B 初始化 先读低8位 再读高8位OUT73H ALMOVAL 00000000B 锁存OUT73H ALINAL 70H 当前计数值低8位MOVBL ALINAL 70H 当前计数值高8位MOVBH AL 读取后 OL的值又 随计数执行部件CE变化 结果在BX中 2 门控信号GATE的控制功能 1 GATE为高电平 允许8253计数 2 GATE为上升沿 使8253从初值开始计数 循环计数 3 GATE为低电平或下降沿 禁止计数 门控信号GATE在各种工作方式中的控制功能 如表8 2所示 停止计数 4 用门脉冲来重新启动计数 5 单一计数 6 循环计数 表8 2门控信号GATE的控制功能 三 8253的工作方式 1 方式0 计数结束产生中断 InterruponTerminalCount 一次定时或计数 重写初值 启动新一轮的计数 2 方式1 可编程的单脉冲 单稳 触发器 ProgrammableOne short GATE边沿触发 启动新一轮计数 3 方式2 分频器 比率波发生器 RateGenerator 具有计数初值重装能力 4 方式3 方波发生器 SquareWaveGenerator 具有计数初值重装能力 5 方式4 软件触发选通 SoftwareTriggeredStrobe 一次定时 重写初值 启动新一轮的计数 6 方式5 硬件触发选通 HardwareTriggeredStrobe GATE边沿触发新一轮计数 图8 5方式0 计数结束产生中断 开始减 1 计数 设GATE 1 图8 6方式1时序 单脉冲触发器 高 图8 7方式2时序 分频器 3 周期 N CLK OUT周期 n个CLK周期 图8 8 1方式3时序 方波发生器 写入控制字 cw 后 OUT变为高电平 写入初值 n 4 后 再经过一个时钟周期 在CLK的下降沿初值进入计数执行部件CE 开始计数 GATE 1 允许对CLK计数 GATE 0 禁止计数 GATE下降沿迫使OUT变为高电平 停止计数 GATE上升沿时 重新从初值n开始计数 如果n为偶数 减 1 计数到n 2 OUT变低 继续计数 当计数值 1 要回 0 而未回 0 时 再次重新装入计数初值 同时OUT变高 开始新一轮计数 如果n为奇数 n 5 减 1 计数到 n 1 2 OUT变低 继续计数 当计数值 1 要回 0 而未回 0 时 OUT变高 同时再次重新装入计数初值 开始新一轮计数 图8 8 2方式3时序 方波发生器 补充 图8 9方式4时序 软件触发的选通信号发生器 图8 10方式5时序 硬件触发的选通信号发生器 返回目录 8253初始化方法 控制字 计数初值 例1 已知 CLK的频率fc 1MHZ 最大定时时间tmax 解 计数初值 n fc t 最大计数初值nmax 65536一个定时器最大定时时间 tmax nmax fc 65536 106 0 065536s 8 28253应用举例 例2 设定时器0 定时器1工作于方式2 外部提供一个时钟 频率f 2MHZ 要求定时器1每5ms产生一个脉冲 定时器0每5s产生一个脉冲 1 一个定时器的最大定时时间 65536 2 106 0 032768s 32 768ms2 将定时器1的CLK1接2MHZ时钟 计数初值n1 分频器周期t1 n1 CLK1周期 n1 t1 CLK1周期3 将定时器1的OUT1端接到定时器0的CLK0端 定时器0的计数初值 40H 41H 42H 43H是8253 5在PC XT机中的端口地址 5ms输出一个脉冲 返回目录 例3 计数器2输出600HZ方波 送扬声器 工作于模式3 8253 8255在PC机中的应用 图8 10扬声器音调控制 发声子程序 SSPPROCNEAR 8253初始化 MOVAL 10110110B 计数器2 模式3 初值16位 二进制OUT43H ALMOVAX 1983 计数初值 1 19MHZ 600HZ 1983OUT42H AL 送计数初值低位字节MOVAL AHOUT42H AL次 送计数初值高位字节 8255控制程序 INAL 61H 读8255的PB口原输出值MOVAH AL 保留到AHORAL 03H 使PB0 PB1均为1OUT61H AL 打开GATE2门 输出方波到扬声器SUBCX CX CX为循环次数 最大为216L LOOPL 延时DECBL BL为子程序入口条件JNZL BL 6 发长声 3S BL 1发短声 0 5S MOVAL AH 取回8255的PB口原输出值OUT61H AL 恢复8255PB口 停止发声RETSSPENDP 例4 定时 计数器8253与8086 8088CPU相连构成完整的定时 计数或脉冲发生器系统 要求能完成的功能是 1 利用通道0完成对外部事件计数功能 计满100次向CPU发中断请求 2 利用通道1产生频率为1KHz的方波 3 利用通道2作标准时钟 定时1秒 输出接IR2 8 11 1 8253的数据线 D7 D0 与CPU的高8位数据线 D15 D8 相连 所以8253的端口地址必须是奇地址 A0 1 2 通道0定义为工作方式0 完成计数 通道0的计数初值应为 n0 100控制字 00010000 10H 3 将通道1定义为工作方式3 控制字 01110110 76H 从CLK1输入2 5MHz的时钟脉冲 OUT1输出频率为1KHz的方波 而输出方波的周期1ms 通道1的计数初值 n1 f1 t1 2 5 106 1 10 3 2500 09C4H 4 通道2应定义为方式0 控制字 10110001 0B1H 每秒钟利用OUT2向CPU发出一次中断请求 由于输入时钟频率为1KHz 计数初值应为 n2 f2 t2 1000 1 1000 8253的控制端口地址 66H通道0的端口地址 60H通道1的端口地址 62H通道2的端口地址 64H8253 0EQU60H8253 1EQU62H8253 2EQU64H8253 CEQU66H 8253 A1A0A7A6A5A4A3A2A1A001100000001001000110 STT MOVDX 8253 C 8253控制口地址MOVAL 10HOUTDX AL 通道0工作在方式0MOVDX 8253 0 8253通道0地址MOVAL 64HOUTDX AL 给通道0送计数值MOVDX 8253 CMOVAL 76HOUTDX AL 通道1工作在方式3MOVDX 8253 1 8253通道1地址MOVAX 09C4HOUTDX AL 给通道1送计数初值低8位MOVAL AHOUTDX A 给通道1送计数值高位MOVDX 8253 CMOVAL 0B1HOUTDX AL 通道2工作在方式0 MOVDX 8253 2 通道2地址MOVAX 1000H 1000的BCD数1000HOUTDX AL 给通道2送计数初值的低8位MOVAL AHOUTDX AL 给通道2送计数值的高8位MOVDX 825

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论