基于單片機的紅外遙控窗簾設計論文(含C語言源程序)_第1頁
基于單片機的紅外遙控窗簾設計論文(含C語言源程序)_第2頁
基于單片機的紅外遙控窗簾設計論文(含C語言源程序)_第3頁
基于單片機的紅外遙控窗簾設計論文(含C語言源程序)_第4頁
基于單片機的紅外遙控窗簾設計論文(含C語言源程序)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘 要隨著電子技術和自動化技術的發展,人們對生活質量的要求越來越高。家用電器產品也在不斷的更新換代。從始初的晶體管、到電子管;由模擬到數字;由分立元件到集成電路;從普通向高性能、多功能型;由手動控制向紅外線遙控、向智能化發展。此次要設計的就是紅外遙控窗簾。它是采用89C2051單片機的最小系統設計,控制一個220V的可逆、直流電動機控制窗簾的拉開和關閉。紅外遙控的重點就在紅外發送和接收及編碼與解碼問題。所以討論的重點也就是這些個方面。當今專用的紅外發送和接收器件非常多,編碼與解碼的方法也很多,所以要根據實際的情況來選取合適的發送、接收器件和編碼、解碼方法。除此之外,還要 了解單片機的接口技術的

2、應用和單片機的抗干擾方法。接口方面主要介紹單片機的串口??垢蓴_技術有:指令冗余、攔截技術、軟件陷阱的設計、軟件“看門狗”技術等。關鍵詞:遙控,紅外線,編碼,抗干擾,智能,串行口ABSTEACTWith the development of electronic technology and automatic technology, people have more and more high expectations for life quality. The home electric equipment products are in constant update too. From

3、the transistor of the beginning of beginning, to the electron tube ; Imitated it to the figure; From the discrete component to the integrated circuit; From ordinary to high performance , multi-functional type; By manual to control to infrared ray remote control, to intelligent to develop. This one t

4、hat designed less important is an infrared remote control curtain. It adopt minimum system , 89C2051 of MCU design , control one 220V reversible changing speed the motor control to draw back and shut off the curtain.27Infrared focal point of remote control in infrared to send with receiving and code

5、 and decode the issue. So focal point that discuss the. A special-purpose one infrared to send and receive device very more, code and method that decode too a lot of nowadays, so will choose suitable sending, receiving the device, code, decoding method according to the real situation. In addition, s

6、hould understand the application of the interface technology of the one-chip computer and one-chip computer anti-interference method. Interface respect introduces one cluster of mouths of the one-chip computer mainly. Anti-interference technology is as follows, order redundancy, interception technol

7、ogy, design, software, software of trap “guard the gate dog " technology, etc.Keywords:Remote control, Infrared ray ,Code ,Anti-interference ,Intelligence,Serial mouth目 錄摘要IABSTEACTII1緒論12 概述22.1選題背景22.2設計思路33 紅外遙控電路原理及編碼解碼53.1電路原理53.2紅外遙控解碼原理84 單片機介紹124.1單片機簡介與接口技術124.2單片機抗干擾技術165 實際電路設計215.1窗

8、簾控制器原理圖215.2工作原理解說215.3遙控器按鍵功能24總結與展望26致謝27參考文獻28附錄131附錄2351緒論當今,計算機技術帶來了科研和生產的許多重大飛躍,微型計算機的應用已滲透到生產、生活的各個方面。其中單片機問世不久,然而體積小、廉價、功能強,其銷售額每年近80%的速度增長。它的性能不斷提高,適用范圍越來越寬,在計算機應用領域已占有日益重要的地位1。近幾年來,隨著科學技術的發展和人民生活水平的日益提高,城市建設步伐的加快,一棟棟居民樓、寫字樓、賓館拔地而起。進入尋常百姓的家用電器品種與數量愈來愈多,這些家用電器有的能減輕人們的家務、有的能豐富人們的文娛生活,有的則能提高人們

9、的生活質量為了進一步滿足人們高水準生活的需要,家用電器產品性能也在不斷的更新挽代,從始初的晶體管、到電子管;由模擬到數字;由分立元件到集成電路;從普通向高性能、多功能型;由手動控制向紅外線遙控、向智能化發展。與此同時,窗簾作為裝修業不可缺少的一部分,也日益火爆起來,目前,常用的窗簾軌道都是鋼絲繩手拉式或滑輪式,只有一部分高收入的家庭采用是電動遙控軌道。但價格相當昂貴,不能普及。所以設計的目標就是實現功能全、造價省。能夠進入大眾生活。一款使用微電腦管理的、紅外遙控器控制的多功能窗簾,控制器符合當今的發展趨勢。該窗簾控制器采用89C2051單片機的最小系統設計,控制一個220V的可逆、直流電動機控

