历史上的今天
返回首页

历史上的今天

今天是:2025年12月09日(星期二)

正在发生

2022年12月09日 | MCS-51 单片机的定时器/计数器

2022-12-09 来源:zhihu

MCS-51 单片机的定时器/计数器

主要内容:定时器/计数器的结构、定时器/计数器的4 种工作方式、对外部输入的计数信号的要求、定时器/计数器的编程和应用。


概述:两个可编程的定时器/计数器T1、T0。


两种工作模式:

(1)计数器工作模式

(2)定时器工作模式

4种工作方式(方式0-方式3)。

6.1 定时器/计数器的结构

TMOD:选择定时器/计数器T0、T1的工作模式和工作方式。

TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。

单片机复位时,两个寄存器的所有位都被清0。

6.1.1 工作方式控制寄存器TMOD

8位分为两组,高4位控制T1,低4位控制T0。

(1)GATE——门控位

0:以TRX(X=0,1)来启动定时器/计数器运行。

1:用外中断引脚(INT0*或INT1*)上的高电平和TRX来启动定时器/计数器运行。

(2)M1、M0——工作方式选择位

M1 M0 工 作 方 式

0 0 方式0,13位定时器/计数器。

0 1 方式1,16位定时器/计数器。

1 0 方式2,8位常数自动重新装载

1 1 方式3,仅适用于T0,T0分成两个8位计数器,T1停止计数。

(3) C/T*——计数器模式和定时器模式选择位

0:定时器模式。

1:计数器模式。

6.1.2 定时器/计数器控制寄存器TCON

低4位与外部中断有关,已介绍。高4位的功能如下:

(1) TF1、TF0——计数溢出标志位

(2) TR1、TR0——计数运行控制位

1:启动定时器/计数器工作

0:停止定时器/计数器工作

6.2 定时器/计数器的4种工作方式

6.2.1 方式0

M1、M0为00 ,定时器/计数器的框图:

为13位的计数器 ,C/T* 位决定工作模式:

0:开关打在上面,为定时器工作模式;

1:开关打在下面,为计数器工作模式,计数脉冲为P3.4、P3.5引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1。

GATE位:决定定时器/计数器的运行取决于TRX一个条件还是TRX和INTX*引脚两个条件。

(1)0:A点(见图6-2)是否计数,仅取决于TRX的状态。

(2)1:B点电位由INTX*的输入电平和TRX的状态这两个条件来确定。是否计数是由TRX和INTX*二个条件来控制的。

6.2.2 方式1


M1、M0=01,16位的计数器。

6.2.3 方式2

计数满后自动装入计数初值。

M1、M0=10 ,等效框图如下:

TLX作为常数缓冲器,当TLX计数溢出时,在置“1”溢出标志TFX的同时,还自动的将THX中的初值送至TLX,使TLX从初值开始重新计数。定时器/计数器的方式2工作过程如图6-5(X=0,1)。

省去用户软件中重装初值的程序,精确的定时。

6.2.4 方式3

增加一个附加的8位定时器/计数器,从而具有3个定时器/计数器。只适用于定时器/计数器T0。T1不能工作在方式3,T1方式3时相当于TR1=0,停止计数(此时T1可用来作串行口波特率产生器)。

1.工作方式3下的T0

