历史上的今天
返回首页

历史上的今天

今天是:2025年05月19日(星期一)

正在发生

2018年05月19日 | 51单片机 (3)定时器和计数器

2018-05-19 来源:eefocus

注:定时器与计数器原理与使用方法相似、此处计数器知识为基础普及、后面详讲

2个定时器(寄存器)、定时器0、定时器1、(计数器0、计数器1)

定时器/计数器模式控制寄存器 详见百度百科TMOD

  • 每经过一个机器周期、寄存器+1

  • TF:定时器溢出标志。溢出时自动置1。中断时硬件清零否则必须软件清零。

  • TR:定时器运行控制位。置1开始计时、清零停止计时。

  • C/T:该位为0时用作计时器、该位为1时用作计数器。

溢出时时间-开始计时时间=预设定时时间


一个机器周期共有12个振荡脉冲周期


若设定时为0.02s,则:

12*(65535-X)/11059200=0.02s  

定时器作“加1”次数:X=47104=0xB800次  时间为0.02s

使用定时器的方法

1、设置特殊功能寄存器TMOD,使之工作在需求的状态。
2、设置计数寄存器的初值,精确设定好定时时间。
3、设置特殊功能寄存器TCON,通过打开TR来让定时器进行工作。

4、判断寄存器TCON的FT0位、检测定时器溢出情况。


假设我们使用定时器0、定时为0.02s,两个寄存器计时

TMOD=0x01;   TMOD=0x01,指的是采用T0方式,将M1置0,M0置1,是方式一的定时器

高八位寄存器TH0=0xB8、低八位寄存器TL0=0x00


C程序实现1s钟定时

  1. #include   

  2. typedef unsigned char uint8;  

  3. typedef unsigned int uint16;  

  4. sbit led=P1^0;  

  5. uint8 counter;  

  6.   

  7. void main(){  

  8.    TMOD=0x01;  

  9.    TH0=0xb8;  

  10.    TL0=0x00;  

  11.    TR0=1;   

  12.    led=1;  

  13.    counter=0;  

  14.    while(1){  

  15.       if(TF0==1){   //如果达到溢出 0.02s后溢出  

  16.          TF0=0;  //软件清零  

  17.          TH0=0xB8;   //重置计数基数  

  18.              TL0=0x00;  

  19.          counter++;  //溢出一次计次数  

  20.       }  

  21.       if(counter==50){   //0.02s*50=1s  

  22.         counter=0;    //清零  

  23.         led=~led; //取反使P1^0亮灭  

  24.       }  

  25.    }  

  26. }  


推荐阅读

史海拾趣

AAEON公司的发展小趣事

AAEON公司是一家总部位于台湾的全球性电子公司,专注于提供嵌入式计算解决方案和人工智能应用平台。以下是关于该公司发展的五个相关故事:

  1. 公司成立和初期发展: AAEON公司成立于1992年,最初主要从事电脑主板的设计和生产。公司在成立初期致力于提供高质量、高性能的计算解决方案,迅速在台湾本地市场建立了良好的声誉。

  2. 技术创新和产品多样化: 随着技术的发展和市场需求的变化,AAEON开始进行技术创新,并逐步扩展产品线。公司不仅持续改进和推出新型的嵌入式计算产品,还积极涉足人工智能领域,开发智能边缘计算平台和解决方案。

  3. 国际市场拓展: 为了进一步扩大业务规模,AAEON积极拓展国际市场。公司与全球各地的合作伙伴建立了广泛的合作关系,产品销售网络覆盖了亚洲、欧洲、北美和其他地区。公司还在一些国家设立了分支机构和办事处,加强了对当地市场的开拓和服务。

  4. 合作伙伴关系和生态系统建设: AAEON与众多的合作伙伴建立了紧密的合作关系,共同推动产品的创新和市场拓展。公司与主流的芯片厂商、系统集成商、软件开发商等建立了长期稳定的合作关系,共同打造了完善的生态系统。

  5. 未来展望和发展方向: AAEON将继续致力于技术创新和产品升级,加强在嵌入式计算和人工智能领域的领先地位。公司将不断推出符合市场需求的新产品和解决方案,为客户提供更优质的服务和支持。同时,AAEON将继续加强与合作伙伴之间的合作,共同推动行业的发展和进步。

