第五章数字量输入输出3of7_第1页
第五章数字量输入输出3of7_第2页
第五章数字量输入输出3of7_第3页
第五章数字量输入输出3of7_第4页
第五章数字量输入输出3of7_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、 1 计算机系统中,实现定时或延时有三种方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。8253为可编程的硬件定时/计数器。8253的主要功能:的主要功能: 具有具有3 3个独立的个独立的1616位计数器通道;位计数器通道; 每个计数器均可按二进制或十进制计数每个计数器均可按二进制或十进制计数(BCD(BCD码码) ); 每个计数器的计数速率最高达每个计数器的计数速率最高达2.6MHz2.6MHz; 每个通道有每个通道有6 6种工作方式,可由程序设置和改变;种工作方式,可由程序设置和改变; 所有的输入输出都与所有的输入输出都与TTLTTL兼容。兼容。 28253 可编程定时可编程定时/

2、计数器计数器要点:要点:u计数初值是如何置入的计数初值是如何置入的?u计数是如何启动的?计数是如何启动的?u输出是如何变化的?输出是如何变化的? 3一、一、82538253工作原理工作原理1 1 三通道可编程三通道可编程1616位计数位计数/ /定时电路定时电路 处理脉冲信号1.1. 引脚及结构引脚及结构 P265 P265 图图5.285.28、 P265 P265 图图5.295.292.2. 内部寄存器的读写(内部寄存器的读写(P266 P266 表表5.55.5) 4 58253的内部结构*三个计数器(减法器) 3个独立的16位减法器,可作定时/计数器使用; 计数器按二/BCD方式减法

3、计数,从预常减到零时,OUT端输出一信号。数据总线缓冲 器计数器0读/写逻辑控制字寄存器计数器1计数器2CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2D7 D0RDWRA0A1CS8253内部结构内部数据总线*数据总线缓冲器(传送信息) 写控制字, 写计数初值, 读计数值*读写逻辑*控制字寄存器(存放控制字) 6数据总线缓冲器计数器0读/写逻辑控制字寄存器计数器1计数器2CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2D7 D0RDWRA0A1CS8253内部结构内部数据总线8253 的引线* 数据线(D7D0)* 地址线:选择内部

4、寄 存器;* 控制线:完成片选和 读写操作。CLK:输入脉冲线;GATE:门控信号输入线; GATE=0 禁止计数, GATE=1 允许工作;OUT:输出引脚; 当计数到“0”时,OUT 端输出一信号。 7 三个计数器各占一个地址,可读可写。三个计数器各占一个地址,可读可写。 三个控制寄存器共用一个地址三个控制寄存器共用一个地址(A(A1 1A A0 0=11)=11), 只写。只写。每个计数器要分别写自己的控制字,用同一个地址,每个计数器要分别写自己的控制字,用同一个地址,再根据控制字再根据控制字特征位特征位的不同取值,分别写到各计数器的的不同取值,分别写到各计数器的控制寄存器中控制寄存器中

5、 8CSRDWR A1A0寄存器选择和操作01000写入计数器 001001写入计数器 101010写入计数器 201011写入控制寄存器00100读计数器 000101读计数器 100110读计数器 200111无操作(三态)1*禁止(三态)82538253输入信号组合的功能表输入信号组合的功能表 916位读出锁存器16位减法计数器16位初值寄存器8位数据线I/O读I/O写置入锁存(OUT指令)(IN指令) 101. 编程步骤 初始化编程: 写控制字写计数初值,可重复做。 工作编程: 写控制字读计数值,可重复做。2. 控制字 (CW) 功能:规定工作方式及操作类型 118253的控制字00

6、选择计数器001 选择计数器110 选择计数器211 非法选择0=二进制1=BCD计数器读/写格式工作方式数制D0D1D2D3D4D5D6D7 在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字来规定8253的工作方式。00 计数器锁存命令10 只读/写最高有效字节(高八位)01 只读/写最低有效字节(低八位)11 先读写最低有效字节然后读写最高有效字节000 方式0001 方式1*10 方式2*11 方式3100 方式4101 方式5 12 CW的格式:P267 图5.30最高两位是寄存器号,即最高两位是寄存器号,即特征位辅助寻址特征位辅助寻址读计数值前读计数值前压缩压

7、缩BCD码码写完后的读,默认为读写完后的读,默认为读16位,用两条位,用两条 IN 指令指令 13 指令只将计数初值写到初值寄存器,靠指令只将计数初值写到初值寄存器,靠硬硬件信号件信号从初值寄存器置入计数器从初值寄存器置入计数器, ,然后才做然后才做减法计数。减法计数。初值都是初值都是1616位,但可以只写一字节,缺省位,但可以只写一字节,缺省字节默认为零字节默认为零 计数范围计数范围 对于十六进制为对于十六进制为 1(FFFFH+1)1(FFFFH+1)对于十进制为对于十进制为 1(9999+1)1(9999+1)0 0表示表示最大值最大值十进制计数初值伪装成十六进制输入十进制计数初值伪装成

8、十六进制输入 14有有6 6种工作方式供选择(方式种工作方式供选择(方式0505)每种方式可从每种方式可从5 5方面分析:方面分析:启动方式启动方式 软件软件/ /硬件启动,或兼有硬件启动,或兼有输出波形输出波形 OUTOUT端的波形变化端的波形变化暂停方式暂停方式 GATEGATE变变0 0后计数是否暂停,后计数是否暂停, GATEGATE再次变再次变1 1后计数怎样继续后计数怎样继续能否重复能否重复 计到计到0 0后能否自动重新开始后能否自动重新开始更新初值的效果更新初值的效果 计数未完又重写计数计数未完又重写计数 初值,新初值何时启用。初值,新初值何时启用。计数器工作方式一览表计数器工作

9、方式一览表 P272P272表表5.65.6 15P268图5.31方式0的波形软件启动、不自动重复软件启动、不自动重复1N入计数器N入初始值寄存器1. 方式0* CW写入,OUT=0;* 写入初值,通道开始计数;* 计数到零,OUT=1;* 计数器只计数一遍;* OUT是N+1个CLK后变高;* 计数过程中,GATE=0, 计数暂停;* 计数过程中可改变计数值;* 8253无中断控制,可用OUT信号作为中断请求。经过经过CLK的一个上升边沿和一个的一个上升边沿和一个下降边沿,初值进入计数器计数下降边沿,初值进入计数器计数 16方式1(可编程单脉冲)* 写入控制字OUT=1,写入初值不计数;*

10、 GATE启动计数,OUT=0;* 计数到,OUT=1。*单拍脉冲宽度为N;*由GATE重新启动;*计数中,可重新启动;*计数中,可改变计数值,再次启动有效。P269图5.33方式1的波形经过经过CLK的一个上升边沿和一个的一个上升边沿和一个下降边沿,初值进入计数器计数下降边沿,初值进入计数器计数上升沿启动N入计数器 17方式2(速率发生器)* 写入控制字OUT=1;* 写入初值,通道开始计数;* 计数到1,OUT=0;* 一个CLK周期后,OUT=1,重新计数。* 通道连续工作不需重置初值;* 计数过程中,GATE=0,计数暂停,GATE变高后重新计数;* 计数过程中可改变计数值;新的计数值

11、在下一次有效。P270图5.34方式2的波形经过经过CLK的一个上升边沿和一个的一个上升边沿和一个下降边沿,初值进入计数器计数下降边沿,初值进入计数器计数 18方式3(方波发生器)* 与方式2的区别在于:输出为周期是N个CLK脉冲的方波。* 若计数值为偶数,每个CLK使计数值减2,计到0,OUT改变状态,重装计数值开始新的计数。*若计数值为奇数,第一个脉冲先减1,以后,每个CLK使计数值减2,计到0 时,OUT改变状态,重装计数值后,第一个脉冲减3,以后,每个CLK使计数值减2,计到0时,OUT改变状态。*GATE信号控制计数过程;*计数过程中写入新的计数值将在半周期结束时装入计数器。P270

12、 图5.35 方式3的波形经过经过CLK的一个上升边沿和一个的一个上升边沿和一个下降边沿,初值进入计数器计数下降边沿,初值进入计数器计数 19例:要求计数器0工作于方式3,输出方波的频率为2KHz,计数脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。2. 初值计算:N = 2.5MHz/2KHz=1250MOV AL,37HOUT 83H,ALMOV AL,50HOUT 80H,ALMOV AL,12HOUT 80H,AL1. 8253的端口地址为:80H,81H,82H,83H。000111113. 8253的方式控制字为: 计数器计数器 0 0;先写低再写高;方式;先写低再写

13、高;方式3 3;十进制;十进制4. 初始化程序段: 20方式4(软件触发选通)* 写入控制字OUT=1;* 写入初值,通道开始计数;* 计数到0,OUT=0;* 一个CLK周期后,OUT=1,计数器停止计数。* 计数器只计数一遍;* OUT是N+1个CLK后变低;* 计数过程中, GATE=0, 计数暂停;* 若在计数过程中,改变计数值,则按新的计数值重新开始计数。P271 图5.35 方式4的波形经过经过CLK的一个上升边沿和一个的一个上升边沿和一个下降边沿,初值进入计数器计数下降边沿,初值进入计数器计数 21方式5(硬件触发选通)* 写入控制字OUT=1;* 写入初值后,由GATE的上升沿

14、启动计数;* 计数到0,OUT=0;* 一个CLK周期后,OUT=1,计数器停止计数。* 计数器只计数一次;* OUT是N+1个CLK后变低;* 在 计数过程中出现的GATE脉冲, 将使 计数器重新开始计数,对输出状态没有影响;* 若在计数过程中改变计数值,只要没有GATE信号触发,不影响计数过程。有新的GATE信号触发则按新的计数值开始计数。上升沿启动N入计数器P271图5.37 方式5的波形经过经过CLK的一个上升边沿和一个的一个上升边沿和一个下降边沿,初值进入计数器计数下降边沿,初值进入计数器计数 228253工作方式小结1. 输出端OUT的初始状态 只有方式0是在写入控制字后输出为低,

15、其它均为高;2. 计数值的设置 任一种方式,只有在写入计数值后才能开始计数,方式0、2、3、4在写入计数值后,计数自动开始,方式1、5需外部触发,才开始计数。 23计数值N与输出波形的关系方式功能N与输出波形的关系0计完最后一个数中断 写入计数值N后,经过N+1 个CLK脉冲输出变高1硬件再触发单拍脉冲 单拍负脉冲的宽度为N个CLK脉冲2速率发生器 N个CLK脉冲,输出宽度为一个CLK周期的负脉冲3方波速率发生器写入N后,输出N /2 个CLK高电平,N /2 个CLK低电平(N为偶数) ; (N+1)/2 个 CLK 高电平, (N-1)/2 个 CLK 低电平(N为奇数)4软件触发选通 写

16、入N后,过N+1 个CLK,输出宽度为一个CLK的负脉冲5硬件触发选通 门控触发后过N+1 个CLK,输出宽度为一个CLK的负脉冲 243. 门控信号的作用-GATE输入总是在CLK输入时钟的上升沿被采样。在方式0,2,3,4中,GATE输入是电平起作用。在方式1,2,3,5中 GATE输入是上升沿起作用的。GATE方式功 能低或变为低上升沿高0计完最后一个数中断禁止计数_允许计数1硬件再触发单拍脉冲-启动计数下一个 CLK 脉冲使输出变低-2速率发生器禁止计数立即使输出为高重新装入计数值启动计数允许计数3方波速率发生器禁止计数立即使输出为高启动计数允许计数4软件触发选通禁止计数-允许计数5硬

17、件触发选通-启动计数- 25方式功能 改变计数值0计完最后一个数中断立即有效1硬件再触发单拍脉冲外部触发后有效2速率发生器计数到 1 后有效3方波速率发生器外部触发后有效计数到 0 后有效4软件触发选通立即有效5硬件触发选通外部触发后有效4. 在计数过程中改变计数值立即有效是写入计数值后的下一个CLK脉冲后,新的计数值开始起作用。5.计数到0后计数器的状态计数器减到0后并不停止,在方式0,1,4,5,计数器减到0后从FFFF/9999继续计数。方式2,3是连续计数,计数器自动装入计数值后,继续计数。 268253 的编程8253-PIT8253-PIT初始化编程的步骤:初始化编程的步骤:1.写入通道控制字,规定通道的工作方式;(A1A0=11)2. 写入计数值(由控制字的D7D6确定通道号)。若规定只写入低8位,则写入的为计数值的低8位,高8位自动置0;若规定只写入高8位,则写入的为计数值的高8位,低8位自动置0;若是16位计数值,则分两次写入,先写入低8位,再写入高8位。 271 1、连接、连接通道通道0 0 日时钟,即提到的日时钟,即提到的55ms55ms定时定时 (18.218.2次次/ /秒)秒) (方式(方式3 3)通道通道1 1 动态存储器刷新动态存储器刷新 (方式(方式2 2)通道通

温馨提示

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

评论

0/150

提交评论