第7章:常用IO芯片(lyz)(v1.0).pptVIP

  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文档。上传文档
查看更多
第6章:常用可编程接口 主讲老师:廉迎战 副教授 7.1.1 定时计数概述 1、概念 定时:微机系统,定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时。 计数:如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数 。 7.1.1 定时计数概述 2、实现方法: 软件定时,是利用CPU每执行一条指令都需要几个固定的指令周期的原理,运用软件编程的方式进行定时。 硬件定时,是利用专门的定时电路实现精确定时。这种定时方式又可分为简单硬件定时和利用可编程接口芯片实现定时。 软、硬件结合法,设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。 7.1.2 8253计数器/定时器 2、内部结构 1).数据总线缓冲器 8253内部实现与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包 括某一方面时刻的实时计数值。 2).读/写控制逻辑 控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来 的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。 3).控制字寄存器 在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。 4).计数通道0#、1#、2#: 这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,和一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。 另外,计数器的值为0的状态,还反映在状态锁存器中,可供读取。 7.1.2 8253计数器/定时器 3、8253引脚 8253芯片为DIP24引脚 面向CPU 1).D7~D0:双向、三态数据线引脚,用以与系统的数据线连接,传送控制、数据及状态信息。 2).-RD:来自于CPU的读控制信号输入引脚,低电平有效。 3).-WR:来自于CPU的写控制信号输入引脚,低电平有效。 4).-CS:芯片选择信号输入引脚,低电平有效。 5).A1、A0:地址信号输入引脚,一般接CPU地址总线的A1、A0位,用以选择8253芯片的通道及控制字寄存器。 8253芯片为DIP24引脚 面向外部设备 6)CLKi:i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。 7)GATEi:i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。 8)OUTi:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向 CPU发出的中断请求信号。 7.1.2 8253计数器/定时器 5、8253控制字 1)控制字格式 2)、8253的初始化编程 1、写 8253的控制字,写入控制寄存器(A1,A0 = 11) 2、写入计数值,写到相应的计数器。 3、计数过程中读计数值 例1:设8253的端口地址为:04H~07H,要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,进行初始化编程。 控制字为=50H 计数值为:80H 初始化程序: MOV AL,50H OUT 07H,AL MOV AL,80H OUT 05H,AL 3)读取8253通道中的计数值 8253可用控制命令来读取相应通道的计数值,由于计数值是16位的,而读取的瞬时值,要分两次读取,所以在读取计数值之前,要用锁存命令,将相应通道的计数值锁存在锁存器中,然后分两次读入,先读低字节,后读高字节。 当控制字中,D5、D4=00时,控制字的作用是将相应通道的计数值锁存的命令,锁存计数值在读取完成之后,自动解锁。 如要读通道1的16位计数器,编程如下:地址F8H~FBH。 MOV AL,40H; OUT 0FBH,AL ;锁存计数值 IN AL,0F9H MOV CL,AL;低八位 IN AL,0F9H; MOV CH,AL;高八位 7.1.2 8253计数器/定时器 6、82

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档