51单片机定时器详细全解.上

原创 云深之无迹 2022-06-22 18:34


看了很多几本单片机的书,对51定时器的认识又有了一些新的变化。开局一张图(一个简单的单片机程序),其实文章也是来解释这个代码的写法。




在此,后面也会对STC官方的库,做详细的解读和使用




我们使用串口,设置它的寄存器


一共4种模式,八位的可变



2位,4个状态


B6位为0的时候,B7用于帧错误检测,当检测到一个无效的停止位的时候,UART设置它,软件清0.



这个方式0,是使用一个专用的SBUF发送的



TI标志位


发送完以后,自动的变1,相对于有了一个中断。然后中断系统处理,处理完以后就要把状态变回去。



RI也是,一发一收



接收的一个函数



这里是注意的编程要点



这里要开启UART的中断,先开启大中断,接着开启串口的中断



REN是收发功能的开关



1,2,3都是异步通信,0是移位寄存器



接下来配置定时器




只有两个寄存器,灵活使用要



TCON是这样的



TR1,相对于是使能位


关于定时器不得不说,而且最近看了几本相对古老的书,真的很清晰,现在的书比喻一堆也不知道想说什么。


对51来说,其实是只有4种方式:


1、51单片机计数器的脉冲输入脚。主要的脉冲输入脚有Px,y, 也指对应T0的P3.4和对应T1的P3.5,主要用来检测片外来的脉冲。而引脚18和19则对应着晶振的输入脉冲,脉冲的频率和周期为:


F = f/12 = 11.0592M/12 = 0.9216MHZ T = 1/F = 1.085us

2、定时器有两种工作模式,分别为计数模式和定时模式。对Px,y的输入脉冲进行计数为计数模式。定时模式,则是对MCU的主时钟经过12分频后计数。因为主时钟是相对稳定的,所以可以通过计数值推算出计数所经过的时间。所谓的定时器就是恒定的数数。

3、51计数器的计数值存放于特殊功能寄存器中。T0(TL0-0x8A, TH0-0x8C), T1(TL1-0x8B, TH1-0x8D)



其实就是容器,存放脉冲数的



这是我们单片机的4种定时器模式


4、TLx与THx之间的搭配关系


以下的进制,就是向前进位的意思。

1)、TLx与THx之间32进制。即当TLx计到32个脉冲时,TLx归0同时THx进1。这也称为方式0。


注意x,是两个定时器的意思。



这个图可能更清晰


2)、TLx与THx之间256进制。即当TLx计到256个脉冲时,TLx归0同时THx进1。这也称为方式1。


在方式1时,最多计65536个脉冲产生溢出。在主频为11.0592M时,每计一个脉冲为1.085us,所以溢出一次的时间为1.085usx65536=71.1ms。


2的16次方


3)、THx用于存放TLx溢出后,TLx下次计数的起点。这也称为方式2。
4)、THx与TLx分别独立对自己的输入脉冲计数。这也称为方式3。




最后再看一下这个定时器的容器


H,L都是高低位的说明。


定时器初始化


1)、确定定时器的计数模式。
2)、确定TLx与THx之间的搭配关系。
3)、确定计数起点值。即TLx与THx的初值。
4)、是否开始计数。TRx


看不懂没有关系,继续磨豆腐,再看别的解释。




16位的寄存器最大的数值是这样的



13位是这么大


0,13位模式

1,16位模式

2,8位自动重装模式

3,两个八位模式


有个问题是,定时器总是和中断关联,其实就是,你再应用的时候,不学任何一个都不行。



中断就好像是权力巨大的IF程序,来了以后主程序就得搭理,妈的。就好像,来了快递你必须要去取1一样。


在51里面,这么屌的事件,有这么几个。更装逼的名字叫中断源。分类有三种,外部引脚来的中断,也就是测量使用,比如你想测量一个波形的占空比,一个波肯定是有边沿的,你记录这两个事件,接着你计算中间的时间,相对于计数,这就测量出来了。


其次就是定时器的中断,和UART的中断。


一个这样的来源,就有一个这样的标志,这也好理解啊,你总得说明它发生了不是吗?


这个世界是高速并行的,对于单片机的世界也是,经常多个中断一起来,关于顺序的问题,引入的解决方案是优先级。


