資源簡介
該算法能夠較為完整的完成倒車雷達的所有需求,不過可能需要根據實際情況適當修改參數
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#define?uchar?unsigned?char
#define?uint?unsigned?int
#define?ulong?unsigned?long
sbit?send=P3^7; /*超聲波發射端?*/
sbit?receive=P3^3; /*超聲波接收端?*/
sbit?K4=P3^6;??
sbit?beep=P1^7;
bit?success_flag=0; /*判斷是否有回波信號?*/
ulong?time;
uint?c=322;
uchar?baishigesf; /*顯示各位?*/
uchar?key=1; /*鍵盤?*/
uchar?TimerHTimerL;???????????? /*讀取測量定時器的值?*/
float?tempdistance;
ulong?distance2; /*溫度?*/
/*函數聲明?*/
void?delay_csb(uint?us);
void?init_csb(void);
void?send_csb(void);
void?final(void);
int?write_final(void);
void?key_control(void);
/*延時函數?*/
void?delay_csb(uint?us)
{
while(us--);
}
/*初始化?*/
void?init_csb(void)
{
TMOD=0x11; /*定時器1工作在方式1,定時器0工作在方式1*/
TH1=0x00;
TL1=0x00; /*賦初值?*/
EA=1; /*開總中斷?*/
EX1=0; /*關外部中斷1*/
IT1=1; /*外部中斷1跳沿觸發?*/
}
/*超聲波發射?*/
void?send_csb(void)
{
send=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
send=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); /*40KHz超聲波?*/
}
/*數據處理,顯示結果?*/
void?final(void)
{
time=TimerH*256+TimerL; /*單位us*/
temp=ReadTemperature();
c=322; /*0°C時的聲速?*/
c=c*sqrt(1+temp/273.16); /*tt為溫度值?溫度對聲速進行補償,m/s?*/
distance2=time*c/2;
distance=(float)distance2/10000; /*計算距離,單位cm?*/
bai=(int)distance/100; /*距離的百位?*/
shi=(int)distance%100/10; /*距離的十位?*/
ge=(int)distance%10;
distance*=10;
sf=(int)distance%10; /*距離的十分位?*/
}
/*LCD顯示結果?*/
int?write_final(void)
{
uchar?dat[6];
uchar?tmp[5];
final();
DisplayListChar(00“distance=???????“);
dat[0]=0x30+bai;
dat[1]=0x30+shi;
dat[2]=0x30+ge;
dat[3]=0x2e;
dat[4]=0x30+sf;
dat[5]=‘\0‘;
Displ
- 上一篇:matlab的SVM工具包
- 下一篇:c++課程設計日期格式處理
評論
共有 條評論