10、制窗簾的拉開和關閉。窗簾控制器可以使用紅外遙控器進行遠程手動開、手動關和手動??刂?;可以執行事先輸入的開啟時間和關閉時間進行時間控制;還可以根據室外環境亮度實現環境亮度光控。三種工作方式可以方便地進行選擇,當選擇時間控制的方案時,數碼管還能顯示當時小時和分鐘時間,不過時間數據只能順序顯示,顯示一遍后,略等片刻再顯示下一遍時間。另外、電機拉動窗簾的工作的時間長度,電機工作的時候是否有鳴響提示,以及光控狀態下環境亮度的控制參數的調整等等都可以通過遙控器進行設置16。2 概述隨著電子科學技術的發展,遙控技術在高科技研究、工農業生產、通訊技術、軍事技術、家用電器等諸多領域得到了廣泛地應用,特別是隨著各

11、類遙控專用集成電路的不斷問世,使得各類遙控設備的性能也更加優越可靠,功能更加完善3。 遙控種類繁多,有聲控、無線電控制、紅外線控制等。其中還包含著各種不同類型的控制。我在本次設計中主要研究的是利用單片機的智能紅外線遙控電路的設計。2.1選題背景隨著科學的發展,社會的進步,人民生活水平的提高,工作壓力也越來越大,人人都希望回到家或是在辦公室都有一個舒適的環境。能得到很好的休息,這就使得自動化技術快速發展。當今,遙控已經很普遍。但不是說就沒有他的研究價值,為了進一步滿足人們高水準生活的需要,家用電器產品性能也在不斷的更新挽代,從始初的晶體管、到電子管;由模擬到數字;由分立元件到集成電路;從普通向高

12、性能、多功能型;由手動控制向紅外線遙控、向智能化發展。紅外線遙控是目前應用最廣泛的一種通信和遙控手段。由于紅外線遙控器具有體積小、功耗低、功能強、成本低等特點。因此,彩電、錄像機、音響設備、空調、玩具、門鈴以及遙控汽車路牌等其它小型裝置上也紛紛采用紅外線遙控。與此同時,窗簾作為裝修業不可缺少的一部分,也日益火爆起來,目前,常用的窗簾軌道都是鋼絲繩手拉式或滑輪式,只有一部分高收入的家庭采用是電動遙控軌道。但價格相當昂貴,不能普及。所以,現在的重點是如何研制出功能全、造價省的家用自動控制裝置13。同時,單片機也有它突出的優點。從1974年開始,單片機就以它的體積小、質量輕、耗電省、可靠性高、價格低

13、等特點,開始不斷發展,并廣泛應用于儀器儀表、家電電器、醫用設備、航天航空、專用設備的智能化管理及過程控制等領域。單片機的發展經歷了四個階段。 可預見單片機的發展趨勢將是向大容量、高性能話、外圍電路內裝化等方面發展,也就是對CPU、存儲器、片內I/O的改進,低功耗,特別是系統的單片機是目前單片機發展的重要趨勢。而從目前國內對單片機的需求來看:在未來幾年里,8位、16位單片機將是單片機的發展主流,它的新發展表現在:(1)CPU功能的增加 (2)內部資源的增多 (3)引腳的多功能化 (4)低電壓、低功耗。 正因為單片機有著如此多的優點,單片機在工業控制中和家用電器等上的應用中獨占鰲頭,故又稱為微控制

14、器(Microcontroller)(1) 因為它具有“小、輕、廉、省”的特點,尤其耗電少,又可使供電電源的體積小、重量輕,所以特別適用于“電腦型產品”,在家電、玩具、游戲機、聲像設備、電子秤、收銀機、辦公設備、廚房設備等許多產品上得到應用。(2) 適用于儀器儀表,不僅能完成測量,還具有處理、監控等功能,易于實現數字化和智能化。(3) 廣泛應用于打印機、繪圖儀等許多計算機外圍設備,特別是用于智能終端,可大大減輕主機負擔。(4) 用于各種工業控制,如溫度控制、液面控制、生產線順序控制等2。上述的歸納還不夠完整,但已知單片機的應用已滲透到國民經濟的各個領域,極大地推動了計算機技術的普及,而且可以預

15、見,隨著單片機性能的進一步提高,它的應用將更趨廣泛。它對我國許多產品的升級換代、工廠企業的設備更新都將起著十分巨大的作用。所以利用單片機可以實現較多的功能的前提下降低設計、生產成本。2.2設計思路主要任務課題名稱是“紅外通訊遙控電路”,課題設計的主要任務就是實現紅外信號的發射和接收。保證發射出的信號要有足夠的強度,在傳播過程中要能有防止其他無線電信號的干擾能力。同時接收機要能夠在足夠遠的距離上接收到準確的控制信號,起到控制電路工作的作用。工作原理和用電磁波用作無線電遙控的信號傳播媒介一樣,在紅外遙控電路中用紅外線作為紅外線遙控的信號傳播媒介。借助于紅外線具有直線傳播的特性,利用專用的紅外傳感器

16、具有靈敏度高,響應快和光譜范圍窄的性能,制成靈敏度高,抗干擾性能良好的紅外遙控裝置。利用單片機控制的紅外遙控電路,它是利用單片機的異步通訊口,用紅外發射口和紅外接收來實現發射和接收點信號功能。設計方案單通道遙控開關電路的紅外線發射控制電路是利用脈沖發生器產生的高頻脈沖方波驅動紅外發光管,使其發射出一系列等幅的紅外方波脈沖。方波的占空比用1:1或1比幾。其目的是在一定的電源電壓下,達到盡可能高的脈沖峰值,提高發射機的效率,以增大控制距離,而且節省電源。例如:一個峰值電流為3A的脈沖,占空比為1:3,它的平均消耗電流只有1A。這對于使用干電池作電源的發射機是很有實用價值的。在接收機方面,由光電二極

