|
void main()
{
beep = 0; //开机叫一声
delay_1ms(150);
P0 = P1 = P2 = P3 = 0xff; //初始化单片机IO口为高电平
send_wave(); //测距离函数
smg_display(); //处理距离显示函数
time_init();
EXINTinit(); //定时器初始化程序
init_eeprom(); //开始初始化保存的数据
send_wave(); //测距离函数
send_wave(); //测距离函数
HW = 1;
while(1)
{
EXINTinit();
if(flag_300ms == 1)
{
flag_300ms = 0;
clock_h_l(); //报警函数
if(beep == 1)
send_wave(); //测距离函数
if(menu_1 == 0)
smg_display(); //处理距离显示函数
}
key(); //按键函数
if(key_can < 10)
{
key_with(); //按键处理函数
}
}
}
/*********************定时器1中断服务程序************************/
void time1_int() interrupt 3
{
static uchar value; //定时2ms中断一次
TH1 = 0xf8;
TL1 = 0x30; //2ms
display(); //数码管显示函数
value++;
if(value >= 150)
{
value = 0;
flag_300ms = 1;
}
}
void EXINTinit()//定时器初始化
{
EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
}
void EX0INT() interrupt 0//int0中断 代码
{
int k,m,n;
for(m=0;m<3;m++)
{
for(n=0;n<10;n++ )
{
for(k=0;k<100;k++)
{ delay10ms();
}
}
}}
void delay10ms()
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
|
|