标题:
51单片机定时器复用程序(非常简单)
[打印本页]
作者:
SPEAR
时间:
2021-1-27 10:13
标题:
51单片机定时器复用程序(非常简单)
定时器不够用怎么办?当然是吧一个定时器分成多个使用,用定时器中断记录定时器中断次数,所要的定时的时间=中断次数*单次定时时长。例如1s定时=20*50ms
例如用一个定时器控制两个led灯以不同频率闪烁,不用使用软件延时,不占用CPU资源
单片机源程序如下:
#include <reg52.h>
sbit LED1 = P1^2;
sbit LED2 = P1^4;
unsigned char t,s;
void time0_Init()
{
TMOD = 0x01;
TH0 = 0x3C; //50ms
TL0 = 0xB0;
TR0 = 1;
EA = 1;
ET0 = 1;
}
void timer0() interrupt 1 //2个分频器
{
t++;
s++;
TH0 = 0x3C;
TL0 = 0xB0;
if(s==5) //250ms
{
s = 0;
LED1 = !LED1;
}
if(t==20) //1000ms
{
t = 0;
LED2 = !LED2;
}
}
void main()
{
time0_Init();
while(1);
}
复制代码
作者:
man1234567
时间:
2021-1-27 20:03
很棒的思路
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1