




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术 中国水利水电出版社 主编李云强 第10章定时 计数计数 本章导读定时与计数技术在计算机系统中具有极其重要的作用 微机系统都要为CPU和外部设备提供定时控制或对外部事件进行计数 例如 分时系统的程序切换 向外部设备输出周期性定时控制信号 定时时间到发出中断申请 外部事件统计达到规定值发出控制信号或提出中断请求等 因此 微机系统必须有定时技术 本章以8253为例介绍它的基本工作原理 以及跟它有关的一些应用 第10章定时 计数计数 10 1基本概念10 2定时 计数器芯片Intel825310 38253的初始化编程10 48253的应用 10 1基本概念 10 1 1定时 计数1 定时定时和计时是最常见和最普遍的问题 一天24小时的计时 称为日时钟 长时间的计时 日 月 年直至世纪的计时 称为实时钟 2 计数计数使用得更多 在生产线上对零件和产品的计数 对大桥和高速公路上车流量的统计 等等 定时 计数器8253内部最基本的单元也是减1计数器 3 定时与计数的关系计时的本质就是计数 只不过这里的 数 的单位是时间单位 如果把一小片一小片计时单位累加起来 就可获得一段时间 计时的本质就是计数 把计数作为定时的基础来讨论 10 1 2频率一声音一音乐从定时 计数问题还可以引出或派生出一些其他的概念和术语 例如 频率的概念 由频率可以引出声音 频率高 声音的音调高 频率低 声音的音调低 微机系统中的定时 可分为内部定时和外部定时两类 内部定时是计算机本身运行的时间基准或时序关系 计算机每个操作都是按照严格的时间节拍执行的 外部定时是外部设备实现某种功能时 本身所需要的一种时序关系 如打印机接口标准Centronics就规定了打印机与CPU之间传送信息应遵守的工作时序 10 1 3微机系统中的定时 10 1 4定时方法 1 软件定时它是利用CPU内部定时机构 运用软件编程 循环执行一段程序而产生的等待延时 这是常用的一种定时方法 主要用于短时延时 这种方法的优点是不需增加硬设备 只需编制相应的延时程序以备调用 缺点是CPU执行延时等待时间增加了CPU的时间开销 延时时间越长 这种等待开销越大 降低了CPU的效率 浪费CPU的资源 并且 软件延时的时间随主机频率不同而发生变化 即定时程序的通用性差 2 硬件定时它是采用可编程通用的定时 计数器或单稳延时电路产生定时或延时 这种方法不占用CPU的时间 定时时间长 使用灵活 尤其是定时准确 定时时间不受主机频率影响 定时程序具有通用性 故得到广泛应用 目前 在微机系统中都采用通用可编程的定时器 计数器芯片 使用灵活 定时时间长 通过编程即可改变定时时间或工作方式 初始化编程后 就按设定的方式工作 不占用CPU的时间 通用的定时器 计数器蕊片种类很多 如MC6840 PTM Intel8253 8254等 IBM PC XT内定时 计数系统的核心元件就采用8253 而PC AT使用8254 8253和8254的引脚及操作方式完全相同 但8254的计数频率比8253高 8253可以达到5MHz 而8254 2可10MHz 另外 8254将8253控制字的最高两位D7D6 11的不用状态 设置成一种有效控制字 Intel8253是8086微机系统常用的定时 计数器芯片 它具有定时与计数两大功能 10 2定时 计数器芯片Intel8253 10 2 18253的芯片功能 其主要功能特性有 采用NMOS工艺 用单一的 5V电源供电 片内有3个独立的16位减法计数器 或计数通道 每个计数器又可分为2个8位的计数器 计数频率为0 5MHz 两种计数方式 即2进制或BCD方式计数 6种工作方式 既可对系统时钟脉冲计数实现定时 又可对外部事件进行计数 可由软件或硬件控制开始计数或停止计数 10 2 28253的内部结构 8253的内部结构如右图所示 由计数器 控制寄存器 读 写控制逻辑和数据总线缓冲器4部分和内部数据总线构成 数据总线缓冲器 8位双向三态的缓冲器 可直接挂在数据总线上 CPU通过它 一方面可以向控制寄存器写入控制字 向计数器写入计数初值 另一方面CPU也可通过该缓冲器读出计数器的当前计数值 2 读 写控制逻辑 读 写逻辑的功能是接收来自CPU的控制信号 包括读信号RD 写信号WR 片选信号CS 和芯片内部寄存器寻址信号A0 Al 完成对8253各计数器的读 写操作 片选信号接I O端口译码电路 A0 A1接CPU地址总线低2位进行片内3个计数通道和控制寄存器的端口的选择 读 写信号 RD WR 接CPU的IOR IOW 8253的读 写操作与基地址如表10 1所示 3 控制寄存器 接收从CPU来的控制字 并由控制字的D7 D6位的编码决定控制字写入哪个计数器的控制寄存器 此寄存器只能写入 不能读出 4 计数器 8253有3个计数器通道 计数器0 计数器1和计数器2 每个计数器有3根信号线 即2根输入信号 时钟信号CLK和门控GATE信号 1根输出信号OUT 3个计数器其内部操作完全相同 区别仅在于计数器是由计数脉冲 间隔不一定相同 进行减1计数 而定时器是由周期一定的时钟脉冲作减1计数 作计数器用时 要求计数的次数可直接作为计数初值预置到减1计数器中 计数初值NC的计算公式 NC fCLK fOUT 其中fCLK是输入时钟脉冲的频率 fOUT是输出波形的频率 作定时器用时 计数初值Nt即定时系数应根据要求定时的时间t和时钟脉冲周期TCLK进行如下换算得出 Nt 要求定时的时间 时钟脉冲周期 t TCLK t fCLK 其中 t为要求定时的时间 fCLK为时钟脉冲频率 除此以外 各计数器还可用来产生各种脉冲序列 如方波发生器和复杂波形发生器等 10 2 38253的外部引脚 1 8253与CPU的接口引脚 如图10 3 D0 D7 三态双向数据线 和CPU数据总线相连 用于传递CPU与8253之间的数据信息 控制信息和状态信息 CS 片选信号 输入 低电平有效 表示8253被选中 允许CPU对其进行读 写操作 此脚连接译码电路输出端 WR 写信号 输入 低电平有效 用于控制CPU对8253的写操作 可和A1 A0信号配合以决定是写入控制字还是计数初值 RD 读信号 输入 低电平有效 用于控制CPU对8253的读操作 可和Al A0信号配合读确定的计数器 A0 A1 地址输入线 用来寻址8253内部的4个端口 即3个计数器和1个控制字寄存器 与CPU系统地址线相连 2 8253与外设的接口引脚CLK0 1 2 时钟脉冲输入端 用于输入定时脉冲或计数脉冲信号 CLK可以是系统时钟脉冲 也可以由系统时钟分频或者其他脉冲源提供 当用于定时时 这个脉冲必须是均匀的 连续的 周期精确的 而用于计数时 这个脉冲可以是不均匀的 断续的 周期不定的 GATE0 1 2 门控输入端 用于外部控制计数器的启动计数和停止计数的操作 两个或两个以上计数器连用时 可用此信号来同步 也可用于与外部某信号的同步 OUT0 1 2 计数输出端 当计数器从初值开始完成计数操作时 OUT引脚上输出相应的信号 详见8253工作方式 8253共有6种工作方式 方式0 方式5 产生6种波形发生器 各方式下的工作状态是不同的 输出的波形也不同 总规律是 先写控制字 再写计数初值 输出先复位 减1到0再翻转 门控信号有讲究 触发方式各不同 方式0 4为电平触发 方式1 5为正沿触发 方式2 3为电平 正沿触发均可用 每个通道均可以通过编程选择6种工作方式之一 下面分别予以介绍 10 2 48253的工作方式 方式0 计数结束中断 OutSignalonEndofCount 计数结束输出低到高翻转 方式1 可重触发的单稳态触发器 HardwareRetriggrerableone shot 方式2 速率发声器 RateGenerator 方式3 方波发生器 SquareWareOutput 方式4 软件触发选通 SoftTriggeredStrobe 方式5 硬件触发选通 HardwareTriggeredStrobe 方式0计数结束中断 设定工作方式 设定计数初值 计数值送入计数器 计数过程 计数结束 将工作方式的设定值写入方式控制字 将计数初值写入预置寄存器 方式1可编程单稳脉冲 设定工作方式 设定计数初值 硬件启动 计数值送入计数器 计数过程 计数结束 由GATE触发 下一个时钟周期的下降沿开始计数 计数初值为4 单稳脉冲宽度为4个时钟周期宽 方式2频率发生器 分频器 方式3方波发生器 计数初值应设为偶数 否则 高电平比低电平宽一个时钟周期 方式4软件触发选通信号 方式5硬件触发选通信号 8253的6种工作方式比较如表10 2所示 10 38253的初始化编程 对于每个计数通道进行初始化时 必须先写控制字 然后写入计数初值 这是因为计数初值的写入格式是由控制字的D5 D4两位编码决定的 写入计数初值时 必须按控制字的D5 D4两位编码规定的格式进行写入 例如 若控制字D5 D4两位编码规定的计数初值写人格式只写低8位 就只能给所选通道写入低8位计数值 若控制字D5 D4两位编码规定的写入格为16位 就必须写入16位的计数值 且先写低8位 再写高8位 10 3 28253的控制字 1 写入方式控制字 图9 15通信线状态寄存器 10 3 3初始化编程例子 例10 1 设8253的端口地址为 04H 0AH 要使计数器1工作在方式0 仅用8位二进制计数 计数值为128 进行初始化编程 控制字为 01010000B 50H初始化程序 MOVAL 50HOUT0AH ALMOVAL 80HOUT06H AL 例10 2设8253的端口地址为F8H FEH 若用通道0工作在方式1 按二十进制计数 计数值为5080H 进行初始化编程 控制字为 00110011B 33H初始化程序 MOVAL 33HOUT0FEH ALMOVAL 80HOUT0F8H ALMOVAL 50HOUT0F8H AL 举例 设计题设8253芯片的计数器O 计数器1和控制口地址分别为04B0H 04B2H和04B6H 定义计数器0工作在方式2 CLK0为5MHz 要求输出OUT0为1kHz方波 定义计数器1用OUT0作为计数脉冲 计数值为1000 计数器减到O时向CPU发出中断请求 CPU响应这一中断请求后继续写入计数值1000 开始重新计数 保持每一秒向CPU发出一次中断请求 试编写对8253的初始化程序 并画出系统的硬件连接图 解 1 8253定时器0计数初值 5MHz 1KHz 50008253定时器1计数初值 1000 2 8253的初始化程序如下 MOVDX 04B6H 设置控制口MOVAL 00110100B 计数器0工作在方式2 二进制计数 读写低高字节OUTDX ALMOVAL 01110000B 计数器1工作在方式0 二进制计数 读写低高字节OUTDX AL 计数器0计数初值设置MOVDX 04B0H 设置计数器0端口MOVAX 5000 设置计数器0的计数初值OUTDX AL 写低字节计数初值MOVAL AHOUTDX AL 写高字节计数初值 计数器1计数初值设置MOVDX 04B2H 设置计数器1端口MOVAX 1000 设置计数器1的计数初值OUTDX AL 写低字节计数初值MOVAL AHOUTDX AL 写高字节计数初值 3 连接示意图 练习 教材P304第10题 10 48253的应用10 4 18253进行脉冲计数编程 例10 3 实验电路如图10 11所示 要求利用8253实现对按键产生的脉冲计数 同时将计数的结果通过8255的C口送到8位发光二极管显示 另外还要将定时 计数通道的OUT0输出信号接另一发光二极管 以观察计数过程及结束后电平的变化 设8253端口地址为200H 203H 8255的端口地址为208H 20BH 这是8253采用通道0 工作于计数方式的应用 8253的0通道设为工作方式0 字读写方式 2进制计数 8255的A口和B口工作于方式0 C口为输出 程序代码如下 codesegmentassumecs codemovdx 20bh 8255控制字moval 10000000b 8255的200H端口outdx almovdx 203h 8253的控制端口moval 00010000boutdx almovdx 200hmoval 8outdx aInop display movdx 203h 8253moval 00000000boutdx alnopmovdx 200h 8253inal dxmovbl almoval 8suba1 bfmovdx 20ah 8255notaloutdx aljmpdisplaycodeendsend 10 4 2PC微机中8253的应用 8253的3个计数器在IBMPC AT机中有专门的应用 其初始化由BIOS完成 上图是8253在PC系列微机中的应用硬件连接图 8253中3个计数器通道在该定时系统中的作用和有关信号的定义如下表 表10 38253的3个计数器各自的作用和信号规定 3个计数器的定时时钟输入CLK相同 都由PCKL二分频产生 其频率为1 1931816MHz 系统将040H 042H的3个地址分别作为计数器0 计数器2的地址 043H为控制寄存器端口地址 计数器0的初始化设置程序如下 MOVAL 36H 设置通道0为方式3 先写处置低字节再写高字节 2进制格式MOVDX 043HOUTDX ALMOVAL 0 计数初值为0000 即为216MOVDX 040HOUTDX AL 向计数初值寄存器低字节写00HOUTDX AL 向计数初值寄存器高字节写00H 计数器1的初始化设置程序如下 MOVAL 54H 00110110 二进制 设置通道1为方式2 只写初值低字节 2进制格式MOVDX 043HOUTDX ALMOVAL 18 计数初值为18DMOVDX 041H 向l通道计数初值寄存器低字节写12HOUTDX AL 它将计数器2编程为方式3 作为方波发生器输出896Hz的方波 经滤波驱动后推动扬声器发声 其程序如下 BEEPPROCNEARMOVAL 0B6HMOVDX 043H 设置通道2为方式3 先写初值低字节再写高字节 2进制格式OUTDX AL 写入控制寄存器MOVAX 533H 装入计数初值 分频系数 MOVDX 042H 向通道2计数初值寄存器低字节写入OUTDX ALMOVAL AH 向遍道2计数初值寄存器高字节写入OUTDX ALMOVDX 061H 读入8255的B口原有内容INAL DXMOVAH AL 将原输出值保留于AH中ORAL 03H 仅设置8255的B口PB1和PB0为1 保留其它位的原状态OUTDX AL 打开GATE2门输出方波到扬声器MOVCX 900 CX循环计数序LP LOOPLP 循环延时DECBL 子程序入口条件JNZLP BL的值为控制长短声 BL 6 长 BL 1 短 MOVAL AH 恢复8255的B口原有内容并停止发声OUTDX ALRETBEEPENDP 10 4 38253为A D转换提供采样频率发生器 在A D转换子系统中 利用8253的3个计数通道 不仅可设置采样频率 而且还能决定采样持续时间 设计数器0工作于方式2 分频器 计数器1工作于方式1 单稳 计数器2工作于方式3 方波发生器 L M N分别为计数器0 计数器1 计数器2的计数初值 F为时钟脉冲频率 由图10 13可见 由于将计数器2的输出OUT2作为计数器1的时钟脉冲输入 所以计数器1的时钟脉冲CLK1的频率为F N 又由于计数器1工作于方式1 单稳 因此输出信号OUT1的负脉冲宽度 即单稳的输出宽度 为MN F 而计数器0工作于方式2 分频器 它的输出信号OUT0的脉冲频率为F L 另外 计数器0的门控输入CATE0又受到OUT1的控制 如右图所示 在A D转换子系统中 利用8253的3个计数通道 不仅可设置采样频率 而且还能决定采样持续时间 设计数器0工作于方式2 分频器 计数器1工作于方式1 单稳 计数器2工作于方式3 方波发生器 L M N分别为计数器0 计数器1 计数器2的计数初值 F为时钟脉冲频率 由右图可见 由于将计数器2的输出OUT2作为计数器1的时钟脉冲输入 所以计数器1的时钟脉冲CLK1的频率为F N 又由于计数器1工作于方式1 单稳 因此输出信号OUT1的负脉冲宽度 即单稳的输出宽度 为MN F 而计数器0工作于方式2 分频器 它的输出信号OUT0的脉冲频率为F L 另外 计数器0的门控输入CATE0又受到OUT1的控制 设8253的端口地址为80H 83H 并设L N为8位二进制数 M为16位BCD数 则初始化程序段如下 MOVAL 00010100B 将计数器0设置为方式2 分频器 二进制计数OUT83H AL 控制字端口83HMOVAL L 设置计数器0的计数初值L 二进制 OUT80H AL 计数通道0端口地址80HMOVAL 01110011lB 将计数器1设置为方式1 单稳 BCD计数OUT83H AL 控制字端口83HMOVAX M 设置计数器1的计数初值为M BCD数 OUT81H AL 计数通道1端口地址81H 输出M低字节MOVAL AHOUT81H AL 输出M高字节MOVAL 10010110B 将计数器2设置为方式3 方波 二进制计数OUT83H ALMOVAL N 设置计数器2的计数初值N 二进制 OUT82H AL 10 4 4Windows控制系统精确计时机制研究 1 Windows系统常用计时方法和原理在微机系统中 系统的时钟芯片每54 925毫秒 约每秒18 2次 会对CPU做一次中断请求 触发08H及01CH中断 在基于DOS系统的软件开发中 可以改写08H或01CH中断的中断处理程序 ISR InterruptserviceRoutine 来达到在程序中计时或进行规律性操作的目的 2 Windows系统精确计时原理与实现 操作系统提供的定时器函数是基于8253定时器 计数器电路 可以直接对8253定时器 计数器电路进行控制来达到计时 定时目的 在对8253定时 计数器电路进行编程时 计数器的控制字和计数器是通过不同的端口地址写入的 锁存器的数值也是通过端口地址进行读取的 因此只要有读写指定端口地址的函数就可以利用8253完成精确定时和计时的任务 Win95 98和windowNT系统由于运行在保护模式下 系统不允许对端口进行直接读取 在C Bullder发环境中可以应用嵌入汇编编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《广告服务合同》模板
- 信息技术融合获奖范文
- 幽默主题课件
- 《让图画动起来》+课件+2025-2026学年冀美版(2024)初中美术八年级上册
- 巡察组培训交流课件
- 峡江安全生产大培训课件
- 输电线路运行课件
- 输煤工安全培训教育课件
- 9.2 正弦定理与余弦定理的应用
- 高校生地质工程实习实训合同
- 神经调节的基本方式课时检测2
- 聚焦高质量+探索新高度+-2025届高考政治复习备考策略
- 【基于危险预知训练方法的安全实践探究12000字(论文)】
- 《智慧农业关键技术与装备》课件-第11章 农业预测预警
- 农村宅基地自建住房技术指南
- 2024年河北省石家庄市轨道交通有限责任公司招聘笔试参考题库含答案解析
- (高清版)TDT 1066-2021 不动产登记数据库标准
- 《金相基础知识普及》课件
- T-CEA 7024-2024 电梯应急救援处置平台技术规范
- 游戏动漫IP衍生品授权策划书
- 静脉治疗护理技术操作标准(2023版)全文内容解读课件
评论
0/150
提交评论