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

正文內(nèi)容

基于單片機的超聲波測距儀畢業(yè)論文(編輯修改稿)

2025-07-24 19:50 本頁面
 

【文章內(nèi)容簡介】 定時器1清零TF1=0。 //計數(shù)溢出標志TR1=1。 //啟動定時器1 delay(20)。 //等待測量的結(jié)果TR1=0。 //關(guān)閉定時器1 EX0=0。 //關(guān)閉外部中斷0 if(succeed_flag==1) {time=timeH*256+timeL。 distance=time*。 //if(succeed_flag==0) { distance=0。 //沒有回波則清零beep=!beep。 //測試蜂鳴器變化} }}//外部中斷0,用做判斷回波電平void exter() interrupt 0 // 外部中斷0是0號{ timeH =TH1。 //取出定時器的值timeL =TL1。 //取出定時器的值succeed_flag=1。//至成功測量的標志EX0=0。 //關(guān)閉外部中斷} void timer1() interrupt 3 //定時器1中斷,用做超聲波測距計時{ TH1=0。 TL1=0。 } 距離測算子程序根據(jù)定時器所得到的時間t,利用公式計算出超聲波傳播的距離。公式為d=*t,依照上述公式完成以下的算法:include void dist(void) { double distance,t。 distance=*t。return(distance)。 } 顯示模塊程序設(shè)計圖43 顯示程序流程圖本模塊的程序主要負責將單片機測算出的距離顯示到4位數(shù)碼管上。為完成這一功能。程序部分由顯示子程序程序和延時子程序組成。以下是本模塊程序所用的聲明定義部分。詳細的注解在程序右側(cè)。include //     函數(shù)聲明//================================================================== unsigned char code LED_table[]={ 0x3f, //0 0x06, //1 0x5b, //2 AAAA 0x4f, //3 F B 0x66, //4 F B 0x6d, //5 GGGG 0x7d, //6 E C 0x07, //7 E C 0x7f, //8 DDDD H 0x6f, //9 0x00, //black 0x80 //dot }。define black 10 // 空白define dot 11 // 小數(shù)點unsigned char DisBuff[4]。 //定義顯示緩沖數(shù)組unsigned char COM。// 定義通信端口//==================================================================sbit COM0=P2^0。sbit COM1=P2^1。 //對應口線由硬件確定sbit COM2=P2^2。sbit COM3=P2^3。 //================================================================== 初始化程序初始化程序是在每次單片機復位時,對定時器以及相關(guān)控制器進行初始的定義,下面這段程序中就定義了定時器的工作方式,并且允許了中斷。void Sys_Init() { TMOD=0x01。 //定時器/計數(shù)器0為定時器方式 16位工作模式   TH0=(655361000)/256。 TL0=(655361000)%256。 // ET0=1。 //定時器/計數(shù)器0中斷允許 EA=1。 //總中斷允許 TR0=1。 //啟動定時器/計數(shù)器開始工作} 顯示程序這部分程序主要用于將單片機測算出的距離數(shù)據(jù)先分位,在依次引用之前對應的顯示段碼,再由位選部分進行數(shù)選。void DisplayNumber(unsigned int Num) //顯示函數(shù){ unsigned char i。 EA=0。 //禁止總中斷 for(i=0。i4。i++) { DisBuff[i]=Num。 Num/=10。 } for(i=3。i=0。i) //循環(huán)4次 { if (DisBuff[i]==0) DisBuff[i]=black。 //消隱無效0 else break。 } EA=1。 //總中斷允許}void Display_Scan() interrupt 1 // 中斷服務(wù)程序,數(shù)碼管選通掃描{TR0=0。 TH0=(655361000)/256。 //高8位和低8位時間常數(shù) TL0=(655361000)%256。 TR0=1。 //啟動定時器0 if(COM3) COM=0。 COM0=COM1=COM2=COM3=0。 //將COM0COM3置0,全暗 switch(COM) {case 0: P0=LED_table[DisBuff[0]]。 COM0=1。 break。 //分別選通COM0COM3高電平有效case 1: P0=LED_table[DisBuff[1]]。 COM1=1。 break。 case 2: P0=LED_table[DisBuff[2]]。 COM2=1。 break。 case 3: P0=LED_table[DisBuff[3]]。 COM3=1。 break。 } COM++。 } 延時程序Led數(shù)碼管顯示器正常工作時,各位顯示器輪流選通。為了使其穩(wěn)定顯示則采用掃描方式。延時程序主要用于產(chǎn)生一個合適的延時,使往復選通的同時,數(shù)碼管能借人眼的視覺殘留,顯示出相應的數(shù)字。下面為本程序的延時部分,設(shè)計的延時時間為1ms。void delayms(int ms) { unsigned int i。 for(。ms0。ms) //循環(huán)ms次 { for(i=0。i123。i++)。 } } 現(xiàn)場實測距離顯示圖44 實測顯示圖表41 測量結(jié)果實際距離/cm510203040506070測量距離/cm303343516172誤差/cm1033112實際距離/cm8090100150200250300400測量距離/cm8291101151202254304408誤差/cm21142448 第5章 結(jié) 論 總 結(jié)本基于單片機的超聲波測距儀在設(shè)計之初,預期的功能是5厘米到3米內(nèi)的厘米級測量,而經(jīng)過后期的硬件調(diào)試,對所設(shè)計的電路進行測量、校準發(fā)現(xiàn)其測量范圍25cm~300cm以內(nèi)的平面物體的最大誤差為4厘米,顯示最小分辨能達到1厘米的精度。,最大誤差會達到5厘米甚至不能測量。但總體來說該測距儀還是達到了有效測距的功能,重復性和穩(wěn)定性都得到了現(xiàn)場實測的驗證。以下,就本設(shè)計的不足之處做幾點分析:,并不能測量4m以上的目標物體。,會產(chǎn)生一定的干擾。,這導致了測距過近或過遠時會有較大誤差。由于硬件的限制,本設(shè)計的超聲波測
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1