文章目录
模块代码
sbit TX = P1^0;
Sbit RX = P1^1;
void PAC_init()
{
CMOD |=0x00;
CCON =0x00;
}
void send_wave()
{
u8 i=16;
while(i--)
{
TX=~TX;
Delay12us();//由于超声波制造的误差可以在11-14us间试试
}
}
void get_wave(unsigned int* dat)
{
CH=CL=0;
send_wave();
CR=1;
while(RX&&(CF==0));
CR=0;
if(CF==0) *dat=(CH<<8|CL)*0.0172/12;
else CF=0,*dat=999;
}
定时器 | 对应 |
---|---|
TH | CH |
TL | CL |
TR1 | CR |
TF1 | CF |