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

正文內(nèi)容

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

2025-06-30 16:25本頁面

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

  

【正文】 break_en = 1。 //自動退出設置界使能 zd_break_value = 0。 //自動退出設置界變量清零 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。 //給定時器 0 清零 TL0 = 0。 TR0 = 0。 //關定時器 0 定時 flag_hc_value = 0。 while(!c_recive)。 //當 c_recive 為零時等待 TR0=1。 while(c_recive) //當 c_recive 為 1 計數(shù)并等待 { flag_time0 = TH0 * 256 + TL0。 //if( flag_time0 21000 ) if((flag_hc_value 1) || (flag_time0 21000)) //當超聲波超過測量范圍時,顯示 3 個 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。 //關定時器 0 定時 EA = 0。 temp = TH0。 //讀出定時器 0 的時間 temp = temp * 256 + TL0。 temp /= 58。 EA = 1。 if(temp 380) //距離 = 速度 * 時間 { temp = 888。 //如果大于 就超出超聲波的量程 } } EA = 0。 distance = temp。 EA = 1。 } /*********************定時器 0、定時器 1 初始化 ******************/ void time_init() { EA = 1。 //開總中斷 TMOD = 0X11。 //定時器 0、定時器 1 工作方式 1 ET0 = 1。 //開定時器 0 中斷 TR0 = 1。 //允許定時器 0 定時 ET1 = 1。 //開定時器 1 中斷 TR1 = 1。 //允許定時器 1 定時 } /****************按鍵處理數(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) //設置高溫報警 { if(flag_lj_3_en == 0) //三次連加之后速度加快 menu_shudu = 10 。 //500ms 加減一次 else menu_shudu = 1。 //250ms 加減一次 if(key_can == 2) { set_d ++ 。 //按鍵按下未松開自動加三次 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] 。 //取個位顯示 dis_smg[2] = smg_du[set_d / 100 % 10] amp。 0x7f。 //取十位顯示 dis_smg[3] = 0x88。 //a } if(key_can == 3) { set_d 。 //按鍵按下未松開自動加三次 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] 。 //取個位顯示 dis_smg[2] = smg_du[set_d / 100 % 10] amp。 0x7f 。 //取十位顯示 dis_smg[3] = 0x88。 //a } } } /****************報警函數(shù) ***************/ void clock_h_l() { 第 33 頁 static uchar value。 if(distance = set_d) { value ++。 //消除實際距離在設定距離左右變化時的干擾 if(value = 5) { beep = ~beep。 //蜂鳴器報警 } } else { value = 0。 beep = 1。 //取消報警 } } 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()。 //報警函數(shù) send_wave()。 //測距離函數(shù) if(menu_1 == 0) //沒有鍵按下時才給緩沖數(shù)組賦新值 smg_display()。 //處理距離顯示函數(shù) if(zd_break_en == 1) //自動退 出設置界面程序 { zd_break_value ++。 //每 300ms 加一次 if(zd_break_value 100) //30 秒后自動退出設置界面 { menu_1 = 0。 // smg_i = 3。 zd_break_en = 0。 zd_break_value = 0。 } } } key()。 //按鍵函數(shù) 第 34 頁 if(key_can 10) { key_with()。 //按鍵處理函數(shù) } } } /*********************定時器 0 中斷服務程序 用做超聲波測距的************************/ void time0_int() interrupt 1 { // set_d ++。 // TH0 TL0 到 65536 后溢出中斷 } /*********************定時器 0 中斷服務程序 ************************/ void time1_int() interrupt 3 { static uchar value。 //定時 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:實物圖
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1