本篇讲的单片机是第十一届蓝桥杯单片机实训的硬件设备。
蓝桥杯单片机硬件基础
CX20106A电路图:
CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距超声波频率40kHz较为接近,可以利用它作为超声波检测电路。
超声波发射电路图:
超声波和红外线选择电路图:
因此,当需要使用超声波功能时,需要将J2口的1和3、2和4短接。
超声波相关函数代码:
- 超声波初始化函数:(选择定时器,设置初始值)
void US_init(void)
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //c设置定时器模式
TL0 = 0x00;
TH0 = 0x00;
TF0 = 0;
}
- 超声波信号发送和接收函数:
u16 Get_distance(void) //12M
{
u8 i = 8;
u16 distance;
while(i--)
{
P10 = 1;
Delay10us(); //延时时间有待探究
P10 = 0;
Delay10us();
}
TL0 = 0;
TH0 = 0;
TR0 = 1;
while(P11 && (TF0 == 0));
TR0 = 0;
if(TF0)
{
TF0 = 0; distance = 99;
}
else
{
distance = ((TH0<<8)|(TL0))*0.0014167; //得到<100cm的测量距离
}
return distance;
}
函数的使用方法,这里就不展示了,欢迎提问和咨询 ~