17、管或光電三極管將接收到的紅外脈沖信號轉換成微弱的脈沖電信號,由電壓放大級將這個微弱的信號加以放大,使其能夠可靠地出發雙穩態電路的翻轉,有的電路還加以限幅放大,以削去干擾尖脈沖。最后將雙穩態電路輸出的控制信號進行功率放大并驅動繼電器,達到控制開關的目的。其結構如圖2.1脈沖發射器脈沖功放紅外發射紅外接收電壓放大限幅放大雙穩觸發繼電器濾波或整形圖2.1 紅外遙控的基本原理由于一般的遙控電路,其控制距離都不超過10米。這不僅是由于發射機的發射功率一般都小的原因,而更重要的是因為紅外線具有可見光的散射特性,在經過一段距離后它的發射面積增大,使控制信號的能量分散,單位面積上的能量強度減弱,因而失去控制功

18、能。如果在增大發射機發射功率的同時,又將發射光或接收光聚焦,則控制距離可大大增加。本次設計的要求是控制距離為40-50米,所以,一般的遙控電路不能滿足要求。所以就要求我們能設計出能適用于中遠距離遙控的電路。3 紅外遙控電路原理及編碼解碼3.1電路原理基本電路原理通常紅外遙控系統由發射和接收兩部分組成,應用編/解碼電路專用集成電路芯片來進行控制操作,如圖3.1所示,發射部分包括鍵盤矩陣、編碼調制、紅外發送器。接收部分包括光電轉換放大器、解調、解碼電路。紅外發送每次編碼的發送是一個鍵值,即一個十六進制的數據。為了達到一次能發送一組數據(如車次號,通常為三位十進制數),我們可以采用89C2051的軟

19、件編碼/解碼的方法,先一次性輸入一組車號,按下發送鍵后,全部發送出;同時在接收時,用連續接收方法,一次性解碼所有數據6。圖3.1 控制系框圖 遙控發射器及其編碼   現在專用的發射與接收器件越來越多,在這就不做過多的介紹。下面介紹一款用AT89C2051單片機來實現的遙控裝置。工作原理:圖3.2為紅外線發射電路原理圖,K0至K7為遙控按鈕,單片機P3.4端口控制紅外線的發射。T1作為發射時間控制器,T0作為紅外線發射頻率控制器。當有按鍵按下時,控制軟件啟動定時器T0、T1, T0定時溢出,中斷程序使P3.4端口狀態反轉一次,寫入定時器的初值不同,在輸出端口就可得到

20、不同的發射頻率。T1定時溢出,中斷程序關閉T0定時器,停止紅外線發射。程序見清單。軟件設計參數為:T1定時時間為100ms,K0至K7按鈕所對應的紅外線發射頻率分別為300、600、900、1200、1500、1800、2100、2400 Hz21。圖3.2紅外線發射電路原理圖程序清單見附錄1。下面介紹另外一種編碼方法:遙控發射器專用芯片很多,根據編碼格式可以分成脈沖寬度調制和脈沖相位調制兩大類。當發射器按鍵按下后,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以

21、脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”,其波形如圖3.3所示。圖3.3 波形圖上述“0”和“1”組成的32位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然后再通過紅外發射二極管產生紅外線向空間發射,如圖圖3.4所示。圖3.4圖3.5發射波形圖UPD6121G產生的遙控編碼是連續的32位二進制碼組,其中前16位為用戶識別碼,能區別不同的電器設備,防止不同機種遙控碼互相干擾。該芯片的用戶識別碼固定為十六進制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6121G最多額128種不同組合的編碼。遙控器在按鍵按下后,

22、周期性地發出同一種32位二進制碼,周期約為100ms。一組碼本身的持續時間隨它包含的二進制“0”和“1”的個數不同而不同,大約在4563ms之間,圖3.5為發射波形圖。當一個鍵按下超過36ms,振蕩器使芯片激活,將發射一組108ms的編碼脈沖,這108ms發射代碼由一個起始碼(9ms),一個結果碼(4.5ms),低8位地址碼(9ms18ms),高8位地址碼(9ms18ms),8位數據碼(9ms18ms)和這8位數據的反碼(9ms18ms)組成。如果鍵按下超過108ms仍未松開,接下來發射的代碼(連發代碼)將僅由起始碼(9ms)和結束碼(2.5ms)組成。代碼格式(以接收代碼為準,接收代碼與發射

23、代碼反向)位定義    單發代碼格式 連發代碼格式 注:代碼寬度算法: 16位地址碼的最短寬度:1.12×16=18ms 16位地址碼的最長寬度:2.24ms×16=36ms易知8位數據代碼及其8位反代碼的寬度和不變:(1.12ms+2.24ms)×8=27ms32位代碼的寬度為(18ms+27ms)(36ms+27ms)1 解碼的關鍵是如何識別“0”和“1”,從位的定義我們可以發現“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據高電平的寬度區別“0”和“1”。如果從

