

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、.單片機原理及應用課程設計報告題目二十七:超聲波測距系統(tǒng)設計學生XX專業(yè)學號同組同學指導教師學院二一六年七月2015-2016學年第二學期成績:一、設計要求1.搭建單片機的最小系統(tǒng);(基本項)2.選用超聲波模塊,設計模塊與單片機的接口;(基本項)3.采用LCD顯示器顯示測量結(jié)果;(基本項)4.編寫相應的程序;(基本項)5.提高測量精度的方法。(創(chuàng)新項)二、設計題目介紹及分析使用MCS-51 系列單片機作為控制器,選用超聲波模塊,組建測距系統(tǒng)并顯示結(jié)果。三、設計方案論證發(fā)出超聲波開啟定時器收到回波信號根據(jù)THTL計算距離通過LCD顯示定時器溢出中斷或未回波發(fā)出警報通過循環(huán)來時時的對目標進行測距。
2、四、具體硬件設計說明蜂鳴器:通過PNP三極管驅(qū)動。接到P32引腳。按鍵:有鍵按下時IO口變?yōu)榈碗娖?。開始按鍵連接到P31,P32的按鍵控制中斷。超聲波模塊:選用HC-SR04。提供一個10uS以上脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出8個40kHz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號。回響信號的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時間間隔可以計算得到距離。超聲波TRIG連接到P10,ECHO連接到P11。LCD的E,RW,RS引腳分別接到單片機P27,P25,P26,P0口作為數(shù)據(jù)輸出、五、軟件設計說明開始初始化等待按鍵按下發(fā)出超聲波計算距離收到脈沖顯示是否開
3、啟定時器0關閉定時器取出TH0,TL0的值,并重新賦0發(fā)出超聲波信號時開啟定時器0,通過定時器計算回波信號持續(xù)時間進而計算出距離。/* 單片機課程設計* 題號: 27題,超聲波測距* 組員:馬銘陽,程巖,孔維士* 學號"30222204 130222206 130222207* 日期:2016年6月30日* 說明 KEY_START按下,程序執(zhí)行,KEY1按下顯示題號,持續(xù)10秒*/*include<reg51.h>*include<intrins.h> *include<lcd.h>sbit Trig = P10; /超聲波發(fā)送sbit Echo
4、 = P11; /超聲波接收sbit key_start=P31; /開始按鍵sbit key1=P32; /中斷按鍵sbit buzzer=P15; /蜂鳴器按鍵unsigned char code TABLE = " DISTANCE: "unsigned char code ASCII = '0','1','2','3','4','5','6','7','8','9','.','-
5、9;,'C','M',' 'unsigned char code CLASS = " NO.27 "static unsigned char DisNum = 0; /"""unsigned int time=0;unsigned int i=0;unsigned int key_flag=0;long S=0;bit flag =0; /成功標志位unsigned char disbuff4 = 0,0,0,0,;/* * * */延時函數(shù)void delayms(unsigned int ms
6、) unsigned char i=100,j; for(;ms;ms-) while(-i) j=10; while(-j); /計算距離void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=(long)(time*0.17); if(S>=700)|flag=1) flag=0; LcdWriteData( ASCII11); LcdWriteData( ASCII10); LcdWriteData(ASCII11); LcdWriteData( ASCII11); LcdWriteData( ASCII12); buzzer=0; d
7、elayms(50); buzzer=1; else disbuff3=S%10000/1000; disbuff2=S%1000/100; disbuff1=S%100/10;disbuff0=S%10/1; LcdWriteData( ASCIIdisbuff3); LcdWriteData( ASCIIdisbuff2); LcdWriteData( ASCIIdisbuff1); LcdWriteData( ASCII10); LcdWriteData( ASCIIdisbuff0);LcdWriteData( ASCII12); LcdWriteData( ASCII13); /定時
8、器0void zd0() interrupt 1 /觸發(fā)時說明超出X圍 flag=1; /成功標志位置1 void inter() interrupt 0 /外部中斷 LcdWrite(0x01); LcdWrite(0x80);for (i=0;i<7;i+) LcdWriteData(CLASSi); delayms(5); delayms(100);LcdWrite(0x80); for (i=0;i<11;i+) LcdWriteData(TABLEi); delayms(5); LcdWrite(0x80+0x46);/超聲波發(fā)射 void StartModule() T
9、rig=1; /發(fā)脈沖 _nop_(); /用NOP函數(shù)時間更精準 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig=0; void key_board0(void) /按鍵掃描程序while(1) if(key_start=0)delayms(10);if(key_start=
10、0)while(!key_start);key_flag=1;break;else if(key1=0)delayms(10);if(key1=0)while(!key1);key_flag=2;break;void key_board1(void) if(key_start=0)delayms(10);if(key_start=0)while(!key_start);key_flag=1;if(key1=0)delayms(10);if(key1=0)while(!key1);key_flag=2;void main(void) P1 = 0xF0; /低位拉低 TMOD=0x01; TH0
11、=0; TL0=0; ET0=1; /定時器0中斷 IT0=1; /外部中斷0 EX0=1; EA=1; LcdInit(); key_board0();/key_board1();/if(key_flag=1)/ LcdWrite(0x80); for (i=0;i<11;i+) /顯示DISTANCE LcdWriteData(TABLEi); delayms(5); LcdWrite(0x80+0x46); while(1) StartModule(); while(!Echo); /判斷是否收到回波信號 TR0=1; /收到時,開啟定時器 while(Echo); /回波信號結(jié)束
12、后關閉定時器 TR0=0; /關閉定時器 Conut(); /計算距離 LcdWrite(0x80+0x46); /設置數(shù)據(jù)指針起點,第二排第一個 delayms(80); 以下是LCD顯示程序*include"lcd.h"/* 函數(shù)名 : Lcd1602_Delay1ms* 函數(shù)功能 : 延時函數(shù),延時1ms* 輸入 : c* 輸出 : 無* 說名 : 該函數(shù)是在12MHZ晶振下,12分頻單片機的延時。*/void Lcd1602_Delay1ms(uint c) /誤差 0us uchar a,b;for (; c>0; c-) for (b=199;b>0
13、;b-) for(a=1;a>0;a-); /* 函數(shù)名 : LcdWrite* 函數(shù)功能 : 向LCD寫入一個字節(jié)的命令* 輸入 : * 輸出 : 無*/*ifndef LCD1602_4PINS /當沒有定義這個LCD1602_4PINS時void LcdWrite(uchar ) /寫入命令LCD1602_E = 0; /使能LCD1602_RS = 0; /選擇發(fā)送命令LCD1602_RW = 0; /選擇寫入LCD1602_DATAPINS = ; /放入命令Lcd1602_Delay1ms(1);/等待數(shù)據(jù)穩(wěn)定LCD1602_E = 1; /寫入時序Lcd1602_Delay
14、1ms(5); /保持時間LCD1602_E = 0;*else void LcdWrite(uchar ) /寫入命令LCD1602_E = 0; /使能清零LCD1602_RS = 0; /選擇寫入命令LCD1602_RW = 0; /選擇寫入LCD1602_DATAPINS = ;/由于4位的接線是接到P0口的高四位,所以傳送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時序Lcd1602_Delay1ms(5);LCD1602_E = 0;/Lcd1602_Delay1ms(1);LCD1602_DATAPINS = << 4; /
15、發(fā)送低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時序Lcd1602_Delay1ms(5);LCD1602_E = 0;*endif/* 函數(shù)名 : LcdWriteData* 函數(shù)功能 : 向LCD寫入一個字節(jié)的數(shù)據(jù)* 輸入 : dat* 輸出 : 無*/*ifndef LCD1602_4PINSvoid LcdWriteData(uchar dat)/寫入數(shù)據(jù)LCD1602_E = 0;/使能清零LCD1602_RS = 1;/選擇輸入數(shù)據(jù)LCD1602_RW = 0;/選擇寫入LCD1602_DATAPINS = dat; /寫入數(shù)據(jù)Lcd1602_
16、Delay1ms(1);LCD1602_E = 1; /寫入時序Lcd1602_Delay1ms(5); /保持時間LCD1602_E = 0;*elsevoid LcdWriteData(uchar dat)/寫入數(shù)據(jù)LCD1602_E = 0; /使能清零LCD1602_RS = 1; /選擇寫入數(shù)據(jù)LCD1602_RW = 0; /選擇寫入LCD1602_DATAPINS = dat;/由于4位的接線是接到P0口的高四位,所以傳送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時序Lcd1602_Delay1ms(5);LCD1602_E = 0;
17、LCD1602_DATAPINS = dat << 4; /寫入低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時序Lcd1602_Delay1ms(5);LCD1602_E = 0;*endif/* 函數(shù)名 : LcdInit()* 函數(shù)功能 : 初始化LCD屏* 輸入 : 無* 輸出 : 無*/*ifndefLCD1602_4PINSvoid LcdInit() /LCD初始化子程序LcdWrite(0x38); /開顯示LcdWrite(0x0c); /開顯示不顯示光標LcdWrite(0x06); /寫一個指針加1LcdWrite(0x01); /清屏LcdWrite(0x80); /設置數(shù)據(jù)指針起點*elsevoid LcdInit() /LCD初始化子程序LcdWrite(0x32); /將8位總線轉(zhuǎn)為4位總線LcdWrite(0x28); /在四位線下的初始化LcdWrite(0x0c); /開顯示不顯示光標LcdWrite(0x06); /寫一個指針加1LcdWrite(0x01); /清屏LcdWrite(0x80); /設置數(shù)據(jù)指針起點*endif六、測試及調(diào)試硬件調(diào)試:焊接前用恒流源供電測量每個元件是否工作正常
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓匯報成果
- 面源污染生態(tài)風險評估數(shù)據(jù)挖掘-洞察及研究
- 健身器材行業(yè)人才流失風險控制考核試卷
- 農(nóng)村幼兒園轉(zhuǎn)崗教師培訓
- 液壓系統(tǒng)智能故障預測系統(tǒng)開發(fā)考核試卷
- 農(nóng)村土地承包經(jīng)營權流轉(zhuǎn)市場建設考核試卷
- 單板加工質(zhì)量控制標準國際化對接考核試卷
- 小袋鼠口袋課件
- 直升機空中婚禮策劃行業(yè)跨境出海項目商業(yè)計劃書
- 抗紫外線合成纖維材料企業(yè)制定與實施新質(zhì)生產(chǎn)力項目商業(yè)計劃書
- ptfe膜雨棚施工方案
- 人工智能倫理規(guī)則
- 米亞羅-孟屯河谷風景名勝區(qū)旅游基礎設施建設項目環(huán)評報告
- 婦產(chǎn)科護理學教材(課后思考題參考答案)
- 沖突管理與溝通技巧
- 全同態(tài)加密算法概述
- 電流、電壓指針儀表校驗報告
- 六年級下冊英語素材-Unit-6-General-revision-3-知識點-人教精通版
- BS2000標準操作規(guī)程
- 中等職業(yè)學校英語課程標準(2020年版)(word精排版)
- 高邊坡作業(yè)安全專項施工方案與高邊坡安全專項施工方案匯編
評論
0/150
提交評論