加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)

09/19 08:59
3042
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

功能:

超聲波測距儀,測量距離,用LCD12864顯示信息。 lcd_writestr(0,0," 超聲波測距儀 "); lcd_writestr(1,0,"********"); lcd_writestr(2,0,"當(dāng)前被測距離為:"); lcd_writestr(3,0," 厘米 ");

原理圖

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

* 功能:超聲波測距

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

#include <reg52.h>

#include "intrins.h"

#include "12864LCDdriver.h"

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long int

#define V=173

sbit CSOut=P1^7;

sbit Start=P1^4;

ulong TIME;

uchar DISTANCE;

uchar code discode[11]={'0','1','2','3','4','5','6','7','8','9',' '};

ulong data disnum[5];

bit data ReceiveOK=0;

bit data TOut;

bit data FLAG;

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

* 函數(shù)名稱:void delay2(uchar x)

* 功??? 能:延時(shí)函數(shù)

* 入口參數(shù):無

* 出口參數(shù):無

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

void delay2(uchar x)

{

uchar a,b;

for(a=0;a<x;a++)

for(b=0;b<255;b++);

}

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

* 函數(shù)名稱:void init(void)

* 功??? 能:初始化

* 入口參數(shù):無

* 出口參數(shù):無

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

void init(void)

{

lcd_init();//LCD初始化,開機(jī)調(diào)用一次

TMOD=0x01;//T0定時(shí)器方式1

IT0=0;//INT0負(fù)邊沿觸發(fā)

IP=0x01;//INT0高優(yōu)先級

EA=1;//開總中斷

}

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

* 函數(shù)名稱:

* 功??? 能:超聲波發(fā)射函數(shù)

* 入口參數(shù):無

* 出口參數(shù):無

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

void CCOut(void)

{

TR0=1;

//40KHz

CSOut=0;//1

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//2

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//3

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//4

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//5

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//6

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//7

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//8

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//9

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//10

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//11

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//12

}

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

* 函數(shù)名稱:void DataProcess(void)

* 功??? 能:數(shù)據(jù)處理函數(shù)

* 入口參數(shù):無

* 出口參數(shù):無

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

void DataProcess(void)

{

ulong time=0;

TIME=TH0;

TIME=(TIME<<8)|TL0;

TIME*=173;//距離

TIME=TIME/10000;//單位:CM

disnum[0]=(uchar)TIME%10;??????? //個(gè)位

disnum[4]=TIME/10;

disnum[1]=(uchar)disnum[4]%10;//十位

disnum[4]=disnum[4]/10;

disnum[2]=(uchar)disnum[4]%10;//百位

disnum[4]=disnum[4]/10;

disnum[3]=(uchar)disnum[4]%10;//千位

}

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

* 函數(shù)名稱:void TimeOut(void) interrupt 1

* 功??? 能:超時(shí)處理函數(shù) T0

* 入口參數(shù):無

* 出口參數(shù):無

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

void TimeOut(void) interrupt 1

{

TR0=0;

ET0=0;

EX0=0;

ReceiveOK=0;

TOut=1;

}

 

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

相關(guān)推薦

電子產(chǎn)業(yè)圖譜