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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-單片機(jī)遙控小汽車(chē)的設(shè)計(jì)研究--帶程序(編輯修改稿)

2025-01-08 19:27 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 數(shù)的第一行開(kāi)始,寄存器值也不用保存。 哈爾濱工程大學(xué)本科生畢業(yè)論文 12 總之,采用以上這種軟件結(jié)構(gòu),也可以實(shí)現(xiàn)多個(gè)任務(wù)并發(fā)運(yùn)行,在 timer0()函數(shù)中可以加進(jìn)更多的任務(wù),只要各個(gè)任務(wù)都能在一個(gè)較段的時(shí)間內(nèi)執(zhí)行一次并返回到 timer0()函數(shù)中就可以。此外,關(guān)于 RAM的分配是在編譯的時(shí)候完成的,各個(gè)任務(wù)一般要用一些全局的靜態(tài)變量來(lái)標(biāo)識(shí)自身狀態(tài)。 在主控單片機(jī)上有以下幾個(gè)任務(wù): (1) 主任務(wù): main()開(kāi)始的任務(wù),很多功能都要在該任務(wù)中完成; (2) 蜂鳴器發(fā)聲任務(wù): beep2(),全局變量 n_beep 表示需要發(fā)出幾個(gè)“嘀”聲; (3) LED 顯示任務(wù): led_disp(),LED 數(shù)碼管和 LED 發(fā)光二極管顯示任務(wù); (4) 后輪電機(jī)驅(qū)動(dòng)任務(wù): dianji(),目前只實(shí)現(xiàn)了電機(jī)的正、反轉(zhuǎn)和停止功能,以后可以在該任務(wù)中加入 PWM 調(diào)速功能; (5) 前輪轉(zhuǎn)向任務(wù): gw_dianji(),控制步進(jìn)電機(jī)讓前輪轉(zhuǎn)到指定的角度; (6) 里程檢測(cè)任務(wù): licheng(),檢測(cè)小車(chē)的行駛里程。 在從單片機(jī)上有四個(gè)任務(wù): (1) 尋找光源方向任務(wù):該任務(wù)作為從單片機(jī)的背景任務(wù),由main()函數(shù)調(diào)用,然后一直循環(huán)的執(zhí) 行; (2) 前超聲測(cè)障任務(wù): chaosheng_qian(),由從單片機(jī)的定時(shí)器中斷處理函數(shù) timer0()每隔 64 毫秒調(diào)用一次; (3) 后超聲測(cè)障任務(wù): chaosheng_hou(),每 64 毫秒調(diào)用一次,和chaosheng_qian()的調(diào)用相差 32 毫秒; (4) 旋轉(zhuǎn)機(jī)構(gòu)轉(zhuǎn)動(dòng)任務(wù): driver_dianji(),將尋找光源方向的轉(zhuǎn)動(dòng)機(jī)構(gòu)旋轉(zhuǎn)到指定的角度。 消息驅(qū)動(dòng)結(jié)構(gòu) 考慮到系統(tǒng)中無(wú)論是操作者按下一個(gè)按鍵,還是遇到障礙或是尋哈爾濱工程大學(xué)本科生畢業(yè)論文 13 找到光源,這些事件都有一個(gè)共同點(diǎn),就是系統(tǒng)要對(duì)這些事件做出相應(yīng)的 處理或采取相應(yīng)的措施。所以為了簡(jiǎn)化編程,讓這些事件在主任務(wù)中能得到統(tǒng)一的處理,可以給這些事件編上號(hào),然后由一個(gè)消息搜集模塊去等待各種消息。一旦某個(gè)事件發(fā)生,該模塊馬上給主任務(wù)返回該事件的編號(hào),即消息值,讓主任務(wù)按照消息值分類去處理消息。 在消息搜集模塊的頭文件中定義了如下若干個(gè)消息: //消息的結(jié)構(gòu)為:高三位,消息分類碼,可以加快消息處理的速 //度;低五位,消息值。 define NULL 0 //按鍵消息的定義 define MSG_K_QIAN 0x01 //“前進(jìn)”按鍵消息 define MSG_K_HOU 0x02 //“后退”按鍵消息 define MSG_K_ZUO 0x03 //“左轉(zhuǎn)”按鍵消息 define MSG_K_YOU 0x04 //“右轉(zhuǎn)”按鍵消息 define MSG_K_TING 0x05 //“停止”按鍵消息 define MSG_K_MODE 0x06 //“模式選擇”按鍵消息 define MSG_K_FEN 0x07 //“漏粉”按鍵消息 define MSG_K_REC 0x08 //“記錄路線”按鍵消息 define MSG_K_DISPMODE 0x09 //“顯示切換”按鍵消息 //超聲避障消息 define MSG_QIANZHANG 0x14 //前方出現(xiàn)障礙消息 define MSG_HOUZHANG 0x15 //后方出現(xiàn)障礙消息 define MSG_NOQIANZHANG 0x16 //前方障礙消失消息 define MSG_NOHOUZHANG 0x17 //后方障礙消失消息 //光源消息 define MSG_NOTFOUND 0x28 //沒(méi)有發(fā)現(xiàn)光源消息 define MSG_FOUND 0x29 //發(fā)現(xiàn)光源消息 哈爾濱工程大學(xué)本科生畢業(yè)論文 14 //主從機(jī)之間的控制消息 define MSG_BEGINFIND 0x31 //開(kāi)始尋找光源命令消息 define MSG_ENDFIND 0x32 //停止尋找光源消息 extern uchar getmsg(void)。 extern uchar imgetch(void)。 消息搜集模塊對(duì)外提供了兩個(gè)接口函數(shù): getmsg()函數(shù)一直等待到有消息時(shí)返回消息值; imgetch()函數(shù)立即返回按鍵值,這是為了某些地方使用上的靈活而設(shè)置的。 有了這個(gè)消息搜集模 塊后,主任務(wù)執(zhí)行的大部分時(shí)間就會(huì)停留在getmsg()函數(shù)內(nèi)等待消息,當(dāng)有按鍵命令或遇到障礙時(shí)返回消息值,主任務(wù)對(duì)其進(jìn)行相應(yīng)的處理。 主任務(wù)處理消息可以設(shè)計(jì)成如下結(jié)構(gòu): while(1) //消息循環(huán) { switch(getmsg()) //消息分類處理 { case MSG_K_QIAN: //“前進(jìn)”按鍵消息處理 … break。 case MSG_K_HOU: //“后退”按鍵消 息處理 … break。 case … } } 哈爾濱工程大學(xué)本科生畢業(yè)論文 15 本章小結(jié) 本章將系統(tǒng)拆分成了若干個(gè)功能模塊,并且采用兩個(gè) AT89C52 單片機(jī)來(lái)各分擔(dān)一部分功能。在軟件方面通過(guò)對(duì)結(jié)構(gòu)的特殊設(shè)計(jì),基本上實(shí)現(xiàn)了多任務(wù)并發(fā)運(yùn)行,并且通過(guò)軟件的分層結(jié)構(gòu)將功能實(shí)現(xiàn)和具體的硬件分離開(kāi),再加上消息驅(qū)動(dòng)的結(jié)構(gòu),這將給后續(xù)的各模塊軟件的設(shè)計(jì)帶來(lái)方便。 哈爾濱工程大學(xué)本科生畢業(yè)論文 16 第 3 章 各模塊的詳細(xì)設(shè)計(jì) 紅外遙控模塊的設(shè)計(jì) 遙控模塊的功能需求 遙控模塊 采用紅外遙控方式,因?yàn)椴捎眉t外遙控抗干擾能力強(qiáng),且不會(huì)對(duì)周?chē)臒o(wú)線電設(shè)備產(chǎn)生干擾電波,接口簡(jiǎn)單;但是紅外方式遙控的距離比較有限,一般在幾米之內(nèi)。鑒于本設(shè)計(jì)不需要遠(yuǎn)距離遙控,所以綜合考慮之下采用紅外遙控較為合適。 本設(shè)計(jì)中要求能用遙控器控制小車(chē)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、記錄路線、尋找光源等很多種功能;遙控距離在幾米之內(nèi)即可;并且要在遙控發(fā)射模塊加入語(yǔ)音識(shí)別模塊,能夠?qū)崿F(xiàn)聲控功能。 編解碼芯片的選型 由于在遙控端的按鍵數(shù)目有多個(gè),而紅外通道傳輸?shù)闹荒苁怯?0、1 組成的串行代碼,所以需要在發(fā)射端對(duì) 按鍵進(jìn)行“并 串”編碼,在接收端相應(yīng)的要進(jìn)行“串 并”解碼。碼的波特率在收、發(fā)兩端應(yīng)該是一致的。 方案一,使用 MC14502 MC145027 編解碼芯片,其特殊的編碼方式保證了信息的可靠傳輸,但是外圍器件參數(shù)的選定較為煩瑣,并且不能利用到其所提供的地址功能,也就是說(shuō)傳輸?shù)男畔?dāng)中地址碼部分是多余的,這就降低了信道的利用率。 方案二,采用 臺(tái)灣瑞昱公司生產(chǎn)的專用于遙控車(chē)模的 CMOS 大規(guī)模集成電路 TX2/RX2,該編解碼芯片具有 5 種控制功能,使用方便,所以本設(shè)計(jì)中采用了該方案。 遙控模塊原理圖 遙控模塊發(fā)送部分原理如圖 所示。 TX2 的 11 腳和 12 腳之間接的電阻決定振蕩頻率; 3 腳接地; 10 腳接 35V電源; 14 腳、 1 腳、4 腳、 5 腳、 6 腳分別為 5 路發(fā)射控制端; 9 腳為發(fā)射指示端,當(dāng)有按哈爾濱工程大學(xué)本科生畢業(yè)論文 17 鍵按下時(shí) LED1 發(fā)光提示; 7 腳為帶載波的編碼信號(hào)輸出端,即編碼信號(hào)已經(jīng)內(nèi)調(diào)制到 38KHZ 的載波上,該腳的信號(hào)通過(guò)一個(gè) NPN 型三極管放大后可直接驅(qū)動(dòng)紅外發(fā)射二極管發(fā)射信號(hào); 8 腳為不帶載波的編碼信號(hào)輸出端。 遙控發(fā)射端按鍵數(shù)目的擴(kuò)展 遙控接收電路如圖 所示。 RX2 的 4 腳和 5 腳之間接的 電阻阻值要和 TX2 的 11 腳、 12 腳間的電阻阻值接近,相差在 20%之內(nèi)方可正確的解碼,本設(shè)計(jì)中這兩個(gè)電阻都選用 150KΩ ; 2 腳接地; 13 腳接35V 電源; 3 腳接輸入信號(hào),由一體化紅外接收頭 1838 輸出的信號(hào)圖 遙控發(fā)射原理圖 圖 遙控接收電路圖 哈爾濱工程大學(xué)本科生畢業(yè)論文 18 需要加一個(gè)反向器才是正確的編碼信號(hào); 6 腳、 7 腳、 10 腳、 11 腳、12 腳為 5 路遙控命令的輸出端,分別和 TX2 的 5 路輸入端的狀態(tài)相對(duì)應(yīng)。 另外,為了方便操作,將 TX2 的 5 路功能擴(kuò)展成 9 功能,即在遙控發(fā)射端可以接 9 個(gè)按鍵。這是通過(guò)對(duì)原先的 5 路輸入進(jìn)行組合得到的。 遙控電路與語(yǔ)音識(shí)別模塊的連接 語(yǔ) 音識(shí)別模塊采用凌陽(yáng) 61 板,可以將 SPCE061A 單片機(jī)的輸出引腳直接接到 TX2 的輸入端,與按鍵實(shí)現(xiàn)“線與”功能,這樣遙控發(fā)射端的按鍵和凌陽(yáng)單片機(jī)都可以通過(guò)遙控電路給小車(chē)發(fā)送命令。 數(shù)碼管、發(fā)光二極管顯示模塊的設(shè)計(jì) 多位數(shù)碼管掃描顯示原理 LED 數(shù)碼管是常用的顯示器件,數(shù)碼管的結(jié)構(gòu)如圖 所示。每一段相當(dāng)于一個(gè)發(fā)光二極管,各個(gè)發(fā)光二極管的陽(yáng)極或陰極接在一起,分別稱作共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。本設(shè)計(jì)中采用的是共陰極數(shù)碼管。 對(duì)于多個(gè)數(shù)碼管的顯示,有靜態(tài)方式和動(dòng)態(tài)掃描方式。本設(shè)計(jì)中用 了 4 個(gè)共陰極數(shù)碼管,并采用動(dòng)態(tài)掃描方式顯示。掃描顯示的原理是將各個(gè)數(shù)碼管的段碼端口分別并聯(lián)在一起,由位選端口輪流選通各個(gè)數(shù)碼管,并讓每個(gè)數(shù)碼管分別顯示幾毫秒,由于人眼的視覺(jué)慣性,看到的將是多個(gè)數(shù)碼管同時(shí)在顯示。 工作狀態(tài)指示燈及轉(zhuǎn)向燈的設(shè)計(jì) 為了直觀的顯示出小車(chē)的各種狀態(tài),設(shè)計(jì)了若干發(fā)光二極管指示圖 LED 數(shù)碼管 結(jié)構(gòu) 哈爾濱工程大學(xué)本科生畢業(yè)論文 19 燈,有模式指示燈、漏粉指示燈、記錄行駛路線指示燈、障礙指示燈、轉(zhuǎn)向指示燈、倒車(chē)指示燈。 顯示模塊電原理圖 顯示模塊原理如圖 所示: 顯示任務(wù)由主單片機(jī)完成。 和 分別接到 74LS164 的串行數(shù)據(jù)輸入端和移位脈沖端,產(chǎn)生數(shù)碼管選通信號(hào)。 接到 74LS273的時(shí)鐘端,鎖存 P2 口給出的段碼數(shù)據(jù)。在完成鎖存后由 P2 口直接驅(qū)動(dòng) 8 個(gè) LED 發(fā)光二極管,作為小車(chē)的狀態(tài)指示。為了在 74LS273 鎖存數(shù)據(jù)時(shí)避免狀態(tài)指示燈的閃爍,用 控制狀態(tài)指示燈的選通。在74LS273 鎖存數(shù)據(jù)期間 置高電平,全部熄滅狀態(tài)指示燈;在鎖存結(jié)束后, P2 口給出正確的電平后再置 低電平。同樣在 4 個(gè)數(shù)碼管掃描顯示的過(guò)程中也應(yīng)避免數(shù)碼管的閃爍。 顯示任務(wù)的軟件設(shè)計(jì) 數(shù)碼管的掃描顯示和狀態(tài)指示燈的顯示流程如圖 所示。由定時(shí)器 0 中斷處理函數(shù) timer0()每隔 4 毫秒調(diào)用一次。這樣每個(gè)數(shù)碼管圖 顯示模塊原理圖 哈爾濱工程大學(xué)本科生畢業(yè)論文 20 輪流顯示 4 毫秒,掃描一遍共需 16 毫秒,也就是閃爍的頻率大概是60Hz,人眼看到的就是 4 個(gè)數(shù)碼管同時(shí)在顯示了。 聲音提示功能的設(shè)計(jì) 和狀態(tài)指示燈的設(shè)計(jì)目的一樣,給小車(chē)加入聲音提示功能也是為了更直觀地顯示各種狀態(tài)。在操作者通過(guò)遙控器給小車(chē)發(fā)出命令后,蜂鳴器將響一聲,及時(shí)的提示操作者已經(jīng)收到命令。這是挺有必要的,因?yàn)榧t外遙控方式并不是很可靠,有時(shí)操作者發(fā)出的遙控命令小車(chē)可返回 熄滅狀態(tài)指示燈 顯示模式是? 顯示緩沖區(qū)置成時(shí)間 顯示緩沖區(qū)置成里程 數(shù)碼管段碼置成 0,消除移位時(shí)的閃爍 選通下一個(gè)數(shù)碼管 閃爍處理 鎖存段碼 顯 示 個(gè) 狀 態(tài)指示燈 時(shí)間模式 里程模式 用戶模式 圖 顯示流程圖 哈爾濱工程大學(xué)本科生畢業(yè)論文 21 能是收 不到的,因此操作者幾乎處于“盲操作”狀態(tài)。加入了聲音提示功能后,小車(chē)有沒(méi)有接收到遙控命令很容易就能知道了。此外,當(dāng)小車(chē)遇到障礙時(shí)也會(huì)給出聲音報(bào)警信號(hào)。 本設(shè)計(jì)中所采用的蜂鳴器使用很簡(jiǎn)便,只需給其正負(fù)端加上 5V左右的電壓就能夠發(fā)出聲音,在其內(nèi)部已經(jīng)含有一個(gè)振蕩電路。工作電流大約 10mA,因此可以用 P0 口的某一位直接驅(qū)動(dòng)。 聲音提示功能被設(shè)計(jì)成一個(gè)單獨(dú)的任務(wù),原因是為了能讓蜂鳴器響若干聲,而同時(shí)單片機(jī)又能做其他的事情。其他模塊通過(guò) beep(n)函數(shù)設(shè)置靜態(tài)變量 n_beep,告訴聲音提示模塊需要響 n 聲,大約 50毫 秒響一聲后自動(dòng)會(huì)將 n_beep 減去 1,一直減到 0 后不再發(fā)聲。 前輪轉(zhuǎn)向模塊的設(shè)計(jì) 前輪轉(zhuǎn)向的機(jī)械結(jié)構(gòu)設(shè)計(jì) 前輪的機(jī)械結(jié)構(gòu)如圖 所示。通過(guò)步進(jìn)電機(jī)來(lái)控制前輪轉(zhuǎn)到一定的角度,并且采用了一個(gè)遮擋型的紅外對(duì)管來(lái)檢測(cè)轉(zhuǎn)向的中點(diǎn),以便在開(kāi)機(jī)時(shí)能自動(dòng)找到轉(zhuǎn)向的中點(diǎn)。而且在一定程度上可以校準(zhǔn)由步進(jìn)電機(jī)的失步帶來(lái)的角度誤差。 前輪轉(zhuǎn)向中點(diǎn)校準(zhǔn)功能的設(shè)計(jì) 圖 遮擋校準(zhǔn)方案 哈爾濱工程大學(xué)本科生畢業(yè)論文 22 如圖 所示,在紅外發(fā)射管和接收管之間無(wú)遮擋時(shí),電壓比較器輸出低電平;當(dāng)之間有遮擋時(shí),電壓比較器輸出高電平。當(dāng)前輪轉(zhuǎn)到中點(diǎn)時(shí),細(xì)桿正好能遮擋住紅外對(duì)管,此時(shí)電壓比較器輸出一個(gè)高電平;當(dāng)前輪偏離中
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1