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

正文內(nèi)容

基于單片機(jī)的超聲波測距系統(tǒng)畢業(yè)設(shè)計(jì)論文-資料下載頁

2025-06-30 16:25本頁面

【導(dǎo)讀】超聲波探頭、數(shù)碼管顯示、蜂鳴器報(bào)警模塊、按鍵模塊和電源部分組成。當(dāng)距離小于設(shè)置距離時(shí),蜂鳴器和指示燈發(fā)出聲光報(bào)警,當(dāng)距離大于。設(shè)置距離,停止報(bào)警。傳感器是世界各國發(fā)展最快的產(chǎn)業(yè)之一,在各國有關(guān)研究、生產(chǎn)、應(yīng)用。部門的共同努力下,傳感器技術(shù)得到了飛速的發(fā)展和進(jìn)步。它不受光線,被測對象顏色,電磁干擾等影響。位測量,機(jī)械手控制,車輛自動(dòng)導(dǎo)航,物體識別等方面有廣泛應(yīng)用。構(gòu)信息很容易檢測出來,具有很高的分辯力,因而其準(zhǔn)確度也較其它方法高,它在介質(zhì)中傳播的距離較遠(yuǎn),折射、干涉、衍射、散射與物理緊密聯(lián)系,應(yīng)用靈活。并且更適合與高溫、高。粉塵、高濕度和高強(qiáng)電磁干擾等惡劣環(huán)境下工作。而且超聲波傳播速度在相當(dāng)大范圍內(nèi)與頻率無關(guān)。超聲波的這些獨(dú)特優(yōu)點(diǎn)越來越受到人們的重視。來越離不開汽車了,以車代步已經(jīng)成為生活的一部分。中在了設(shè)備本來已經(jīng)相當(dāng)高級的車上。而在平日的生活當(dāng)中我經(jīng)常會遇到這樣

  

