文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]
文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]
超声波测距C语言源程序代码
/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12MHZ)/12=1MH
即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时,
即1us(微秒).*/
/***********************************************************************************/
#include<>
#define UC unsigned char
#define UI unsigned int
void delay(UI);sbit BX = P3^0;void TimeConfiguration();a = 0;
b = 0;
c = 0;
P2 =~ 0x00;goto loop;
}
time = TL0 + TH0*256;juli = ( int )( (time*/2 );
BAI = ( (juli%1000)/100 );SHI = ( (juli%100)/10 ); GE = ( juli%10 );
/******************************************两种模式的距离显示********************************************/
if(juli > MAX)
{
Hong = 0;
Lv = 1;
while( t1-- )
{
a = 0;
b = 1;
c = 1;
P2 =~ CharacterCode[BAI];
delay(400);
a = 1;
b = 0;
c = 1;
P2 =~ CharacterCode[SHI];
delay(400);
a = 1;
b = 1;
c = 0;
P2 =~ CharacterCode[GE];
delay(390);
beep = 0;
if( (1 == moshi)&&(0 == t1) )
goto loop;
if(moshi == 2)
{
t1 = 2;
if(0 == QD)
goto loop;
}
}
}
else if(juli < MIN)
{
Lv = 0;
Hong = 1;
while( t2-- )
{
a = 0;
b = 1;
c = 1;
P2 =~ CharacterCode[BAI];
delay(500);
a = 1;
b = 0;
c = 1;
P2 =~ CharacterCode[SHI];
delay(500);
a = 1;
b = 1;
c = 0;
P2 =~ CharacterCode[GE];
delay(400);
beep = 0;
delay(100);
beep = 1;
if( (1 == moshi)&&(0 == t2) )
goto loop;
if(2 == moshi)
{
t2 = 2;
if(0 == QD)
goto loop;
}
}
}
else
{
beep = 1;
Lv = 1;
Hong = 1;
while( t3-- )
{
a = 0;
b = 1;
c = 1;
P2 =~ CharacterCode[BAI];
delay(600);
a