- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机原理及其应用——第九章:计数器/定时器;定时信号和计数器
计算系统中经常用到定时信号:动态RAM刷新、系统的时间和日历以及定时检测和实时控制系统中等都需要定时信号。计数器是对各种脉冲信号进行计数,而定时器则是对时钟信号进行计数!
实现定时功能主要有三种方法:
1、软件定时
2、不可编程的硬件定时
3、可编程的硬件定时
;软件定时(也称软件延时)
定时时间由软件编程(循环执行某段程序)来控制。该方法简单、费用低;但CPU的利用率低。
不可编程的硬件定时
定时时间由不可编程器件和外围电路控制,通过改变电路参数,可在一定的范围内改变定时时间,定时精度不高。如:555芯片。
可编程的硬件定时
定时时间和范围是通过软件对可编程器件进行编程控制;
由CPU的时钟信号提供时间基准,定时精确。与CPU并行工作,应用广泛,如8253,8254。;9.1 可编程计数器/定时器的工作原理
定时器和计数器
定时器:当设置好定时常数后,在时钟信号作用下,进行定时的减“1”计数,定时时间到(减“1”计数回零)自动重新计数,就从输出端输出周期均匀、 频率恒定的脉冲信号。
定时器强调的是精确的时间,其应用包括:
一天24小时的计时,称为日时钟。
在监测系统中,对被测点的定时取样。
在键盘去抖中,一般延迟一段时间,再读。
在微机控制系统中,控制某工序定时启动。;
计数器 :当设置好计数常数后,在时钟信号(或外接脉冲信号)的作用下,进行减“1”计数,计数次数到(减1计数回零),从输出端输出一个脉冲信号。
计数器器强调的是脉冲的数目,应用包括:
对零件和产品的计数;
对大桥和高速公路上车流量的统计等等。;9.2 8253/8254的编程结构和外部信号
Intel 8253/8254是一种可编程的计数器/定时器芯片,采用NMOS工艺制成。
8253/8254的引脚与功能完全相同,两者的区别在于:8254的频率高于8253,且只有8254有状态寄存器。
8253内部具有3个独立的16位计数器,分别称为计数器0、计数器1和计数器2;
通过编程,每个计数器均有6种工作方式,并且都可以按2进制或10进制2种格式进行计数;
可用作可编程方波频率产生器、分频器、程控单脉冲发生器等。;8253的内部结构与引脚信号; 8253与CPU的接口
8 位数据线:D0 ~ D7
寻址控制线:A0、A0、/CS
读写控制线:/RD、/WR
8253与外设的接口
三个独立的16位计数器/定时器
时钟输入:CLK
输入门控:GATE
波形输出:OUT ;8253的数据总线缓冲器
一个8位双向的三态缓冲器,作为8253和系统数据总线之间的接口;
实现CPU与8253之间数据的传送;
传送信息包括:
进行初始化编程时的控制字
向某一计数器通道写入的计数初值
从某一计数器通道读出的当前计数值 ;读/写控制逻辑;;9.3 8253/8254的控制字和状态字
1) 控制寄存器和控制字
模式设置控制字;读出控制字;2) 状态寄存器和状态字;9.4 8253/8254的编程命令
对计数器设置初值前首先设定模式控制字;
计数器初值的设置必须与模式控制字中的规定相符合,即8位/16位;
要读取状态字和计数初值,必须先用控制进行锁定,即先写后读!
写入命令包含设置控制字、设置计数初值和锁存命令;
读出命令包含读取计数器的当前计数值,对于8254还包括状态寄存器中的状态字!;8253的初始化过程分两步完成:
先写入控制字再写入计数初值
1、写入控制字
由OUT指令向控制字寄存器写入,用来选定计数器通道、规定该计数器的工作方式和计数方式。
写入控制字还起到复位的作用,使得输出端OUT变为规定的初始状态,并使计数器清0。
;
2、写入计数初值
由OUT指令向某计数器送一个计数初值,可以是8/16位数据。
若是8位数,一条OUT指令即可完成初值的设置;若是16位数,必须用两条OUT指令来完成,且先送低8位数据,后送高8位数据。
若计数初值为0时,要分成两次写入。0在在二进制计数方式时,表示65536,BCD计数方式时,表示10000。
三个计数器初始化没有先后顺序。 ; 【例】 某微机系统中,8253的3个计数器端口地址分别为3F0H、3F2H和3F4H,控制端口地址为3F6H,若要求8253的通道0工作于方式3,计数初值N=1234,BCD方式计数,编写初始化程序。;9.5 8253/8254的工作模式
写入控制字后,芯片内部的逻辑控制电路立即复位,输出端OUT进行初始状态;
计数器初值在写入以后,要经过一个时钟的上升沿和下降沿,计数执行部件才开始计数;
门控信号GATE的触发方式:包括电平触发和边沿触发。
;1、模式0—
文档评论(0)