《微机原理_第9章_计数器和定时器电路》.pptVIP

《微机原理_第9章_计数器和定时器电路》.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《微机原理_第9章_计数器和定时器电路》.ppt

9.3.2 8253工作方式小节 计数值的设置 6种方式都是在写入计数值后开始计数,方式0、2、3、4是在写入计数值后,计数过程就开始了,方式1、5则是需要外部触发启动,才开始计数。 6种方式中,方式2、3是连续计数,其他方式是一次性计数;方式0、4由写入计数值(软件)启动,方式1、5要由外部信号(硬件)启动 计数值N与输出波形 3. 门控信号的作用 4. 在计数过程中改变计数值 例题 用8253构成定时、计数系统,要求系统完成如下功能:通道0用于外部事件计数,计满100次通过中断控制器8259向CPU发出中断请求;通道1产生频率为1kHz的方波;通道2用于产生标准定时时钟,1秒钟通过8259中断控制器向CPU发出一次中断请求信号。设8253口地址为0e0~0e3h 分析:计数器0应设置为方式0,即计数结束中断方式。其计数初值设为100,输出的上升沿送至8259的IR0。计数器1设为方式3,计数初值为2MHZ/1KHZ=2000.计数器2也应设为方式0,即计数结束产生中断,以实现计时功能,每秒钟用OUT2向CPU发出一次中断请求。由于输出脉冲的周期为1s,所以可将通道1与通道2级连。通道2的输入时钟频率为1khz,所以计数初值为1s/0.001=1000,通道2的输出送8259的IR1 作业 外部触发后有效 硬件触发选通 5 立即有效 软件触发选通 4 外部触发有效,计数到0后有效 方波速率发生器 3 计数到1后有效 速率发生器 2 外部触发后有效 硬件再触发单拍脉冲 1 立即有效 记完最后一个数中断 0 改变计数值 功能 方式 5. 计数到0后计数器的状态: 方式0、1、4、5,计数器计到0后,都从最大计数值继续倒计数;方式2、3是连续计数。 9.4 8253-PIT的编程 要使用8253必须首先进行初始化编程,初始化编程的内容为:必须先写入每一个计数器的控制字,然后写入计数器的计数值。计数器的控制字和计数值,是通过两个不同的端口地址写入的。控制字都是写入至控制字寄存器(地址总线低两位A1A0=11),由控制字中的D7D6来确定是哪一个计数器的控制字;而计数值是由各个计数器的端口地址写入的。 初始化编程的步骤为: (1)写入计数器控制字,规定计数器的工作方式。 (2)写入计数值。 计数器初值计算:N=fCLK/fOUT 例:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器0,工作模式2,仅使用低8位,初值为100,计数值使用二进制 MOV AL, 14H OUT 73H, AL MOV AL, 100 OUT 70H, AL 例:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器1,工作模式1,使用16位,初值为1234,计数值使用BCD数 MOV AL, 0111 0011B OUT 73H, AL MOV AX, 1234H OUT 71H, AL MOV AL, AH OUT 71H, AL 每个计数器的初值寄存器(CR)、输出锁存器(OL)都是16位的,但它们对应相同的一个8位端口地址,所以16位的CR、OL作为两个8位寄存器读写,由控制寄存器控制读写高8位/低8位 读出命令 1)发出锁存命令,使当前计数值锁存在输出锁存器中 2)读输出锁存器,获得当前计数值 例:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。读出计数器0的当前计数值,放在BX中 MOV AL, 0000 0000B OUT 73H, AL IN AL, 70H MOV BL, AL IN AL, 70H MOV BH, AL 8253的应用 例:以2MHz输入8253,实现每5秒定时中断 (设8253端口地址40H~43H) 分析:8253最大初值65536,CLK=2MHz可实现最大时间间隔 65536/(2?106)=32.769ms,所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输入 计数器1:模式2,OUT1每5ms输出一个脉冲 初值(2?106)/(1/0.005)=10000 计数器0:模式2,OUT0每5s输出一个脉冲 初值(1/0.005)/(1/5)=1000 OUT0 GATE0 CLK0 OUT1 GATE1 CLK1 +5V +5V 2MHz 每5秒产生一个脉冲 程序: MOV AL, 0111 0100B OUT 43H

文档评论(0)

ycwf + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档