T0分为两个独立的8位计数器:TL0和TH0 。TL0使用T0的状态控制位C/T*、GATE、TR0、,而TH0被固定为一个8位定时器(不能作外部计数模式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断请求源TF1。 各引脚与T0的逻辑关系如图所示:

2.T0工作在方式3下T1的各种工作方式

当T1用作串行口的波特率发生器时, T0才工作在方式3。T0处于方式3时, T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的场合。

(1)T1工作在方式0

(2) T1工作在方式1

(3) T1工作在方式2

6.3 定时器/计数器对输入信号的要求

计数器模式时,计数脉冲来自外部输入引脚T0或T1。当输入信号产生负跳变时,计数值增1。每个机器周期S5P2期间,都对外部输入引脚T0或T1进行采样。如在第1个机器周期中采得值为1,而在下一个机器周期中采得的值为0,则在紧跟着的再下一个机器周期S3P1期间,计数器加1。由于确认一次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率1/24。

外部计数脉冲的最高频率为系统振荡器频率的1/24,例如选用12MHz频率的晶体,则可输入500KHz的外部脉冲。

输入信号的高、低电平至少要保持一个机器周期。如图6-10所示,图中Tcy为机器周期。

6.4 定时器/计数器的编程和应用

4种工作方式中,方式0与方式1基本相同,由于方式0是为兼容MCS-48而设,初值计算复杂,在实际应用中,一般不用方式0,而采用方式1。

6.4.1 方式1应用

例6-1 假设系统时钟频率采用6MHz,要在P1.0上输出一个周期为2ms的方波,如图所示。


方波的周期用T0来确定,让T0每隔1ms计数溢出1次,既T0每隔1ms产生一次中断,CPU相应中断后,在中断服务程序中对P1.0取反。

(1)计算初值X

定时时间=(216−X)×12/晶振频率

设初值为X,则有:(2^16-X)×2×10^(-6)=1×10-3216-X=500

因为单个系统时钟周期为:(1/6m*12)

备注:12分频

所以:X=65036

X化为16进制,即X=FE0CH=1111111000001100B。

所以,T0的初值为:TH0=0FEH TL0=0CH

(2)初始化程序设计:

主要是对寄存器IP、IE、TCON、TMOD的相应位进行正确设置,将计数初值送入定时器中。

(3)程序设计

中断服务程序除了完成要求的产生方波这一工作之外,还要注意将计数初值重新装入定时器中,为下一次产生中断作准备。

ORG 0000H

RESET: AJMP MAIN ;转主程序

ORG 000BH;T0的中断入口

AJMP IT0P;转T0中断处理程序IT0P

ORG 0100H

MAIN: MOV SP,#60H ;设堆栈指针

MOV TMOD,#01H;设置T0味方式一

ACALL PT0M0;调用子程序PT0M0

HERE: AJMP HERE ;自身跳转

PT0M0:MOV TL0,#0CH;T0中断服务程序,T0重新置初值

MOV TH0,#0FEH

SETB TR0;启动T0

SETB ET0;允许T0中断

SETB EA;CPU开中断

RET

IT0P: MOV TL0,#0CH;T0中断服务子程序,T0置初值

MOV TH0,#0FEH

CPL P1.0 ;P1.0的状态取反

RETI

END


推荐阅读

史海拾趣

川晶科技公司的发展小趣事

在市场竞争日益激烈的背景下,川晶科技始终坚持创新驱动的发展战略。公司不断加大产品创新和自主研发的力度,推动产品向微型化、低耗能方向发展。通过引入新技术、新工艺,川晶科技成功开发出了一系列具有竞争力的新产品,满足了市场的多样化需求。同时,公司还积极探索新的应用领域,努力拓展市场空间,为公司的持续发展注入了新的动力。

台湾丰宾(CapXon)公司的发展小趣事

随着全球环保意识的不断提高,CapXon公司积极响应绿色生产的号召,致力于实现可持续发展。公司采用环保材料和制造工艺,减少生产过程中的污染物排放,降低对环境的影响。同时,CapXon还积极参与各种环保活动和公益事业,为推动电子行业的绿色发展贡献自己的力量。

以上五个故事分别从初创与起步、市场拓展与品牌塑造、技术创新与产业升级、品质管理与生产优化以及绿色生产与可持续发展五个方面,展示了台湾丰宾(CapXon)公司在电子行业发展的历程和成就。这些故事不仅体现了公司的实力和魅力,也展现了公司在推动电子行业进步和可持续发展方面所做的努力和贡献。

成都芯进(CrossChip)公司的发展小趣事

随着技术的不断积累和市场的逐步拓展,成都芯进电子逐渐在磁传感器芯片领域崭露头角。他们不仅实现了霍尔效应和磁阻效应磁传感器芯片的量产,还成功研发了电流传感器芯片、电机驱动芯片和电源管理芯片等系列产品。这些产品的推出,不仅丰富了公司的产品线,也进一步提升了公司的市场竞争力。

Fischer Elektronik公司的发展小趣事

Fischer Elektronik公司成立于1969年,是德国在高性能散热器和半导体制冷领域的领先制造商。成立之初,公司专注于研发和生产电子元器件的关键部件,如散热器和连接器,以满足当时快速增长的电子行业对高效散热解决方案的需求。凭借其精湛的工艺和严格的质量控制,Fischer Elektronik迅速在市场中站稳脚跟,并开始在仪器仪表、通讯/网络、交通/汽车和工业/自动化等领域展露头角。

Adam Tech公司的发展小趣事

为了进一步拓展市场,Adam Tech开始实施全球化战略。公司在北美、欧洲和亚洲等地设立了多个代表处,以便更好地服务全球客户。这些代表处不仅为公司带来了更多的业务机会,也提升了公司在国际市场上的知名度。同时,公司还积极与各地合作伙伴建立紧密的合作关系,共同推动电子连接器行业的发展。

Crosspoint Solutions公司的发展小趣事

在电子行业的激烈竞争中,Crosspoint Solutions公司凭借一项革命性的技术创新脱颖而出。公司研发出一款高度集成的交叉点开关芯片,该芯片在数据传输速度和稳定性上均达到了行业领先水平。这一创新迅速吸引了各大电子设备制造商的注意,公司因此获得了大量订单,市场份额迅速扩大。

问答坊 | AI 解惑

整理下裁员/倒闭行业类别~有个快消招聘,找工作的来~ 奢侈品行业的情况有谁知道?

最近裁员倒闭的一片片,实在看的太多了,整理下下,有补充的可以跟贴,一并列举上。 也给要找的在找的将要找工作的人一点点参考。 申明: 本来的确打算一直做,因为都是大家提供的消息,但是似乎现在有些不同的“凡响”,我无意争什么,所以, ...…

查看全部问答>

杭州,嵌入式项目开发合作,有兴趣的进来看看

准备上个项目,人手不够,打算找人合作。 杭州有产品经验,有业余时间,熟悉工业级ARM,51,tcp/ip,RTOS等之一的技术便可。 有兴趣的回个贴。 技术专长,业余时间,要求等。 sssbang@163.com …

查看全部问答>

RDA的一个例子 pull方法成功,而push不行

//向服务器提交数据 void CRDAExamDlg::OnBtnpush() {         ISSCERDA*pCERDA = NULL;         BSTR bStr = NULL;         BSTR bConnectStr = NULL;       ...…

查看全部问答>

广东北电做vxwork应用,小公司做嵌入式linux应用,该选择哪个?

广东北电做vxwork应用,小公司做嵌入式linux应用,该选择哪个? 其中小公司离家很近,北电离家远一点(隔壁城市) 本人有嵌入式linux两年经验了 两者待遇差不多…

查看全部问答>

汽车电子整车方案

在前面的一个月里,我们一起温习了2008年~2009年上海汽车电子论坛有关技术方面的演讲资料,希望各位网友有所收获。最后一期汽车电子论坛精彩回顾 将与你分享有关零件供应商的演讲资料,了解他们的核心市场及技术优势,这对于研发和采购工程师们来 ...…

查看全部问答>

TI LM3S811 DIY之【数控电源】讨论

目标板是基本最小系统+JTAG部分,所以很多部分都要自己动手来完成了!     数控电源人机界面   1、数码管+键盘;  2、LCD+键盘; 3、PC小工具;   预留PWM,ADC,COMP功能的外围脚       [ ...…

查看全部问答>

DC、AC二者的稳压输出

DC可进行稳压输出,而AC是不是不可以稳压输出,其中的原因是什么呢。。。…

查看全部问答>

大家帮忙看看这几个管子的型号,非常感谢

丝印:6kcA1  封装为SOT-23 丝印:6kX11  封装为SOT-23 丝印:VB02  封装为SOT-23 谢谢大家!…

查看全部问答>