freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的超聲波測距系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文設(shè)計(編輯修改稿)

2025-07-24 19:52 本頁面
 

【文章內(nèi)容簡介】 過Echo 端輸出一高電平,可根據(jù)此高電平的持續(xù)時間來計算距離值。即距離值為:(高電平時間*340m/s)/2。在這里因為距離值已經(jīng)經(jīng)過溫校正,此時無需再根據(jù)環(huán)境溫度對超聲波聲速進行校正,即不管溫度多少,聲速選擇340m/s 即可。圖34 US100在電平觸發(fā)下的工作時序圖 US100模塊電路在本系統(tǒng)中US100超聲波模塊的連接如下圖35所示,其Trig/TX ,由單片機輸出一個10us的高電平;Echo/RX ,其具體檢測方法在第四章軟件設(shè)計分析部分給出。圖35 US100模塊電路圖 人機交互模塊本系統(tǒng)的人機交互模塊分為液晶顯示器和按鍵開關(guān)兩個部分,下面幾節(jié)將分別分析這兩個部分。 液晶顯示器本系統(tǒng)采用的液晶顯示器型號為1062ZFR,它是一個16*2字符型液晶顯示器[5],專門用于顯示字母、數(shù)字、符號等的點陣型液晶顯示模塊。LCD 1062ZFR的引腳如下:D0—D7八個數(shù)據(jù)端口,VSS負電源端口,VDD正電源端口,VO對比度調(diào)節(jié)端口,RS狀態(tài)控制端,RW讀寫控制端,E使能端,A和K灰度參考端口。 顯示器硬件電路液晶顯示器LCD 1062ZFR在電路中的連接如圖36所示,;;;;A端口給電平接GND;K端口給高電平接VCC;VL端口接一個10K的滑動變阻器,用來調(diào)節(jié)液晶顯示器的對比度;VDD端口接系統(tǒng)電源VCC,而負電源端口VSS接地即可。圖36 液晶顯示模塊電路圖 按鍵與開關(guān) 為了使得本測距系統(tǒng)有更好的操作性、觀測性,本系統(tǒng)設(shè)計了一個測量暫停按鍵K1,此按鍵的具體作用如下:當短按按鍵K1時,超聲波測距系統(tǒng)停止發(fā)生超聲波,顯示器保留前一時刻的測量數(shù)據(jù),以測量者方便觀察和記錄數(shù)據(jù);當長按按鍵K1時,返回正常測距狀態(tài),可以重新開始測量距離。其硬件連接如下圖37所示。圖37 按鍵連接圖 電源模塊本系統(tǒng)中的電源模功能是為系統(tǒng)的其他模塊提供穩(wěn)定的5V工作電壓,其實現(xiàn)方法是采用一個5V的集成穩(wěn)壓芯片LM2940,用9V的干電池作為其輸入,則可以從LM2940的輸出端得到5V的穩(wěn)定電壓。為了使得電源模塊提供的5V直流工作電壓文波更少、穩(wěn)定性更好,在輸入輸出端口分別并接濾波電容和電解電容,并且在輸出端口并接上一個LED系統(tǒng)電源指示燈,以方便指示本系統(tǒng)的電源模塊是否正常工作,其電路連接如圖38所示。圖38 電源模塊電路圖4 軟件設(shè)計 軟件設(shè)計概述本系統(tǒng)軟件全部采用c語言編寫,開發(fā)環(huán)境為Keil C。軟件組織[6]分為兩個部分, ,前者是系統(tǒng)程序主函數(shù)和超聲波驅(qū)動程序所在的c文件,后者是系統(tǒng)采用的字符液晶器1602ZFR的驅(qū)動程序。軟件組織圖如下圖31所示。關(guān)于軟件設(shè)計思路,算法,各個驅(qū)動程序?qū)⒃诤竺鎺坠?jié)中給出論述,完整程序代碼在附錄二給出。圖41 軟件組織圖 軟件設(shè)計思路和流程圖單片機在上電復(fù)位后,首先進行各個模塊的初始化、各個變量的初始賦值,進入循環(huán)測距和顯示部分。在循環(huán)部分中,把完成一次測量和一次顯示刷新作為系統(tǒng)的一個工作周期。在這個工作周期中,首先完成的是超聲波測距,即向超聲波模塊給出觸發(fā)信號,然后檢測模傳回來的測距信號,打開計時器T0,得到相關(guān)數(shù)據(jù),然后計算出測量距離,最后再刷新液晶模塊顯示出測量距離。此外系統(tǒng)具有兩個中斷程序,一個是利用定時器T0中斷,防止測量超出距離而導(dǎo)致T0溢出。另一個應(yīng)用外部中斷INT0來實現(xiàn)測量暫停功能,當按鍵短按時,進入外部中斷0的中斷程序,在中斷程序中顯示前一時刻的測距數(shù)據(jù),并再次檢測按鍵K1;當發(fā)現(xiàn)K1長按時,則從中斷程序中返回之前的工作循環(huán)。軟件流程圖如下圖42所示。(b)T0中斷程序(a)主程序否否否否是是是是系統(tǒng)初始化100us延時TH0、TL0清0打開T0定時器,允許中斷=0=1=0關(guān)閉T0定時器,關(guān)閉中斷讀TH0、TL0,計算距離刷新液晶,顯示距離數(shù)據(jù)開始清空TF0設(shè)置測距錯誤鍵值=1(c)INT0中斷程序返回主程序禁止總中斷刷新液晶屏顯示最后測量的數(shù)據(jù)是返回主程序清空IE0 圖42 軟件流程圖 超聲波模塊驅(qū)動程序 發(fā)射接收程序本系統(tǒng)超聲波測距傳感器采用的是US100超聲波測距模塊,并且利用其電平測量模式。其模塊的驅(qū)動程序是由發(fā)射程序和接收程序兩部分,另外加上一個防溢出中斷程序構(gòu)成。(即與US100的TX引腳相連接)大約10us的高電平,程序中完成10us的時間并沒有采用定時器,而是采用延時程序完成,程序中的函數(shù)名為delay_10us()。經(jīng)過示波器測量。然后給持續(xù)一段約100us的低電平,這樣便完成了發(fā)射程序,之后便可以進行接收程序。(即與US100的RX引腳相連接)的電平變化。根據(jù)US100工作原理圖可知,即此時US100還沒有接收到超聲波信號,打開T0定時器,進行時間間隔記時,此時TH0和TL0初值都為0。,此時表示超聲波信號接收完畢,關(guān)閉定時器T0,讀出TH0和TL0的值分別給變量time_high和time_low,即完成此部分程序功能。發(fā)射接收程序的代碼如下所示。sent=1。delay_10us()。sent=0。delay_100us()。/////發(fā)射完畢TH0=0。TL0=0。while(receive==1)。while(receive==0)。TR0=1。ET0=1。//定時器開始工作while(receive==1amp。amp。flag_error==0)。time_high=TH0。time_low=TL0。 /////接收完畢 防溢出中斷程序防溢出中斷程序?qū)嵸|(zhì)是利用了定時器T0的溢出中斷[7]。分析以上的接收程序可知,定時器T0開始工作,TH0、TL0從0開始增加,即出現(xiàn)下降沿時,定時器T0才停止計數(shù)。,定時器T0的TH0和TL0計數(shù)發(fā)生溢出,即會發(fā)生測量錯誤,屬于系統(tǒng)的無效狀態(tài)。為了避免這個無效狀態(tài),本系統(tǒng)設(shè)定了此防溢出中斷程序,一旦發(fā)生溢出情況,則程序進入定時器T0的中斷程序 ,設(shè)置錯誤標志位flag_error=1,表示此次測量無效。另外本超聲波測距系統(tǒng)的最大測距范圍限定在400cm,那么當發(fā)生溢出時,定時器TO的計數(shù)值為65536。,那么65536次計數(shù)即表示超聲波發(fā)射接收時間間隔為59578us,聲速取340m/s,則測量距離約為1013cm,以超出本系統(tǒng)設(shè)定的測距范圍,并且超出傳感器的測量范圍。所以上述給出了發(fā)生溢出一定是系統(tǒng)無效的證明。防溢出中斷程序的代碼如下所示。 void zd_TIME0() interrupt 1 //T0中斷用來計數(shù)器溢出,超過測距范圍 { TF0=0。 flag_error=1。 //中斷溢出標志 } 測距算法,由于采用的US100超聲波測距模塊具有溫度補償電路,可以自動校準由溫度引起的聲速變化,所以程序中聲速可以取為常量340m/s,那么測距公式可以化為公式:。,TL0的低八位賦值給time_low,程序中定義一個無符號長整型的變量time_data來裝載測距時間間隔T,那么只需將time_high左移4位,再加上time_low,就可以得到time_data的值了。系統(tǒng)要求的測距精度是達到1cm,但是為了進一步提高測距精度,本系統(tǒng)軟件在測距計算中計算到了毫米mm位。具體為程序中設(shè)定了一個
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1