• 大小: 38KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C/C++
  • 标签: C_code      

资源简介

该算法能够较为完整的完成倒车雷达的所有需求,不过可能需要根据实际情况适当修改参数

资源截图

代码片段和文件信息

#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

评论

共有 条评论