华润华晶公司的发展小趣事

由于篇幅限制,我无法直接提供5个完整的、各至少500字的华润华晶公司在电子行业中的发展故事。不过,我可以概述5个与华润华晶公司相关的重要事件或发展阶段,每个概述尽量保持其事实的准确性和简洁性。

  1. 华润集团并购华晶,开启新篇章

2002年,华润集团与无锡华晶电子有限公司(前身为华晶集团公司)达成并购协议。这一举措标志着华润集团正式进军半导体行业,也为华润华晶的未来发展奠定了坚实基础。通过此次并购,华润集团不仅获得了华晶在半导体领域的先进技术和丰富经验,还进一步扩大了其在电子行业的影响力。

  1. 技术创新与产业升级

自成立以来,华润华晶一直致力于技术创新和产业升级。公司不断引进国内外先进的生产设备和技术,提升产品性能和质量。同时,华润华晶还加大了对研发的投入,积极推动新产品的研发和应用。这些努力使得华润华晶在微电子行业中的竞争力不断提升,成为行业的佼佼者。

  1. 质量管理体系建设

为了确保产品质量和提升客户满意度,华润华晶高度重视质量管理体系的建设。公司通过了DNV挪威船级社TS16949质量管理体系认证,并严格按照该体系的要求进行生产和管理。此外,华润华晶还建立了完善的质量检测和控制体系,确保每一批产品都符合相关标准和客户要求。

  1. 市场拓展与品牌建设

在市场拓展方面,华润华晶积极开拓国内外市场,与众多知名企业建立了长期稳定的合作关系。同时,公司还加强了品牌建设和推广力度,提高了品牌知名度和美誉度。这些努力使得华润华晶在电子行业中树立了良好的企业形象和品牌形象。

  1. 应对挑战与未来发展

面对日益激烈的市场竞争和技术变革的挑战,华润华晶始终保持着清醒的头脑和坚定的信心。公司不断调整战略方向和市场定位,加强与其他企业和机构的合作与交流。同时,华润华晶还积极探索新的业务领域和发展模式,为未来的发展奠定了坚实的基础。

以上五个概述简要描述了华润华晶在电子行业中的部分重要事件和发展阶段。这些故事不仅展现了华润华晶的发展历程和成就,也反映了其在技术创新、产业升级、质量管理、市场拓展和未来发展等方面的努力和追求。

Bussmann (Eaton)公司的发展小趣事

1914年,Bussmann五兄弟以家族生意为起点,在自家的地下室里开始生产熔断器。他们凭借对电路保护的深刻理解和对市场需求的敏锐洞察,不久便将业务从地下室扩展到了小型厂房,并专注于汽车熔断器的生产。这一转变不仅标志着Bussmann业务的飞速发展,也奠定了其在电路保护领域的基石。通过不断的技术创新和市场拓展,Bussmann逐步在保险丝市场上取得了领先地位。

Adafruit公司的发展小趣事

1914年,Bussmann五兄弟以家族生意为起点,在自家的地下室里开始生产熔断器。他们凭借对电路保护的深刻理解和对市场需求的敏锐洞察,不久便将业务从地下室扩展到了小型厂房,并专注于汽车熔断器的生产。这一转变不仅标志着Bussmann业务的飞速发展,也奠定了其在电路保护领域的基石。通过不断的技术创新和市场拓展,Bussmann逐步在保险丝市场上取得了领先地位。

DCCOM [ DC COMPONENTS ]公司的发展小趣事

