定时器和计数器-微机原理与接口技术.DOC

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

第10章 定时器和计数器 在微型计算机系统中常需要用到定时功能,如在IBM PC机中需要有一个实时时钟以实现计时功能,还要求按一定的时间间隔对动态RAM进行刷新,另外扬声器的发声也是由定时信号来驱动的。在计算机实时控制和处理系统中,则要按一定的采样周期对处理对象进行采样,或定时检测某些参数等等,都需要定时信号。此外,在许多微机应用系统中,还会用到计数功能,需对外部事件进行计数。 主要有三种方法来实现定时功能,即软件定时、不可编程的硬件定时和可编程的硬件定时。软件定时是最简单的定时方法,它不需要硬件支持,只要让机器循环执行某一条或一系列指令,这些指令本身没有具体的执行目的,但由于执行每条指令都需要一定的时间,重复执行这些指令就会占用一段固定的时间。因此,习惯上将这种定时方法称为软件延时。不可编程器件常用555芯片,555芯片加上外接电阻和电容就能构成定时电路。这种定时电路结构简单,价格便宜。通过改变电阻和电容的值可以在一定范围内改变定时时间,但这种电路在硬件已连接好的情况下定时时间和范围就不能由程序来控制和改变,而且定时精度也不高。可编程定时器/计数器电路利用硬件电路和中断方法控制定时,定时时间和范围完全由软件来确定和改变,并由微处理器的时钟信号提供时间基准,因这种时钟信号由晶体整荡器产生,故计时精确稳定。但该时钟信号频率太高所以要把它送到专门的计数器/定时器芯片进行分频后才能产生所需要的各种定时信号。 10.1 定时计数器8253概述10.1.1 定时计数器8253的内部结构D0~D7的连接。其3个基本功能为:向8253写入确定其工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。 2. 读/写控制电路:由CPU发出的读写信号和地址信号来选择读出或写入的寄存器,并确定数据传送方向,即读出或写入。 3. 控制字寄存器:接收CPU送来的控制字,用来选择计数器及相应的工作方式。控制字寄存器只能写入不能读出。 4. 通道:8253有3个独立的内部结构完全相同的计数通道(计数器)。计数通道由16位计数初值寄存器、减1计数器和当前数值锁存器组成,如图10.2所示 图10.1 8253内部结构框图 图10.2 计数通道内部逻辑图 ① 计数初值寄存器:存放计数初值(定时常数、分频系数),长度为16位,最大计数值为65536(64K)。计数初值寄存器和减1计数器的初值在初始化时同时装入,且计数初值寄存器的计数初值在计数过程中保持不变。计数初值寄存器的作用是在自动重装操作中为减1计数器提供计数初值,以便重复计数。所谓自动重装是指当减1计数器减1至0后可以自动把计数初值寄存器的内容装入减1寄存器,重新开始计数。 ② 减1计数器:进行减1计数操作,来一个脉冲就做一次减1运算,至将计数初值减为0。如果要连续进行计数,则将计数初值寄存器的内容重装到减1计数器。 ③ 当前计数值锁存器:锁存减1计数器的内容供读出和查询。由于减1计数器的内容随输入时钟脉冲不断改变,为读取这些不断变化的当前计数值只有把它送到当前计数值锁存器加以锁存才能读出。 10.1.2 定时计数器8253芯片的引脚 图10.3 8253芯片引脚信号 1. 数据总线D7~D0:三态输入/输出线。连接8253和系统数据总线,是8253和CPU接口数据线,供CPU向8253进行读写数据、传送命令和状态信息。 2. 片选线:输入信号,低电平有效。当为低电平时,CPU选中8253,可以向8253进行读写;当为高电平时,CPU未选中8253。由CPU输出的地址码经译码产生。 3. 读/写信号/:输入信号,低电频有效。它由CPU发出,用于对8253寄存器进行读/写操作。 4. 地址线A1A0:与系统地址总线相连。当=0,8253被选中,A1A0 A1 A0 操 作 PC微机 0 1 0 0 0 加载T/C0(向计数器0写入“初始值”) 40H 0 1 0 0 1 加载T/C1(向计数器1写入“初始值”) 41H 0 1 0 1 0 加载T/C2(向计数器2写入“初始值”) 42H 0 1 0 1 1 向控制寄存器写入“方式控制字” 43H 0 0 1 0 0 读T/C0(从计数器0读出“当前计数值”) 40H 0 0 1 0 1 读T/C1(从计数器1读出“当前计数值”) 41H 0 0 1 1 0 读T/C2(从计数器2读出“当前计数值”) 42H 0 0 1 1 1 无操作三态 1 × × × × 禁止三态 0 1 1 × × 无操作三态 5. 计数器时钟信号CLK:CLK为输入信号。3个通道各有一个独立的时钟输入信号分别为CLK0、CLK1、CL

文档评论(0)

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

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

1亿VIP精品文档

相关文档