24、0.56ms低電平過后,開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右均可。2 2 根據碼的格式,應該等待9ms的起始碼和4.5ms的結果碼完成后才能讀碼6。3.2紅外遙控解碼原理 紅外接收電路先介紹一款接收電路。電路原理: 本電路見圖3.6,主要由紅外接收頭和組成的紅外控制開關電路。紅外接收頭靜態時輸出高電平。當收到遙控發射器送來的紅外脈沖信號時,接收頭的第腳

25、輸出低電平(脈沖信號)。經整形、放大、倒相而得到負脈沖信號,再由、檢波,延時送至(達到反相器的閾值電壓),致使輸出低電平,然后端電壓經放電,使輸入端低于反相器的閾值電壓,輸出端恢復高電平。這樣,每按動一次紅外發射器,在輸出端就得到一個負脈沖信號,去觸發由和組成的雙穩態電路,促使雙穩態電路翻轉,輸出或電平,通過控制單向可控硅的導通或截止圖3.6 紅外接收電路3.2.2遙控編碼脈沖的串并轉換紅外遙控接收頭解調出的編碼是串行二進制碼,包含著遙控器按鍵信息。但它還不便于CPU讀取識別,因此需要先對這些串行二進制碼進行解碼。3.2.3基于EPROM的遙控解碼原理經過串并轉換,我們得到了8位并行遙控碼。為

26、了讓CPU讀取這個并行遙控碼,通常的方法是在轉換完成后產生一個中斷,通知CPU來讀取遙控信息。但這樣做要占用CPU一個外部中斷資源并需編寫額外的中斷服務程序,顯得比較煩瑣。尤其是當儀器系統的軟件不是由自己開發而又要加裝遙控時更是無能為力。因此,我們想尋求一種不占用儀器CPU的軟、硬件資源而實現遙控的方法,使鍵盤輸入和遙控輸入統一起來,占用同一個端口、同一個中斷、同一個中斷服務程序。簡言之,要做到對CPU是透明的,似乎只有一個鍵盤輸入單元在工作,只須訪問它來進行鍵盤掃描、鍵碼讀出操作。但實際上卻有遙控器與鍵盤兩套鍵輸入硬件在同時而獨立地工作??疾煲幌轮悄軆x器的鍵盤掃描輸入原理。在這種方式下,CP

27、U通過輸出指令使鍵盤矩陣的行掃描線依次為“0”(低電平),同時監測鍵盤矩陣的列掃描線。若無鍵按下,則列掃描線輸出全“1”(高電平);若有鍵按下,則此鍵所在列線輸出為“0”,再結合行掃描線此時的狀態,就可具體定位按鍵。我們設想,可否將遙控接收頭輸出的含有按鍵信息的8位遙控碼通過某種轉換,并入鍵盤矩陣電路,當遙控器有鍵按下時,就會在機上鍵盤對應鍵處產生一個“模擬”按鍵動作,產生一個鍵碼可供CPU讀取。所謂“模擬”是指并沒有機械按鍵動作,但對于鍵盤矩陣電路而言卻產生一個低電平,效果和機械按鍵動作完全一樣。這樣就將遙控鍵盤和本機鍵盤統一起來,二者的鍵數和鍵功能定義都一樣,一個相同的鍵在遙控器上按下和在

28、本機鍵盤上按下對CPU而言沒有任何區別,只不過對鍵盤矩陣來說前者是軟接觸,后者是硬接觸。根據遙控器上按鍵與本機鍵盤按鍵的一一對應方案,我們可以導出實現“模擬”按鍵的邏輯真值表(其中C0C4為列掃描線)。這是一個12變量輸入S變量輸出的組合邏輯函數,最小項總數為16×20320個。若用普通邏輯門電路來實現這樣的功能將是十分麻煩的,用PLD(可編程邏輯器件)來做就要簡單得多。EPROM就是一種與陣列固定、或陣列可編程的邏輯器件。如果把EPROM的輸入地址A0,A1,AN視為輸入邏輯變量,同時把輸出數據D0,D1,DM視為一組多輸出邏輯變量,那么輸出與輸入之間也就是一組多輸出的組合邏輯函數

29、。而且,EPROM地址譯碼器的輸出包含了全部輸入變量的最小項,每一位數據輸出又都是這些最小項之和,因而任何形式的組合邏輯函數均能通過向EPROM中寫入相應的數據來實現。不難推想,具有位輸入地址和M位數據輸出的EPROM可以獲得一組(最多為M個)任何形式的N變量組合邏輯函數。根據這個原理,選用4K×8EPROM2732,可以實現任意12變量輸入、8變量輸出的組合邏輯函數。在本機遙控系統中,利用了EPROM的D0D4五根數據線和全部12根地址線,通過向2732中固化上表所示的邏輯真值表,從而實現了關鍵的遙控解碼,使遙控器上按鍵與本機鍵盤按鍵一一對應起來。需要指出的是,EPROM的地址譯碼

