《51單片機開發板-超聲波測距-數碼管顯示》由會員分享,可在線閱讀,更多相關《51單片機開發板-超聲波測距-數碼管顯示(16頁珍藏版)》請在人人文庫網上搜索。
1、計算機技術系項目工作報告課程名稱單片機開發板設計與制作實訓班級學號姓名項目名稱超聲波測距,數碼管顯示實訓日期/時間2015.6.23-2015.7.5地點指導教師同組成員儀器設備(參考資料)計算機、Keil uVision2、Proteus ISIS 電烙鐵、開發板、HC-SR04超聲波模塊實訓內容(任務安排)1焊接開發板2自選課題3開發與調試4項目匯報與總結一、 項目名稱與要求項目名稱:超聲波測距,數碼管顯示功能描述:采用HC-SR04超聲波模塊,STC89C52單片機以及數碼管顯示設計的一種超聲波測距顯示器,可以實現測量物體到儀器距離以及顯示等功能,可以測量范圍為2cm 450cm ,精確。
2、度為1cm。是一種結構簡單、性能穩定、使用方便、價格低廉的超聲波距離測量器,具有一定的實用價值。2、 項目設計思路 1、 硬件資源單片機開發板(攜帶數碼管);HC-SR04超聲波模塊;STC89C52芯片;2、 軟件設計思路軟件設計采用C語言編程,運用模塊化程序設計思想,對不同功能模塊的程序進行分別編程,以便移植或調用,這樣使軟件層次結構清晰,有利于軟件的調試修改。 軟件設計思路是:系統初始化、發射脈沖串、計時、接收輸入脈沖,接收串口輸入速度值、計算距離、顯示距離值、重復。超聲波測距算法設計如下:超聲波發生器T在某一時刻發出一個超聲波信號,當這個超聲波遇到被測物體后反射回來,就會被超聲波接收器。
3、R接收到。這樣,只要計算出從發出超聲波信號到接收到返回信號所用的時間,就可算出超聲波發生器于反射物體的距離。該距離的計算公式如下: d=s/2(vt)/2 其中:d為被測物于測距器的距離;s為聲波的來回路程;v為聲速;t為聲波來回所用的時間。超聲波測距原理圖如下:3、 項目涉及的知識點說明HC-SR04超聲波模塊簡介:實物圖:正面:背面:HC-SR04 超聲波測距模塊可提供 2cm-400cm 的非接觸式距離感測功能, 測距精度可達高到 1cm;模塊包括超聲波發射器、接收器與控制電路。 1、基本工作原理: (1)采用 IO 口 TRIG 觸發測距,給至少 10us 的高電平信號; (2)模塊自。
4、動發送 8 個 40khz 的方波,自動檢測是否有信號返回;(3)有信號返回,通過 IO 口 ECHO 輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。2、主要技術參數:(1)使用電壓:DC-5V(2)靜態電流:小于2mA(3)電平輸出:高5V(4)電平輸出:底0V(5)感應角度:不大于15度(6)探測距離:2cm-450cm(7)高精確度:1cm 三、 硬件設計1、 電路原理圖HC-SR04超聲波模塊電路圖:2、 元器件或模塊清單主要元器件單片機開發板STC89C52芯片共陽極四位數碼管0.36英寸(3641B)外圍模塊HC-SR04超聲波模塊四、軟件設計1、程序流程圖開始初始。
5、化發送脈沖延遲等待距離為零判斷接受情況否是計算距離顯示距離結束2.程序清單#include reg51.h#include /常變量定義:code unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf;/表:共陽數碼管 0-9 -unsigned int time=0;unsigned int timer=0;unsigned long S=0;bit flag =0;unsigned char l_disbuff4= 0xff,0,0,0,;/顯示緩沖unsigned char l_posit=1。
6、;/位選擇/引腳定義:sbit SMG_q = P10;/定義數碼管陽級控制腳(千位)本例程只用到三位數碼管sbit SMG_b = P11;/定義數碼管陽級控制腳(百位)sbit SMG_s = P12;/定義數碼管陽級控制腳(十位)sbit SMG_g = P13;/定義數碼管陽級控制腳(個位)sbit RX = P21;/模塊引腳sbit TX = P20;/*/顯示函數,參數為顯示內容void display()P0=0XFF;/switch(l_posit)case 0:/選擇千位數碼管,關閉其它位SMG_q=0;SMG_b=1;SMG_s=1;SMG_g=1;P0=0xff;/ta。
7、blel_disbuff0;/此位不顯示break;case 1:/選擇百位數碼管,關閉其它位SMG_q=1;SMG_b=0;SMG_s=1;SMG_g=1;P0=tablel_disbuff1&0x7f;/加入小數點break;case 2:/選擇十位數碼管,關閉其它位SMG_q=1;SMG_b=1;SMG_s=0;SMG_g=1;P0=tablel_disbuff2;break;case 3:/選擇個位數碼管,關閉其它位SMG_q=1;SMG_b=1;SMG_s=1;SMG_g=0;P0=tablel_disbuff3;break;l_posit+;if(l_posit3)l_posit=。
8、0;/*/void Conut(void)time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100; /算出來是CMif(S=700)|flag=1) /超出測量范圍顯示“-” flag=0;l_disbuff1=10; /“-”l_disbuff2=10; /“-”l_disbuff3=10; /“-”elsel_disbuff1=S%1000/100;l_disbuff2=S%1000%100/10;l_disbuff3=S%1000%10 %10;/*/void zd0() interrupt 1 /T0中斷用來計數器溢出,超過測距范圍flag=1;/中。
9、斷溢出標志/*/void zd3() interrupt 3 /T1中斷用來掃描數碼管和計800MS啟動模塊TH1=0xf8;TL1=0x30;display();timer+;if(timer=400)timer=0;TX=1; /800MS 啟動一次模塊_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _。
10、nop_(); _nop_();TX=0; /*/void main( void ) TMOD=0x11; /設T0,T1為方式1TH0=0;TL0=0; TH1=0xf8; /2MS定時TL1=0x30;ET0=1; /允許T0中斷ET1=1; /允許T1中斷TR1=1; /開啟定時器EA=1; /開啟總中斷while(1)while(!RX);/當RX為零時等待TR0=1; /開啟計數while(RX);/當RX為1計數并等待TR0=0;/關閉計數Conut();/計算五、系統調試過程與演示1.電路板焊接2.載入程序調試3.調試結果演示如下:A4紙規格:長:29.7 cm寬:21 cmA4。
11、長度測量:A4寬度測量:六、項目總結單片機課是一門實踐性很強的課程,僅有課堂上理論知識的學習,對運用好單片機是完全不夠的,必須親自做實驗,從實驗中吸取教訓,總結經驗,增加實戰經驗,加深對單片機的理解,更好的運用單片機。單片機實驗課的目的就是為學生提供做實驗的機會,讓學生能夠從幾個簡單的實驗中學會單片機開發的過程和單片機的實際運用。通過這次單片機實習,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去培養我們的創新精神,從而不斷地戰勝自己,超越自己。創新可以是在原有的基礎上進行改進,使之功能不斷完善,成為真己的東西。經過幾個星期的實訓設計,我要感謝我的指導教師張勁。
12、老師在實訓設計中對我給予的悉心指導和幫助,也謝謝同學對我的的幫助。在此次實訓中,對Keil uVision2軟件的使用有了明顯的提高,比以前更加的熟悉了用該軟件菜單的各項調試工具和窗口,再結合硬件和軟件,進行整體調試。我深刻的認識到了理論知識和實踐操作必須是相結合的,也許在實訓時會有很多各種軟、硬件等故障。總之,親自動手是課堂學習的延續,電子領域隨時隨地都在發生著翻天覆地的變化,現有的知識儲備總是落后于科技的發展腳步,我們只有不斷學習新知識,才能做到面對新課題時游刃有余。通過為期一周的單片機實訓,使我們對這門課有了許多新的了解,彌補了在課堂上學習的不足。并且,這次實訓是真正意義上的學以致用。讓。
13、我們對單片機有了更加清晰的了解更深刻的認識。所以,在這里我得感謝我們的實訓老師!首先,在這次試訓中我被單片機強大的功能所震撼,以前在課堂上完全沒有能理解可編程單片機的優越性。這次通過實體仿真軟件等輔助軟件的共同效果,是這次試訓有了鮮明的活力。換是我們認識到這次試訓不僅僅是一個軟件的應用,更多的是使我們認識到學習到很多在課堂上無法得到的東西。單片機作為一種最簡單的軟件,與我們的日常生活息息相關,了解一些單片機程序的簡單錄入是費城必要的。如:LED顯示器、鍵盤和顯示器的應用和原理。在這次實訓中,我們組做的事超聲波測距。從單片機開發版的焊接到程序的寫入運行,最后讓測距儀可以使用。這使我們深深地體會到。
14、了單片機在現實生活中的小小應用,既增強了我們的好奇心,又鞏固了我們的理論知識。更讓我們體會到了單片機手動的開始平臺的完善與成熟。只要你有想法,單片機就有可能讓他成為現實。在這次試訓中不僅只對單片機編程有了新的認識,還對整個單片機的開發平臺都有了一定的了解,真是受益頗多。通過這幾天的試訓,使我的感觸很深,解決一個問題有很多辦法的,要達到目的,不同的人就有不同的方法。然后,我也深深體會到要注重團退合作,同學們的幫助會起到很大作用。在編程中“簡”字貫穿于整個程序設計中,越簡單越好,畢竟單片機留給用戶的資源是有限的,所以我們要充分利用這些資源,達到更好的效果,這些是我們在以后的學習生活中應值得注意的地方。這次實訓真的受益匪淺!以前對單片機只是紙上談兵,經過這次實訓,我們才是真正的自己動手去應用單片機,摸索單片機蘊藏的知識。最后,我得在此感謝我們的實訓老師的諄諄教誨和悉心教導。