第九章-定时与计数技术8253.ppt_第1页
第九章-定时与计数技术8253.ppt_第2页
第九章-定时与计数技术8253.ppt_第3页
第九章-定时与计数技术8253.ppt_第4页
第九章-定时与计数技术8253.ppt_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

1 9 1概述 定时 计数技术在微机系统中的应用分时系统的程序切换向外设定时性地输出控制信号统计外部事件的发生次数定时分为内部定时和外部定时定时的本质 计数 2 定时器与计数器的区别 定时器以时钟信号作为计数脉冲的计数器称为定时器 主要用以产生不同标准的时钟信号或不同频率的连续信号 计数器以外部事件产生的脉冲作为计数脉冲的计数器称为计数器 主要用以产生对外部事件发生的次数进行计量 3 定时与计数的实现方法软件法用延时程序实现 能精确定时 但影响CPU的效率 硬件法设计一套电路用以实现定时与计数 特点是需要花费一定硬设备 且当电路制成之后 定时值及计数范围不能改变 软 硬件结合法设计一种专门的具有可编程特性的定时 计数芯片 这些芯片定时 计数到时能产生中断请求信号 因而定时期间不影响CPU的正常工作 4 9 2可编程定时器 计数器8253 1 8253的主要特点3个独立的16位计数器通道6种工作方式 可程序设置或改变可以按二进制或二 十进制 BCD码 计数计数速率可达2MHz所有输入 输出与TTL兼容 5 2 8253的内部结构及外部引脚 计数脉冲输入引脚 在每一个CLK的下降沿 减1计数器 1 门控信号输入引脚 用来控制计数器工作 其作用与工作方式有关 输出信号引脚 输出信号的波形与工作方式有关 60H 61H 62H 63H 6 3 8253编程 芯片初始化编程读当前计数值读装入的计数初值 7 初始化编程步骤 向控制端口写入控制字 向计数器端口写入计数初值8位计数初值 只写低8位 则高8位自动置016位计数初值 低8位为全0 只写高8位 则低8位自动置0 低8位不为全0 先写低8位 后写高8位 8 8253的控制字 A1A0 11 0 二进制1 BCD 000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式5 00 锁存01 低8位10 高8位11 先低8位 后高8位 00 计数器001 计数器110 计数器211 非法 数制 工作方式 读 写格式 计数器选择 D0 D1 D2 D3 D4 D5 D6 D7 9 例 计数器0 方式0 计数值为0FFH 二进制计数 计数器1 方式2 计数值为1000 按BCD码计数 8253端口地址为40H 43H 写出初始化程序 MOVAL 00010000B 计数器0控制字OUT43H AL 送控制端口A1A0 11MOVAL 0FFHOUT40H AL 写计数器0计数初值MOVAL 01100101B 计数器1控制字OUT43H AL 送控制端口A1A0 11MOVAL 10HOUT41H AL 写计数器1计数初值 10 例 计数器2 方式5 计数值为0F03FH 二进制计数 端口地址0FFF0H 0FFF3H 写出初始化程序 MOVAL 10111010B 计数器2控制字MOVDX 0FFF3HOUTDX AL 送控制端口A1A0 11MOVAL 3FH 16位计数初值MOVDX 0FFF2HOUTDX AL 送计数值低位入计数器2MOVAL 0F0HOUTDX AL 送计数值高位入计数器2 MOVAX 12345 16位计数初值MOVDX 0FFF2HOUTDX AL 送计数值低位入计数器2MOVAL AHOUTDX AL 送计数值高位入计数器2 12345 11 读当前计数值 锁存后读 由于计数在不断进行 在前后两次执行输入指令的过程中 计数值可能已经变化 所以可将当前计数值先行锁存 然后读取 读当前计数值的过程1 发锁存命令 写入控制端口 2 读当前计数值 读计数器端口 8位当前计数值 只需要读一次 16位当前计数值 先读低字节 后读高字节 12 例 读出并检查计数器1的当前计数值是否全1 端口地址210H 213H 假定计数值只有低8位 L MOVAL 01000000B 计数器1锁存MOVDX 213HOUTDX ALMOVDX 211HINAL DX 读计数器1的当前计数值CMPAL 0FFHJNEL 13 4 工作方式 8253有6种不同的工作方式 在控制字中D3 D1三位来设置 触发方式 计数器的启动方式软件触发硬件触发 GATE保持高电平 写入计数值后启 写入计数值后由GATE的上升沿启动计数 14 6种工作方式遵循的原则 控制字写入控制寄存器后 所有的控制逻辑电路立即复位 OUT进入初始状态启动计数后 在CLK的第一个下降沿 将计数初值送入减1计数器 开始计数 之后在每一个CLK的下降沿 减1计数器减1 计数值减至0 一次计数结束 15 6种工作方式的区别 启动计数器的触发方式OUT引脚的输出波形计数过程中GATE对操作的影响写入新的计数值对计数过程的影响是否自动循环计数 16 方式0 计数结束时中断 17 方式0 计数结束时中断 18 方式1 程序可控单稳 19 方式2 N分频方式 20 方式3 方波频率发生器 21 方式4 单次负脉冲 软件触发 22 方式5 单次负脉冲 硬件触发 23 方式2 方式3 4 方式0 方式2 方式3 方式4 4 方式1 方式5 24 例 8253A芯片内包含有 个独立的计数通道 它有 种工作方式 其中 采用硬件触发方式 能够输出连续波形的是 和 能够输出方波的是 能够在计数结束后输出一个负脉冲的方式是 能以一定频率输出负脉冲的是 若采用通道1 输入时钟CLK1的频率为1MHz 计数值为500 计数方式采用BCD码 OUT1输出为方波 则初始化时该通道的控制字应为 输出的方波频率为 Hz 3 6 方式2 方式3 方式3 2000 方式2 方式4和方式5 方式1和方式5 01100111B 01110111B 公式 fOUT fCLK N 25 例1 在以8088CPU为核心的系统中 扩展一片8253芯片 要求通道0每隔2ms输出一个负脉冲 其工作时钟频率为2MHz 设端口地址为20H 23H 完成通道初始化 用做定时器 分析 工作方式 方式2 计数值 N fCLK fOUT fCLK TOUT 2MHz 2ms 2 106 2 10 3 4000 控制字 00110100B 34H 26 MOVAL 34HOUT23H AL 控制字写入控制口MOVAX 4000 二进制形式的数据OUT20H AL 先写低8位 写入通道0MOVAL AHOUT20H AL 后写高8位 写入通道0 27 例2 在以8088CPU为核心的系统中 扩展一片8253芯片 要求通道0对外部脉冲进行计数 计满400个脉冲后向CPU发出一个中断请求 硬件连接图如下 试完成软件设计 用做计数器 端口地址 00H 03H 0 0 0 0 0 0 0 0 28 分析 1 8253端口地址 00H 03H2 工作方式 方式03 计数初值 N0 400 二进制计数 4 控制字 00110000B 30H MOVAL 30HOUT03H AL 控制字写入控制口MOVAX 400 二进制形式的数据OUT00H AL 先写低8位 写入通道0MOVAL AHOUT00H AL 后写高8位 写入通道0 29 例3 在以8088CPU为核心的系统中 扩展一片8253芯片 要求使用通道2输出20Hz的方波 通道的工作时钟为2MHz 计数方式采用二进制计数 试完成软 硬件设计 20Hz方波 5V 5V 2MHz输入 若仅采用通道2计数 则N2 2MHz 20Hz 100000 65536 2MHz输入 方波 30 分析 1 8253端口地址 00H 03H2 工作方式 计数器1 方式3计数器2 方式33 计数值 100000 100 1000计数器1 N1 100计数器2 N2 10004 控制字 计数器1 01010110B 56H计数器2 10110110B 0B6H 31 精品课件 32 精

温馨提示

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

评论

0/150

提交评论