30、是全譯碼,而在本方案中占據地址線A0A7的8位遙控碼只有20種有效碼值(20個鍵),即一頁(2S6字節)中只有20個有效數據,則應將剩余空間填入0FFH。由解碼電路圖3可見,EPROM2732的地址線A0-A7接至8位輸出鎖存移位寄存器74HCS9S的輸出(即8位遙控碼),A8A11接至鍵盤矩陣的行掃描線R0R3;2732的8根數據線使用了其中的S根D0D4,接至鍵盤矩陣的列掃描線C0C4,2732的(片選端)接地,(讀信號)接至施密特與非門4093的3腳輸出,此輸出為雙單穩74HC123的1Q、與非的結果。當遙控器上沒有按鍵按下時,EPROM2732的端為“1”,使得2732的數據線D0D4

31、為高阻態與鍵盤矩陣線脫離,而本機鍵盤的掃描與讀出照常進行不受影響,若遙控器上有鍵按下時,經紅外發射、接收對應的位遙控碼出現在74HC595的輸出端,并作為EPROM2732的A0A7輸入,此時的行掃描碼(CPU發出)作為A8A11輸入,2732的端為低電平,讀出A0A11指定單元的數據,將其中D0D4放在鍵盤矩陣列線上。D0D4中只有一位為“0”,指示著哪一列有鍵按下,這樣就由遙控接收、解碼電路模擬了一次“按鍵”動作。接下來CPU對這個“按鍵”動作的響應、處理就和本機鍵盤完全一樣了。解碼程序紅外一開始發送一段13.5ms的引導碼,引導碼由9ms的高電平和4.5ms的低電平組成,跟著引導碼是系統

32、碼,系統反碼,按鍵碼,按鍵反碼,如果按著鍵不放,則遙控器則發送一段重復碼,重復碼由9ms的高電平,2.25ms的低電平,跟著是一個短脈沖。程序流程圖下:解碼程序在比較器中斷服務程序中實現。第一個下降沿表明編碼輸出開始,這時將時間記錄為last_time,當比較器輸出跳為高電平時,記錄當前時間為current_time,并且記錄脈沖寬(current_time-last_time)判斷收到的是寬脈沖還是窄脈沖,如果是寬脈沖記錄為0,窄脈沖記錄為1。每一組有效的編碼由24為組成,因此程序中需要有一個脈沖計數變量來記錄是否有24位碼,只有確認收到24位碼后,才認為這次按鍵有效。同時需要防止將用戶的一

33、次按鍵解釋為多次按鍵,需要有去抖功能??梢栽O一個變量來記錄同一個鍵值收到的次數,當它的記錄小于某一預定的值時,表示用戶在進行同一操作。完整的接收到一組編碼后,在中斷程序中將鍵值有效標志key_flag置1,主程序循環中如果查詢到key_flag為1則保存這個鍵碼,即完成一次解碼操作。4 單片機介紹4.1單片機簡介與接口技術主要功能MCS-51系列單片機是美國Intel公司在1980年推出的高性能8位單片微機,較原來的MCS-48系列結構更為先進,功能增強,它包括51和52兩個子系列。 在51系列中,主要有8031、8051、8751三種機型,它們的指令系統與芯片引腳完全兼容,僅片內ROM有所不

34、同。51子系列的主要功能為:8為CPU。片內帶振蕩器,振蕩頻率fosc范圍為1.212MHZ;可有時鐘輸出。128個字節的片內數據存儲器。4K字節的片內程序存儲器(8031無)。程序存儲器的尋址范圍為64K字節。片外數據存儲器的尋址范圍為64K字節。21個字節專用寄存器。4個8位并行I/O接口:P0、P1、P2、P3。1個全雙工串行I/O接口,可多機通訊。2個16位定時/計數器。中斷系統有5個中斷源,可編程為兩個優先級。111條指令,含乘法指令和除法指令。有強的位尋址、位處理能力。片內采用單總線結構。用單一+5V電源。52子系列主要有8032、8052兩種機型。與51子系列的不同在于:片內數據

35、存儲器增至256個字節;片內程序存儲器增至8KB(8032無);有3個16位定時器/計數器;有6個中斷源。其他性能均與51子系列相同。內部結構它含運算器、控制器、片內存儲器、4個I/O接口、串行接口、定時器/計數器、中斷系統、振蕩器等功能器件。外部引腳說明MCS-51系列單片機芯片有40個引。見圖。用HMOS工藝制造的芯片采用雙列直插式封裝。低功耗的、采用CHMOS工藝制造的機型(在型號中間家一“C”字作為識別,如80C31、80C51、87C51)也有用方型封裝結構的。 現將各引腳分別說明如下: 1.主電源引腳 Vcc:接+5V電源正端。 Vss:接+5V電源地端。 2.外接晶體引腳 XTA

