超聲波測(cè)距電路圖及程序_第1頁(yè)
超聲波測(cè)距電路圖及程序_第2頁(yè)
超聲波測(cè)距電路圖及程序_第3頁(yè)
超聲波測(cè)距電路圖及程序_第4頁(yè)
超聲波測(cè)距電路圖及程序_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、/#include <AT892051.H>#include <AT89X51.H>#define k1 P2_0#define csbout P2_7 /超聲波發(fā)送#define csbint P3_2 /超聲波接收#define csbc 0.034#define DQ P3_0unsigned char opto,digit;unsigned xm1,xm2,xm0,xm3,xm4,key,jpjs;unsigned sx1,mqs,buffer5;unsigned convert10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8

2、,0x80,0x90;/09bit cl; /段碼unsigned int s,t,i, xx,j,sj1,sj2,sj3,sx1;typedef unsigned char byte;typedef unsigned int word;void js();void delay(int i); /延時(shí)函數(shù)void scanLED(); /顯示函數(shù)void allToBuffer(); /顯示轉(zhuǎn)換函數(shù)void keyscan();void offmsd();void delay1(word useconds);byte ow_reset(void);byte read_byte(void);vo

3、id write_byte(char val);char Read_Temperature(void);void main() /主函數(shù)EA=1; /中斷允許TMOD=0x11; /設(shè)定時(shí)器0為計(jì)數(shù),設(shè)定時(shí)器1定時(shí) ET0=1; /定時(shí)器0中斷允許ET1=1; /定時(shí)器1中斷允許TH0=0x00;TL0=0x00;TH1=0x9E; /定時(shí)器T1置為25msTL1=0x57;csbint=1; /p3.2置位csbout=1; /p2.7置位cl=0;opto=0xff;jpjs=0;sj1=20;sj3=600;TR1=1;while(1)keyscan();if(jpjs<1)js(

4、);if(s>sj3)buffer2=0x00;buffer1=0x00;buffer0=0x00;else if(s<sj1)buffer2=0x00;buffer1=0x00;buffer0=0x00;else allToBuffer();else allToBuffer(); /將值轉(zhuǎn)換成LED段碼 offmsd();scanLED(); /顯示函數(shù) void scanLED() /顯示功能模塊digit=0x01;for( i=0; i<5; i+) /5位數(shù)顯示P0=digit&opto; /依次顯示各位數(shù)P1=bufferi; /顯示數(shù)據(jù)送P1口delay

5、(20); /延時(shí)處理if(!(P0&0xEF) /判斷5位是否顯示完key=0;digit<<1; /循環(huán)左移1位void allToBuffer() /轉(zhuǎn)換距離數(shù)碼管功能模塊 int temperature;xm0=s/100;xm1=(s-100*xm0)/10;xm2=s-100*xm0-10*xm1;buffer2=convertxm2;buffer1=convertxm1;buffer0=convertxm0;temperature=Read_Temperature();xm3=temperature/10;xm4=temperature-10*xm3;buff

6、er4=convertxm4; buffer3=convertxm3;void delay(int i) while(-i);void js()int temprature;temprature=Read_Temperature(); if(cl=1)TR1=0; /定時(shí)器1關(guān)閉 TH0=0x00;TL0=0x00;/定時(shí)器0清零 i=10;while(i-)csbout=!csbout; 期超聲波TR0=1; i=mqs; while(i-)i=0;while(csbint)i+;if(i>=2450) csbint=0;TR0=0;TH1=0x9E;TL1=0x57;t=TH0; /

7、連續(xù)取反10次 發(fā)射5個(gè)周 /開啟計(jì)數(shù)器t0 /盲區(qū) /上限值t=t*256+TL0;s=t*(csbc+0.61*temprature)/2;TR1=1;cl=0;void keyscan() /健盤處理函數(shù)xx=0;if(k1!=1) / 判斷開關(guān)是否按下delay(400); /延時(shí)去抖動(dòng) 延時(shí)3.6msif(k1!=1) / 判斷開關(guān)是否按下 while(!k1)delay(30);xx+;if(xx>2000)jpjs+;if(jpjs>4)jpjs=0;xx=0;mqs=65; /while循環(huán)一周期9us ,20cm需要等待65*9us void offmsd()if

8、 (buffer0 = 0x3f)buffer0 = 0x00;/ds18b20的完整程序(c51)(sparkstar)/DS1820 C51 子程序/這里以11.0592M晶體為例,不同的晶體速度可能需要調(diào)整延時(shí)的時(shí)間/sbit DQ =P21;/根據(jù)實(shí)際情況定義端口/延時(shí)void delay1(word useconds)for(;useconds>0;useconds-);/復(fù)位byte ow_reset(void)byte presence;DQ = 0; /pull DQ line lowdelay1(29); / leave it low for 480us DQ = 1;

9、 / allow line to return highdelay1(3); / wait for presencepresence = DQ; / get presence signal delay1(25); / wait for end of timeslotreturn(presence); / presence signal returned / 0=presence, 1 = no part/從 1-wire 總線上讀取一個(gè)字節(jié) byte read_byte(void)byte i;byte value = 0;for (i=8;i>0;i-)value>>=1;

10、DQ = 0; / pull DQ low to start timeslot DQ = 1; / then return highdelay1(1); /for (i=0; i<3; i+);if(DQ)value|=0x80;delay1(6); / wait for rest of timeslot return(value);/向 1-WIRE 總線上寫一個(gè)字節(jié)void write_byte(char val)byte i;for (i=8; i>0; i-) / writes byte, one bit at a time DQ = 0; / pull DQ low to start timeslotDQ = val&0x01;delay1(5); / hold value for remainder of timeslot DQ = 1;val=val/2;delay1(5);/讀取溫度char Read_Temperature(void)unionbyte c2;int x;temp;ow_reset();write_byte(0xCC); / Skip ROM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論