【正文】 break_en = 1。 //自動(dòng)退出設(shè)置界使能 zd_break_value = 0。 //自動(dòng)退出設(shè)置界變量清零 flag_key_b_en = 1。 //按鍵蜂鳴器使能 } } key_can = 20。 if(key_500ms == 1) //連加 { 第 29 頁 key_500ms = 0。 key_new = 0。 key_old = 1。 zd_break_value = 0。 } if((key_new == 0) amp。amp。 (key_old == 1)) { switch(P2 amp。 0x07) { case 0x06: key_can = 1。 break。 //得到 k2 鍵值 case 0x05: key_can = 2。 break。 //得到 k3 鍵值 case 0x03: key_can = 3。 break。 //得到 k4 鍵值 } // dis_smg[3] = smg_du[key_can % 10]。 } key_old = key_new。 } void smg_we_switch(uchar i) { switch(i) { case 3: smg_we1 = 0。 smg_we2 = 1。 smg_we3 = 1。 smg_we4 = 1。 break。 case 2: smg_we1 = 1。 smg_we2 = 0。 smg_we3 = 1。 smg_we4 = 1。 break。 case 1: smg_we1 = 1。 smg_we2 = 1。 smg_we3 = 0。 smg_we4 = 1。 break。 case 0: smg_we1 = 1。 smg_we2 = 1。 smg_we3 = 1。 smg_we4 = 0。 break。 } } /***********************數(shù)碼顯示函數(shù) *****************************/ void display() { static uchar i。 i++。 if(i = smg_i) i = 0。 smg_we_switch(i)。 P1 = dis_smg[i]。 //段選 } void delay() 第 30 頁 { _nop_()。 //執(zhí)行一條 _nop_()指令就是 1us _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } /*********************超聲波測距程序 *****************************/ void send_wave() { long temp = 888。 c_send = 1。 //10us 的高電平觸發(fā) delay()。 c_send = 0。 TH0 = 0。 //給定時(shí)器 0 清零 TL0 = 0。 TR0 = 0。 //關(guān)定時(shí)器 0 定時(shí) flag_hc_value = 0。 while(!c_recive)。 //當(dāng) c_recive 為零時(shí)等待 TR0=1。 while(c_recive) //當(dāng) c_recive 為 1 計(jì)數(shù)并等待 { flag_time0 = TH0 * 256 + TL0。 //if( flag_time0 21000 ) if((flag_hc_value 1) || (flag_time0 21000)) //當(dāng)超聲波超過測量范圍時(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) { 第 31 頁 TR0=0。 //關(guān)定時(shí)器 0 定時(shí) EA = 0。 temp = TH0。 //讀出定時(shí)器 0 的時(shí)間 temp = temp * 256 + TL0。 temp /= 58。 EA = 1。 if(temp 380) //距離 = 速度 * 時(shí)間 { temp = 888。 //如果大于 就超出超聲波的量程 } } EA = 0。 distance = temp。 EA = 1。 } /*********************定時(shí)器 0、定時(shí)器 1 初始化 ******************/ void time_init() { EA = 1。 //開總中斷 TMOD = 0X11。 //定時(shí)器 0、定時(shí)器 1 工作方式 1 ET0 = 1。 //開定時(shí)器 0 中斷 TR0 = 1。 //允許定時(shí)器 0 定時(shí) ET1 = 1。 //開定時(shí)器 1 中斷 TR1 = 1。 //允許定時(shí)器 1 定時(shí) } /****************按鍵處理數(shù)碼管顯示函數(shù) ***************/ void key_with() { if(key_can == 1) { menu_1 ++。 if(menu_1 = 2) { menu_1 = 0。 } if(menu_1 == 0) { menu_shudu = 20。 dis_smg[0] = smg_du[distance % 10]。 dis_smg[1] = smg_du[distance / 10 % 10] 。 dis_smg[2] = smg_du[distance / 100 % 10] amp。 0x7f。 第 32 頁 smg_i = 3。 } if(menu_1 == 1) { menu_shudu = 1。 dis_smg[0] = smg_du[set_d % 10]。 dis_smg[1] = smg_du[set_d / 10 % 10]。 dis_smg[2] = smg_du[set_d / 100 % 10] amp。 0x7f 。 dis_smg[3] = 0x88。 smg_i = 4。 } } if(menu_1 == 1) //設(shè)置高溫報(bào)警 { if(flag_lj_3_en == 0) //三次連加之后速度加快 menu_shudu = 10 。 //500ms 加減一次 else menu_shudu = 1。 //250ms 加減一次 if(key_can == 2) { set_d ++ 。 //按鍵按下未松開自動(dòng)加三次 if(set_d 350) set_d = 350。 dis_smg[0] = smg_du[set_d % 10]。 //取小數(shù)顯示 dis_smg[1] = smg_du[set_d / 10 % 10] 。 //取個(gè)位顯示 dis_smg[2] = smg_du[set_d / 100 % 10] amp。 0x7f。 //取十位顯示 dis_smg[3] = 0x88。 //a } if(key_can == 3) { set_d 。 //按鍵按下未松開自動(dòng)加三次 if(set_d = 1) set_d = 1。 dis_smg[0] = smg_du[set_d % 10]。 //取小數(shù)顯示 dis_smg[1] = smg_du[set_d / 10 % 10] 。 //取個(gè)位顯示 dis_smg[2] = smg_du[set_d / 100 % 10] amp。 0x7f 。 //取十位顯示 dis_smg[3] = 0x88。 //a } } } /****************報(bào)警函數(shù) ***************/ void clock_h_l() { 第 33 頁 static uchar value。 if(distance = set_d) { value ++。 //消除實(shí)際距離在設(shè)定距離左右變化時(shí)的干擾 if(value = 5) { beep = ~beep。 //蜂鳴器報(bào)警 } } else { value = 0。 beep = 1。 //取消報(bào)警 } } void main() { send_wave()。 //測距離函數(shù) smg_display()。 //處理距離 顯示函數(shù) time_init()。 init_eepom()。 //讀 eepom 數(shù)據(jù) while(1) { if(flag_300ms == 1) { flag_300ms = 0。 clock_h_l()。 //報(bào)警函數(shù) send_wave()。 //測距離函數(shù) if(menu_1 == 0) //沒有鍵按下時(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ù) 第 34 頁 if(key_can 10) { key_with()。 //按鍵處理函數(shù) } } } /*********************定時(shí)器 0 中斷服務(wù)程序 用做超聲波測距的************************/ void time0_int() interrupt 1 { // set_d ++。 // TH0 TL0 到 65536 后溢出中斷 } /*********************定時(shí)器 0 中斷服務(wù)程序 ************************/ void time1_int() interrupt 3 { static uchar value。 //定時(shí) 10ms 中斷一次 TH1 = 0xf8。 TL1 = 0x30。 //2ms display()。 //數(shù)碼管顯示函數(shù) value++。 if(value = 150) { value = 0。 flag_300ms = 1。 } if(value % 25 == 0) { if(flag_lj_en == 1) //按下按鍵使能 50ms { key_time ++。 if(key_time = menu_shudu) //500ms { key_time = 0。 key_500ms = 1。 //500ms flag_value ++。 if(flag_value = 3) { flag_value = 10。 flag_lj_3_en = 1。 //3 次后 秒后連加大些 } } 第 35 頁 } } } 附件 3:實(shí)物圖
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1