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

正文內容

畢業(yè)設計-基于89c51單片機的紅外通訊軟件設計-資料下載頁

2025-01-17 00:10本頁面
  

【正文】 部中斷函數(shù) recive,獲取 Count的計數(shù),將 Count 存入 buf_count 中 ,然后 Count 清零。 buf_count 來計算接受到的脈沖的寬度 ,如果脈沖的寬度不是合法的信號 ,那么就去除。如果脈沖的寬度是 合 法 的 信 號 寬 度 即 , buf_count 符合 判斷語句 :if(buf_count20amp。amp。buf_count300)。然后再進行判斷 ,是否為起始碼,如果是則 buf_count 的次數(shù)應該為 250buf_count300 因為 9ms+=即 ,13500/50=275,這時候接受狀態(tài) ir_status=1,表示已經接受過起始碼,那么接下來接受的應該是系統(tǒng)識別碼。同起始碼一樣,判斷 16 位的數(shù)據是否接受完畢,如果完畢則 mon_code_count 為大于等于 15, 這里的系統(tǒng)識別碼主要是根據位數(shù)來識別而不是內容,所以到達 16 位表示系統(tǒng)符 合, ir_status 為 2表示系統(tǒng)碼也已經接受完畢,接下來便開始接受操作碼 。根據位 0和位 1的脈沖寬度可知,如果 40buf_count50則說明接收到一個 1,20buf_count30 則說明接收到一個 0。每接收一位, key_bit_count 就累加一次, key_code 獲取一位數(shù)據, 加到 8位后, key_code 獲得完整的操作碼, IsNewCode=1,程序接下去運行,根據不同的操作碼做出不同的電機操作和不同的顯示器電機狀態(tài)顯示。然后IsNewCode=0,繼續(xù)回到等待發(fā)射端用戶的操作。 基于單片 機的紅外 通訊軟件設計 1 27 解碼程序流程圖 : 是 否 是 合法信號? 等待外部中斷 接收到下降沿脈沖,進入中斷 Y buf_count 獲取 Count 的值,Count 清零,再賦值 2. 是否合法信號? 根據狀態(tài)控制位 ir_status來判斷,接下來是什 么數(shù)據。 ir_status =0 ir_status =2 ir_status =1 是 否 為 起始碼 ? ir_status 賦值為 1,表示接收完起始碼。 mon_code_count=15? ir_status 賦值為 2,表示接收完系統(tǒng)碼。 key_bit_count8? 根據 buf_count 的次數(shù)來判斷是 0 還是 1 ,再給buf_key_code 賦值。最后添加到 key_code 中。 Y Y Y 若接收完 8 位,則IsNewCode=1,key_code 完整。 基于單片 機的紅外 通訊軟件設計 1 28 發(fā)射端與接收端的通信協(xié)議設計 如果想讓發(fā)射端能夠控制接收端,那么除了正確的編碼解碼之外,雙方之間必須要有一個通信協(xié)議。通信協(xié)議在“ “頭文件中。發(fā)射端程序中,在相關的按鍵 case 語句后面使用 Transmit(uChar SendCode),發(fā)送協(xié)議代碼。如:用戶按鍵按下 0,那么便將 SENDCODE0作為操作碼拿去編碼,然后發(fā)送出去 (SENDCODE 的定義語句為 :define SENDCODE0 0x60)。接收端解碼后,得到 SENDCODE0 的原碼,再用 switch()語句來執(zhí)行 case SENDCODE0:后面的語句。這樣雙方達成共同的協(xié)議,變可以進行通信。 電機控制 軟件 設計 電視使用直流電機,通過控制不同的電機電壓來達到改變轉速的效果。在仿真中,控制三個不同電壓的單片機管腳選用的是 P10, P11, P12。所以程序中,通過對 P1口賦予不同的值來改變電機轉速。 電機 P0口不同值對應電機狀態(tài)如下表: P0口的值 電機狀態(tài) 0x00 停止 0x02 電機低速檔運行 0x04 電機中速檔運行 0x08 電機高速檔運行 除了控 制電機轉速外,程序還需要控制一個接與 P37口的 LED燈,用來指示電機是否定時運行。電機的定時運行,定時器使用的是定時器 1,定時時間的長度為 50ms 中斷一次,程序中有一個全局變量 TimeCount 用來計算中斷的次數(shù)。當用戶定時開啟后, LED指示燈亮,定時器 1開始計數(shù),中斷一次 TimeCount 自加一次,并且每次中斷都通過表達式來判斷是否達到用戶指定的中斷時間,表達式為: if((Time*1000)/90 == TimeCount)。若達到中斷次數(shù)后,電機停轉, LED指示燈關閉, TimeCount 清零用于下一次 定時。 基于單片 機的紅外 通訊軟件設計 1 29 軟件抗干擾技術 隨著單片微機在各個領域中的應用越來越廣泛,對其可靠性要求也越來越高。單片機系統(tǒng)的可靠性由多種因素決定,其中系統(tǒng)抗干擾性能是可靠性的重要指標。抗干擾措施有硬件措施和軟件措施。硬件措施如果得當,可將絕大部分干擾拒之門外,但仍然會有少數(shù)干擾進入微機系統(tǒng),故軟件措施作為第二道防線必不可少。 軟件抗干擾以其設計靈活。節(jié)省硬件資源、可靠性好的特點越來越受到重視。本文的汽車行駛記錄儀系統(tǒng)在設計時也使用了一些軟件抗干擾措施。 系統(tǒng)軟件設計注意事項 早設計和編寫系統(tǒng)軟件時,有幾個方面需要注 意: 系統(tǒng)設計方面:在進行程序編寫之前,需要設計程序編寫的大致方面。這個時候透徹分析程序該如何寫,是否切合實際至關重要。如果分析不到位,編寫方向出錯或者是用到了不切合實際的技術,那有可能使整個系統(tǒng)設計停滯,甚至“流產”。 編寫代碼方面: 很 開發(fā)人員 有幾個通病:先做有趣或容易的功能,然后再做無聊或者繁瑣的功能;對自己有興趣的功能投入精力多,對自己沒興趣的簡單應付。以上這些都是開發(fā)的大忌。作為一個職業(yè)的開發(fā)人員,不應該以自己的興趣和喜好來決定開發(fā)的輕重緩急。正確做法應該如下: 你首先得用主要精力完成上述所說的重點 功能,而且要保證它們的代碼質量盡可能好,盡可能方便維護(重點功能往往是經常有需求變更,經常被修改的)。對于重點功能中的 “ 常用功能 ” ,要保證 時間 性能夠好(能快速響應)。對于 用戶利益相關的功能 ,要保證 bug盡可能少(尤其是安全性、穩(wěn)定性、健壯性的 bug)。至于其它的 非 重點功能,只要不出明顯 bug,有點小缺陷無傷大雅。 測試方面: 要把主要精力用于測試那些重點功能。對于 最核心 功能 ,多進行一些健壯性測試、穩(wěn)定性、安全性等測試。對于常用功能,主要進行易用性和性能測試。至于其它功能,只要進行普通的測試,保證它不出 現(xiàn)明顯和嚴重 bug即可。 基于單片 機的紅外 通訊軟件設計 1 30 5 調試及其系統(tǒng)誤差分析 軟件編寫及調試過程 建立 項目和 源文件:在建立源文件之前,我們要先建立一個新的工程項目,所以選擇菜單 ” ProjectNewProject” 彈出如圖 51 所示的“ Create New Project”對話框 。 在文件名的框中填入項目的名稱 ” 紅外通訊系統(tǒng) ” ,然后保存。之后便可以選中單片機的類型,我們選擇 AT89C51。項目建立完成后,開始建立源文件, 使用菜單 “ FileNew”或者點擊工具欄的新建文件按鈕,即可在項目窗口的右側打 開一個新的文本編輯窗口,在該窗口中輸入 C語言源程序。保存該文件,加上擴展名( .c),這里將文件保存為 。在工程窗口的文件頁中,出現(xiàn)了“ Target1”,前面有 “ +”號,點擊“ +”展開,可以看到下一層的“ Source Group1” ,這時的工程還是一個空工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入,點擊“ Souce Group”使其反白顯示,然后,點擊鼠標右鍵,出現(xiàn)一個下拉菜單。選中其中的“ Add file to Group” Souce Group1”,對話框,要求尋找源文 件,注意該對話框下面的“文件類型“默認為 C Souce file (*.c),也就是以 C 為擴展名的文件,我們的文件是以 C 為擴展名的,所以在列表框中可以直接找到 ,雙擊 ,將源文件加入到工程中,然 后 再 用 同 樣 的 方 法 建 立 一 個 ” ” 文 件 和 一 個 ” ” ,也加入到項目中。 編譯調試程序 基于單片 機的紅外 通訊軟件設計 1 31 完成好項目和源文件的建立后,便可以 開始 編寫代碼, 代碼編寫完成后 編譯、連接:在設置好工程后,既可以進行編譯、連接。選擇菜單 ProjectBuild target,對當前工程進行連接,如果當前文件已修改軟件會先對該文件進行覆蓋,然后在連接以產生目標代碼。編譯過程中的信息將出現(xiàn)在輸出窗口中的 Build 頁中,如果源程序有語法錯誤,會有錯誤報告出現(xiàn),雙擊該行,可以定到出錯的位置,對源程序反復修改后,最終會得到如圖所示的結果,提示獲得了名為 紅外通訊系統(tǒng) .hex 的文件,該文件即可被編程器讀入并寫到芯片中,同時還產生了一些其他相關文件可被用于 KEIL的仿真與調試。 其調試結果如下圖所示: 與建立紅外通訊系統(tǒng)一樣的方法,再建立一個名稱為 ”紅外 通訊系統(tǒng)接收端 ”的項目(之前紅外通訊系統(tǒng)為發(fā)射端);同樣編寫代碼進行調試,然后生成“紅外通訊系統(tǒng)接收端 .hex”的文件。編譯調試結果如下圖所示: 基于單片 機的紅外 通訊軟件設計 1 32 這樣便完成紅外通訊系統(tǒng)軟件編寫調試方面的內容。 調試過程中遇到的問題及其解決辦法 在程序調試過程中遇到過許多的問題,那些問題需要一一去解決;這些問題中, 有 的是程序 編寫 過程中不小心造成的 語法錯誤,這些錯誤往往容易于修改 ;也有一些問題,是程序邏輯問題或者算法問題,這兩種問題造成的后果往往比 語法錯誤要嚴重許多,它雖然能讓程序正常編譯,但是程序并不能像預先設 計的一樣正確運行,對于這樣的問題,只有在不能正常實現(xiàn)功能的那部分代碼仔細推敲反復思考。下面就我編寫過程中,遇到的幾個比較重大的問題,并且如何發(fā)現(xiàn)及 基于單片 機的紅外 通訊軟件設計 1 33 其解決進行分析。 ① 邏輯錯誤:在紅外通訊系統(tǒng)接收端的代碼編寫過程中,有一段代碼是用switch()..case 語句來根據用戶輸入選擇操作碼的發(fā)送;在第一次編寫時,我由于大意,在每個 case 語句結束,遺漏了 break。語句。這樣造成每次有用戶 按鍵輸入,都發(fā)送這個按鍵的 case語句后面的所有 case語句。導致一次用戶輸入按鍵就發(fā)送多個操作碼。所以接收端每次都收到多個操 作碼,造成多次有多次按鍵輸入的效果。后來我是根據,接收端的反應做出判斷,問題出在接收端的 用戶按鍵操作碼發(fā)送部分。正確的代碼如下: ② 算法錯誤: 編碼過程與解碼過程的不協(xié)調 , 所謂編碼過程與解碼過程的不協(xié)調就是 編寫發(fā)送的過程包括起始碼,系統(tǒng)識別碼,操作碼原碼,操作碼反碼,結束碼的編碼方式和解碼方式不匹配。 這個問題之前有提到過,我們解碼用的是接收端單片機的外部中斷 1,中斷觸發(fā)方式是下降沿,但是編碼的位“ 0”和位“ 1”卻是同樣先一段 ,s 的高電平,再根據 和 的低電平來區(qū)別。所以解碼過程 ,始終是要等到第二位的數(shù)據的高電平變?yōu)榈碗娖讲拍芘袛嗲耙晃坏碗娖降膶挾龋坏莿傞_始并沒有意識到這個問題,所以接收端接收到的只有 7位,最后一位被當做結束碼濾掉。 對于這個問題,我是通過在紙上繪制出,編碼過程的所有方波波形 發(fā)現(xiàn)的。解決辦法,就是在結束碼多一段 的高電平,用來計算前一位的低電平的寬度,從而區(qū)別前一位是位“ 0”還是位“ 1”。 基于單片 機的紅外 通訊軟件設計 1 34 結論 紅外通訊應用越來越廣泛,各種家用電器,電子產品,醫(yī)療設備等無一不用到紅外通訊,所以對于紅外通訊的研究設計,是十分有必要的。 本論文對紅外通訊系統(tǒng)進行了細致的研究 ,從編碼解碼芯片,紅外發(fā)射接收器件開始了解;隨后根據編碼解碼芯片的原理,自己在軟件設計上模擬了編碼解碼芯片的過程,并且運用于仿真系統(tǒng)中,達到紅外通訊的效果,了解并且模擬運用紅外通訊的核心技術。 仿真系統(tǒng)中,主要使用的是 89C51芯片為核心,分成紅外通訊的發(fā)射端和接收端兩部分電路,實現(xiàn)了利用紅外通訊技術對電機的控制,液晶顯示器的控制。在單片機仿真系統(tǒng)中使用了 Proteus , 該仿真軟件 元件庫齊全,使用方便,功能極其強大,應用程序采用 C 語言編寫。 通過本論文對紅外通訊系統(tǒng)的研究發(fā)現(xiàn),紅外通訊的確是一種非常 實用的遠程控制 技術 ,成本低,點對點控制使用方便, 資料及其技術成熟便于深入研究探討。當然,紅外通訊技術還存在缺點,但是我們可以不斷努力改進它,讓它更好地造福于人類。謝謝! 基于單片 機的紅外 通訊軟件設計 1 35 參考文獻 [1] 百度百科 紅外通訊 [2] 激光網 紅外技術的現(xiàn)狀和未來 [3] 蘇長贊 .紅外線與超聲波遙控 .北京 人民郵電出版社, 1997 [4] 張玉香 .新型遙控接收模塊 . HS0038[ J]無線電, 1998, 7 [5] 肖景和 .實用遙控電路 . 北京 人民郵電出版社, 1998 [6] Joseph M. Kah , John R. Barry .Wireless Infrared Communications. Junc 19,1997. Dept. of Electr
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1