單片機開發(fā)課程設計
一、設計目的1、熟悉單片機開發(fā)試驗儀的工作原理.
2、掌握C51語言編程方法。
3、熟悉超聲波測距模塊工作原理。
4、熟悉LCD顯示屏使用方法。
5、熟悉超聲波傳感器、蜂鳴器的原理及使用方法。
2、設計思路1、整體設計思路
圖1 整體設計思路圖(見51hei附件)
2、模塊設計思路1、編寫LCD1602驅(qū)動模塊相關程序思路;
在LCD1602程序中,要寫入寫、讀、顯示數(shù)據(jù)函數(shù)模塊。
1、寫數(shù)據(jù)模塊:
圖2 數(shù)據(jù)傳輸圖
2、讀數(shù)據(jù)模塊:
圖3 數(shù)據(jù)傳輸圖
3、顯示模塊:
圖4 顯示原理圖
3、編寫蜂鳴器驅(qū)動模塊相關程序思路;用P1^5口接入蜂鳴器,設計兩個不同頻率的延時模塊。
當距離不同時,分別調(diào)用不同頻率的蜂鳴器驅(qū)動函數(shù)。
4、編寫超聲波傳感器測距模塊相關程序思路。高電平持續(xù)時間為超聲波發(fā)出到返回接收到一個往返的時間。

圖5 超聲波時序圖
三、設計過程1、總體設計方案1、超聲波測距傳感器的使用:
控制口發(fā)一個 10US 以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當此口變?yōu)榈碗娖綍r就可以讀定時器的值,此時就為此次測距的時間,方可算出距離.如此不斷的周期測,就可以達到你移動測量的值了。

圖6超聲波傳感器實物圖
如上實物圖示,超聲波傳感器有4個引腳,VCC電源端、GND接地端、TRIG發(fā)送端、ECHO接收端。
超聲波傳感器采用IO觸發(fā)測距,trig端發(fā)出超聲波,模塊自動發(fā)送8個40Khz的方波,自動檢測是否有信號返回,到echo端接收到超聲波,在此過程中一直持續(xù)高電平信號,高點平的持續(xù)時間就是超聲波從發(fā)出到接收到這一過程的時間。
測試距離=(高電平時間*聲速(340m/s))/2
2、模塊電路1、超聲波測距模塊工作原理(程序見附件):
(1)采用 IO 觸發(fā)測距,給至少 10us 的高電平信號;
(2)模塊自動發(fā)送 8 個 40khz 的方波,自動檢測是否有信號返回;
(3)有信號返回,通過 IO 輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間.測試距離=(高電平時間*聲速(340M/S))/2;
最遠探測距離調(diào)節(jié)
圖7 超聲波模塊圖
上圖標志電阻即 R3,可以調(diào)節(jié)最大探測距離。R3 電阻為 392,探測距離最大 4.5M 左右,探測角度小于15度;R3電阻為472,探測距離最大7M 左右,盲區(qū)在2CM左右,探測角度小于30度;出廠默認392,即最大探測距離4.5M左右。R3電阻大,接收部分增益高,檢測距離大,但檢測角度會相應變大,容易檢測到前方旁邊的物體。當然,客戶在不要求很高的測試距離的條件下,可以改小R3來減小探測角度,這時最大測距會減小。超聲波模塊測距接口: 圖8 超聲波模塊測距接口圖
字符的顯示 :
用LCD顯示一個字符時比較復雜,因為一個字符由6×8或8×8點陣組成,既要找到和顯示屏幕上某幾個位置對應的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應的地址,設立光標,在此送上該字符對應的代碼即可。

圖9 LCD1602模塊接口電路圖

