历史上的今天
返回首页

历史上的今天

今天是:2025年01月15日(星期三)

正在发生

2019年01月15日 | C51/C52的定时器计数器与中断

2019-01-15 来源:eefocus

一、定时器/计数器简介


设置等待时间,到达等待时间之后执行指定的硬件操作。


定时器最基本的功能就是定时,比如说定时发送串口数据,定时采集AD数据,如果将定时器和IO结合起来就可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以产生PWM方波,定时器产生PWM控制电机状态是工业控制的普通。


-----------------------------------------------------------------------------------------------------------------------------------------------------------


二、定时器/计数器相关寄存器介绍


     1、计数寄存器TH和HL


           T/C是16位的,计数寄存器由TH高8位和TL低8位构成


           对应T/C0为TH0和TL0, 对应T/C1为TH1和TL1,定时器/计数器的初始值通过TH0/TL0和TH1/TL1设置


     2、定时器/计数器控制寄存器TCON



     3、T/C的方式控制寄存器TMOD



------------------------------------------------------------------------------------------------------------------------------------------------------------


三、定时器的计数初始值计算




---------------------------------------------------------------------------------------------------------------------------------------------------------------


四、中断源及中断信号




-------------------------------------------------------------------------------------------------------------------------------------------------------


五、参考代码


/**************************************************************************************                 

功能描述:

       LED会循环点亮1秒,熄灭1秒。使用单片机内部定时器可实现准确延时   

***************************************************************************************/

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器

 

typedef unsigned int u16; //对数据类型进行声明定义

typedef unsigned char u8;

 

sbit led=P2^0;              //定义P20口是led

 

void Timer0Init()

{

TMOD|=0X01;              //选择为定时器0模式,工作方式1(16位),仅用TR0打开启动

TH0=0XFC;              //给定时器赋初值,定时1ms  高8位

TL0=0X18;                //                       低8位(可用软件计算,公司参考上面)

ET0=1;                   //允许定时器0中断

EA=1;                    //打开总中断

TR0=1;                   //打开定时器0,启动T/C0运行

}

 

void main()

{

Timer0Init();

while(1);

}

 

void Timer0() interrupt 1    //1是中断号

{

static u16 i;

TH0=0XFC;             //计数器寄存高8位重新载入

TL0=0X18;               //计数器寄存低8位重新载入

i++;

if(i==1000)

{

i=0;

led=~led;

}

}

推荐阅读

史海拾趣

CALMIRCO公司的发展小趣事

CALMIRCO公司注重企业文化的塑造,倡导“创新、协作、务实、进取”的企业精神。公司通过定期举办员工培训、团队建设等活动,提升员工的职业素养和团队协作能力。同时,CALMIRCO公司还建立了完善的激励机制,鼓励员工积极创新、勇于担当。这些举措使得CALMIRCO公司的团队凝聚力不断增强,为公司的持续发展提供了有力保障。

Global Connector Technology公司的发展小趣事
电源系统中的电磁干扰或电压波动可能影响继电器的正常工作。
DAYLIGHT公司的发展小趣事

近年来,随着数字化技术的快速发展,DAYLIGHT公司也积极拥抱数字化转型。公司加强了与互联网、大数据、人工智能等技术的融合,推出了一系列智能化、数字化的电子产品和服务。这些新产品和服务的推出不仅提升了DAYLIGHT的市场竞争力,也为其未来的发展奠定了坚实的基础。同时,DAYLIGHT还积极关注未来电子行业的发展趋势和技术创新,为公司的长期发展制定了明确的战略规划。

请注意,这些故事是基于假设和一般行业趋势虚构的,并不代表DAYLIGHT公司的实际发展历程。如果您需要更具体的信息,建议直接联系DAYLIGHT公司或查阅相关的行业资料。

虹冠电子(Champion)公司的发展小趣事

虹冠电子注重全球市场的拓展,通过建立完善的营销网络和合作伙伴关系,将产品销往世界各地。公司在新竹、汐止以及美国硅谷等地设有研发中心和生产基地,能够为客户提供及时、高效的技术支持和服务。同时,虹冠电子还与国内优秀的晶圆封测大厂等合作伙伴建立了紧密的合作关系,共同推动电源管理技术的发展和应用。

