• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)

2024/09/14
1940
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

有需要資料的可了解一下.docx

共1個(gè)文件

主要功能:

本系統(tǒng)可具備以下幾個(gè)功能:

(1)倒車時(shí),可顯示車輛與后障礙物之間的距離;

(2)可自由設(shè)定報(bào)警距離;

(3)當(dāng)車輛與障礙物之間的距離小于等于設(shè)定的距離時(shí),可發(fā)出聲光報(bào)警;

(4)可根據(jù)環(huán)境溫度的不同對(duì)聲速的計(jì)算進(jìn)行自動(dòng)修正。

主要參數(shù)

(1)測(cè)量距離:20 cm ~ 450 cm;

(2)顯示精度:1 cm

(3)測(cè)量精度:小于1%;

(4)電源:5 V直流

d05529d6cefe4bfabcfd9817344dcca9.png

# include <reg52.h>

# include <intrins.h>

/*********************************************************/

// 宏定義區(qū)

/*********************************************************/

#define uchar unsigned char

#define uint? unsigned int

/*********************************************************/

// 管腳定義區(qū)

/*********************************************************/

sbit Lcd_E????? = P1^0; // LCD_E管腳

sbit Lcd_Rw???? = P1^1; // LCD_RW管腳

sbit Lcd_Rs???? = P1^2; // LCD_RS管腳

sbit Key_Astern = P1^3; // 倒車開關(guān)的管腳

sbit Key_Set??? = P1^4; // “設(shè)置”鍵的管腳

sbit Key_Down?? = P1^5; // “-”鍵的管腳

sbit Key_Up???? = P1^6; // “+”鍵的管腳

sbit Alarm????? = P1^7; // 聲光報(bào)警管腳

sbit Trig_1???? = P2^0; // 第1個(gè)探頭TRIG管腳

sbit Echo_1???? = P2^1; // 第1個(gè)探頭ECHO管腳

sbit Trig_2???? = P2^2; // 第2個(gè)探頭TRIG管腳

sbit Echo_2???? = P2^3; // 第2個(gè)探頭ECHO管腳

sbit Trig_3???? = P2^4; // 第3個(gè)探頭TRIG管腳

sbit Echo_3???? = P2^5; // 第3個(gè)探頭ECHO管腳

sbit Trig_4???? = P2^6; // 第4個(gè)探頭TRIG管腳

sbit Echo_4???? = P2^7; // 第4個(gè)探頭ECHO管腳

sbit DHT_Data?? = P3^2; // DHT11傳輸總線管腳

/*********************************************************/

// 特殊功能寄存器定義區(qū)

/*********************************************************/

sfr ISP_DATA??? = 0xe2; // 定義數(shù)據(jù)寄存器

sfr ISP_ADDRH?? = 0xe3; // 定義地址寄存器高八位

sfr ISP_ADDRL?? = 0xe4; // 定義地址寄存器低八位

sfr ISP_CMD???? = 0xe5; // 定義命令寄存器

sfr ISP_TRIG??? = 0xe6; // 定義命令觸發(fā)寄存器

sfr ISP_CONTR?? = 0xe7; // 定義命令寄存器

/*********************************************************/

// 全局標(biāo)量定義區(qū)

/*********************************************************/

uint Alarm_Distance;

bit Is_Not_Show = 1;

bit Is_Long_Bright = 0;

/*********************************************************/

// 各種延時(shí)函數(shù)定義區(qū)

/*********************************************************/

void Delay30us() // 精確延時(shí)30us

{

unsigned char i;

_nop_();

i = 12;

while (--i);

}

void Delay40us() // 精確延時(shí)40us

{

unsigned char i;

_nop_();

i = 17;

while (--i);

}

void Delay80us() // 精確延時(shí)80us

{

unsigned char i;

_nop_();

i = 37;

while (--i);

}

void Delay1ms() // 精確延時(shí)1ms

{

unsigned char i, j;

i = 2;

j = 239;

do

{

while (--j);

} while (--i);

}

void Delay5ms() // 精確延時(shí)5ms

{

unsigned char i, j;

i = 10;

j = 183;

do

{

while (--j);

} while (--i);

}

void Delay10ms() // 精確延時(shí)10ms

{

unsigned char i, j;

i = 20;

j = 113;

do

{

while (--j);

} while (--i);

}

void Delay15ms() // 精確延時(shí)15ms

{

unsigned char i, j;

i = 30;

j = 43;

do

{

while (--j);

} while (--i);

}

void Delay20ms() // 精確延時(shí)20ms

{

unsigned char i, j;

i = 39;

j = 230;

do

{

while (--j);

} while (--i);

}

void Delay70ms() // 精確延時(shí)70ms

{

unsigned char i, j;

i = 137;

j = 44;

do

{

while (--j);

} while (--i);

}

void Delay500ms() // 精確延時(shí)500ms

{

unsigned char i, j, k;

_nop_();

i = 4;

j = 205;

k = 187;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}

void Delay_Ms(uint time) // 自定義延時(shí)函數(shù)_不精確

{

uint i, j;

for(i=0; i<time; i++)

{

for(j=0; j<112; j++);

}

}

/*********************************************************/

// 禁止EEPROM讀、寫、擦除操作

/*********************************************************/

void ISP_Disable()

{

ISP_CONTR = 0;

ISP_ADDRH = 0;

ISP_ADDRL = 0;

}

 

  • 有需要資料的可了解一下.docx
    下載

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!