- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 可编程接口芯片8.1计数器/定时器电路8253-PIT 计数器的3个引脚 CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1 GATE门控输入信号——控制计数器工作,可分成电平控制和上升沿控制两种类型 OUT计数器输出信号——当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号 计数器结构示意图 五、 8253的工作方式 8253有6种工作方式,由方式控制字确定 熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式 每种工作方式的过程类似: ⑴ 设定工作方式 ⑵ 设定计数初值 〔 ⑶ 硬件启动 〕 ⑷ 计数初值进入减1计数器 ⑸ 每输入一个时钟计数器减1的计数过程 ⑹ 计数过程结束 方式0 计数结束中断 计数开始的时刻 需要注意: 处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到减1计数器。 从第二个CLK信号的下降沿,计数器才真正开始减1计数。 方式1 可编程单稳脉冲 各种工作方式的输出波形(291) 8253的控制字编程 ;某个8253的计数器0、1、2端口和控制端口地址依次是40H~43H ;设置其中计数器0为方式0,采用二进制计数,先低后高写入计数值 mov al,30h ;方式控制字:30H=00 11 000 0B out 43h,al ;写入控制端口:43H 8253的计数初值编程 ;某个8253的计数器0、1、2端口和控制端口地址依次是40H~43H ;设置计数器0采用二进制计数,写入计数初值:1024(=400H) mov ax,1024 ;计数初值:1024(=400H) ;写入计数器0地址:40H out 40h,al ;写入低字节计数初值 mov al,ah out 40h,al ;写入高字节计数初值 习题2、利用8253的2#计数器周期性地每隔10ms产生一次中断,已知CLK频率为2MHz。试选择工作方式,并编写出相应的初始化程序。(设8253的地址为70H~73H) 解: 要产生周期性的中断信号,可选择方式2。计数初值为 n=10ms×2MHz=20000=4E20H 初始化程序为 MOV AL OUT 73H,AL MOV AL,20H OUT 72H,AL MOV AL,4EH OUT 72H,AL 例(286) 设8253芯片的端口地址为388H?38BH。现要求计数器0工作在方式3,计数初值为2354,十进制计数;计数器1工作在方式2,计数初值为18H,二进制计数。试根据上述要求编写初始化程序及读取计数器0当前计数值的程序。 ;计数器0的初始化程序 MOV DX,38BH ;给计数器0送控制字 MOV AL OUT DX,AL MOV DX,388H ;送计数初值的低8位 MOV AL,54H OUT DX,AL MOV AL,23H ;送计数初值的高8位 OUT DX,AL ;计数器1的初始化程序 MOV DX,38BH ;给计数器1送控制字 MOV AL OUT DX,AL MOV DX,389H ;计数初值送低8位 MOV AL,18H OUT DX,AL ;计数器0当前计数值读出程序 MOV DX,38BH ;送计数器0当前计数值锁存命令 MOV AL,00H OUT DX,AL MOV DX,388H ;读出当前计数值的低8位 IN AL,DX MOV CL,AL IN AL,DX ;读出当前计数值的高8位 MOV CH,AL 例1:某8253端口地址为F8H~FBH,欲用通道0以方式1,按BCD计数,计数值为5080。 1.确定通道控制字; 2.计数值的低8位为80; 3.计数值的高8位为50。 0 0 1 1 0 0 1 1 初始化程序为: MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL 在计数过程中,8253读计数器现行值的方法:(将计数值存入内部锁存器) MOV AL,43H ;计数器1的锁存命令 OUT 0FBH,AL;写入控制寄存器 IN AL,0F9H ;读低8位 MOV CL,AL ;存入CL中 IN AL,0F9H ;读高8位 MOV CH,AL ;存入CH中 第二节
文档评论(0)