害,有个无奈的事情,就是有的东西天生就自带光环,比如复位事件。基本上就是活土匪了,妈的,我来了,谁也别活。。。



一个中断究竟要怎么样的触发,对于现实世界来讲,就是消息。打电话,喊叫,或者看见。总之是发生了什么。


单片机也是这样,发生了什么。


我想聊聊定时器中断,时刻记得两个使命,定时和计数。其实你该想想时间是什么作用。其实是标度的概念。它说明了两个点,起点和终点,在定义它是均匀的时候,那么你可以无聊的数一下有多少。


总结一下,定时器,不如说是时间,它就是一把尺子。中断就是定位使用的标尺,说:我想从这里开始计数,到下个位置停止。


当然了,处于对技术上面的妥协,定时器中断也来做别的工作。对于定时,有长有短。对于特别长的时间呢。就好像下面这样:



右边是一个计时的间隔



这样看


不同于我们世界的计时法,我们可以看表,秒针一动,一个时间间隔,单片机没有这种东西,它有的是是振荡器。12M,这东西0都数不清,所以不能之间使用,这里就做除法。


我们把这个间隔记录下来,满了以后就传一个数值出去,接着把这个清空,继续装东西,好咧,这就是定时器所有的奥秘了。




接下来看看中断的结构



对于定时器的中断寄存器就是这样



这里面没有编程模型,但是我非要加点这个东西进去。查询模型,查询标准位,然后balabala。


4个中断控制寄存器分别是,定时器,UART,中断允许,中断优先级。功能是中断标志,中断允许,优先级设定。


IE0 ,外部中断0标志当它位1的时候,向CPU发送中断,CPU响应以后硬件请0.



这个就是什么样的信号来激发


单片机响应中断以后,不会自动的关闭中断。转向ISR以后,把中断关闭。为了响应下一次中断。



外中断1,脉冲触发这样设置


这里还需要说一下,中断优先级。两级,高或者低。低级可以被高级的打断,同级不响应。



这个表的作用就是同时来了中断,响应的顺序



这样写ISR



毕竟在主线搬砖,现在突然去支线干活,所以需要保护现场


先把手头的工作做完,PC是执行下一次主线命令的指针,也放入stack。接着搞个围栏,挡同级的中断。ISR虽然小,但也还是一个函数,所以它的PC值装载在主线中,开始运行。



ISR完成的标志是,返回RETI这个指令,相当于,老子完事了~至于这个中断来的时候去哪里执行ISR,也就是入口在哪里,这个是固定的。


这个时候,引起中断的位置会自动清0,主程序的第一条指令是跳转指令,越过这个中断的向量区。


最后擦屁股得指令就用RETI,这个指令可以把中断优先级状态还原,否则中断就认为中断还在运行。还有建议就是PUSH和POP得成对使用。



后面得这个激发次数比较重要



外部中断0 ,下降沿触发




看看汇编得版本



这个是中断得向量表,一个长跳转带你去main还是exit0



mian很简单,初始化sp,然后就是一些设置



最后是服务程序,CPL操作IO ,RRTI来说明中断完成



这段有点拗口


这里需要补充一些东西:


1T、4T、6T和12T是指一个机器周期需要的时钟周期数。比如现在普遍的51单片机STC89S52是12T的,其1个机器周期等于12个时钟周期。


也就是说,机器周期大,时钟周期小。


时钟频率:是指为单片机提供时钟信号的振荡源的周期(也叫时钟周期),当采用12MHz晶振时,一个振荡周期是1/12M秒(1/12000000s)。


时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位


机器周期:对于标准51架构而言,1个机器周期为12个时钟振荡周期,即1微秒。具体计算为:时钟周期 X cycles。如果单片机是12T的话,那么机器周期就是时钟周期×12。


指令周期:执行一条指令的时间,是机器周期的倍数。不同的CPU,执行不同的指令,所需要的指令周期不同。 


机器周期是单片机执行的最小倍数。


不同的单片机指令执行速度不同。1T单片机的计时器是兼容传统12T单片机的。也就是说只是执行一般的指令会快12倍。



新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。


就是什么1T单片机,比传统的快12倍。


在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。


在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。


完成一个基本操作所需要的时间称为机器周期。


一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说:


