代码中,踩过的坑过如下:
1、TH0和TL0设置太大,导致虽然在闪烁,但并不能被我肉眼分辨出在闪烁。
#include <reg51.h>
sbit LED = P2^0;
sbit LED1 = P2^1;
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
void timer0() interrupt 1
{
static u16 i; //定义静态变量i
TH0=(65535-50000)/256; //50ms定时20次
TL0=(65535-50000)%256;
i++;
if(i==10)
{
i=0;
LED1=!LED1;
}
}
int main(void)
{
LED = 0; // LED1 保持常亮
TMOD |= 0x01; // 配置TMOD
TH0=(65535-50000)/256; //50ms定时20次
TL0=(65535-50000)%256;
TR0 = 1; // 配置TCON
ET0 = 1; // 打开T0中断
EA = 1; // 开总中断
while (1);
}