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

正文內(nèi)容

基于單片機(jī)的遙控小車的設(shè)計(jì)畢業(yè)論文-閱讀頁

2024-09-16 14:37本頁面
  

【正文】 驅(qū)動(dòng),又因?yàn)閮蓚€(gè)電機(jī)并聯(lián)在電路之中,所以本身并不會對驅(qū)動(dòng)造成影響??傠娐穲D如圖 10所示,其中包括獨(dú)立電源,接收與主控模塊,發(fā)射模塊三個(gè)部分。而程序則會分為對電機(jī)與舵機(jī)的控制 程序的介紹和遙控部分的介紹。 keil簡介 在本次對單片機(jī)進(jìn)行編程使用的為 C 語言,并且通過 Keil開發(fā)系統(tǒng)進(jìn)行編程。 相對于其他的編程語言, C 語言在功能上 , 結(jié)構(gòu)性 ,擁有更大的 優(yōu)勢。 在實(shí)際操作上 Keil 適合任何 Windows 界面。所以在本次設(shè)計(jì)中使用 keil 作為編程工具認(rèn)為是一個(gè)不錯(cuò)的選擇。變速和轉(zhuǎn)向皆可通過改變占空比來控制,作為電機(jī)與舵機(jī)部分,它的程序主要就是對接收到的占空比的變化指令做出反應(yīng),可以理解為是個(gè)執(zhí)行部分。電機(jī)與舵機(jī)的程序流程圖如圖 11所示: 圖 11 電機(jī)與舵機(jī)程序流程圖 PWM脈沖寬度調(diào)制與中斷系統(tǒng)介紹 PWM是 Pulse Width Modulation 的縮寫,中文譯名為脈沖寬度調(diào)制,可以理解為利用數(shù)電控制模電的典范,詳細(xì)說來就是 利 用 微處理器 的數(shù)字輸出來對 模擬電路 進(jìn)行控制 ,而數(shù)字輸出也就是使用了占空比不同的方波來模擬輸出的一種方式,比如總所周知電腦只會輸出 0和 1,而當(dāng)想輸出 的時(shí)候,通過脈沖寬度調(diào)制則可以用輸入 01010101??的方式來模擬 。換句話說就是在波形輸出后的半個(gè)周期之內(nèi)產(chǎn)生一定量的脈沖,并使這些脈沖的等值電壓轉(zhuǎn)化為正弦波形。 因?yàn)樵?PWM的波形中輸出的各個(gè)脈沖的幅值都是相同的,所以當(dāng)我們按照需要的系數(shù)改變這些脈沖的寬度時(shí),就能改變所輸出的正弦波的幅值。 通常來說, PWM的生成方式都是通過單片機(jī)中包含的脈沖寬度調(diào)制控制器,也就是在使用時(shí)只需要對控制器進(jìn)行設(shè)置即可,但是對于脈沖寬度調(diào)制來說它擁有一個(gè)有點(diǎn),就是在對于沒有包含控制器的單片機(jī)來說,可以使用定時(shí)器計(jì)數(shù)的方式來實(shí)現(xiàn)脈沖寬度調(diào)制的輸出。 脈沖寬度調(diào)制本身在各個(gè)行業(yè)當(dāng)中都有著很多的應(yīng)用也很有潛力, PWM因?yàn)樗男盘柖际且詳?shù)字的形式,所以減少了不必要的數(shù)模轉(zhuǎn)換,又進(jìn)而體現(xiàn)出它的抗噪能力和更小空間體積,從某種程度上來說也能促進(jìn)節(jié)能減排。 除了脈沖寬度調(diào)制之外,在電機(jī)與舵機(jī)的程序中,另一個(gè)用到的相對重要的就是中斷系統(tǒng),下面將對中斷系統(tǒng)做出簡單的介紹。 在單片機(jī)的管腳中,低四位控制著外部中斷,單片機(jī)的 1號與 3號管腳 IE0/IE1為外部中斷申請標(biāo)志位,在判斷單片機(jī)是否有收到外部中斷請求的時(shí)候, 通常會利用這兩個(gè)管腳的值來判斷,當(dāng)其沒有受到外部中秋的時(shí)候,其值為“ 0”,而當(dāng)它收到外部的中斷請求之后,它們的值則會變?yōu)椤?1”。 在 CPU中對中斷系統(tǒng)的所有中斷以及任意一個(gè)中斷原的開放或者屏蔽,是由中斷允許寄存器 IE所控制的。 ET1為定時(shí)器 T1中斷允許位,當(dāng)值為 0時(shí)禁止中斷,當(dāng)值為 1是則 20 允許中斷。 ES, EX1, EX0分別為串行口中斷,外部中斷 1,外部中斷 2的允許位,指的設(shè)定都為 0時(shí)禁止中斷, 1是允許中斷。其中 TF為定時(shí)器溢出標(biāo)志,當(dāng)接受了中斷請求之后此端口就會存在溢出現(xiàn)象,而此時(shí)此端口的值將會自動(dòng)被設(shè)置為“ 1”,當(dāng)中 斷開始被執(zhí)行時(shí),此端口的賦值將會被硬件清零或者軟件清零。 外部中斷的方法是有低電平觸發(fā)和跳沿觸發(fā),中斷的撤銷方式則分為定時(shí)器中斷請求的撤銷和外部中斷請求的撤銷兩大類。 首先如上一節(jié)所介紹的一樣舵機(jī)與電 機(jī)是通過 PWM來控制的。 //定時(shí)器 0工作方式 1 TL0 = 0xCE。 //設(shè)置定時(shí)初值 ET0 = 1。 //開啟定時(shí)器 0 } 該程序的目的在于定時(shí)器的初始化,它通過 TMOD語句 定義了定時(shí)器 0,及工作方式 1。隨后設(shè)置初始值為 TL0 = 0xCE。初始值 的設(shè)置為最大定時(shí)后接初始值,因?yàn)楸敬蔚某跏贾翟O(shè)定為是 50us,所以初始值 =6553650,但是值得注 21 意的一點(diǎn)是程序中是該值的 16 進(jìn)制。但是值得注意的是在這里,還沒有打開總中斷。而其中的打開中斷,關(guān)閉中斷可省略。 //關(guān)閉定時(shí)器 0, TL0 = 0xCE。 //設(shè)置定時(shí)初值 TR0 = 1。 PWM 的周期為 50us*500 = 25ms,也就是程序中 if(Time0 500) //500為 PWM波周期, 500*50us = 25ms Time0 = 0。其中單片機(jī)輸出舵機(jī)控制信號為 Steer_PWM,對應(yīng)的引腳程序前端已定義。 else Steer_PWM = 0。 22 else Motor_PWM = 0。 遙控部分的程序就是通過按鍵通過編碼后利用發(fā)射元件對主控電路發(fā)出指令,其指令就是前文所提到的對占空比的參數(shù)的設(shè)定,但是相對于需要對信息進(jìn)行處理的電機(jī)與舵機(jī)的程序來說,遙控部分的占空比的參數(shù)就是相當(dāng)于一個(gè)數(shù)值的發(fā)送,而遙控部分的關(guān)鍵則是對矩陣鍵盤的應(yīng)用,已經(jīng)考慮到舵機(jī)的一個(gè)轉(zhuǎn)彎角度而設(shè)定的一個(gè)舵機(jī)保護(hù)值。其原理圖分別如圖 14和圖 15所示。而獨(dú)立鍵盤的電路連接則相對簡單得多,但是一個(gè)按鍵對應(yīng)一個(gè) I/O 接口,這樣的方式會使得當(dāng)按鍵較多的情況出現(xiàn)之后, I/O口的利用率明顯不足,但是相對其編程也簡單的多,所以更加適合按鍵少的場合。 如同在前章硬件部分說介紹的一樣,按鍵接在 2262編碼器上的 D3, D2, D1,與 D0口上,通過每個(gè)按鍵所連接到的不同的引腳,使用到低電平進(jìn)行區(qū)別,從而使 4 個(gè)端頭表現(xiàn)出 7 個(gè)按鍵所需要表達(dá)的效果,例如按鍵“ 1”的編碼為 0001,按鍵“ 2”的編碼為 0010。發(fā)射控制引腳 4個(gè),可以組成 16 種不同的編碼,在這里因?yàn)橐还苍O(shè)置了 7個(gè)按鍵,所以使用了 7種編碼。通過函數(shù) KeyScan()。 GPIO_Key存放的就是 P2 口引腳的值,沒有輸入信號是, GPIO_Key = 0xF0。 { if(GPIO_Key != 0xF0) //檢查是否有按鍵按下 。 //將鍵值存儲下來 。 //用作延時(shí) 。 { else 通過 Switch 條件選擇語句,判斷發(fā)射的鍵值,然后選擇相應(yīng)的操作。 switch(Key_Value) //鍵值選擇 。 case 0xF1: Motor_Ctrl = 0。 break。 break。 break。 break。 case 0xF9: Motor_Ctrl = 200。 break。 break。 break。 if(Steer_Ctrl 29) //舵機(jī)保護(hù) 。 else if(Steer_Ctrl 19) Steer_Ctrl = 19。是按鍵按下時(shí)的延時(shí),使舵機(jī)轉(zhuǎn)角變化變慢,防止舵機(jī)直接打死。 //無按鍵按下,延時(shí)清零 。 void main() { Time_config()。 EA = 1。 Steer_Ctrl =24。 Motor_Ctrl = 0。 while(1) { 26 KeyScan()。 } 遙控小車的總程序是將上訴遙控以及電機(jī)與舵機(jī)兩部分的程序相整合,將遙控的控制程序已定時(shí)器中斷的方式接入電機(jī)與舵機(jī)的程序當(dāng)中,隨后將兩部分程序接入到對定時(shí)器初始化并設(shè)置舵機(jī)與電機(jī)的初始值的主程序當(dāng)中,最后主程序最主要的 工作就是對管腳的循環(huán)進(jìn)行掃描。 圖 16 系統(tǒng)程序流程圖 本節(jié)將記錄在焊接和調(diào)試中的一些問題和感悟,并且展示遙控小 車完成之后的各項(xiàng)功能,從而更好的描述出實(shí)物的效果。 首先利用通過 99SE制作出來的電路原理圖來完成實(shí)際的接線,在洞洞板上按照原理圖放置電子元件之后先行對其進(jìn)行焊接。檢查完畢后使用通靈進(jìn)行檢查排除因?yàn)樘摵冈斐傻木€路斷路問題。 在線路焊接與檢查完成之后,開始對小車進(jìn)行性能測試,用遙控對小車發(fā)出指令,先確定小車是否可以順利執(zhí)行,最后再根據(jù)小車的實(shí)際執(zhí)行情況使用 keil編程工具修改程序參數(shù)比保證精確。至此遙控小車的設(shè)計(jì)以基本完成。因此換用 電源,由于原使用的 ,在從六節(jié)降為四節(jié)之后依舊可以有效的進(jìn)行供電,而換用 進(jìn)行替代后電流更小,雖然小車的舵機(jī)和電機(jī)可以保持運(yùn)轉(zhuǎn),但是其持久力和性能都因?yàn)楣╇姷牟蛔阌幸欢ǖ南陆?。在接通電源,按鍵按下以后,紅色指示燈將會亮起,以示指示與發(fā)出。在小車的主 控部分有紅綠兩個(gè)指示燈。當(dāng)接收模塊接收到信號之后紅色指示燈會亮起,以表示其以接到指令,并在處理信息。保持小車的前輪在中間位置?;拒浖碗娐吩O(shè)計(jì)結(jié)束之后,便開始進(jìn)行元件的實(shí)際焊接和程序的燒寫,以及后期的調(diào)試。同時(shí)也達(dá)到了設(shè)計(jì)的要求,一共設(shè)置了 7個(gè)按鍵,小車通過無線遙控,在單片機(jī)的控制下可以完成前進(jìn),轉(zhuǎn)向,變速等操作。在對舵機(jī)的設(shè)置中初始值一開始習(xí)慣性設(shè)置成了一個(gè)整數(shù),但是小車總是在直線行進(jìn)的時(shí)候向兩側(cè)偏,最后將其設(shè)置成 24以滿足要求。但是在調(diào)試時(shí)發(fā)現(xiàn),因?yàn)樾≤嚨妆P的布局,導(dǎo)致在接了 6 節(jié)電池之后由于其寬度超出了底盤,致使舵機(jī)無法完全轉(zhuǎn)向,在轉(zhuǎn)向偏大之后便會卡在電池槽口上無法轉(zhuǎn)回。但是也是因此而導(dǎo)致了電機(jī)的轉(zhuǎn)速不足與舵機(jī)的轉(zhuǎn)度不足這些問題。 30 參考文獻(xiàn) [1]郭天祥 . 新概念 51 單片機(jī) C 語言教程 入門提高開發(fā)拓展全攻略 [M]. 北京 : 中國水利水電出版社 . 2020:21303. [2]樓然苗 ,光飛 . 單片機(jī)課程設(shè)計(jì)指導(dǎo) [M]. 北京 : 北京航空航天大學(xué)出版社 . 2020:112122. [3]ST. LlashFlex51MCU PDF[M]. SST Components Industries,2020:110,7879. [4]劉建成 ,嚴(yán)婕 . 電子技術(shù)實(shí)驗(yàn)與設(shè)計(jì)教程 [M]. 北京 : 電子工業(yè)出版社 . 2020:152159. [5]Kaoru Kawamoto,Yoshiyuki Shimoda,Minoru Mizuno. Energy saving potential of office equipment power management[J]. Energy amp。smart39。從一開始給出課題之后的課題分析,告訴我關(guān)系本課題的關(guān)鍵要點(diǎn),使我在設(shè)計(jì)上有了方向。同時(shí)也感謝那些在設(shè)計(jì)過程中從各個(gè)方面幫助過我的同學(xué)和朋友們,因?yàn)?他們的幫助使得我可以解決相當(dāng)一部分的困難,學(xué)習(xí)了更多額外的知識。同時(shí),因?yàn)樵诋呍O(shè)中會遇到一些問題,不免會向他人請教,以及一起討論,這使我也學(xué)會了如何與別人合作,以及合作的重要性。同時(shí)也再次感謝毛鵬老師和在畢設(shè)期間幫助過我的同學(xué)和朋友們。 32 附錄 附錄 1:遙控小車的程序與程序注釋 /* 功能: 采用 315MHz 無線控制, PT2262,與 PT2272 收發(fā)系統(tǒng)。//定義舵機(jī)輸出 端口 sbit Motor_PWM = P1^1。 //舵機(jī)控制變量 uchar Key_Value。 //函數(shù)聲明 void KeyScan(void)。 void DelayNms(uchar Nms)。 //定時(shí)器初始化 EA = 1。 //舵機(jī)的初始值,中間位置,(值變小往右偏,大左) Motor_Ctrl = 0。 //鍵盤掃描函數(shù),掃描無線接收端的值 } } void Time_config() { TMOD = 0x01。 //設(shè)置定時(shí)初值 50us 33 TH0 = 0xFF。 //使能定時(shí)器 0 TR0 = 1。 TL0 = 0xCE。 //設(shè)置定時(shí)初值 TR0 = 1。 //定時(shí)器中斷加 1 if(Time0 500) //500 為 PWM 波周期, 500*50us = 25ms Time0 = 0。 else Steer_PWM = 0。 else Motor_PWM = 0。 //將鍵值存儲下來 Key_Count++。 teer_Ctrl = 24。 //停中 case 0xF2: Motor_Ctrl = 500。 //3 檔 case 0xF4: Motor_Ctrl = 350。 //2 檔 34 case 0xF8: Motor_Ctrl = 200。 //1 檔 case 0xF9: Motor_Ctrl = 200。 break。 break。 break。 } if(Steer_Ctrl 29) //舵機(jī)保護(hù) Steer_Ctrl = 29。 } else { Key_Count = 0
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1