当前位置:首页 > 单片机 > 单片机
[导读]8051定时器/计数器介绍:8051有两个定时器/计数器,而8052则有三个定时器/计数器。定时器、计数器本质都是一样的,定时器通过对内部脉冲进行计数来达到计时的目的,而计数器是对外部输入脉冲进行计数,所以它们的本质

8051定时器/计数器介绍:
8051有两个定时器/计数器,而8052则有三个定时器/计数器。定时器、计数器本质都是一样的,定时器通过对内部脉冲进行计数来达到计时的目的,而计数器是对外部输入脉冲进行计数,所以它们的本质都是一样的。

定时器/计数器的工作模式:
定时器/计数器0有四种工作模式,而定时器/计数器1只有三种工作模式,工作模式由TMOD寄存器的M1和M0位控制。

M1M0工作模式00013位定时器/计数器。01116位定时器/计数器。1028位自动重装定时器/计数器。113模式3只能用于定时器/计数器0,T0被分为两个8位定时器/计数器,TL0可以作为定时器/计数器来使用,由T0的控制位来控制,而TH0只能用于计数器,有T1的控制位来控制。GATEGATE为0时,由TRx(软件控制)来控制定时器/计数器的启动和停止,当GATE为1时,定时器/计数器的启动由TRx和引脚INTx共同来控制(硬件来控制,仅当TRx=1并且引脚INTx输入高电平时才工作)。C/T定时器/计数器选择位,0工作在定时器模式,1工作在计数器模式。TCON寄存器:TFx定时器/计数器溢出标志位,当定时器/计数器计数溢出时,由硬件自动置1,在编写程序时可以通过检测该位来判断是否达到定时时间,需要通过软件来清零。工作在中断方式下不需要清零,因为在执行中断服务程序时会自动给我们清零。TRx定时器/计数器运行控制位。IE寄存器:ETx定时器/计数器中断使能位。EA全局中断使能位。


THx、TLx初值计算:
假设8051外接12MHz的晶振,由于8051的机器周期是时钟周期的12分频,所以8051的机器周期为1MHz,那么计数一次的时间刚好为1us,如果定时器工作在模式0下,那么可以最长计时为8192us,工作模式1可以最长计时为65536us。那么假设8051工作在模式1下,定时1ms,那么THx、TLx的初值应该为多少呢?如果定时1ms,也就意味着需要计数1000次,那么初值就应该为65536-1000=64536,也就是THx=0xFC,TLx=0x18。
根据上面可以总结出如下公式:
定时时间=(最大计数值-计数器初值)*机器周期=(最大计数值-计数器初值)*(12000000/晶振频率(Hz))(us);
计数器初值=(最大计数值-定时时间*(晶振频率(Hz)/12000000));
套用这个公式,初值=(65536-1000*(12000000/12000000))=64536=0xFC18,那么TH就应该为0xFC,TL为0x18。

整个程序如下:

/*timer.c*/

#include

#defineOSC_FREQ12000000UL

#defineTIMER_MODE00x00

#defineTIMER_MODE10x01

#defineTIMER_MODE20x02

#defineTIMER_MODE30x03

voidtimer0_init(void)

{

TMOD&=0xF0;

TMOD|=TIMER_MODE1;/*Timer0workon16-bittimermode*/

TH0=(65536-1000*(OSC_FREQ/12000000))>>8;

TL0=(65536-1000*(OSC_FREQ/12000000))&0x00FF;

TR0=1;/*Turnontimer0*/

}

voiddelayms(unsignedintn)

{

while(n--){

while(!TF0);

TF0=0;

TH0=(65536-1000*(OSC_FREQ/12000000))>>8;

TL0=(65536-1000*(OSC_FREQ/12000000))&0x00FF;

}

}


/*timer.h*/

#ifndef__TIMER_H

#define__TIMER_H

externvoidtimer0_init(void);

externvoiddelayms(unsignedintn);

#endif/*__TIMER_H*/


/*main.c*/

#include

#include"timer.h"

#defineled1P2_0

voidmain(void)

{

timer0_init();

while(1){

led1=0;

delayms(1000);

led1=1;

delayms(1000);

}

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