




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本科生畢業論文基于單片機的繼電器控制設計Design of relay control based on MCU學生姓名所在專業所在班級申請學位指導教師職稱答辯時間 目 錄設計總說明IABSTRACTII第1章 緒論1第2章 系統硬件部分設計4第3章 系統軟件部分設計203.1 程序的基本思路及模塊化程序編寫介紹20結 論29鳴 謝30參考文獻31附 錄32設計總說明單片機已經滲入到生活的各個領域,它是很難找到哪些領域沒有單片機的痕跡。導彈的導航裝置,在飛機上控制各種儀器,計算機網絡通信和數據傳輸,工業自動化過程的實時控制和數據處理。該微控制器被廣泛用于在該領域的
2、智能管理和過程控制,儀器儀表,家電產品,醫療設備,航空航天,專門的設備。近年來,隨著電子信息產業的快速發展,作為繼電器的基本組成部分,廣泛應用于家電,通訊,汽車,儀器儀表,機械設備,航空航天自動化和控制領域。最近的統計數據顯示,繼電器已經成為第一大產品在電子元件產品之中。單片機控制繼電器的電路在生活中隨處可見,小的元件但是作用無窮。本文基于容易實現,方便操作,貼近生活使用的設計理念,采用STC89C52單片機為控制核心,為控制終端,并采用包括按鍵、1602界面顯示、以及通過LABVIEW開發的上位機控制界面等在內的多個控制源來控制繼電器,從而達到控制其他家用電器。關鍵詞:單片機;紅外接收頭;D
3、S18B20 ;繼電器;ABSTRACTSCM has penetrated into all areas of life, it is very difficult to find which areas notraces of single-chip microcomputer. Missile navigation equipment, various instruments on the aircraft control, computer network communications
4、and data transmission, real-time control and data processing of industrial automation process. The micro controller is widely used in intelligent management and process control in the field of instrumentation, electrical appliances, medical equipment
5、, aerospace, special equipment. In recent years, with the rapid development of electronic information industry, as a basic part of the relay, widely used in home appliances,communications,automotive,instrumentation,mechanical equipment, aerospace, au
6、tomation and control field. The latest statistics show, the relay has become the first major products in the electronic component products. MCU control relay circuitcan be seen everywhere in life, small but infinite element.
7、This paper is based on the easy, convenient operation, close to the design philosophy of life, using STC89C52 microcontroller as the control core, and uses as a control terminal,including buttons, 1602 interface display, and throu
8、gh the LABVIEW development of PC control interface, a plurality of control source to control therelay to control the other household electrical appliances.Keywords: single chip; infrared receiver; DS18B20; Relay; LCD1602第1章 緒論1.1課題背景及其意義現代的自動控制裝置,存在電路的電子電路的電連接到彼此的問
9、題,一方面,如果控制信號的電子電路,能夠控制執行電路部件(電機,電磁鐵,照明燈等),在另一方面也為電子線路的電器電路提供良好的電隔離,以保護電子電路和人身安全。電子繼電器將是作為一個橋梁,能夠發揮這種作用。 采用單片機進行遙控開關的設計,具有編程靈活多樣,操作個數可以隨意設定等優點,并且能以弱點控制強電,方便運用。而紅外遙控不影響周邊環境、不干擾電氣設備;電路調試簡單,只要按給定電路連接無誤,一般不需任何調試即可投入工作;編解碼容易,可進行多路遙控,在室內近距離遙控中得到了廣泛的應用;目前,市場上一般設備系統均采用專用的遙控編碼及解碼集成電路,但是由于功能受到特定的限制,只適合于某一
10、專用電器產品的應用,應用范圍受到限制。本設計正是應用紅外遙控系統,實現了對多路開關的控制。1.2遙控技術的發展與現狀遙控技術是在自動控制技術和通信技術基礎上發展起來的。遙控系統既可傳送離散的控制信息(例如開關的通斷),也可傳送連續的控制信息(例如汽車油門的大小)。最早的遙控器之一,是一個叫尼古拉·特斯拉(Nikola Tesla)(18561943)的發明家在1898年時開發出來的(美國專利613809號) 。到了六十年代初,一些發達國家開始研究民用產品的遙控技術,但由于當時技術條件限制,遙控技術發展很緩慢。七十年代末,隨著大規模集成電路和計算機技術的發展,遙控技術才得到快速發展。在
11、遙控方式上大體經歷了從有線到無線的超聲波、從振動子到紅外線、再到使用總線的微機紅外遙控這樣幾個階段。無論采用何種方式,準確無誤地傳輸信號,最終達到滿意的控制效果是非常重要的,最初的無線遙控裝置采用的是電磁波傳輸信號,由于電磁波容易產生干擾,也容易受干擾,因此逐漸采用超聲波和紅外線媒介來傳輸信號。與紅外線相比,超聲波傳感器頻帶窄,所能攜帶的信息量少,易受干擾而引起誤動作,較為理想的是光控制方式,采用紅外線的遙控方式逐漸取代了超聲波遙控方式,出現了紅外線多功能遙控器,并且成為當今時代的主流。而從各國將遙控技術在航天、工業等方面得到廣泛應用和發展后,尤其是紅外遙控技術在這十年得到了迅猛發展,在家電和
12、其他電子領域都得到了廣泛應用,隨著生活水平的提高,人們對產品的追求是使用更方便、更智能化,紅外線遙控技術正是一個重點發展方向。1.3單片機的概念與發展單片機在一塊半導體硅片上集成了計算機的所有基本功能部件,包括中央處理器、存儲器、輸入輸出接口電路、中斷系統、定時器計數器和串行通信接口電路等,因此,單片機只需要與適當的軟件及適當的外部設備相結合,就可以構成一個完整的計算機應用系統。單片機誕生于20世紀70年代,作為微型計算機的一個重要分支,應用面很廣,發展很快。如果將8位單片機的推出作為起點,那么單片機的發展歷史大致可分為以下幾個階段:(1) 第一階段(1976-1978):單片機探索階段(2)
13、 第二階段(1978-1982):單片機完善階段(3) 第三階段(1982-1990):微控制器形成階段(4) 第四階段(1990至今):微控制器全面發展階段隨著單片機的各個領域全面深入的發展和應用,導致單片機的發展趨勢是向CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發展。1.4研究的目標及內容由于在工業、航空以及儀器儀表等紅外控制當中通常需要使用專用的配對編、解碼芯片,組成紅外發射和接收電路,完成對設備或電器的遠程控制。使用專用的配對編、解碼芯片來組成紅外發射電路和紅外接收電路,在控制路數較少時矛盾并不突出。但是當控制路數較多時,其接口的設計和實現就顯得比較繁
14、瑣。此外編、解碼芯片通常是專用配對使用的,即某種解碼芯片只能識別某種編碼芯片的編碼,對其他型號的編碼芯片的編碼則不能識別。因此,不同的編、解碼芯片幾乎沒有互換性。為了解決上述專用編解碼芯片配對的局限性,本文意在研究一種基于基于單片機的紅外解碼控制系統,實現對紅線外解碼并完成后置繼電器電路的開關控制功能。設計一個多路紅外遙控開關,利用市售遙控器發送遙控器鍵盤數字信號,通過以STC89C52單片機為核心的控制器接受數字信號并解碼,然后通過控制器控制相應的繼電器通斷,使得后置電路工作并實現各自相關功能,本文所涉及研究內容如下:(1)紅外解碼思路及紅外解碼原理的分析。(2)設計相關控制電路、接收電路、
15、以及被控功能電路。(3)采用C程序語言進行相關程序的模塊化編程并調試。(4)通過電路設計圖進行實物焊接并調試,實現紅外開關控制功能。第2章 系統硬件部分設計2.1 系統硬件設計原理及要求在進行系統硬件設計時,首先需要保證的便是整個系統的功能性與穩定性,將各個硬件電路模塊進行認真仔細的分析,在通電之前,需要排除斷路與短路現象的存在,以保證系統調試安全性,避免上述問題造成的硬件系統損壞等的不良結果,同時還需考慮到成本的客觀因素,以使本設計簡單易懂而又經濟實用。功能一:遙控器發出的紅外遙控信號經紅外接收器接收轉化成TTL信號后送給STC89C52的中斷口1,單片機采集到這些數據后產生外部中斷,進入解
16、碼程序,對其進行紅外解碼處理并獲得對后置電路所需的控制信息,這些控制信息可直接從I/O口輸出,當I/O輸出高電平是,使得本設計電路中的三極管9013導通,繼電器線圈導通形成磁場,吸住彈片,常閉斷開,常開閉合,連通后置電路中的供電電源。系統框圖如圖2.1所示:繼電器控制模塊遙控發射模塊單片機解碼模塊紅外接收模塊圖2.1 功能二:溫度傳感器DS18B20接受到當前環境溫度,默認上限溫度為38度,當環境溫度低于38度的時候,繼電器關閉,超過38度,繼電器打開,可通過按鍵進行溫度上下限的調整,實現了利用溫度來控制繼電器的開關,系統框圖如圖2.2所示繼電器控制模塊溫度傳感器液晶顯示單片機接收到信號圖2.
17、2 功能三:利用近距離繼電器控制,使用3位獨立鍵盤進行繼電器近距離開關,控制原理與紅外遙控相似,區別在于遠距離與近距離,因此功能簡單,這里不做詳細介紹。 總體系統框架原理圖如圖:液晶1602單片機紅外遙控器溫度傳感器4路繼電器獨立鍵盤圖2.3 系統框架原理圖如圖2.4所示發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器,接收部分包括光電轉換放大、解調、解碼電路,而整個接收部分將完全由上述的PC838紅外一體化收頭來完成,本設計的發射部分采用成品遙控器來發送控制信號。紅外遙控器鍵盤接收、放大、檢波、整形編碼和調制紅外接收頭光電放大解調解碼單片機圖2.4 紅外遙控系統框圖遙控發射器專用芯片很多,這
18、里我們以運用比較廣泛,解碼比較容易的一類來加以說明,現以WD6122遙控發射器專用芯片組成發射電路為例說明編碼原理,該芯片類型的遙控發射器成品鍵碼值如圖2.5所示。圖2.5 本設計使用的成品遙控器鍵碼圖當發射器按鍵按下后,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”,其波形如圖2.6所示。圖2.6遙控編碼的“0”和“1”上述“0”和“1”組成的32位二進制碼經38kHz的載頻進
19、行二次調制以提高發射效率,達到降低電源功耗的目的。然后再通過紅外發射二極管產生紅外線向空間發射。WD6122 產生的遙控編碼是連續的32位二進制碼組,所發射的一幀碼含有一個引導碼,16位用戶編碼和八位數據編碼,數據編碼的反碼也同時被傳送,編碼結構如圖2.7所示:圖2.7 遙控器發射的32位碼組圖引導碼由一個9ms的載波波形和一個4.5ms的關斷時間構成,它作為隨后發射碼的引導碼,這樣當接收系統是由微處理器構成的時候,能更有效的處理碼的接受與檢測及其他各項控制之間的時序關系。編碼采用脈沖位置調制方式(PPM),利用脈沖之間的時間間隔來區分“0”和“1”。每次8位的碼被傳送之后,他的反碼也被傳送,
20、減少了系統的誤碼率,這也為后續的解碼程序的編寫提供了自行檢測是否誤碼的手段。遙控器將按鍵信息進行編碼后調制到紅外線的某個頻率通過發光二極管發射出去,紅外接收管接收到發射管發出的紅外信號后對該信號進行解調原始編碼信息,紅外遙控接收頭解調出的編碼是串行二進制碼,包含著遙控信息,但它還不便于CPU讀取識別,因此需要先對這些二進制碼進行解碼。當遙控器上任意一個按鍵按下超過36ms時,芯片的振蕩器使芯片激活,將發射一個特定的同步碼頭,對于接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭可以使程序知道從這個同步碼頭以后可以開始接收數據。 解碼的關鍵是如何識別“0”和“1”,從位的定
21、義我們可以發現“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據高電平的寬度區別“0”和“1”。如果從0.56ms低電平過后,開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。 根據紅外編碼的格式,程序應該等待9ms的起始碼和4.5ms的結果碼完成后才能讀碼。操作,同樣地,按此可以實現
22、其它按鍵的,最后形成遙控器按鍵相應的鍵值表。就這樣單片機程序就可以識別遙控器相應的功能鍵,通過遙控器向單片機發出相應的命令,單片機接收到命令后通過驅動電路使繼電器動作從而實現用電設備的開關。2.2相關器件簡介STC89C52單片機是宏晶科技推出的新一代超/高速/低功耗的單片機,指令代碼完全兼容傳統8051單片機,12時鐘/機器周期,內部集成MAX810專用復位電路,時鐘頻率在12MHz以下時,復位腳可直接接地。(1)STC89C52的特點 增強型12 時鐘/ 機器周期 8051 CPU; 工作電壓:5.5V - 3.8V(5V 單片機); 工作頻率范圍:0-40MHz,相當于普通8051的08
23、0MHz; 用戶應用程序空間61K; 片上集成 1280字節RAM; 通用I/O口32個,復位后為:P1/P2/P3是準雙向口/ 弱上拉(普通8051 傳統I/O 口),P0口是開漏輸出,作為總線擴展用時,不用加上拉電阻,作為I/O 口用時,需加上拉電阻; ISP(在系統可編程)/IAP(在應用可編程),無需專用編程器 / 仿真器可通過串口(P3.0/P3.1)直接下載用戶程序,8K 程序3 - 5 秒即可完成一片; EEPROM 功能; 看門狗; 內部集成MAX810專用復位電路,外部晶體12M以下時,可省外部復位電路,復位腳可直接接地; 共3個16位定時器/計數器,其中定時器0還可以當成2
24、個8位定時器使用; 外部中斷4路,下降沿中斷或低電平觸發中斷,Power Down模式可由外部中斷低電平觸發中斷方式喚醒; 通用異步串行口(UART),還可用定時器軟件實現多個UART; 工作溫度范圍:0-75(商業級);(2)STC89C52的DIP封裝40引腳分布STC89C52單片機的DIP封裝擁有40個引腳,其中P0P1P2P3四組I/0口,總共32個I/O口引腳,另外包括一個電源VCC引腳,兩個晶振引腳一個接地端引腳,一個復位引腳,以及EA引腳、ALE引腳、PSEN引腳,總共40個引腳,引腳分布如圖2.8所示。圖2.8 PC838PC838左右。PC838的經典應用原理圖如圖2.9所
25、示:PC838 OUTPUT 單片機I/O口GND C1 VCC(+5V) R2圖2.9 在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產品的通過器件,如在計算器、萬用表、電子表及很多家用電子產品中都可以看到,顯示的主要是數字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出方式有以下幾種:發光管、LED數碼管、液晶顯示器。發光管和LED數碼管比較常用,軟硬件都比較簡單,在前面章節已經介紹過,在此不作介紹,本章重點介紹字符型液晶顯示器的應用。 在單片機系統中應用晶液顯示器作為輸出器件有以下幾個優點:1、顯示質量高由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度
26、,恒定發光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質高且不會閃爍。2、數字式接口液晶顯示器都是數字式的,和單片機系統的接口更加簡單可靠,操作更加方便。3、體積小、重量輕液晶顯示器通過顯示屏上的電極控制液晶分子狀態來達到顯示的目的,在重量上比相同顯示面積的傳統顯示器要輕得多。4、功耗低相對而言,液晶顯示器的功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示器要少得多。一、液晶顯示簡介1、液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規模集成電路直接驅動、
27、易于實現全彩色顯示的特點,目前已經被廣泛應用在便攜式電腦、數字攝像機、PDA移動通信工具等眾多領域。2、液晶顯示器的分類液晶顯示的分類方法有很多種,通常可按其顯示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據驅動方式來分,可以分為靜態驅動(Static)、單純矩陣驅動(Simple Matrix)和主動矩陣驅動(Active Matrix)三種。3、液晶顯示器各種圖形的顯示原理:線段的顯示點陣圖形式液晶由M×N個顯示單元組成,假設LCD顯示屏有64行,每行有128列,每8列對應1字節的8位,即每行由16字節,共16×8=128個點
28、組成,屏上64×16個顯示單元與顯示RAM區1024字節相對應,每一字節的內容和顯示屏上相應位置的亮暗對應。例如屏的第一行的亮暗由RAM區的000H00FH的16字節的內容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。字符的顯示用LCD顯示一個字符時比較復雜,因為一個字符由6×8或8×8
29、點陣組成,既要找到和顯示屏幕上某幾個位置對應的顯示RAM區的8字節,還要使每字節的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內帶字符發生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據在LCD上開始顯示的行列號及每行的列數找出顯示RAM對應的地址,設立光標,在此送上該字符對應的代碼即可。漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機中提取要顯示的漢字的點陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6根據在LCD上開始顯示的行列號及每行的列數可找出顯示RAM對應的
30、地址,設立光標,送上要顯示的漢字的第一字節,光標位置加1,送第二個字節,換行按列對齊,送第三個字節直到32B顯示完就可以LCD上得到一個完整漢字。二、1602字符型LCD簡介字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實物如圖10-53:三、1602LCD主要技術參數:1、顯示容量:16×2個字符2、芯片工作電壓:4.55.5V3、工作電流:2.0mA(5.0V)4、模塊最佳工作電壓:5.0V5、字符尺寸
31、:2.95×4.35(W×H)mm四、引腳功能說明1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表所示:編號符號引腳說明編號符號引腳說明1VSS電源地9D2數據2VDD電源正極10D3數據3VL液晶顯示偏壓11D4數據4RS數據/命令選擇12D5數據5R/W讀/寫選擇13D6數據6E使能信號14D7數據7D0數據15BLA背光源正極8D1數據16BLK背光源負極表:引腳接口說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時
32、可以通過一個10K的電位器調整對比度。第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。第714腳:D0D7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。本設計采用的是USB接口來對整個遙控系統進行適配供電,從而使得本設計的電源部分穩定且對電路實現了最大簡化,相比較的單片機傳統供
33、電系統來說更為節能,成本更節約。(1)USB接口的簡介圖2.10 USB接口引腳分布圖(2)選擇USB接口為本設計供電的原因及注意事項由于USB供電可以提供每個U口最大為500MA的電流,供電電壓為5V,與單片機的供電系統相適配,能滿足本設計絕大部分元器件的供電要求,而且本設計過程中并不存在大功率元器件,所以本設計選用USB作為整個紅外遙控系統的供電電源,但是為了防止電路上短路燒壞電腦的USB接口,USB接口應加自恢復保險。本設計只需要利用USB的VCC電源端(+5V),以及GND(接地端)對設計中所涉及的元器件進行供電,而其余兩腳為數據傳送端口無需利用,因此空置便可,在設計過程中需要先用萬用
34、表電壓檔測量USB接口的VCC端以及GND端口,避免連接電路時候將電源極性接反而造成不必要的后果。(3)USB接口的選型USB接口的型號多種多樣,對于供電電路來說,采用普通的A型或者B型接口就可以了,本設計使用的是A型USB接口,如圖2.11所示:圖2.11 USB接口實物圖要實現遙控開關,需要選擇繼電器配合單片機以及紅外遙控實現遙控開關的功能,本設計選用的是5V額定電壓的電磁繼電器。(1)2.3硬件系統相關電路圖 本節將提供該設計中所涉及到的系統整體原理圖以及模塊電路的原理圖,如紅外接收模塊、USB供電模塊、單片機解碼控制模塊等。整個系統圖包括了單片機最小系統、紅外接收器、繼電器模塊、電源開
35、關、溫度傳感器、獨立按鍵以及液晶顯示等。由于USB接口能夠提供5V電壓,最大500MA的電流,足夠滿足本設計的電源適配需求,且電壓穩定,所以本設計采用USB接口進行供電。單片機接收紅外接收頭輸出的電平信號產生中斷,處理中斷服務程序即紅外解碼程序并完成對繼電器的驅動控制,實現電源開關控制功能,如圖2.14所示。圖2.14采用5V電磁繼電器,在單片機的I/O口輸出一個高電平的時候,將驅動晶體三極管9013導通,使得電磁繼電器的控制線圈通斷形成磁場,可是應該在繼電器線圈上加二極管阻斷線圈反電勢以保護三極管9013,如圖2.16所示。圖2.16在整個硬件設計過程中,所遇上的主要問題是如何驅動繼電器工作
36、,由于單片機的I/O口在直接連接繼電器控制線圈引腳上不足使得繼電器線圈以產生拉動彈片的磁場,所以需要對輸入的驅動電流進行放大,而在繼電器驅動電路上添加一個三極管,則可以解決這個問題。第3章 系統軟件部分設計3.1 程序的基本思路系統軟件設計由紅外線解碼、中斷服務程序、繼電器控制程序、延時程序等幾部分程序組成,本章將對整個編寫程序流程及程序代碼進行表述。開始3路獨立按鍵紅外遙控器溫度傳感器液晶顯示 繼電器模塊控制 圖3.1 系統軟件工作流程明:在遙控器按下鍵碼的時候,發射的紅外線被一體化接收頭接收后輸出TTL電平信號,對單片機造成外部中斷,進而單片機對紅外接收頭傳來含有編碼信息的TTL電平信號進
37、行解碼,然后程序中處理得到的鍵碼碼值再傳至控制程序,如本設計中的繼電器控制程序,處理繼電器控制程序以實現本設計所要求的開關控制功能,當沒有按鍵按下,程序返回到主程序的最開始,重新進行鍵碼判斷。*.c和*.h兩種重要的文件。3.2相關程序代碼本節將介紹整個系統設計中所涉及到的軟件程序代碼,包括主程序模塊代碼、紅外解碼代碼、繼電器控制代碼以及應用到的主要延時功能代碼。#include <reg51.h> #include <intrins.h>#define uint unsigned int#define uchar unsigned char /宏定義/*主函數*/vo
38、id main(void) LCD_Init(); /初始化液晶 DelayMs(20); /延時有助于穩定 LCD_Clear(); /清屏 csh(); while(1) /無限循環 Disp_Temperature(); /溫度數據采集,并轉化成LCD1602要顯示的代碼 key(); /按鍵掃描 Disp(); /顯示程序 */void IR_IN() interrupt 2 using 0 unsigned char j,k,N=0; EX1 = 0; delay1(15); if (IRIN=1) EX1 =1; return; /確認IR信號出現 while (!IRIN) /等
39、IR變為高電平,跳過9ms的前導低電平信號。 delay1(1); for (j=0;j<4;j+) /收集四組數據 for (k=0;k<8;k+) /每組數據有8位 while (IRIN) /等 IR 變為低電平,跳過4.5ms的前導高電平信號。 delay1(1); while (!IRIN) /等 IR 變為高電平 delay1(1); while (IRIN) /計算IR高電平時長 delay1(1); N+; if (N>=30) EX1=1; return; /0.14ms計數過長自動離開。 /高電平計數完畢 IRCOMj=IRCOMj >> 1;
40、 /數據最高位補“0” if (N>=8) IRCOMj = IRCOMj | 0x80; /數據最高位補“1” N=0; /end for k /end for j if (IRCOM2!=IRCOM3) EX1=1; return; if(IRCOM2=0x0c) jdq1=!jdq1;j1=jdq1;if(jdq1=0) shuju12='N' else shuju12='F' Disp(); if(IRCOM2=0x18) jdq2=!jdq2;j2=jdq2;if(jdq2=0) shuju16='N' else shuju16=
41、'F' Disp(); if(IRCOM2=0x5e) jdq3=!jdq3;j3=jdq3;if(jdq3=0) shuju110='N' else shuju110='F' Disp(); beep(); EX1 = 1; /*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ=1; Delay(8); /稍做延時 DQ=0; /單片機將DQ拉低 Delay(80); /精確延時,大于480us DQ=1; /拉高總線 Delay(14); x=DQ; /稍做延時后,如果x=0則
42、初始化成功,x=1則初始化失敗 Delay(20);/*讀一個字節*/unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat=0; for (i=8;i>0;i-) DQ=0; / 給脈沖信號 dat>>=1; DQ=1; / 給脈沖信號 if(DQ) dat|=0x80; Delay(4); return(dat);/*寫一個字節*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ=
43、0; DQ=dat&0x01; Delay(5); DQ=1; dat>>=1; void Tmpchange(void) /發送溫度轉換命令 Init_DS18B20(); WriteOneChar(0xCC); /跳過讀序號列號的操作 WriteOneChar(0x44); /啟動溫度轉換/*讀取溫度*/unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Tmpchange(); Init_DS18B20(); Wri
44、teOneChar(0xCC); /跳過讀序號列號的操作 WriteOneChar(0xBE); /讀取溫度寄存器 a=ReadOneChar(); /讀低8位 b=ReadOneChar(); /讀高8位 t=b; t<<=8; t=t|a; tt=t*0.0625; t= tt*100+0.5; /放大10倍輸出并四舍五入 return(t);/*數據轉換子程序*/Disp_Temperature() /顯示溫度e=ReadTemperature(); /獲取溫度值 m=e/100; /溫度整數位 a=e/1000; /計算得到溫度十位數字 shuju22=ASCII_NUMa
45、; /把計算得到的數放到顯示的數組里 b=e/100-a*10; /計算得到溫度個位數字 shuju23=ASCII_NUMb;/把計算得到的數放到顯示的數組里 d=e%10; /計算得到溫度小數點后一位 shuju26=ASCII_NUMd;/把計算得到的數放到顯示的數組里 c=(e%100)/10; /計算得到溫度小數點后兩位 shuju25=ASCII_NUMc;/把計算得到的數放到顯示的數組里 shuju213=ASCII_NUMshangxian/10;/計算得到上限十位,并把計算得到的數放到顯示的數組里 shuju214=ASCII_NUMshangxian%10;/計算得到上限個
46、位,并把計算得到的數放到顯示的數組里 if(m>=shangxian) jdq4=0;shuju114='N'/溫度不在范圍內接通繼電器 else jdq4=1;shuju114='F' j4=jdq4; /*初始化溫度檢測子程序*/Disp_Temperature1() /顯示溫度e=ReadTemperature(); /獲取溫度值 a=e/1000; /計算得到溫度十位數字 shuju22=ASCII_NUMa; /把計算得到的數放到顯示的數組里 b=e/100-a*10; /計算得到溫度個位數字 shuju23=ASCII_NUMb;/把計算得到的
47、數放到顯示的數組里 d=e%10; /計算得到溫度小數點后一位 shuju26=ASCII_NUMd;/把計算得到的數放到顯示的數組里 c=(e%100)/10; /計算得到溫度小數點后兩位 shuju25=ASCII_NUMc;/把計算得到的數放到顯示的數組里 shuju213=ASCII_NUMshangxian/10;/計算得到上限十位,并把計算得到的數放到顯示的數組里 shuju214=ASCII_NUMshangxian%10;/計算得到上限個位,并把計算得到的數放到顯示的數組里 m=e/100; /溫度整數位void Delay(uint i) /DS18B20延遲程序 while
48、( i- );void qudou(void) /去抖延遲 int i; for(i=0;i<2400;i+);void DelayUs2x(unsigned char t) while(-t);void DelayMs(unsigned char t) while(t-) /大致延時1mS DelayUs2x(245); DelayUs2x(245); 結 論 本設計通過了試驗,基本上符合設計要求,論文涉及的相關理論的得到了進一步的驗證。系統采用軟件解碼具有電路簡單、經濟實用、操作簡單、適用性強等特點,單片機采用STC89C52,充分利用了它的資源。系統的功能還有很大的擴展空間,比如在
49、程序里集成多個解碼程序,讓系統自適應不通種類的遙控器,如果系統加入語音芯片還可以在設置語音提示,使之功能更加完美。鳴 謝經過這次鍛煉我的體會更深了,我認識到實踐是最好的老師,有很多的知識如果不去實踐就永遠也不會有透徹的理解,每一次的實踐都是一種進步。很感謝各位指導老師的關心,你們幫助我解決了設計過程中遇到的一些問題,并提出了一些具有指導性的建議,使的本設計更趨完善。也感謝每一個看到我的論文的老師和朋友,因為你們的閱讀使我的論文散發了生命力,由于時間倉促,還希望大家的批評與指點。參考文獻 1譚浩強. C程序設計(第四版)M.清華大學出版社,2010:85-131,170-218.2郭天祥. 新概
50、念51單片機C語言程序教程入門、提高、開發、拓展全攻略M.北京:電子工業出版社,2009:1-1373歐偉明,何靜,凌云,劉劍等編著, 肖伸平主審.單片機原理與應用系統M.北京:電子工業出版社,2009:91-101. 4中山單片機學習網.紅外遙控解碼原理及單片機軟件鍵碼實例EB/OL. http:/www.zsMCU.com 5蘇長贊.紅外線與超聲波遙控M.北京:人民郵電出版社,1993:1-62.67何立民.單片機應用系統設計.北京:航天航空大學出版社.2001年.89聶詩良,李磊民.A Method of Sending and Reciving Infrared Remote- control Signle with Microchip ComputerJ信息技術報;2004,28(2):21-23.10李志超,周華.Design and Application of Infrared Remote Control Based on MCUJ.中州大學學報;2008,25(2):111-112. 11梁超,謝皓. Design and Application of Infrared Remote Control SystemJ.中國學術期刊;2006年
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF(煙草)4.1-2024煙草及煙草制品連續流動法測定常規化學成分測量不確定度評定指南第1部分:水溶性糖
- 考研復習-風景園林基礎考研試題附參考答案詳解【基礎題】
- 考研復習-風景園林基礎考研試題(全優)附答案詳解
- 風景園林基礎考研資料試題及參考答案詳解【典型題】
- 2025-2026年高校教師資格證之《高等教育法規》通關題庫附答案詳解(綜合卷)
- 2025年江西省高速公路投資集團有限責任公司招聘筆試備考題庫含答案詳解(預熱題)
- 2024年山東華興機械集團有限責任公司人員招聘筆試備考題庫含答案詳解(綜合卷)
- 2025年黑龍江省五常市輔警招聘考試試題題庫附答案詳解(綜合題)
- 2025年河北省定州市輔警招聘考試試題題庫含答案詳解(能力提升)
- 2025年K12課外輔導行業雙減政策下線上線下融合模式探索報告
- 2025年廣東省廣州市白云區中考數學二模試卷
- 2025年北京市海淀區高三二模地理試卷(含答案)
- 2024北京西城區四年級(下)期末數學試題及答案
- 材料力學第4版單輝祖習題答案
- GB 42590-2023民用無人駕駛航空器系統安全要求
- 敏捷項目管理:敏捷革命課件
- 亞馬遜品牌授權書(英文模板)
- 真空斷路器課件
- Box-Behnken-Design
- 用地性質分類表
- 圖形推理圖形匯總62頁
評論
0/150
提交評論