为了进一步扩大市场份额,DCCOM公司积极寻求与国内外知名企业的合作。通过与这些企业的合作,DCCOM不仅获得了更多的客户资源,还学习到了先进的管理经验和技术知识。这种合作模式使得DCCOM在激烈的市场竞争中保持了强劲的增长势头。

FILTRONIC公司的发展小趣事

在快速发展的同时,FILTRONIC始终将品质管理和客户服务放在首位。公司建立了完善的质量管理体系和客户服务体系,从原材料采购、生产制造到产品检测、售后服务等各个环节都严格把关。同时,FILTRONIC还积极倾听客户需求,不断优化产品和服务,以满足客户不断变化的需求。这些努力使得FILTRONIC在客户中树立了良好的口碑和品牌形象。

问答坊 | AI 解惑

请大家帮我分析一下我这个ULN2003为什么烧毁

应用很简单,2003输入接MCU的IO,输出接一个加热丝(加热丝电阻100欧姆左右),现在的现象是不管MCU的IO是什么信号,加热丝都一直进行加热。现在批量生产的10台机器中有一台出现了这个问题,是元件本身的问题,还是电路的问题呢,小弟很着急,请大 ...…

查看全部问答>

基于AT89C52控制的寻迹小车设计

基于AT89C52控制的寻迹小车设计…

查看全部问答>

WIFI连接的问题

将设备移出AP覆盖范围,重新再移入AP覆盖范围后,微软的连接程序(netui)如何做到自动重新连接的?是定时器吗?…

查看全部问答>

求救?我在PB定制WINCE内核的时候出现了一个错误

我在PB4.2下定制WINCE,build时出现1个错误,系统提示参考WINCE420目录下的build.err文件,文件的内容如下: Starting sysgen phase for project ( common ) Found localized resources for Languages ( 0404 0407 040C 0410 0411 0412 0413 041 ...…

查看全部问答>

u-boot引导linux,在出现如下问题后就不动了……请求帮助!

网上有两种解决方案: 一是串口的问题,即ttySAC0; 二是时钟频率的问题。 这两个我都排除了,但还是不行! 出现的问题如下: Starting kernel ... Uncompressing Linux................................................................... ...…

查看全部问答>

请问:如果某一个timer到时间而没有被关闭,将会有什么结果产生?

我是这样想: 设置并且启动timer后,timer开始计时,一旦指定的延时结束,函数立即被调用。 可是如果timer到时间没有被关闭,将会产生什么样的结果呢? 请高手们帮助解答一下…

查看全部问答>

串口不能进中断?但是查询模式正常

现象:使用查询模式能够实现正常收发,使用串口中断时,没有中断时,在主程序循环中正常运行,如果收到字符,不是跳到USART1_IRQHandler,而是跳到了 HardFaultException中断,可能是哪里的原因,如果说硬件有问题,可查询模式很正常。请高手 ...…

查看全部问答>

整了一天,USBmassstorage还是不行。

STM32F103VE 能从电脑上看到USB盘符,文件也能读出,速度也不慢。 可就是一往上写就不行,提示超时错误。 用USBlyer抓包,一大堆都是success,只有一个Remova Relation 显示Not surportted. 只要一写,就卡住。。。。。。N久后说设备超时 ...…

查看全部问答>

求替换HT1621

各位大神,大家好。        小弟初来乍到,有个问题想求大家帮忙想想办法。 我公司使用合泰HT1621型号的单片机开发了一款产品,由于控制液晶显示器,现在想用松翰的单片机替换掉HT1621,请问,那个型号可以替换? ...…

查看全部问答>

用STM32芯片的朋友,你们想在上面用labview开发吗?

LabVIEW——Laboratory Virtual Instrument Engineering Workbench(实验室虚拟仪器集成环境)应该包含两种含义:其一,LabVIEW是一种图形化的编程语言,所以LabVIEW也被称为:G(graphical)语言;其二,LabVIEW也包含了支持图形化编程语言进行应 ...…

查看全部问答>