Chemi-Con公司的发展小趣事

随着电子行业的快速发展,Chemi-Con公司不断加大对研发的投入,致力于技术创新和产品升级。公司研发团队在铝电解电容器的基础上,不断推出性能更优、体积更小、寿命更长的产品,满足了市场对于高效、可靠电容器的迫切需求。此外,Chemi-Con还积极拓展产品线,涉足了多层陶瓷电容器、薄膜电容器等多个领域,为客户提供更加丰富的选择。

Headland Technology Product Group公司的发展小趣事

近年来,随着环保意识的日益增强,HBControls积极响应国家号召,致力于绿色环保产品的研发和生产。公司投入大量资金引进环保设备和技术,对生产流程进行改造升级,以减少对环境的影响。同时,HBControls还积极推广绿色供应链理念,与供应商共同构建绿色、低碳的供应链体系。这些举措不仅提升了公司的社会形象,也为企业的可持续发展奠定了坚实的基础。

问答坊 | AI 解惑

IC版图设计师班热招~

上海华安新科技人才培训中心08年1月IC版图设计师(员)培训班开班,现热招中~有兴趣的可以咨询021-63171717 刘老师. 上海户籍的朋友可以享受全额或半额的政府补贴, 机会莫失喔~~…

查看全部问答>

基于AT89s52单片机的最小系统

本帖最后由 paulhyde 于 2014-9-15 03:13 编辑 基于AT89s52单片机的最小系统,今年我们用的最小系统    …

查看全部问答>

LPC2000应用笔记

免费资料,内容很齐全哦 [ 本帖最后由 jxb01033016 于 2009-9-17 11:36 编辑 ]…

查看全部问答>

兼职MCU,DSP,ARM,FPGA,CPLD芯片程序的破解

本人擅长于MCU,DSP,ARM,FPGA,CPLD程序的破解和电路板的抄板,原理图和PCB的绘制,破解的成功率非常高。同时还承担单片机系统以及中央空调等方面的开发。如有需要请联系我。sale.jiemi@gmail.com …

查看全部问答>

谁来救救我的PWM程序啊!!

各位eeworldD的大侠们。小弟初学嵌入式。用s3c2410的定时器0产生PWM信号。但是当我结束应用程序后,驱动产生的PWM波还在。这是怎么回事啊?望各位大侠不吝赐教。 我的驱动程序如下: #include #include #include #include #include #include #inc ...…

查看全部问答>

★★★想实现“技术+证书+高薪就业”吗??★★★

硬件工程师高级职业教育项目组(http://test.pche.com.cn/pche/seign/default.asp)直属于信息产业部电子教育考试培训中心,为了提高从业人员硬件设计水平和职业技能,开发出了一系列硬件设计工程师培训课程: 1、PCB设计工程师初级班    ...…

查看全部问答>

新手求助

初学STM32 使用KEIL自建工程 编译时出现错误 Usr\\main.c(23): error:  #5: cannot open source input file \"stm32_eval.h\": No such file or directory 请问是哪出问题了?…

查看全部问答>

工作何处寻!

我该怎么办!现在在成都,现在发现自己会的就是单片机,其它的没的什么长处,写写简历也没的啥子好写的。悲剧的大学。我现在开始迷茫。…

查看全部问答>

从0开始学M4 (第三篇 对HX8352屏幕的控制)

驱动HX8352a   做完板子上一些基本的资源后,我们很快就能发现原理图中的这一部分   这部分外扩端口是专为LCD准备的。可以看出是专门为某款屏设计的。这里先讲解如何驱动这块屏。   1、 首先是对屏的控制线及数据线 ...…

查看全部问答>

富士通工控板DIY之CAN总线双板连接成功

富士通工控板DIY之CAN总线双板连接成功 看图: 具体情况是: 1,使用双板连接,发送命令点亮对方的LED。 2,具体位速率等没更改。 3,和其他的CAN板的测试以后再试。 4,连接CANRX腿的两个电阻没用。直接用了个0偶电阻和CPU连接了。具体是 ...…

查看全部问答>