《超聲波測(cè)距程序》word版_第1頁
《超聲波測(cè)距程序》word版_第2頁
《超聲波測(cè)距程序》word版_第3頁
《超聲波測(cè)距程序》word版_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.#include <reg52.h> #include <intrins.h> #define uchar unsigned char#define uint unsigned intsbit lcdrs=P23;sbit lcdrw=P24;sbit lcden=P25;sbit Trig = P14;sbit Echo = P32;sbit beef=P20;uchar code num1="distance:"uchar code num="0123456789"uchar succeed_flag;long time,

2、timeH,timeL; /教訓(xùn) time和timeH及timeL 一定要定義為 long 型 不然測(cè)得的距離有限float distance;void delay(uint z) /z毫秒 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void delay_50us(uint t) uchar j; for(;t>0;t-) for(j=19;j>0;j-);void lcd_write_com(uchar com) /LCD寫指令lcdrs=0;lcdrw=0;P0=com;delay(1);lcden=1;delay(1)

3、;lcden=0;void lcd_write_data(uchar date) /LCD寫數(shù)據(jù)lcdrs=1;lcdrw=0;P0=date;delay(1);lcden=1;delay(1);lcden=0;void lcd_pos(uchar pos)/設(shè)定顯示位置lcd_write_com(pos | 0x80);/*/顯示數(shù)據(jù)轉(zhuǎn)換程序void display(uint temp)lcd_pos(0x43);lcd_write_data(numtemp/1000);lcd_write_data(numtemp/100%10);lcd_write_data(numtemp/10%10);

4、 lcd_write_data('.');lcd_write_data(numtemp%10);lcd_write_data('c'); lcd_write_data('m'); void display1() uchar i; lcd_pos(0x01); for(i=0;i<9;i+) lcd_write_data(num1i);void lcd_init() /LCD初始化lcden=0;lcdrw=0;lcd_write_com(0x38);lcd_write_com(0x0c);lcd_write_com(0x06);lcd_wr

5、ite_com(0x01);void trans() Trig=1; /超聲波輸入端 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig=0; /產(chǎn)生一個(gè)20us的脈沖/*void main(

6、) Trig=0; /首先拉低脈沖輸入引腳EA=0; /打開總中斷0 TR1=0; / IT0=0; TMOD=0x10; /定時(shí)器1,16位工作方式 TH1=0; /定時(shí)器1清零 TL1=0; /定時(shí)器1清零lcd_init();display1(); while(1) trans(); delay_50us(1);trans();delay_50us(1); /發(fā)送兩個(gè)超聲波while(Echo);TR1=0;while(!Echo);/如果 Echo 變?yōu)楦唠娖?馬上啟動(dòng)定時(shí)器定時(shí)TR1=1;ET1=1; EA=1; EX0=1; if(succeed_flag=1) time=time

7、H*256+timeL;/ 定時(shí)的時(shí)間 distance=(180*time)/10000; /溫度補(bǔ)償 cm display(distance*10);/擴(kuò)大十倍 便于顯示 if(distance>100) beef=beef; delay(10); TH1=0; TL1=0; if(succeed_flag=0) distance=1111; /沒有回波則清零 display(1111); /若測(cè)距失敗 就顯示1111 delay(10); /*/外部中斷0,用做判斷回波電平void exter() interrupt 0 / 外部中斷0是0號(hào) EX0=0; ET1=0; TR1=0; /關(guān)閉各類中斷 timeH =TH1; /取出定時(shí)器的值 timeL =TL1; /取出定時(shí)器的值 succe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論