#include <reg52.h>
#include"intrins.h"
#define unchar unsigned char
int timeh,timel,s,t;
void init_io(void);
sbit Echo = P3^2; //回声接收端口
sbit Trig = P1^1; //超声触发端口
sbit led = P1^2 ; // 蜂鸣器
void Delay20us();
void main(void)
{
init_io();
while(1)
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x09; //设置定时器模式
TL0 = 0x00; //设置定时初始值
TH0 = 0x00; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //不会开始计时
Trig=1;
Delay20us();
Trig=0;
Echo=1;
while(!Echo);
while(Echo);
timeh=TH0;
timel=TL0;
t=timeh*256+timel;
TL0 = 0x00;
TH0 = 0x00;
s=t/58; //58us 1cm
if(s<50)
{led=1; //灯亮
}
else
{ led=0; } //灯灭
}
}
void Delay20us() //@12.000MHz
{
unsigned char i;
_nop_();
i = 7;
while (--i);
}
void init_io(void)
{
P0=0x00;
Echo=0;
}
|