圖10 蜂鳴器模塊接口電路圖
蜂鳴器的BZ接到單片機的P1^5口上,當接收到低電平是低電平是,蜂鳴器報警,當是高電平蜂鳴器不響應。
四、系統(tǒng)調(diào)試與結(jié)果程序調(diào)試:
在Keil-uVision4軟件中對程序進行編譯,如下圖所示,在調(diào)試的過程中,蜂鳴器在不同的測試距離下應該發(fā)出不同頻率的報警聲。期初,我未能透徹理解蜂鳴器發(fā)聲原理,所以在寫蜂鳴器報警程序時,遇到了很多問題,很長時間都不能發(fā)出不同頻率的聲音。最后經(jīng)過查看資料、研究它的發(fā)聲原理,

圖11 程序調(diào)試顯示圖
功能調(diào)試:
(1)當超聲波測距傳感器此時與物體距離為0.13m,當超聲波測距傳感器與物體距離小于10時,蜂鳴器報警會發(fā)出滴---滴---滴---的聲音。

圖12 功能調(diào)試圖
(2)當超聲波測距傳感器與物體距離為0.13,當超聲波測距傳感器與物體距離在10~30cm之間時,蜂鳴器報警會發(fā)出滴滴滴滴滴滴的聲音。

圖13 功能調(diào)試圖
(3)當物體與超聲波傳感器的距離超過30cm時,不發(fā)生報警。

圖14 功能調(diào)試圖
五、主要元器件與設備開發(fā)平臺:X86-PC windows開發(fā)工具:Keil uVersion4
目標平臺:STC89C52RC 單片機
主要元器件:
單片機開發(fā)試驗儀:
板載硬件:STC89C52RC、DS1302、LED 數(shù)碼管、蜂鳴器、LCD1602、8*8 LED 矩陣、矩陣鍵盤、獨立按鍵、74LS138 等;
超聲波測距傳感器
六、課程設計體會與建議6.1、設計體會 通過這四天的課程設計學習,不僅加強了我的學習理論的能力,而且也增強了我的動手寫程序,也讓我更深一步的認識了單片機,當然,遇到問題是在所難免的,有了問題才有進步的空間,也只有發(fā)現(xiàn)問題,才知道自己的水平是怎樣的,才會讓自己沉下心去認真分析與反思,細心總結(jié),在學習中進步。
在項目中,我們要編寫代碼,進行功能的測試。在寫程序時,老師帶著我們寫了主要的部分,讓我們做擴展功能,在寫的時后我犯了不少錯誤。C語言語法運用的不夠熟練,會犯很基礎的低級錯誤。
總之,在經(jīng)歷了這次課程設計工作之后,讓我明白,不管遇到什么問題都要認證分析,堅持嘗試,不斷的努力去此外,對于問題要認真分析,仔細考慮有關的方方面面,才能解決問題。更要多去練習,相信孰能生巧。
6.2、設計建議我還是比較喜歡課程設計這一教學模式,因為這不僅是一個課程設計,在做一個實際的項目中所面臨的問題遠超于課本。
在這次單片機課程設計讓我學到了很多東西,認識到了動手寫程序的重要性,希望學校可以安排多次這樣的課程設計,多讓我們做一些有意義的設計,希望老師也能多發(fā)一些這樣的課題讓我們一起討論、學習和設計。
七、參考文獻[1] 康華光. 電子技術基礎. 北京:高等教育出版社,1999年;
[2] 彭華林等編. 數(shù)字電子技術. 長沙:湖南大學出版社,2004年;
[3] 金唯香等編. 電子測試技術. 長沙:湖南大學出版社,2004年;
[4] 侯建軍. 數(shù)字電路實驗一體化教程. 北京:清華大學出版社,北京交通大學出版社,2005年;
[5] 閻石. 數(shù)字電子技術基礎. 北京:高等教育出版社,2001年;
[6] 趙春華、張學軍.電子技術基礎仿真實驗. 北京:機械工業(yè)出版社出版社,2007年;
設計程序代碼:
main.c程序:
完整的Word格式文檔51黑下載地址(含源碼):
超聲測距.doc
(2.41 MB, 下載次數(shù): 27)
2018-3-12 19:52 上傳
點擊文件名下載附件
超聲測距