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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的超聲波測(cè)距系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告__-_重-資料下載頁(yè)

2024-12-02 07:16本頁(yè)面

【導(dǎo)讀】超聲波測(cè)距具有非接觸式、測(cè)量快速、計(jì)算簡(jiǎn)單、應(yīng)。用性強(qiáng)的特點(diǎn),在汽車(chē)倒車(chē)?yán)走_(dá)系統(tǒng)、液位測(cè)量等方面應(yīng)用廣泛。主程序及各功能部分的子程序組成。超聲波回波信號(hào)輸入單片機(jī),經(jīng)單片機(jī)綜合。分析處理后實(shí)現(xiàn)其預(yù)定功能。面阻擋就立即反射回來(lái),超聲波接收器收到反射回的超聲波就立即停止計(jì)時(shí)。離比較后判斷是否啟動(dòng)蜂鳴器聲光報(bào)警裝置??刂茟?yīng)用系統(tǒng)提供高靈活、超有效的解決方案。允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被。保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。特點(diǎn),使用簡(jiǎn)單易操作,常用于距離測(cè)量。

  

【正文】 //當(dāng) c_recive 為零時(shí)等待 TR0=1。 while(c_recive) //當(dāng) c_recive 為 1 計(jì)數(shù)并等待 { flag_time0 = TH0 * 256 + TL0。 if((flag_hc_value 1) || (flag_time0 21000)) //當(dāng)超聲波超過(guò)測(cè)量范圍時(shí),顯示 3個(gè) 888 { TR0 = 0。 flag_csb_juli = 2。 temp = 888。 flag_hc_value = 0。 break 。 } else { flag_csb_juli = 1。 } } if(flag_csb_juli == 1) //距離處理 { TR0=0。 //關(guān)定時(shí)器 0 定時(shí) EA = 0。 temp = TH0。 //讀出定時(shí)器 0 的時(shí)間 temp = temp * 256 + TL0。 temp /= 59。 //HCSR04 超聲波模塊 距離(厘米)=T*uS/ EA = 1。 if(temp 380) //如果大于 就超出超聲波的量程 { temp = 888。 } } EA = 0。 distance = temp。 //距離 EA = 1。 } /****************冒泡排序(最大值沉底) **************************/ int iBuff[5]。 void choise(int *a,int n) //選擇法排序 { 25 int i,j,k,temp。 for(i=0。in1。i++) { k=i。 //給記號(hào)賦值 for(j=i+1。jn。j++) if(a[k]a[j]) k=j。 //是 k 總是指向最小元素 */ if(i!=k) { //當(dāng) k!=i是才交換,否則 a[i]即為最小 temp=a[i]。 a[i]=a[k]。 a[k]=temp。 } } } /*******************測(cè)量距離處理及顯示函數(shù) **********************/ void smg_display() { int Buff[5]。 char i。 if(distance == 95)return。 //95 去掉 iBuff[4] = iBuff[3]。 iBuff[3] = iBuff[2]。 iBuff[2] = iBuff[1]。 iBuff[1] = iBuff[0]。 iBuff[0] = (int)distance。 for(i = 0。 i5。 i++) Buff[i] = iBuff[i]。 choise(Buff,5)。 //調(diào)用 choise 函數(shù),冒泡排序 distance = (long)Buff[2]。 //取得排序后 5 值的中間值,以消弱誤觸,穩(wěn)定測(cè)量結(jié)果 EA = 0。 //關(guān)中斷 dis_smg[0] = smg_duan[distance % 10]。 //取百分位(厘米級(jí)) dis_smg[1] = smg_duan[distance / 10 % 10]。 //取十分位(分米級(jí)) dis_smg[2] = smg_duan[distance / 100 % 10] amp。 0x7f。 //取個(gè) 位(米級(jí)) EA = 1。 //開(kāi)中斷 } /*********************報(bào)警函數(shù) ****************************************/ void clock_h_l() { static uchar value。 if(distance = set_d) { value ++。 //多次檢測(cè),消除實(shí)際距離在設(shè)定距離左右變化時(shí)的干擾 26 if(value = 5) { beep = ~beep。 //蜂鳴器報(bào)警 } } else { value = 0。 beep = 1。 //取消報(bào)警 } } void main() { send_wave()。 //測(cè)距離函數(shù) smg_display()。 //處理距離顯示函數(shù) time_init()。 //定時(shí)器初始化 init_eepom()。 //初始化 eepom(讀取 set_d) while(1) { if(flag_300ms == 1) //300ms 執(zhí)行一次 { flag_300ms = 0。 clock_h_l()。 //報(bào)警函數(shù) send_wave()。 //測(cè)距離函數(shù) if(menu_1 == 0) //沒(méi)有鍵按下時(shí)才給緩沖數(shù)組賦新值 smg_display()。 //處理距離顯示函數(shù) if(zd_break_en == 1) //自動(dòng)退出設(shè)置界面程序 { zd_break_value ++。 //每 300ms 加一次 if(zd_break_value 100) //30 秒后自動(dòng)退出設(shè)置界面 { menu_1 = 0。 smg_i = 3。 zd_break_en = 0。 zd_break_value = 0。 } } } key()。 //按鍵函數(shù) if(key_can 4) { key_with()。 //按鍵處理函數(shù) } 27 } } /************定時(shí)器 0 中斷服務(wù)程序 用做超聲波測(cè)距的 ******************/ void time0_int() interrupt 1 { } /**************定時(shí)器 1 中斷服務(wù)程序,用作主程序 ********************/ void time1_int() interrupt 3 { static uchar value。 TH1 = 0xf8。 TL1 = 0x30。 //定時(shí) 2ms display()。 //數(shù)碼管顯示函數(shù) value++。 if(value = 150) //300ms 中斷一次 { value = 0。 flag_300ms = 1。 } if(value % 25 == 0) { if(flag_lj_en == 1) //按下按鍵使能 50ms { key_time ++。 if(key_time = menu_ljsd) //500ms { key_time = 0。 key_500ms = 1。 //500ms flag_value ++。 if(flag_value = 3) { flag_value = 10。 flag_lj_3_en = 1。 //3 次后 秒后連加大些 } } } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1