ҵƣģ
a=distance_data;
if(b==a) CONT_1=0; if(b!=a) CONT_1++; if(CONT_1>=3) }
//*************************************************************** //ⲿж0жϻزƽ INTO_() interrupt 0 // ⲿж0 {
outcomeH =TH1; //ȡʱֵ outcomeL =TL1; //ȡʱֵ succeed_flag=1; //ɹı־ EX0=0; //رⲿж }
//**************************************************************** //ʱ0ж,ʾ
timer0() interrupt 1 // ʱ0ж1 {
TH0=0xfd; //д붨ʱ0ʼֵ
TL0=0x77;
switch(flag)
case 0x01:P0=shi;P2=0xfe;flag++;break; case 0x02:P0=bai;P2=0xfb;flag=0;break;
{ CONT_1=0;
b=a;
conversion(b); }
i=0; }
/// }
///
{case 0x00:P0=ge; P2=0xfd;flag++;break;
} }
//*****************************************************************
35
ҵƣģ
/*
//ʱ1ж,ʱ timer1() interrupt 3 // ʱ0ж1 { TH1=0; TL1=0; } */
//****************************************************************** //ʾת
void conversion(uint temp_data) {
uchar ge_data,shi_data,bai_data ; bai_data=temp_data/100 ;
temp_data=temp_data0; //ȡ shi_data=temp_data/10 ;
temp_data=temp_data; //ȡ ge_data=temp_data;
bai_data=SEG7[bai_data]; shi_data=SEG7[shi_data]; ge_data =SEG7[ge_data];
EA=0; bai = bai_data; shi = shi_data; ge = ge_data ; }
//****************************************************************** void delay_20us() { uchar bt ;
for(bt=0;bt<100;bt++); } EA=1;
36
ҵƣģ
/*
void pai_xu() { uint t;
if (distance[0]>distance[1])
{t=distance[0];distance[0]=distance[1];distance[1]=t;} /*ֵ if(distance[0]>distance[2])
{t=distance[2];distance[2]=distance[0];distance[0]=t;} /*ֵ if(distance[1]>distance[2])
{t=distance[1];distance[1]=distance[2];distance[2]=t;} /*ֵ } */
4.5 ϵͳӲĵ
ǵ͵ԶȽϼгͽղ?15ijtct40-10f1(T)CX20106ARգƵΪ40kHzװʱӦƽв4~8cmԪҪܽܵ·ý߿ݲΧҪͬʵջӵ˲C16ĴСԻúʵĽȺͿ
Ӳ·ɲԺúɽصƬСʵijӳÿη͵Ⱥβļʱ䣬ӦͬIJҪƵĵ·ͳܲķΧΪ0.075.5m1cmϵͳӦԲظһԽжʵ
4.6 Է
ϵͳʹ51ƬΪԹߣkeilóͨRS232صAT89C51Ƭϣɽгԡ
4.6.1 LEDʾĵ
ʾĵԣҪLEDܷʾ
ʾһģʾд롰1234صƬУϵ縴λLEDʾΪ1234˵ʾ
37
ҵƣģ
4.6.2 ¶Ȳĵ
¶ȳĵԣҪDz¶Ƿȷ
¶ȲʾϣLEDʾǰ¶ȡصƬУϵ縴λLEDʾ28.5桱˵¶Ȳ ŻϵͳʹﵽʵʹõIJҪ
38