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

正文內(nèi)容

基于單片機(jī)的紅外通訊軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)(參考版)

2025-03-02 12:09本頁(yè)面
  

【正文】 */ define SENDCODE0 0x60 /*數(shù)字鍵 0 的操作碼 */ define SENDCODE1 0x61 /*數(shù)字鍵 1 的操作碼 */ define SENDCODE2 0x62 /*數(shù)字鍵 2 的操作碼 */ define SENDCODE3 0x63 /*數(shù)字鍵 3 的 操作碼 */ define SENDCODE4 0x64 /*數(shù)字鍵 4 的操作碼 */ define SENDCODE5 0x65 /*數(shù)字鍵 5 的操作碼 */ define SENDCODE6 0x66 /*數(shù)字鍵 6 的操作碼 */ define SENDCODE7 0x67 /*數(shù)字鍵 7 的操作碼 */ define SENDCODE8 0x68 /*數(shù)字鍵 8 的操作碼 */ define SENDCODE9 0x69 /*數(shù)字鍵 9 的 操作碼 */ de。 最后,衷心感謝各位評(píng)委在百忙中對(duì) 我的 論文進(jìn)行仔細(xì)的審閱 。 在整個(gè)畢業(yè)設(shè)計(jì)過(guò)程中,劉曉東老師對(duì)我細(xì)心指導(dǎo)和教育,讓我從中學(xué)到了很多有著長(zhǎng)遠(yuǎn)意義的東西,不勝感激。謝謝! 1 35 參考文獻(xiàn) [1] 百度百科 紅外通訊 [2] 激光網(wǎng) 紅外技術(shù)的現(xiàn)狀和未來(lái) [3] 蘇長(zhǎng)贊 .紅外線與超聲波遙控 .北京 人民郵電出版社, 1997 [4] 張玉香 .新型遙控接收模塊 . HS0038[ J]無(wú)線電, 1998, 7 [5] 肖景和 .實(shí)用遙控電路 . 北京 人民郵電出版社, 1998 [6] Joseph M. Kah , John R. Barry .Wireless Infrared Communications. Junc 19,1997. Dept. of Electrical Engineering and Computer SciencesUniversity of Californ. [7] 高茹云 .通訊電子線路 . 西安 西安電子科技大學(xué)出版社, 1999 [8] 劉振海 .單片機(jī)原理及應(yīng)用技術(shù) . 北京 高等教育出版社 [9] 沈紅衛(wèi) .單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析 . 北京 北京航空航天大學(xué)出版社 [10] 原東昌 .李晉炬 .通信原理 與電路實(shí)驗(yàn)指導(dǎo)書(shū) . 北京 北京理工大學(xué)出版社 [11] 嚴(yán)天峰 ,王耀琦 .紅外通信模塊設(shè)計(jì)例程 . 中京航空航天大學(xué)出版社 [12] 徐瑋, 51 單片機(jī)綜合學(xué)習(xí)系統(tǒng) — 紅外線遙控篇 . 北京 電子工業(yè)出版社 [13] 江世明 .基于 Proteus 的單片機(jī)應(yīng)用技術(shù) . 北京 電子工業(yè)出版社 [14] 黃迪明等 .C 語(yǔ)言程序設(shè)計(jì)教程 . 北京 國(guó)防工業(yè)出版社 [15] 周立功等 .增強(qiáng)型 80C51 單片機(jī)速成與實(shí)戰(zhàn) . 北京 北京航空航天大學(xué)出版社 1 36 1 37 致謝 經(jīng)過(guò)了這個(gè)學(xué)期不斷的努力學(xué)習(xí)和修改,我終于完成了畢業(yè)設(shè)計(jì)論文。 通過(guò)本論文對(duì)紅外通訊系統(tǒng)的研究發(fā)現(xiàn),紅外通訊的確是一種非常實(shí)用的遠(yuǎn)程控制 技術(shù) ,成本低,點(diǎn)對(duì)點(diǎn)控制使用方便, 資料及其技術(shù)成熟便于深入研究探討。 仿真系統(tǒng)中,主要使用的是 89C51 芯片為核心,分成紅外通訊的發(fā)射端和接收端兩部分電路,實(shí)現(xiàn)了利用紅外通訊技術(shù)對(duì)電機(jī)的控制,液晶顯示器的控制。 1 34 結(jié)論 紅外通訊應(yīng)用越來(lái)越廣泛,各種家用電器,電子產(chǎn) 品,醫(yī)療設(shè)備等無(wú)一不用到紅外通訊,所以對(duì)于紅外通訊的研究設(shè)計(jì),是十分有必要的。 對(duì)于這個(gè)問(wèn)題,我是通過(guò)在紙上繪制出,編碼過(guò)程的所有方波波形 發(fā)現(xiàn)的。 這個(gè)問(wèn)題之前有提到過(guò),我們解碼用的是接收端單片機(jī)的外部中斷 1,中斷觸發(fā)方式是下降沿,但是編 碼的位“ 0”和位“ 1”卻是同樣先一段 ,s 的高電平,再根據(jù) 和 的低電平來(lái)區(qū)別。后來(lái)我是根據(jù),接收端的反應(yīng)做出判斷,問(wèn)題出在接收端的 用戶按鍵操作碼發(fā)送部分。導(dǎo)致一次用戶輸入按鍵就發(fā)送多個(gè)操作碼。語(yǔ)句。下面就我編寫(xiě)過(guò)程中,遇到的幾個(gè)比較重大的問(wèn)題,并且如何發(fā)現(xiàn)及1 33 其解決進(jìn)行分析。編譯調(diào)試結(jié)果如下圖所示: 1 32 這樣便完成紅外通訊系統(tǒng)軟件編寫(xiě)調(diào)試方面的內(nèi)容。編譯過(guò)程中的信息將出現(xiàn)在輸出窗口中的 Build 頁(yè)中,如果源程序有語(yǔ)法錯(cuò)誤,會(huì)有錯(cuò)誤報(bào)告出現(xiàn),雙擊該行,可以定到出錯(cuò)的位置,對(duì)源程序反復(fù)修改后,最終會(huì)得到如圖所示的結(jié)果,提示獲得了名為 紅外通訊系統(tǒng) .hex 的文件,該文件即可被編程器讀入并寫(xiě)到芯片中,同時(shí)還產(chǎn)生了一些其他相關(guān)文 件可被用于 KEIL 的仿真與調(diào)試。 編譯調(diào)試程序 1 31 完成好項(xiàng)目和 源文件的建立后,便可以 開(kāi)始 編寫(xiě)代碼, 代碼編寫(xiě)完成后 編譯、連接:在設(shè)置好工程后,既可以進(jìn)行編譯、連接。在工程窗口的文件頁(yè)中,出現(xiàn)了“ Target1”,前面有 “ +”號(hào),點(diǎn)擊“ +”展開(kāi),可以看到下一層的“ Source Group1” ,這時(shí)的工程還是一個(gè)空工程,里面什么文件也沒(méi)有,需要手動(dòng)把剛才編寫(xiě)好的源程序加入,點(diǎn)擊“ Souce Group”使其反白顯示,然后,點(diǎn)擊鼠標(biāo)右鍵 ,出現(xiàn)一個(gè)下拉菜單。項(xiàng)目建立完成后,開(kāi)始建立源文件, 使用菜單 “ FileNew”或者點(diǎn)擊工具欄的新建文件按鈕,即可在項(xiàng)目窗口的右側(cè)打開(kāi)一個(gè)新的文本編輯窗口,在該窗口中輸入 C語(yǔ)言源程序。 在文件名的框中填入項(xiàng)目的名稱 ” 紅外通訊系統(tǒng) ” ,然后保存。至于其它功能,只要進(jìn)行普通的測(cè)試,保證它不出現(xiàn)明顯和嚴(yán)重 bug即可。對(duì)于 最核心 功能 ,多進(jìn)行一些健 壯性測(cè)試、穩(wěn)定性、安全性等測(cè)試。至于其它的 非 重點(diǎn)功能,只要不出明顯 bug,有點(diǎn)小缺陷無(wú)傷大雅。對(duì)于重點(diǎn)功能中的 “ 常用功能 ” ,要保證 時(shí)間 性能夠好(能快速響應(yīng))。作為一個(gè)職 業(yè)的開(kāi)發(fā)人員,不應(yīng)該以自己的興趣和喜好來(lái)決定開(kāi)發(fā)的輕重緩急。 編寫(xiě)代碼方面: 很 開(kāi)發(fā)人員 有幾個(gè)通?。合茸鲇腥せ蛉菀椎墓δ?,然后再做無(wú)聊或者繁瑣的功能;對(duì)自己有興趣的功能投入精力多,對(duì)自己沒(méi)興趣的簡(jiǎn)單應(yīng)付。這個(gè)時(shí)候透徹分析程序該如何寫(xiě),是否切合實(shí)際至關(guān)重要。本文的汽車行駛 記錄儀系統(tǒng)在設(shè)計(jì)時(shí)也使用了一些軟件抗干擾措施。 軟件抗干擾以其設(shè)計(jì)靈活。抗干擾措施有硬件措施和軟件措施。 1 29 軟件抗干擾技術(shù) 隨著單片微機(jī)在各個(gè)領(lǐng)域中的應(yīng)用越來(lái)越廣泛,對(duì)其可靠性要求也越來(lái)越高。當(dāng)用戶定時(shí)開(kāi)啟后, LED 指示燈亮,定時(shí)器 1開(kāi)始計(jì)數(shù),中斷一次 TimeCount 自加一次,并且每次中斷都通過(guò)表達(dá)式來(lái)判斷是否達(dá)到用戶指定的中斷時(shí)間,表達(dá)式為: if((Time*1000)/90 == TimeCount)。 電機(jī) P0口不同值對(duì)應(yīng)電機(jī)狀態(tài)如下表: P0口的值 電機(jī)狀 態(tài) 0x00 停止 0x02 電機(jī)低速檔運(yùn)行 0x04 電機(jī)中速檔運(yùn)行 0x08 電機(jī)高速檔運(yùn)行 除了控制電機(jī)轉(zhuǎn)速外,程序還需要控制一個(gè)接與 P37 口的 LED 燈,用來(lái)指示電機(jī)是否定時(shí)運(yùn)行。在仿真中,控制三個(gè)不同電壓的單片機(jī)管腳選用的是 P10, P11, P12。這樣雙方達(dá)成共同的協(xié)議,變可以進(jìn)行通信。如:用戶按鍵按下 0,那么便將 SENDCODE0 作為操作碼拿去編碼,然后發(fā)送 出去 (SENDCODE 的定義語(yǔ)句為 :define SENDCODE0 0x60)。通信協(xié)議在“ “頭文件中。 Y Y Y 若接收完 8 位,則IsNewCode=1,key_code 完整。 key_bit_count8? 根據(jù) buf_count 的次數(shù)來(lái)判斷是 0 還是 1 , 再 給buf_key_code 賦值。 ir_status =0 ir_status =2 ir_status =1 是 否為 起始碼 ? ir_status 賦值為 1,表示接收完起始碼。然后IsNewCode=0,繼續(xù)回到等待發(fā)射端用戶的操作。根據(jù)位 0和位 1的脈沖寬度可知,如果 40buf_count50 則說(shuō)明接收到一個(gè) 1,20buf_count30 則說(shuō)明接收到一個(gè) 0。然后再進(jìn)行判斷 ,是否為起始碼,如果是則 buf_count 的次數(shù)應(yīng)該為 250buf_count300 因?yàn)?9ms+=即 ,13500/50=275,這時(shí)候接受狀態(tài) ir_status=1,表示已經(jīng)接受過(guò)起始碼,那么接下來(lái)接受的應(yīng)該是系統(tǒng)識(shí)別碼。amp。 buf_count 來(lái)計(jì)算接 受到的脈沖的寬度 ,如果脈沖的寬度不是合法的信號(hào) ,那么就去除。 mon_code_count:已接收系統(tǒng)識(shí)別碼計(jì)位 key_bit_count:已接收操作碼計(jì)位 buf_key_code:操作碼位存儲(chǔ) key_code:完全操作碼 IsNewCode:是否有新操作碼傳送 。 buf_count:儲(chǔ)存 Count 計(jì)數(shù) 。 用于解碼程序的變量和函數(shù)主要有 : recive():外部中斷函數(shù) 。 也就是說(shuō),解碼的關(guān)鍵是如何識(shí)別“ 0”和“ 1”,從對(duì)位的定義我們可以發(fā)現(xiàn)“ 0”、“ 1”均以 的高電平開(kāi)始,不同的是低電平的寬1 26 度不同,“ 0”為 ,“ 1”為 ,所以必須根據(jù)低電平的寬度區(qū)別“ 0”和“ 1” .而在接收端程序中,電平的寬度之前說(shuō)了,是使用定時(shí)器 0中斷函數(shù)中的 Count 來(lái)計(jì)數(shù) ,定時(shí)器 50us 中斷一次。 這樣便產(chǎn)生一個(gè) 38KHz的方波,輸出后在仿真中通過(guò)元件與編碼后的數(shù)據(jù)結(jié)合。TH0 設(shè)置為 0XF3, TL0=0XF3。 38KHz 載波信號(hào)調(diào)制程序 本次系統(tǒng)中的 38KHz的載波信號(hào)調(diào)制使用外接單片機(jī)的內(nèi)部定時(shí)器 0產(chǎn)生 38KHz方波與編碼后的信號(hào)結(jié)合 再送到紅外發(fā)射器發(fā)送出去。OverCode()。DataCode(SendCode)。DataCode(0X55)。沒(méi)關(guān)系,這一步,我們要在結(jié)束碼中完成,所以 OveCode函數(shù)中先發(fā)送一段 ,用于操作碼最后一位的外部中斷溢出和寬度計(jì)算,隨后發(fā)送一段 和 23ms的高電平用于 結(jié) 束這次的操作碼發(fā)送過(guò)程。 DataCode()用于1 25 發(fā)送系統(tǒng)識(shí)別碼和操作碼 ,函數(shù)中 將參數(shù) SendCode逐位分解,從低位開(kāi)始發(fā)送;如果該位是 0,則發(fā)送位 ” 0” ,即先發(fā)送 ;如果該位是 1,則發(fā)送位 ” 1” ,即先發(fā)送 電平再發(fā)送 平;連續(xù)發(fā)送八位這樣的位 0和位 1表示一個(gè)完整的操作碼。而在這四個(gè)函數(shù)中用到的函數(shù)均有定時(shí)器 0來(lái)延時(shí),做到 100%的精確。程序中,采用的是模擬發(fā)送一次 原碼后再發(fā)送一次反碼的形式。用戶碼和數(shù)據(jù)碼統(tǒng)稱為傳送碼 ,通常為 8 位或 16 位的“ 0”“ 1”碼 ,為了避免出現(xiàn)差錯(cuò) ,每次發(fā)射的傳送碼中一般都包含兩次編碼 :一次為原碼 ,一次為反碼 。編碼主要是由用戶碼和數(shù)據(jù)碼構(gòu)成 ,通常還包括引導(dǎo)脈沖 ,引導(dǎo)脈沖總是出現(xiàn)在編碼脈沖的前頭 ,作為遙控接收的啟動(dòng)信號(hào) 。 1 24 模擬編碼芯片的編碼程序設(shè)計(jì) 這里編碼程序模擬的是 uPD6121編碼芯片。0XF0 得到列的狀態(tài)值,再將該值加上行值 ,如是第一行則加上該值加上 0X0E, 便 可得到行和列的值。KeyCheck()函數(shù)的開(kāi)始時(shí),先將 P0 口的低四位至高電平,高四位至低電平 ,即P0=0XF0;如果有鍵按下,根據(jù)則根據(jù)圖中可知 ,不可能為原本的低四位高電平,高四位低電平,則 P0 != 0XF0;然后再接下來(lái)分別判斷,是哪一行,如果是第一行則 P0 為 0XFE,第二行 P0 為 0XFD,第三行 P0為 0XFB,第四行 P0為 0XF7,程序中為每一行的判斷設(shè)置一個(gè) if 判斷語(yǔ)句,若如何判斷則說(shuō)明是該行,進(jìn)入該行的 if 語(yǔ)句 。四乘四矩陣鍵盤(pán)在仿真使用的是 KEYPAD 仿真元件,其內(nèi)部的各按鍵之間的接線大致如下圖所示 , C1 至 C41 23 分 別接 P0 至 P3, R1至 R4分別接 P4 至 P7。具體的中文字型編碼可參見(jiàn) ST7920 GB 中文字型碼表 。 而不管是寫(xiě)指令還是寫(xiě)數(shù)據(jù),都應(yīng)該注意 LCD1602 的延時(shí)時(shí)序,由于 E 為高脈沖的時(shí)候?qū)憯?shù)據(jù)和寫(xiě)指令,所以程序中在 E為高脈沖后使用1 22 延時(shí)函數(shù) DelayNMS(1)讓其符合 LCD1602 的延時(shí)時(shí)序,讓指令和數(shù)據(jù)準(zhǔn)確讀入到顯示器中。 8位并行數(shù)據(jù)傳送時(shí)序下圖如所示: 單片機(jī)寫(xiě)數(shù)據(jù)到 LCD1602 顯示器的時(shí)序圖 單片機(jī)從 LCD1602 讀數(shù)據(jù)時(shí)序圖 RS 為并行的指令 /數(shù)據(jù)選擇信號(hào), RS=0 表示并行指令選擇信號(hào), RS=1 表示并行數(shù)據(jù)選擇信號(hào); E 為 LCD1602 的使能信號(hào),由時(shí)序圖可知,使能信號(hào)為高電有效; R/W為并行的讀寫(xiě)選擇信號(hào),邏輯“ 1”表示讀,邏輯“ 0”表示寫(xiě) 。) 停止電機(jī) 1 20 程序流程圖如下:發(fā)射端啟動(dòng) 接收端啟動(dòng) 初始化 LCD 液晶顯示器顯示初始信息 初始化 是否有用戶輸入? 按鍵輸入檢測(cè) N Y 根 據(jù)用戶輸入,得到相關(guān)的按鍵信息后,進(jìn)行編碼 編 碼 后 數(shù) 據(jù) 與38KHz 的載波結(jié)合 將經(jīng)過(guò)載波調(diào)制后的編碼數(shù)據(jù)發(fā)送出去 等待來(lái)自發(fā)射端的數(shù)據(jù) ? 啟動(dòng)定時(shí)器 0,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1