一个机器周期=6个状态周期=12个时钟周期


指令周期

指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

时钟周期、机器周期、指令周期之间的关系图如下。


时序图


时钟周期(振荡器的倒数)最小,写做一个P,接着把这个X2,当作状态周期。


6个状态作为一个机器周期。


通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。

MCS-51中,按它们的长度可分为单字节指令、双字节指令和三字节指令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:

·单字节指令单机器周期·

单字节指令双机器周期·

双字节指令单机器周期·

双字节指令双机器周期·

三字节指令双机器周期·

单字节指令四机器周期(如单字节的乘除法指令)



这里截取数据手册看看。注意看,都是使用的机器周期,好好牢记,6个状态一个机器周期。



指令时序图


为了好说明指令在什么时候执行,这里就写:



S1P2

S2P1

S取(1-6),P(1,2),就这样


S是6分频的时钟周期




现在再看这个


S5P2,是不是可以看懂了。在第五个状态周期的第二个时钟周期进行对外采样。


遇到特别短的脉冲的时候要考虑这个,如果太短就捕获不到了。


再总结一下:


MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期。


·节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。 


·机器周期:MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。·指令周期:执行一条指令所需要的时间称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期。


呼,文章虽然很长,但是对于定时器的内容,我还是没有写出来好难受。。。



最后朋友家养了两只猫猫,毛茸茸可太可爱了!!!



好小一只

