接口第5章接口技术8253.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
接口第5章接口技术8253

5.4 可编程计数/定时器8253 获得定时信号可以用三种方法: 1.软件定时:执行延时子程序,节省硬件,CPU利用率低,设计较麻烦 2.不可编程的硬件定时:用元器件搭成的延时电路使用不灵活 3.可编程的硬件定时:专用芯片。计数或定时时,不占用CPU,大大提高CPU的利用率 可编程计数器/定时器的工作原理 ? 可编程计数器/定时器具有两种功能: 1.计数器:设置好初值后,计数器被启动 ,每当计数脉冲到来,进行-1计数,当减到0时输出一信号。 2.定时器:设置好定时常数后,定时器开始工作,在固定频率的时钟下,进行-1计数,按定时常数不断输出时钟周期整数倍的定时间隔。 两者的主要差别是: 作为计数器,在减到“0”之后输出一个信号,此次 计数过程便结束了; 作为定时器,在减到“0”之后输出一个信号,接着自动重装计数初值开始下一个周期的定时,如此连续不断地产生信号。 特点:基于计数器的减1操作。 ? 典型的计数器/定时器的基本原理图 ? 计数器/定时器的工作方式是指时钟脉冲和门脉冲如何配合来产生输出。 有以下几种工作方式: (1) 门脉冲控制时钟输入。 门脉冲有效,时钟有效; 门脉冲结束,时钟无效。 ⑵ 用门脉冲重新启动计数。 ⑶ 用门脉冲停止计数。 计数器在不停地计数,当门脉冲到来时,计数停止,并使OUT为高电平。 ⑷ 单一计数。 与门脉冲无关,只要门脉冲为有效电平就可以。计数器按给定的初值进行减1计数,到0时,输出停止。 ⑸ 循环计数。 每当计数值=0时,给出一个输出信号,然后又从预置计数值寄存器获得计数初值,开始新的计数过程。 可编程定时/计数器8253的主要功能 每个芯片内部有3个独立的16位计数器通道。 每个计数通道都可以单独使用,都可按照二进制或BCD码计数。0000H—FFFFH 216 65536 0000—9999 104 每个计数器的计数速率可高达2MHz,最高计数速率为2.6MHz。 每个计数器有6种工作方式,可由程序设置。 所有输入输出与TTL兼容。 5.4.1 8253的内部结构 5.4.2 8253的外部引脚及功能 1. 数据总线缓冲器 8位、双向、三态的寄存器 功能: (1)CPU通过数据总线缓冲器向8253写入确定工作方式的命令字。 (2)向某个计数器写入计数初值。 (3)从某一计数器读取当前的计数初值。 2. 读/写逻辑电路 CS:片选信号,输入,低电平有效。 A1、A0:输入信号,用来对3个计数器和控制寄存器进行寻址,与CPU的系统地址线相连。 A1A0=00 选中计数器0 A1A0=01 选中计数器1 A1A0=02 选中计数器2 A1A0=03 选中控制字寄存器 WR:写引脚,输入,低电平有效。 RD:读引脚,输入,低电平有效, 3. 计数通道 3个相互独立的计数器0、计数器1和计数器2。 每个计数器包含 (1)一个16位的初值寄存器 (2)一个16位计数执行部件 (3)一个16位输出锁存器 CLK:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。 GATE:门控信号,输入,由外部信号通过GATE端控制计数器的启动计数和停止计数的操作。 OUT:时间到或计数结束输出引脚。当计数器计数到0时,在OUT引脚有输出。 计数器内部结构 计数初值寄存器CR 用OUT指令设置。 计数器工作过程 计数器工作过程 计数器工作过程 计数器工作过程 计数器工作过程 计数器工作过程 1. 8253初始化的顺序 (1) 先将控制字写入控制寄存器中。 (2) 写入定时或计数的初值。 若规定只写入低8位,则写入的为计数值的低8位,高8位自动置0; 若规定只写入高8位,则写入的为计数值的高8位,低8位自动置0; 若是16位计数值,则分两次写入,先写入低8位,再写入高8位。 编程命令分两类: (1)读出命令——读取计数器的当前值 (2)写入命令——包括写入控制字,写入计数 初 值,写入锁存命令 读输出锁存器的顺序 (1) 输出锁存器锁存或停止计数以保存当前计数值。 读出当前的计数值有两种方法: 1)把当前计数值输出到 锁存器锁存 2)通过GATE门控信号发一低电平信号,使计数执行部件不作减1操作,计数过程停止。 (2) 从输出锁存器读数 注意:读8位和读16位的问题 若是读16位的数据,需分两次读出。先读低字节,再读高

文档评论(0)

wumanduo11 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档