|
#include <reg52.h>
sbit out_1=P3^1; //爆閃輸出1
sbit out_2=P3^2; //爆閃輸出2
//unsigned int f=2000;
unsigned int cnt,cout,l,v,m,t; //定義變量
void delay (unsigned int k) //延時(shí)程序
{
unsigned int i,j;
for (i=0;i<k;i++)
{
for (j=0;j<=121;j++)
{;}
}
}
void init(void) //初始化
{
PX1=1;
EX1 =1;
IT1 =1;
EA=1;
}
void extern_int1(void) interrupt 2 //中斷按鍵檢測
{
delay(35);
cout++;
if(cout==9)
{
cout=0;
}
}
void IN_SYSTEM_init(void)//定時(shí)器初始化
{
TMOD = 0X11;
TH1=-(30000/256);
TL1=-(30000/256);
ET1=1;
TR1=1;
TH0=-(30000/256);
TL0=-(30000/256);
ET0=1;
TR0=1;
EA=1;
}
//***********************************************定時(shí)器0中斷服務(wù)函數(shù)
void time0_int (void) interrupt 1
{
TH0=-(30000/256);
TL0=-(30000%256);
out_1= ~out_1;
}
//***************************************************定時(shí)器1中斷服務(wù)函數(shù)
void time1_int (void) interrupt 3
{
TH1=-(30000/256);
TL1=-(30000%256);
out_2=~out_2;
}
//****************************************************
void k_1(void) //按鍵切換
{
switch(cout)
{
//****************************************************
//**************************************************** 第一種變化,交替閃
case 1:
delay(200) ;
EX1 =0;
for(cnt=0;cnt<=15;cnt++)
{
out_1=out_2=1;
TR1=1;
TR0=0;
delay(80);
}
for(cnt=0;cnt<=15;cnt++)
{
out_1=out_2=1;
TR1=0;
TR0=1;
delay(80);
}
EX1 =1;
break;
//****************************************************0全滅
case 0:
EX1 =0;
out_1=out_2=1;
TR1=0;
TR0=0;
EX1 =1;
break;
}
}
//**************************************************** 主程序
void main (void)
{
init();
IN_SYSTEM_init();
while (1)
{
k_1();
} //made by xiaoqiao
}
|
|