📄 led16.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit KEY1=P3^0;
sbit KEY2=P3^1;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
#define ON 0
#define OFF 1
uchar LED1_cnt=0;
uchar LED2_cnt=0;
uchar LED3_cnt=0;
uchar LED4_cnt=0;
uint cnt1=0;
uint cnt2=0;
uint cnt3=0;
uint cnt4=0;
void timer0() interrupt 1
{
TR0=0;
TH0=0x46; //50ms定时
TL0=0x08;
TR0=1; //启动计时器
if(KEY1==0)
{ if(cnt1==1)
{
LED1=ON;
}
if(cnt1==21)
{
cnt1++;
if(LED1_cnt){LED1=OFF;LED1_cnt--;}
else cnt1=0;
}
else if(cnt1==63)
{
cnt1=1;
LED1=ON;
}
else if(cnt1)cnt1++;
}
if(KEY2==0)
{
cnt2=1;
LED2_cnt=10;
}
if(cnt2==21)
{
cnt2++;
if(LED2_cnt){LED2=OFF;LED2_cnt--;}
else cnt2=0;
}
else if(cnt2==63)
{
cnt2=1;
LED2=ON;
}
else if(cnt2)cnt2++;
if(KEY3==0)
{
cnt3=1;
LED3_cnt=10;
}
if(cnt3==21)
{
cnt3++;
if(LED3_cnt){LED3=OFF;LED3_cnt--;}
else cnt3=0;
}
else if(cnt3==63)
{
cnt3=1;
LED3=ON;
}
else if(cnt3)cnt3++;
if(KEY4==0)
{
cnt4=1;
LED4_cnt=10;
}
if(cnt4==21)
{
cnt4++;
if(LED4_cnt){LED4=OFF;LED4_cnt--;}
else cnt4=0;
}
else if(cnt4==63)
{
cnt4=1;
LED4=ON;
}
else if(cnt4)cnt4++;
}
void main()
{
LED1=OFF;
LED2=ON;
LED3=OFF;
LED4=ON;
TMOD=0X11; //设定时器工作在1模式
TH0=0x46; //定时器0初值设置
TL0=0x0a;
EA=1; //开总中断
ET0=1; //开定时0中断
TR0=1; //启动计时器
while(1)
{
if(KEY1==1)
{
LED1=OFF;
cnt1=1;
LED1_cnt=5;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -