- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第05章.定时计数-8253
设8253的通道0~2和控制端口的地址分别为280H、281H、282H和283H,定义通道0 工作在方式3,CLK0=2MHz。试编写初始化程序,并画出硬件连线图。要求通道0输出1.5 kHZ的方波,通道1用通道0的输出作计数脉冲,输出频率为300HZ的序列负脉冲,通道2每秒钟向CPU发50次中断请求。 8255应用举例1 利用8255实现开关检测和继电器控制电路; 当开关闭合时,使继电器通电动作;开关断开时,继电器不动作; 系统每隔100ms检测一次开关状态,实现相应的继电器控制; 初始状态下继电器不动作。 题目分析: 使8255的A端口和B端口均工作于方式0; 8253计数器0和计数器1均工作于方式3,利用OUT0的输出作为计数器1的时钟信号,其输出频率为2KHz, OUT1输出频率为10Hz(周期100ms); OUT1作为中断信号,每100ms产生一次中断; CPU响应中断后检测开关状态,控制继电器的动作; 8253两个计数器的计数初值分别为: CNT0:2MHz/2KHz =1000 (16位) CNT1:100ms/0.5ms=200 (8位) 8255的初始化 MOV DX,387H MOV AL,82H ;1 00 0 0 0 1 0 OUT DX,AL XOR AL,AL ;A口输出全0 MOV DX,384H OUT DX,AL 8253的初始化 设置工作方式: MOV DX,38BH MOV AL,36H OUT DX,AL MOV AL,56H OUT DX,AL 36H = 00 11 011 0 CNT0 16位 方式3 8255的控制程序(中断处理) (中断初始化程序略) 8253中断服务程序中的8255控制程序段如下: …… MOV DX,385H ;PB口地址 IN AL,DX ;读PB0状态 NOT AL ;变反 MOV DX,384H ;输出到继电器 OUT DX,AL …… 5.3 8253-5的应用举例 在IBM-PC机的系统板上使用一片8253,构成所需的定时逻辑。此时8253中的三个计数器均应用作为系统所需的定时信号。每个计数器的CLK引脚的时钟脉冲频率均1.193186MHz,它是外设时钟PCLK经2分频后产生的。 例1、计时器——日时钟 1.要求 设计一个计一天时间的日计时器——日时钟。 2.分析 (l)新计时单位的建立 要利用8253来计一天的时间,就必须找到一个合适的新的计时单位才行。 即不一定要按秒、分、小时这些单位去计量。可以把24小时看成一个常数,只要能够找到一个定时准确的新单位,用这个单位去度量一天24小时里包含多少个这种计时单位就行了。 若利用 8253-5工作在 3方式下,其输出为一系列方波,这种方波的周期是准确的,可以作为定时单位。 比如,选用8253的计数器0,让其工作在3方式,计数初位设置为最大值—65536。当输入时钟f CLK0= 1.1931816MHz时,则输出方波的频率为 fouto= 1. 1931816MHz/65536= 18.2Hz 输出方波的周期为: T0ut0=1/18.2?1000ms=54.945ms 这个方波的周期是准确的,可以利用这个54.945ms作为计时单位。 1天=24?60 ? 60 ? 1000ms/54.954ms=1573040(计时单位)。若以十六进制表示,则为001800B0H个计时单位。同理,可得一小时包含65543个计时单位,1分钟包含1092个计时单位,l秒钟包含18.2个计时单位。换句话说,计满了1573040个计时单位,就是1天,计满65543是1小时,计满1092就是1分钟,计满 18.2就是1秒钟。 3.设计 每隔54.945ms申请1次中断 每1次中断就在双字变量中加 1,计满65536次而复位,并向高双字变量中进1,一直加到当TIMER-LO=00B0H,TIMER-HI=00l8H时,就计到24小时。然后清零,再重新在低双字变
文档评论(0)