原理
















实现


每1s点亮LED灯
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=P2^0;
void delay(u16 i)
{
while(i--);
}
void Timer0Init()
{
TMOD|=0x01; //或运算
//定时1ms,计数1000个,初值=65535-1000+1
//fc18=64536
TH0=0xFC;
TL0=0x18;
ET0=1;//打开定时器中断
EA=1;//打开总中断
TR0=1;//启动定时
}
void Time0() interrupt 1
{
static u16 i;
TH0=0xFC;
TL0=0x18;
i++;
if(i==1000)//1秒
{
i=0;
led=~led;
}
}
void main()
{
Timer0Init();
while(1);
}
本文介绍了一个使用51单片机实现LED灯每秒闪烁一次的程序设计。通过初始化定时器0并设置中断,实现了精确的时间控制。文章提供了完整的C语言代码示例。
1263

被折叠的 条评论
为什么被折叠?