36、L1:片內反相放大器輸入端。 XTAL2:片內反相放大器輸出端。外接晶體時,XTAL1與XTAL2各接警惕的一端,借外接晶體與片內反相放大器構成振蕩器。3.輸入/輸出引腳 P0.0P0.7:P0口的8個引腳。在不接片外存儲器與不擴展I/O接口時,可作為準雙向輸入/輸出接口。在接有片外存儲器或擴展I/O接口時,P0口分時復用為低8位地址總線和雙向數據總線。 P1.0P1.7:P1口的8個引腳??勺鳛闇孰p向I/O接口使用。對于52子系列,P1.0與P1.1還有第二種功能:P1.0可作為定時器/計數器2的計數脈沖輸入端T2;P1.1可作為定時器/計數器2的外部控制端T2EX。 P2.0P2.7:P2

37、口的8個引腳.一般可作為準雙向I/O接口;在接有片外存儲器或擴展I/O接口且尋址范圍超過256字節時,P2口用為高8為地址總線。 P3.0P3.7:P3口的8個引腳,除了作為準雙向I/O接口使用外,還具有第二功能,具體如下: P3.0:RXD (串行輸入口) P3.1:TXD (串行輸出口) P3.2:INT0 (外部中斷0請求輸入端) P3.3:INT1 (外部中斷1請求輸入端) P3.4:T0 (定時器/計數器0計數脈沖輸入端) P3.5:T1 (定時器/計數器1計數脈沖輸入端) P3.6:WR (片外數據存儲器寫選通信號輸出端) P3.7:RD (片外數據存儲器讀選通信號輸出端)MCS-

38、51系列單片機外部引腳圖單片機接口技術80C51的串行通信口是一個功能強大的通信口,而且是相當好用的通信口,用于顯示驅動電路再合適不過了,下面我們就根據這種需要設計一個用兩個串行通信口線加上兩根普通I/O口,設計一個4位LED顯示電路。當然只要再加上兩根I/O口線即可輕易實現8位LED的顯示電路7。圖4.1 串行動態LED掃描電路圖是電原理圖,我們還是采用C2051單片機,同時用廉價易得的74LS164和74LS138作為擴展芯片。74LS164(詳細技術手冊)是一個8位串入并出的移位寄存器,其此處的功能是將C2051串行通信口輸出的串行數據譯碼并在其并口線上輸出,從而驅動LED數碼管。74L

39、S138是一個3-8譯碼器,它將單片機輸出的地址信號譯碼后動態驅動相應的LED。但74LS138電流驅動能力較小,為此,我們使用了未級驅動三極管2SA1015作為地址驅動。將4只LED的段位都連在一起,它們的公共端則由74LS138分時選通,這樣任何一個時刻,都只有一位LED在點亮,也即動態掃描顯示方式,其優點在上一節中我們已經闡述。使用串行口進行LED通信,程序編寫相當簡單,用戶只需將需顯示的數據直接送串口發送緩沖器,等待串行中斷即可,看看下面的程序。程序清單  ORG 0100H MOV SCON,#00H ;串行口工作方式0MAIN: MOV R3,#00H ;字型碼初始地址L

40、OOP: MOV R4,#0E8H ;循環顯示某個字符DELAY: ACALL DISPLAY ;顯示 DJNZ R4,DELAY ;延時時間未到繼續 INC R3 ;顯示下個字符 CJNE R3,#OAH,LOOP ;未顯示到“9”繼續 AJMP MAIN ;返回主程序DISPLAY:CLR P3.2 CLR P3.3 ;選中第一位 ACALL DISP ;顯示 ACALL DELAY1 ;延時10MS SETB P3.3 ;選中第二位 ACALL DISP ACALL DELAY1 SETB P3.3 ;選中第三位 CLR P3.2 ACALL DISP ACALL DELAY1 SETB

41、 P3.2 ;選中第四位 SETB P3.3 ACALL DISP ACALL DELAY1 RETDIS: MOV A,R3 MOV DPTR,#TABLE MOVC A,A+DPTR ;查表 MOV BUFF,A ;送發送緩沖器WAIT: JNB TI,WAIT ;等待串行中斷 CLR TI RETDELAY1: MOV R6,#10H ;延時子程序LOOP1: MOV R7,#38HLOOP2: DJNZ R7,LOOP2 DJNZ R6,LOOP1 RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H END ;程序結

42、束 104.2單片機抗干擾技術MCS-51單片機抗干擾技術在提高硬件系統抗干擾能力的同時,軟件抗干擾以其設計靈活、節省硬件資源、可靠性好越來越受到重視。下面以MCS-51單片機系統為例,對微機系統軟件抗干擾方法進行研究。 4.2.1.1  軟件抗干擾方法的研究   在工程實踐中,軟件抗干擾研究的內容主要是: 一、消除模擬輸入信號的嗓聲(如數字濾波技術);二、程序運行混亂時使程序重入正軌的方法。本文針對后者提出了幾種有效的軟件抗干擾方法。 4.2.1.1.1 指令冗余   CPU取指令過程是先取操作碼,再取操作數。當PC受干擾出現錯誤,程序便脫離

