1 工作方式0
定时器/计数器的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH(0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。
我们用这个图来讨论几个问题:
M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。
C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们编程者。如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多开始学习者却会有此困惑。
GATE:看图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况
GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。
GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1管脚的控制,只有TR1为1,且INT1管脚也是高电平,开关才合上,计数脉冲才得以通过。这个特性能用来测量一个信号的高电平的宽度,想想看,怎么测?
为什 么在这种模式下只用13位呢?干吗不用16位,这是为了和51机的前辈48系列兼容而设的一种工作式,如果你觉得用得不顺手,那就干脆用第二种工作方式。
2 工作方式1
工作方式1是16位的定时/计数方式,将M1M0设为01即可,其它特性与工作方式0相同。
3 工作方式2
在介绍这种式方式之前先让我们思考一个问题:上一次课我们提到过任意计数及任意定时的问题,比如我要计1000个数,可是16位的计数器要计到65536才满,怎么办呢?我们讨论后得出的办法是用预置数,先在计数器里放上64536,再来1000个脉冲,不就行了吗?是的,但是计满了之后我们又该怎么办呢?要知道,计数总是持续重复的,流水线上计满后马上又要开始下一次计数,下一次的计数还是1000吗?当计满并溢出后,计数器里面的值变成了0(为什么,能参考前面课程的说明),因此下一次将要计满65536后才会溢出,这可不符合要求,怎么办?当然办法很简单,就是每次一溢出时执行一段程序(这常常是需要的,要不然要溢出干吗?)能在这段程序中做把预置数64536送入计数器中的事情。所以采用工作方式0或1都要在溢出后做一个重置预置数的工作,做工作当然就得要时间,一般来说这点时间不算什么,可是有一些场合我们还是要计较的,所以就有了第三种工作方式自动再装入预置数的工作方式。
既然要自动得新装入预置数,那么预置数就得放在一个地方,要不然装什么呢?那么预置数放在什么地方呢?它放在T(0/1)的高8位,那么这样高8位不就不能参与计数了吗?是的,在工作方式2,只有低8位参与计数,而高8位不参与计数,用作预置数的存放,这样计数范围就小多了,当然做任可事总有代价的,关键是看值不值,如果我根本不需要计那么多数,那么就能用这种方式。看图4,每当计数溢出,就会打开T(0/1)的高、低8位之间的开关,计预置数进入低8位。这是由硬件自动完成的,不需要由人工干预。
常常这种式作方式用于波特率发生器(我们将在串行接口中讲解),用于这种用途时,定时器就是为了供给一个时间基准。计数溢出后不需要做事情,要做的仅仅只有一件,就是重新装入预置数,再开始计数,而且中间不要任何延迟,可见这个任务用工作方式2来完成是最妙不过了。
4 工作方式3
这种式作方式之下,定时/计数器0被拆成2个独立的定时/计数器来用。其中,TL0能组成8位的定时器或计数器的工作方式,而TH0则只能作为定时器来用。我们知道作定时、计数器来用,需要控制,计满后溢出需要有溢出标记,T0被分成两个来用,那就要两套控制及、溢出标记了,从何而来呢?TL0还是用原来的T0的标记,而TH0则借用T1的标记。如此T1不是无标记、控制可用了吗?是的。
一般情况处,只有在T1以工作方式2运行(当波特率发生器用)时,才让T0工作于方式3的。
关键字:单片机 定时 计数器 工作方式
引用地址:
单片机定时/计数器的四种工作方式
推荐阅读最新更新时间:2024-03-16 15:40
DIY 6位数显频率计
1.实验任务 利用AT89S51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。要求能够对0-250KHz的信号频率进行准确计数,计数误差不超过±1HZ。 2.电路原理图 图4.31.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P0.0-P0.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 (2).把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 (3).把“单片机系统”区域中的P3.4(T0)端子用导线连接到“频率产生器”区域中的W
[单片机]
STM32单片机和51单片机区别
单片机简介 单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已。 51单片机和STM32单片机 51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来随着flash ROM技术的发展,8031单片机取得了长足的进展成为了应用最广泛的8bit单片机之一,他的代表型
[单片机]
基于MCU控制的自动平衡吊具
随着国民经济的高速发展,起重吊运作业在经济建设的各个领域中使用得愈来愈频繁和普遍。我国不断勘探出各种类型的矿山、油田,多数企业都是自己制造吊具,专业性、安全性差距较大;此外航天、国防、建筑等行业给高端吊索具创造了无限的发展空间,吊索具在技术方面不断刷新记录。 在航空航天、精密机械等重要领域,随着关键部件质量要求的提高,对起重吊装和装配操作提出了很高的要求。自动平衡吊具是一种由微处理器控制的全自动吊具,它可以在起吊过程中快速的自动调平,使被吊物的质心在吊具本身得到调整,从而使整个起吊过程中被吊物始终保持在水平状态;也可以使被吊物在起吊过程中快速地调姿,使被吊物保持一个任意的预先设定的姿态。满足上述领域中对起重吊装的高要求,是实现安全、
[单片机]
30-基于51单片机出租车计价器(霍尔测速)
具体实现功能 系统由AT89C52单片机+霍尔传感器模块+LCD1602液晶屏+DS1302时钟模块+AT24C02掉电存储模块+直流电机+按键模块+电源构成。 具体功能: 1、无乘客模式:显示当前时间; 2、切换到乘客模式:可以显示起步价(三公里内)、单价(三公里后)、总价(元)、里程和乘车时间,可以按照里程或计时两种模式收费; 3、里程模式收费:在高速情况下,按照起步价和里程单价收费 4、计时收费模式:在低速情况下,按照计时时间和时间单价收费 5、按清零键,计价器可清除计价。 6、可以设置白天和夜晚的起步价、单价,可以设置计时模式的单价; 7、根据当前时间,白天和夜晚的收费不同。 液晶显示的
[单片机]
MSP430学习笔记2-跑马灯程序,熟悉定时器寄存器的配置
这个例子主要还是熟悉有关定时器A的寄存器配置以及IAR的配置方式。 /*********************************************** 程序功能:实现流水灯以三种流动方式和四种流动速度 的不同组合而进行点亮 流动 ------------------------------------------------ 拨码开关设置:将LED位拨至ON,其余拨至OFF 测试说明:观察流水灯流动顺序和速度的变化 ************************************************/ #include msp430x14x.h typedef unsig
[单片机]
基于P89V51单片机的电力线载波温湿控制系统设计
以单片机为核心的控制系统可准确实现交互信息的输入输出,信息量大,被广泛应用于工控系统、移动电子设备中。利用电力线网络作为高速数据的传输媒介,能够创造出很高的经济效益和社会效益。电力线载波通讯是利用电网的电力线作为传输媒介的有线传输模式,作为载波通讯在同一电力变压器范围内无需另外架设线路,成本低,使用方便。双音多频DTMF(Dual Tone Multi Frequency)信号由于具有较强的抗干扰能力和可靠的信号传输等优点,已逐渐被广泛使用。本系统设计采用以单片机为核心结合PID算法的智能载波温湿控制系统,实验证明系统运行稳定可靠。 1 P89V51单片机简介 P89V51是PHILIPS生产的高性能、低功耗的8位
[单片机]
单片机产生扫频信号400Hz~3KHz-----占空比50%的方波
发一个产生扫频信号的程序,大家参考一下 //单片机晶振12MHz,这个程序如果要提高扫频信号输出的频率关键的一句是 //dataLoad=10000/(2*(4+i));//153个时钟周期 //记该指令的执行时间是N个时钟周期 //该程序可以输出地扫频信号的最高频率为fosc/(2*N*12) //如果想要提高扫频信号的最高频率使用时钟频率更高的芯片,或者可以 //更改这条语句,使之执行时间缩短 //这个程序的编程思路如下: //定时器0负责输出方波的定时,输入指定频率的方波 //定时器1负责0.1秒定时,如果时间到,则改变 //定时器0的控制的输出方波的频率 #include reg52.h sbit ou
[单片机]
以C8051F020单片机为控制核心的人机交互系统设计
在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计领域正发挥着越来越大的作用。FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 进行编程,可以实现常用的译码、地址选通等功能。 本文以C8051F020 单片机与FPGA 互连系统为控制核心,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。 1 系统设计方案: FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗, 以便将更多
[单片机]