评论 (0)
  • 晶振在使用过程中可能会受到污染,导致性能下降。可是污染物是怎么进入晶振内部的?如何检测晶振内部污染物?我可不可以使用超声波清洗?今天KOAN凯擎小妹将逐一解答。1. 污染物来源a. 制造过程:生产环境不洁净或封装密封不严,可能导致灰尘和杂质进入晶振。b. 使用环境:高湿度、温度变化、化学物质和机械应力可能导致污染物渗入。c. 储存不当:不良的储存环境和不合适的包装材料可能引发化学物质迁移。建议储存湿度维持相对湿度在30%至75%的范围内,有助于避免湿度对晶振的不利影响。避免雨淋或阳光直射。d.
    koan-xtal 2025-04-28 06:11 107浏览
  • 4月22日下午,备受瞩目的飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!1、精彩纷呈的展区产品及方案展区是本场活动的第一场重头戏,从硬件产品到软件系统,从企业级应用到高校教学应用,都吸引了现场来宾的驻足观看和交流讨论。全产品矩阵展区展示了飞凌嵌入式丰富的产品线,从嵌入式板卡到工控机,从进口芯片平台到全国产平台,无不体现出飞凌嵌入式在嵌入式主控设备研发设计方面的
    飞凌嵌入式 2025-04-28 14:43 103浏览
  • 在电子电路设计和调试中,晶振为电路提供稳定的时钟信号。我们可能会遇到晶振有电压,但不起振,从而导致整个电路无法正常工作的情况。今天凯擎小妹聊一下可能的原因和解决方案。1. 误区解析在硬件调试中,许多工程师在测量晶振时发现两端都有电压,例如1.6V,但没有明显的压差,第一反应可能是怀疑短路。晶振电路本质上是一个交流振荡电路。当晶振未起振时,两端会静止在一个中间电位,通常接近电源电压的一半。万用表测得的是稳定的直流电压,因此没有压差。这种情况一般是:晶振没起振,并不是短路。2. 如何判断真
    koan-xtal 2025-04-28 05:09 128浏览
  • 一、智能家居的痛点与创新机遇随着城市化进程加速,现代家庭正面临两大核心挑战:情感陪伴缺失:超60%的双职工家庭存在“亲子陪伴真空期”,儿童独自居家场景增加;操作复杂度攀升:智能设备功能迭代导致用户学习成本陡增,超40%用户因操作困难放弃高阶功能。而WTR096-16S录音语音芯片方案,通过“语音交互+智能录音”双核驱动,不仅解决设备易用性问题,更构建起家庭成员间的全天候情感纽带。二、WTR096-16S方案的核心技术突破1. 高保真语音交互系统动态情绪语音库:支持8种语气模板(温柔提醒/紧急告警
    广州唯创电子 2025-04-28 09:24 146浏览
  •  集成电路封装测试是确保芯片性能与可靠性的核心环节,主要包括‌晶圆级测试(CP测试)‌和‌封装后测试(FT测试)‌两大阶段,流程如下:一、晶圆级测试(CP测试)1.‌测试目的‌:在晶圆切割前筛选出功能缺陷或性能不达标的晶粒(Die),避免后续封装环节的资源浪费,显著降低制造成本。2.‌核心设备与操作‌l ‌探针台(Prober)‌:通过高精度移动平台将探针与晶粒的Pad jing准接触,实现电气连接。l ‌ATE测试机‌:提供测试电源、信号输入及功能向量,接收晶粒反
    锦正茂科技 2025-04-27 13:37 194浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 76浏览
  •     今天,纯电动汽车大跃进牵引着对汽车电气低压的需求,新需求是48V。车要更轻,料要堆满。车身电子系统(电子座舱)从分布改成集中(域控),电气上就是要把“比12V系统更多的能量,送到比12V系统数量更少的ECU去”,所以,电源必须提高电压,缩小线径。另一方面,用比传统12V,24V更高的电压,有利于让电感类元件(螺线管,电机)用更细的铜线,缩小体积去替代传统机械,扩大整车电气化的边界。在电缆、认证行业60V标准之下,48V是一个合理的电压。有关汽车电气低压,另见协议标准第
    电子知识打边炉 2025-04-27 16:24 236浏览
  • 2025年全球人形机器人产业迎来爆发式增长,政策与资本双重推力下,谷歌旗下波士顿动力、比亚迪等跨国企业与本土龙头争相入局,产业基金与风险投资持续加码。仅2025年上半年,中国机器人领域就完成42笔战略融资,累计金额突破45亿元,沪深两市机器人指数年内涨幅达68%,印证了资本市场对智能终端革命的强烈预期。值得关注的是,国家发展改革委联合工信部发布《人形机器人创新发展行动计划》,明确将仿生感知系统、AI决策中枢等十大核心技术纳入"十四五"国家重大专项,并设立500亿元产业引导基金。技术突破方面,本土
    电子资讯报 2025-04-27 17:08 244浏览
  • 探针台作为高精度测试设备,在光电行业的关键器件研发、性能测试及量产质量控制中发挥核心作用,主要涵盖以下应用场景与技术特性:一、光电元件性能测试1.‌光电器件基础参数测量‌l 用于LED、光电探测器、激光器等元件的电流-电压(I-V)特性、光功率、响应速度等参数测试,支撑光通信、显示技术的器件选型与性能优化。l 支持高频信号测试(如40GHz以上射频参数),满足高速光调制器、光子集成电路(PIC)的带宽与信号完整性验证需求。2.‌光响应特性分析‌l 通过电光转换效率测
    锦正茂科技 2025-04-27 13:19 122浏览
  •  探针台的维护直接影响其测试精度与使用寿命,需结合日常清洁、环境控制、定期校准等多维度操作,具体方法如下:一、日常清洁与保养1.‌表面清洁‌l 使用无尘布或软布擦拭探针台表面,避免残留清洁剂或硬物划伤精密部件。l 探针头清洁需用非腐蚀性溶剂(如异丙醇)擦拭,检查是否弯曲或损坏。2.‌光部件维护‌l 镜头、观察窗等光学部件用镜头纸蘸取wu水jiu精从中心向外轻擦,操作时远离火源并保持通风。3.‌内部防尘‌l 使用后及时吹扫灰尘,防止污染物进入机械滑
    锦正茂科技 2025-04-28 11:45 78浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 101浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 111浏览
  • 探针台作为半导体制造与测试的核心设备,通过精密定位与多环境适配能力,支撑芯片研发、生产及验证全流程。以下是其关键应用领域与技术特性:一、核心功能支撑1.‌电性能测试与分析‌l 在晶圆切割前,探针台直接接触芯片电极,测量阈值电压、漏电流、跨导等200余项参数,用于评估良品率及优化工艺设计。l 支持单晶体管I-V曲线测量,定位栅极氧化层厚度偏差(精度达0.2nm),为器件性能分析提供数据基础。2.‌纳米级定位与测量‌l 定位精度达±0.1μm,满足5nm及以下制程芯片的
    锦正茂科技 2025-04-27 13:09 151浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