led flash.txt
来自「通过定时器中断实现P1口LED隔1秒闪烁一次」· 文本 代码 · 共 46 行
TXT
46 行
#include<reg52.h>
#define T0_INTERRUPT 1 //T0中断向量号
#define LED P1
typedef unsigned char uchar;
typedef unsigned int uint;
void Init_T0();
void main()
{
LED = 0xFF; //熄灭所有的LED
Init_T0(); //初始化定时器0
while(1)
{
PCON |= 0x01; //单片机进入休眠模式,节省功耗
}
}
void Init_T0()
{
TMOD &= 0xF0;
TMOD |= 0x01; //16位定时器模式
TH0 = 0xFC;
TL0 = 0x18;
EA = 1; //开全局中断
ET0 = 1; //允许T0中断
TR0 = 1; //启动定时器
}
void T0_Interrupt() interrupt T0_INTERRUPT
{
static uint i = 0;
TH0 = 0xFC;
TL0 = 0x18;
i ++;
TF0 = 0;
if(i == 1000) //1秒取反LED,使之闪烁
{
LED ^= 0xFF;
i = 0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?