📄 led-6.c.bak
字号:
/**************************
*module name:LED-6A *
*author:GYB *
*having copyright:RT *
***************************/
#include<stdio.h>
#include<reg51.h>
#include<string.h>
#define Uchar unsigned char
#define Uint unsigned int
sfr WDTD = 0x85;
sfr WDTC = 0xC0;
/* control pin */
sbit s1=P3^1;
sbit s2=P3^2;
sbit s3=P3^3;
sbit s4=P3^4;
sbit s5=P3^5;
/* LED CONTROL*/
sbit L1=P1^5;
sbit L2=P1^4;
sbit L3=P1^3;
sbit L4=P1^2;
sbit L5=P1^1;
sbit L6=P1^0;
/*蜂鸣器、消音、试灯*/
sbit mute=P1^7;
sbit test=P1^6;
sbit buzz=P3^0;
sbit KA1=P3^7;
/*消音标志位*/
unsigned char bdata Mute1;
sbit dis1=Mute1^0;
sbit dis2=Mute1^1;
sbit dis3=Mute1^2;
sbit dis4=Mute1^3;
sbit dis5=Mute1^4;
/*状态标志位*/
unsigned char bdata state1;
sbit st1=state1^0;
sbit st2=state1^1;
sbit st3=state1^2;
sbit st4=state1^3;
sbit st5=state1^4;
/*闪光标志*/
unsigned char bdata led;
sbit flash=led^0;
sbit dis =led^1;
sbit light=led^2;
unsigned char n1,n2,n3,n4,n5,n10,n11,n12,m1;
void begin(void)
{
TMOD = 0x01; /*set T0 to Hex counter*/
SCON=0; /*mode 0*/
EA = 1;
ET0=1; /*T0 Enable*/
TR0 = 1;
WDTD=0x80; //装入重装载值
WDTC=0x09; //启动看门狗定时器,使能看门狗定时器复位
}
void intt0(void) interrupt 1
{
m1++;
if(m1==7)
{flash=!flash;m1=0;}
/*1*/
if(!s1)
{n1++;
if(n1>5)
{st1=1;n1=5;}
}
else
{n1=0;st1=0;dis1=0;}
/*2*/
if(!s2)
{n2++;
if(n2>5)
{st2=1;n2=5;}
}
else
{n2=0;st2=0;dis2=0;}
/*3*/
if(s3)
{n3++;
if(n3>5)
{st3=1;n3=5;}
}
else
{n3=0;st3=0;dis3=0;}
/*4*/
if(!s4)
{n4++;
if(n4>5)
{st4=1;n4=5;}
}
else
{n4=0;st4=0;dis4=0;}
/*5*/
if(!s5)
{n5++;
if(n5>5)
{st5=1;n5=5;}
}
else
{n5=0;st5=0;dis5=0;}
if(!mute) //消音
{n10++;
if(n10>2)
{dis=1;n10=0;}
}
if(!test) //试灯
{n11++;
if(n11>2)
{light=1;n11=0;}
}
else {light=0;n11=0;}
}
void watchdog() //喂狗子程序
{
WDTD=0x80; //看门狗装入重装载值
WDTC = WDTC|0x02; //执行装载指令
}
void main(void)
{
begin();
watchdog();
while(1)
{ watchdog();
L1=0;
L2= (!((st1&dis1)|(st1&flash))&(!light)); //灯的控制
L3= (!((st2&dis2)|(st2&flash))&(!light));
L4= (!((st3&dis3)|(st3&flash))&(!light));
L5= (!((st4&dis4)|(st4&flash))&(!light));
L6= (!((st5&dis5)|(st5&flash))&(!light));
if(st1||st2||st3||st4||st5)
KA1=0;
else KA1=1;
if(dis) //消音
{dis1=st1;
dis2=st2;
dis3=st3;
dis4=st4;
dis5=st5;
dis=0;
n10=0;
}
if((dis1==st1)&(dis2==st2)&(dis3==st3)&(dis4==st4)&(dis5==st5)) //蜂鸣器
buzz=1;
else
buzz=!flash;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -