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

正文內容

基于51單片機小車的循跡避障系統(tǒng)-閱讀頁

2024-11-30 04:02本頁面
  

【正文】 數(shù)可編程;片內可按位編程;兩個雙向 I/O 口; 5 級堆棧; 3 個中斷源,外部中斷,輸出引腳狀態(tài)變化中斷,TCC 溢出中斷; 8 位實時定時 /計數(shù)器( TCC);每個指令周期為兩個時鐘周期。在電路中,我們 一般使用的晶振位 12MHz,這樣的話,單片機的每一個機器周期為 1uS,這樣在利用單片機時鐘進行計時時,比較方便。因為在硬件電路搭建完以后,只有通過軟件程序的控制,才可以讓小車按照設想的運行路徑進行行駛,達到所需要的功能。因此,我在設計程序時,采用了模塊化設計,即先對每一個部分子功能模塊進行設計,在驗證各個功能程序的完整性以及正確性以后,再把各個子程序組合成一個完整的程序。利用購買的高強度塑料制成的模型作為小車的車體,然后分別將各模塊按照功能安裝固定好。超聲波探測模塊則應該置于小車正前方,其目的主要是用來發(fā)現(xiàn)前方障礙物,其安裝高度要合適。供電電源則放在小車車尾,這樣有利于小車整體重量的均勻分布,也可以在進行充電時,更加方便拆裝。通過調試可知,小車的運動方向與初始設置相同,能夠實現(xiàn)。 表 3 運動調試結果 I/O 口 結果 輸入電平 1 0 1 0 直線前進 1 0 0 1 右 轉彎 0 1 1 0 左轉彎 0 1 0 1 后退 1 1 1 1 停止 小車循跡調試 小車的循跡是通過五路紅外對管實現(xiàn),當左側檢測到有黑線時,左側 LED指示燈會亮(圖 24),當右側指示燈亮時,那么小車檢測到的黑線在右側(圖25),如果當小車在黑線中間是中間指示燈會亮(圖 26),這時候,小車就會循著黑線一直行進。 圖 27 小車避障調試 24 在進行避障功能測試時,還需要對障礙物大小進測試,因為這樣 可以更加準確的得到調試結果。因此,本設計完成了預先的設計任務,實現(xiàn)了所有功能??梢赃M行避障功 能,在檢測到障礙物以后,小車會原地旋轉 180 度進行避障處理,然后繼續(xù)行駛。 在最開始進行選題時,覺得這個課題比較簡單,可是在課題設計過程中,我發(fā)現(xiàn)其實并沒有想的那么簡單。所以在進行電路設計時,我查閱了大量的資料,結合前人的研究成果,通過分析電路中電流電壓的關系,最終選擇出合適的元器件,完成了整個硬件電路的設計。程序設計時,我對于以前的各種相關的設計進行了參考比較,覺得使用模塊化設計更加方便于我們的編寫。 在進行實物焊接以及組裝時, 可以考驗我們的動手能力,并對我們的生產工藝進行了解。 26 參考文獻 [1] 于金霞 王璐 蔡自興 《未知環(huán)境中移動機器人自定位技術》北京:電子工業(yè)出版社 2020 [2] 李仁定 《電機的微機控制》 北京:機械工業(yè)出版社 2020 [3] 趙虎 葉朝斌 無刷直流電機無傳感器 PWM 智能控制器 ML 4428 及其應用 載《國外電子元器件》 1998 年第 5期 [4] 蘇震 《現(xiàn)代傳感技術 — 原 理、方法與接口電路》北京:電子工業(yè)出版社 2020 [5] 于金霞 王璐 蔡自興 《未知環(huán)境中移動機器人自定位技術》北京:電子工業(yè)出版社 2020 [6] 趙建領 弓雷 《 51系列單片機開發(fā)寶典》北京:電子工業(yè)出版社 2020 第 2 版 [7] 王允上 《學用單片機制作機器人》 北京:科學出版社 2020 [8] 徐德 鄒偉 《室內移動式服務機器人的感知、定位與控制》 北京:科學出版社 2020 [9] 陳永真 寧武 藍和慧 《新編全國大學生電子設計競賽試題精解選》 北京:電子工業(yè)出版社 2020 [10] 馬廣云 潘琢金 彭甫陽譯 《英漢雙解嵌入式系統(tǒng)字典》北京:北京航空航天大學出版社 2020 [11] 陳賾 鄒道勝 《電子創(chuàng)新設計技術》 北京:科學出版社 2020 [12] 吳國慶 王格芳 郭陽寬 《現(xiàn)代測控技術及應用》 北京:電子工業(yè)出版社 2020 [13] 譚民 徐德 侯增廣 王碩 曹志強 《先進機器人控制》 北京:高等教育出版社 2020 [14] 何社成 袁躍進 《電機改進應用電路》濟南:山東科學技術出版社 2020 [15] R R在本次設計中,我很感謝我的指導老師,感謝她在我設計過程中給予我的一系列幫助和指導,感謝她對我的嚴格要求,才讓我的設計順利完成。還要感謝我班級同學和舍友,感謝他們四年來對我提供的幫助、支持和鼓勵。在即將離去之際,我可以對我的大學生活自豪的說一句,我來過,我無悔。 //測速變量 bit flag_1s 。 //超聲波發(fā)射 sbit c_recive = P1^7。 //超聲波中間變量 long distance = 888。 //距離 bit flag_csb_juli。 //用來保存定時器 0 的時候的 bit flag_300ms 。 //秒,分,時 uint juli。 for(i=0。i++) for(j=0。j++)。 for(j=0。j++) { delay_1ms(10)。 //從左到右第 1個 sbit xun_l = P1^1。 //從左到右第 3個 sbit xun_r = P1^3。 //從左到右第 5個 void che_90_180_break(uchar dat) { uchar i_z = 0。 //消去干擾 if(i_z = 10) //10 次之后就確定尋跡模塊的中間傳感器到黑線上了 { if(dat == L) //如果是左轉 90 度就讓右轉的方法制動 right_s()。 //如果是右轉 90 度就讓左轉的方法制動 delay_10ms(5)。 break。 } } } /***********************小車左轉 90 度 ************************/ void left_s_90_while() //小車向左轉 90 度 { go()。 left_s()。 che_90_180_break(L)。 //前進一小會讓小車轉 90度時剛好讓黑線在小車的中間 delay_10ms(12)。 //左轉 90度注意這個延時不能太長 只要能讓尋跡模塊中間的傳感離開黑線就好 delay_10ms(18)。 } // 白線為 1 黑線為 0 void xunji() { if((xun_ll==1) amp。 (xun_l==1) amp。 (xun_z==0) amp。 (xun_r==1) amp。 (xun_rr==1)) { go()。amp。amp。amp。amp。 } if(((xun_ll==1) amp。 (xun_l==1) amp。 (xun_z==0) amp。 (xun_r==0) amp。 (xun_rr==1)) || ((xun_ll==1) amp。 (xun_l==1) amp。 (xun_z==1) amp。 (xun_r==0) amp。 (xun_rr==1)) || ((xun_ll==1) amp。 (xun_l==1) amp。 (xun_z==1) amp。 (xun_r==0) amp。 (xun_rr==0)) || ((xun_ll==1) amp。 (xun_l==1) amp。 (xun_z==1) amp。 (xun_r==1) amp。 (xun_rr==0))) { right()。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。 //小車左轉 } if((xun_ll==1) amp。 (xun_z==0) amp。 (xun_r==0) amp。 (xun_rr==0)) { go()。 if((xun_ll==1) amp。 (xun_z==0) amp。 (xun_r==0) amp。 (xun_rr==0)) { right_s_90_while()。amp。amp。amp。 delay_10ms(1)。amp。amp。amp。 //小車左轉 90度 } } } /*********************小延時函數(shù) *****************************/ void delay() { _nop_()。 _nop_()。 _nop_()。 _nop_()。 //10us 的高電平觸發(fā) delay()。 TH0 = 0。 TR0 = 0。 while(!c_recive)。 while(c_recive) //當 c_recive 為 1計數(shù)并等待 { flag_time0 = TH0 * 256 + TL0。 flag_csb_juli = 2。 flag_hc_value = 0。 } else { flag_csb_juli = 1。 //關定時器 0定時 distance = TH0。 distance += ( flag_hc_value * 65536)。 // = 340M / 2 = 170M = 算出來是米 if(distance 350) //距離 = 速度 * 時間 { distance = 888。 shudu_ll = shudu_ll * (float)。 //計路程 // write_sfm_jl(1,11,juli / 100)。 //顯示速度 write_sfm2(2,4,shi)。 write_sfm2(2,10,miao)。 //開總中斷 TMOD = 0X11。 //開定時器 0 中斷 TR0 = 0。 //開定時器 1 中斷 34 TR1 = 1。 //開總中斷 EX0 = 1。 //外部中斷 0負脈沖觸發(fā) // EX1 = 1。 //外部中斷 1負脈沖觸發(fā) } /******************避障程序 **********************/ void bizhang() { static uchar value。 if(value = 2) { right_90()。 delay_1ms(800)。 //左轉 90 度 go()。 left_90()。 delay_1ms(300)。amp。 //等待回到軌道 right_s_90_while()。 } /******************主程序 **********************/ void main() { init_1602()。 int01_init()。 //測距離函數(shù) send_wave()。 xunji()。 if(flag_300ms == 1) { flag_300ms = 0。 // che_dis()。 //測距離函數(shù) write_sfm_csb(1,11,distance)。 // test_io()。 } /*************定時器 0 中斷服務程序 用做超聲波測 距的 *******************/ void time0_int() interrupt 1 { flag_hc_value ++。 //定時 10ms 中斷一次 TH1 = 0xf8。 //2ms value++。 } if(value = 500) //500ms 要加個 2 才是一秒鐘的速度 { value = 0。 shudu_l = 0。 miao ++。 fen ++。 shi
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1