43、正常軌道“亂飛”,當亂飛到某雙字節指令,若取指令時刻落在操作數上,誤將操作數當作操作碼,程序將出錯。若“飛” 到了三字節指令,出錯機率更大。   在關鍵地方人為插入一些單字節指令,或將有效單字節指令重寫稱為指令冗余。通常是在雙字節指令和三字節指令后插入兩個字節以上的NOP。這樣即使亂飛程序飛到操作數上,由于空操作指令NOP的存在,避免了后面的指令被當作操作數執行,程序自動納入正軌。此外,對系統流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入兩條NOP,也可將亂飛程序納入正軌,確保這些重要指令的執行。  4.2.1.1.2

44、 攔截技術   所謂攔截,是指將亂飛的程序引向指定位置,再進行出錯處理。通常用軟件陷阱來攔截亂飛的程序。因此先要合理設計陷阱,其次要將陷阱安排在適當的位置。 1 軟件陷阱的設計   當亂飛程序進入非程序區,冗余指令便無法起作用。通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進行出錯處理。軟件陷阱是指用來將捕獲的亂飛程序引向復位入口地址0000H的指令。通常在EPROM中非程序區填入以下指令作為軟件陷阱:            

45、;           NOP                       NOP                

46、60;      LJMP 0000H其機器碼為0000020000。  2 陷阱的安排   通常在程序中未使用的EPROM空間填0000020000。最后一條應填入020000,當亂飛程序落到此區,即可自動入軌。在用戶程序區各模塊之間的空余單元也可填入陷阱指令。當使用的中斷因干擾而開放時,在對應的中斷服務程序中設置軟件陷阱,能及時捕獲錯誤的中斷。如某應用系統雖未用到外部中斷1,外部中斷1的中斷服務程序可為如下形式:       

47、60;               NOP                       NOP            &

48、#160;          RETI 返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障診斷程序與系統自恢復程序的設計可靠、 完善,用“LJMP 0000H”作返回指令可直接進入故障診斷程序,盡早地處理故障并恢復程序的運行。  考慮到程序存貯器的容量,軟件陷阱一般1K空間有2-3個就可以進行有效攔截。  4.2.1.3 軟件“看門狗”技術 若失控的程序進入“死循環”,通常采用“看門狗”技術使程序脫離“死循環”。通過不斷檢測程序循環運行時間

49、,若發現程序循環時間超過最大循環運行時間,則認為系統陷入“死循環”,需進行出錯處理?!翱撮T狗”技術可由硬件實現,也可由軟件實現。 在工業應用中,嚴重的干擾有時會破壞中斷方式控制字,關閉中斷。則系統無法定時“喂狗”,硬件看門狗電路失效。而軟件看門狗可有效地解決這類問題。 筆者在實際應用中,采用環形中斷監視系統。用定時器T0監視定時器T1,用定時器T1監視主程序,主程序監視定時器T0。采用這種環形結構的軟件“看門狗”具有良好的抗干擾性能,大大提高了系統可靠性。對于需經常使用T1定時器進行串口通訊的測控系統,則定時器T1不能進行中斷,可改由串口中斷進行監控(如果用的是MCS-52系列單片機,也可用T

50、2代替T1進行監視)。這種軟件“看門狗”監視原理是:在主程序、T0中斷服務程序、T1中斷服務程序中各設一運行觀測變量,假設為MWatch、T0Watch 、T1Watch,主程序每循環一次,MWatch加,同樣T0、T1中斷服務程序執行一次,T0Watch、 T1Watch加。在T0中斷服務程序中通過檢測T1Watch的變化情況判定T1運行是否正常,在T1中斷服務程序中檢測MWatch的變化情況判定主程序是否正常運行,在主程序中通過檢測T0Watch的變化情況判別T0是否正常工作。若檢測到某觀測變量變化不正常,比如應當加1而未加1,則轉到出錯處理程序作排除故障處理。當然,對主程序最大循環周期、

51、定時器T0和T1定時周期應予以全盤合理考慮5。限于篇幅不贅述。    系統故障處理、自恢復程序的設計  單片機系統因干擾復位或掉電后復位均屬非正常復位,應進行故障診斷并能自動恢復非正常復位前的狀態。  .1 非正常復位的識別 程序的執行總是從0000H開始,導致程序從 0000H開始執行有四種可能:一、系統開機上電復位;二、軟件故障復位;三、看門狗超時未喂狗硬件復位; 四、任務正在執行中掉電后來電復位。四種情況中除第一種情況外均屬非正常復位,需加以識別。  .1.1 硬件復位與軟件復位的識別&#

52、160;此處硬件復位指開機復位與看門狗復位,硬件復位對寄存器有影響,如復位后PC=0000H, SP07H,PSW00H等。而軟件復位則對SP、SPW無影響。故對于微機測控系統,當程序正常運行時,將SP設置地址大于07H,或者將PSW的第5位用戶標志位在系統正常運行時設為1。那么系統復位時只需檢測PSW.5標志位或SP值便可判此是否硬件復位。圖4.2是采用PSW.5作上電標志位判別硬、軟件復位的程序流程圖。圖4.2硬、軟件復位識別流程此外,由于硬件復位時片內RAM狀態是隨機的,而軟件復位片內RAM則可保持復位前狀態,因此可選取片內某一個或兩個單元作為上電標志。設 40H用來做上電標志,上電標志

