#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) //延时程序
{
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)//定时器初始化
{
TMOD = 0X11;
TH1=-(30000/256);
TL1=-(30000/256);
ET1=1;
TR1=1;
TH0=-(30000/256);
TL0=-(30000/256);
ET0=1;
TR0=1;
EA=1;
}
//***********************************************定时器0中断服务函数
void time0_int (void) interrupt 1
{
TH0=-(30000/256);
TL0=-(30000%256);
out_1= ~out_1;
}
//***************************************************定时器1中断服务函数
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
}
|