一、51单片机代码
cpp
#include <reg52.h>
sbit LED = P3^3;
extern bit b10Ms;
extern bit b100Ms;
extern bit b1S;
extern bit b10S;
void Timer0_Init()
{
TMOD |= 0x01; // 设置定时器0为模式1
TH0 = (65536 - 1000) / 256; // 高8位赋初值
TL0 = (65536 - 1000) % 256; // 低8位赋初值
EA = 1; // 开启总中断
ET0 = 1; // 开启定时器0中断
TR0 = 1; // 启动定时器0
}
void Timer0_ISR() interrupt 1 // 定时器0中断服务函数
{
static unsigned int b1000MsCnt;
static unsigned int b10MsCnt;
TH0 = (65536 - 1000) / 256; // 重新加载初值
TL0 = (65536 - 1000) % 256;
if (++b1000MsCnt >= 1000)
{
b1000MsCnt = 0;
b1S = 1;
}
}
void main()
{
Timer0_Init(); // 初始化定时器0
while(1)
{
if (b1S)
{
b1S = 0;
LED = ~LED; // 取反LED的状态
}
}
}
二、Proteus仿真

三、完整资料下载
基于51单片机的LED控制: https://url83.ctfile.com/d/45573183-66541738-df92bf?p=7526 (访问密码: 7526)