视觉上体验的网站,做网站用虚拟主机还是用服务器,nginx wordpress配置静态化,wordpress 修改域名一、超声波原理 左边发射超声波信号#xff0c;右边接收超声波信号
左边的芯片用来处理超声波发射信号#xff0c;中间的芯片用来处理接收的超声波信号
二、超声波原理图 T——transmit 发送R——Recieve 接收
U18芯片对输入的N_A1信号进行放大#xff0c;然后输入给超声…一、超声波原理 左边发射超声波信号右边接收超声波信号
左边的芯片用来处理超声波发射信号中间的芯片用来处理接收的超声波信号
二、超声波原理图 T——transmit 发送R——Recieve 接收
U18芯片对输入的N_A1信号进行放大然后输入给超声波传感器作用是增强带负载能力 。传递给JS2一个高频的方波信号
U11芯片如果JS1接收到超声波信号N_B1输出低电平如果没有接收到超声波信号N_B1输出高电平。主要功能是对超声波信号进行处理以高低电平进行输出。 使用超声波功能的话用短接帽将1,3短接24短接
使用红外功能将35短接46短接
相当于红外和超声波共用P10和P11,使用哪个功能就将哪个短接 使用的是40Khz的频率一个周期有高低电平变换所以就是80Khz的频率换算之后就是12.5us 距离测量原理 三、模块代码
#include ultrasonic.hunsigned char Wave_Recv(void)
{unsigned char ucNum10;Tx0;TL00xF4;TH00xFF;TR01;//开始计时/**************************发射部分***************************/while(ucNum--)//每12us,高低电平进行切换就可以产生40kHZ的方波信号{while(!TF0);//当计时器没到时等待当计时器到了TF0为1时取反为0退出循环Tx^1;//取反TF00;//清零}TR00;TL00;TH00;//正计时TR01;while(Rx !TF0);//没接到信号Rx为1,TF0没溢出为1 就会一直循环接收到信号会退出溢出会退出循环TR00;if(TF0)//说明溢出了也没有接收到信号可能是距离过远return 255;elsereturn ((TH08)|TL0)*0.017;//单位是cm}
四、主函数代码
#include seg.h
#include tim.h
#include led.h
#include init.h
#include ultrasonic.h//Seg
unsigned char pucSeg_Buf[12],pucSeg_Code[9],pucSeg_Pos0;//字符数组以/0结尾所以要有9位
//Ultrasonic
unsigned char ucDist 0;//Timer
unsigned long ulms 0;
unsigned int uiSeg_Dly0;
unsigned int uiUltrasonic_Dly0;
void Seg_Proc(void);
void Ultrasonic_Proc(void);void main(void)
{Cls_Peripheral();Timer0Init();Timer1Init();EA1;while(1){Seg_Proc();Ultrasonic_Proc();}}void Seg_Proc(void)
{if(uiSeg_Dly200)return;uiSeg_Dly 0;sprintf(pucSeg_Buf,%-3u ,(unsigned int)ucDist);//将指定的内容打印到字符数组里Seg_Tran(pucSeg_Buf,pucSeg_Code);
}
void Ultrasonic_Proc(void)
{if(uiUltrasonic_Dly500)return;uiUltrasonic_Dly 0;ucDistWave_Recv();
}
void Time_1(void) interrupt 3
{ulms;uiSeg_Dly;uiUltrasonic_Dly;if(ulms % 20){pucSeg_Pos(pucSeg_Pos1)%8;//实现pucSeg_Pos从0-7循环的操作Seg_Disp(pucSeg_Code,pucSeg_Pos);}
}