⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led-6.c.bak

📁 6LED报警系统
💻 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 + -