51单片机定时器
2026/9/14 21:43:04 网站建设 项目流程

定时器介绍:51单片机定时器属于单片机内部设备,定时器的运转全部都在单片机内部。

定时器作用:① 精确延时/定时(到点了触发中断执行操作。)

② 可以代替长时间的delay,可以边等边做其他事情。

软件延时定时器
原理CPU 空循环数数硬件自动计数,CPU 不参与
CPU 占用全程占用,干不了别的零占用,CPU 可以做别的事
能不能同时干活不能

定时器的三部分:

时钟:提供计数脉冲

计数单元:时针计数

中断系统:产生中断,执行定时任务。

时钟(脉冲源)→ 计数单元(累加溢出)→ 中断系统(触发响应)

↑ ↑ ↑ 提供动力 干活的 响应的

定时器一共有四种工作模式,其中模式一是最常用的,下图就是工作模式一框图:

圈中三部分就代表着时钟,计数单元,中断系统。

左边时钟:负责传递脉冲,如何设定脉冲:1.可以通过SYSclk系统时钟,为计时器模式

2.通过T0Pin外部引脚控制,为计数器模式

系统时钟晶振周期为12MHS,第一个岔路进行分频,第二个岔路进行设定脉冲的选择。

中间的计数单元:是16位计数器,最大能记65535,每接收时钟传来的脉冲就会加1,当到65535时就会发生溢出,随后进入中断系统申请中断。

中断系统:CPU在干一件事时,外界紧急事件请求会中断原本的运行,而去干紧急事件,完成之后继续完成原来的事。中断源:请求 CPU 中断的来源(CST89C52 有6个:INT0/T0/INT1/T1/串口/T2)。优先级:多个中断源同时请求时,CPU 按轻重缓急排队,先响应优先级最高的。中断嵌套:CPU 正在处理低级中断时,更高级中断来了 → 暂停低级 → 处理高级 → 回来继续低级。有嵌套=多级中断系统,无嵌套=单级。

剩下就是根据定时器与中断系统的结构进行寄存器的配置即可。

步骤寄存器作用
1TMOD设置工作模式(16位定时器)
2TF0清除溢出标志
3TR0启动定时器
4TH0/TL0装入定时初值(决定定时多久)
5ET0允许定时器中断
6EA开总中断
7PT0设置中断优先级

中断函数代码:

1.interrupt 1:51 单片机中断号,1代表定时器 0 溢出中断服务函数。

2.TR0就是定时器开关,打开后会自己数到65535,溢出时会自动跳转到中断函数。

可以通过设置定时器来设置每隔多长时间进入中断函数(主要是设定初值),

12MHz晶振 → 1机器周期 = 1us → 每次计数 = 1us 定时时间 = (65536 - 初值) × 1us 初值 = 65536 - (定时时间(us) / 1)

但是最多定时65.536ms(65536 × 1us),假如想每1s中断一次,需要多次中断累加。

下面就是利用设置TL0和TH0来设置初值,每个过程1ms累计1000次就是1s。

定时器代码:

就在中断为1s的基础上增添3个if语句使时钟改变。

main函数代码:

定义3个变量,LCD_Init使初始化,使允许中断。其他就是在液晶屏的显示。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询