µ±Ç°Î»ÖãºÊ×Ò³ > »ùÓÚ³¬Éù²¨²â¾àµÄÖÇÄÜС³µÉè¼Æ - ͼÎÄ
}
wei2=(real_dis/100); wei3=real_dis/1000;
/*ÏÔʾˢк¯Êýº¯Êý*/ void display(void) {
switch(ledflag)
{
case
0:P1=ledcode[wei0];ledwei0=1;ledwei1=0;ledwei2=0;ledwei3=0;break;
case
1:P1=ledcode[wei1];ledwei0=0;ledwei1=1;ledwei2=0;ledwei3=0;break;
case
2:P1=ledcode[wei2];ledwei0=0;ledwei1=0;ledwei2=1;ledwei3=0;break;
case
3:P1=ledcode[wei3];ledwei0=0;ledwei1=0;ledwei2=0;ledwei3=1;break;
}
ledflag++; if(ledflag==4) ledflag=0;
delay(0x80);//768us=0.768ms//520´Î
}
/*±¨¾¯´¦Àíº¯Êý*/ void alarm_light(void) {
if(real_dis<=10) { }
else if(real_dis<20)
39
speak=1;
{ if(alarm_flag20>=1) {
speak^=1; alarm_flag20=0; }
}
else if(real_dis<50) { if(alarm_flag50>=2) {
speak^=1; alarm_flag50=0; }
}
else if(real_dis<100) { if(alarm_flag100>=4) {
speak^=1;
alarm_flag100=0;
} } else {
speak=1;
}
}
/*ϵͳ³õʼ»¯³ÌÐò*/ void init()//ϵͳ³õʼ»¯
40
{ }
void int0(void) interrupt 0 //¹Ø±Õ¼ÆÊýÆ÷£¬´æ¼ÆÊýÖµ,ÖñêÖ¾ {
EA=0;
//¹Ø±ÕÖжÏ
//¹ØÍⲿÖÐ¶Ï //¶ÁÈ¡ÊýÖµ
temp=0xfe; P2=temp;
TMOD=0X11; //³õʼ»¯¶¨Ê±Æ÷T0,T1ÓÃÓÚ²úÉú40hz·¢É䲨 TH0=0x00; TL0=0x00; TH1=0x00; TL1=0x00; TF1=0; PX0=1; ET1=1; EA=1; TR1=1; IT0=0;
//Æô¶¯¶¨Ê±Æ÷1 //ÍⲿµÍµçƽ´¥·¢·½Ê½
EX0=0; TimerL=TL0; TimerH=TH0; TR0=0; TH0=0x00; TL0=0x00; dis_flag=1; }
//¹Ø±Õ¶¨Ê±Æ÷0
//¾àÀë¼ÆËã±êÖ¾
void time1(void) interrupt 3 {
TF1=0; TH0=0x00;
41
}
TL0=0x00; TH1=0x00; TL1=0x00; send_flag=1;
//¿ªÆô½ÓÊջز¨ÖжÏ
/*ϵͳÖ÷º¯Êý*/ void main() {
unsigned int i,j; init(); real_dis=150; delay(0x40); while(1) {
if(send_flag==1) {
//ϵͳ³õʼ»¯
//yÔ¤Éè³õÖµ£¬·ÀÖ¹¿ª»úδ·¢É䳬Éù²¨£¬µç»úËøËÀ
/* ±¨¾¯¼¶±ð¼ÆÊý*/
alarm_flag100++; alarm_flag50++; alarm_flag20++; alarm_flag10++;
/* ±¨¾¯¼¶±ð¼ÆÊý*/
send_flag=0; count++; if(count==5) {
count=0; CLK40K();
delay(0x40); //ÑÓʱ£¬±Ü¿ª·¢ÉäµÄÖ±´ïÉù²¨ÐźÅ,¿ÉÒÔµ÷½Ú²âÁ¿
42
µÄ×îС¾àÀë
}
if(dis_flag==1) {
dis_flag=0; }
distance(); EA=1; }
EX0=1;
display(); //µ÷ÓÃÏÔʾº¯Êý
if(real_dis<=10) { } }
a=temp>>i; b=temp<<(9-i); P2=a|b;
for(j=1;j<9;j++) {
delay(300);
display(); //µ÷ÓÃÏÔʾº¯Êý for(i=1;i<9;i++)//Ñ»·ÏÂÒÆ
alarm_light(); }
}
43
¹²·ÖÏí92ƪÏà¹ØÎĵµ