53、字為78H,若系統復位后40H單元內容不等于78H,則認為是硬件復位,否則認為是軟件復位,轉向出錯處理。若用兩個單元作上電標志,則這種判別方法的可靠性更高。  .1.2 開機復位與看門狗故障復位的識別開機復位與看門狗故障復位因同屬硬件復位, 所以要想予以正確識別,一般要借助非易失性RAM或者EEROM。當系統正常運行時,設置一可掉電保護的觀測單元。當系統正常運行時,在定時喂狗的中斷服務程序中使該觀測單元保持正常值(設為 AAH),而在主程中將該單元清零,因觀測單元掉電可保護,則開機時通過檢測該單元是否為正常值可判斷是否看門狗復位11。  .1.3 正常開

54、機復位與非正常開機復位的識別識別測控系統中因意外情況如系統掉電等情況引起的開機復位與正常開機復位,對于過程控制系統尤為重要。如某以時間為控制標準的測控系統,完成一次測控任務需1小時。在已執行測控50分鐘的情況下,系統電壓異常引起復位,此時若系統復位后又從頭開始進行測控則會造成不必要的時間消耗。因此可通過一監測單元對當前系統的運行狀態、系統時間予以監控,將控制過程分解為若干步或若干時間段,每執行完一步或每運行一個時間段則對監測單元置為關機允許值,不同的任務或任務的不同階段有不同的值,若系統正在進行測控任務或正在執某時間段,則將監測單元置為非正常關機值。那么系統復位后可據此單元判系統原來的運行狀態

55、,并跳到出錯處理程序中恢復系統原運行狀態。5 實際電路設計本文介紹一款使用微電腦管理的、紅外遙控器控制的多功能窗簾控制器。該窗簾控制器采用89C2051單片機的最小系統設計,控制一個220V的可逆、變速電動機控制窗簾的拉開和關閉。窗簾控制器可以使用紅外遙控器進行遠程手動開、手動關和手動??刂?;可以執行事先輸入的開啟時間和關閉時間進行時間控制;還可以根據室外環境亮度實現環境亮度光控。三種工作方式可以方便地進行選擇,當選擇時間控制的方案時,數碼管還能顯示當時小時和分鐘時間,不過時間數據只能順序顯示,顯示一遍后,略等片刻再顯示下一遍時間。另外、電機拉動窗簾的工作的時間長度,電機工作的時候是否有鳴響提

56、示,以及光控狀態下環境亮度的控制參數的調整等等都可以通過遙控器進行設置。5.1窗簾控制器原理圖紅外遙控窗簾控制器電路原理圖如圖5.1所示。圖5.1 電路原理圖       5.2工作原理解說電路分為8個部分,分別是電源部分、顯示部分、鳴響提示部分、紅外線接收部分、數據儲存部分、光控電路測光部分、電機控制執行部分、單片機主控器件部分。電源部分通過外接插座輸入交流12V或者直流13-14V電壓,交流電經過整流濾波后,輸出電壓為12V的VDD,為控制繼電器提供工作電壓。同時經過3端集成穩壓器IC2穩壓后輸出5V電壓VBB,為訊響電

57、路、紅外接收電路、顯示電路提供電源,5V電源經過二極管D4、限流電阻R18后,為單片機提供VCC電壓,E1是直流供電電源,電壓為3V3.6V,在本電路中為了節省成本,使用兩節5號普通電池,C6和C7是單片機電源濾波電容。平時交流電正常的情況下,5V電源為單片機供電的同時,也為電池浮充電,大大延長了電池的使用壽命,當交流電停電的時候,電池僅為單片機供電,單片機在掉電狀態下維持時鐘的正常走時,VBB供電被D4隔斷。在控制器設置成手動控制時,單片機除執行任務外,均處于睡眠狀態,遙控器信號的到來,單片機從睡眠中喚醒,恢復正常工作,所以手動狀態下當交流停電時,電池的耗電電流更小。顯示電路使用一個0.56

58、英寸的共陽高亮度數碼管,限流電阻取用11.5K.鳴響電路由單片機的P1.0兼用,除驅動數碼管的數點之外,兼用音頻信號輸出,音頻信號通過R20、C10輸入到三極管V6的基極上,三極管驅動發聲器發聲。二極管D3用來提供C10的放電回路,保證交流信號的正常耦合。發聲器發出的聲音有單片機軟件來實現和控制,不同的情況下發出不同音調、不同時間長度的鳴響來,也可以編制樂音聲音發聲。紅外線接收電路使用一個集成紅外接收器,型號是PIC-12043,在這里輸入端的信號直接送入單片機的P3.2口。靜態時輸出端輸出高電平,當接收到紅外信號后,按紅外信號的數據波形輸出負脈沖數據信號。紅外信號輸出到單片機的P3.2 ,該口對應的第二功能是外部中斷0  (INT0),利用該口的第二功能,一旦紅外線信號到來,P3.2被拉低,單片機中止當前的工作轉移到接收、處理紅外信號。開啟中斷功能的目的,既減輕了單片機的工作負擔,又保證接收到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論