學習型紅外線遙控器的設計說明_第1頁
學習型紅外線遙控器的設計說明_第2頁
學習型紅外線遙控器的設計說明_第3頁
學習型紅外線遙控器的設計說明_第4頁
學習型紅外線遙控器的設計說明_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.PAGE.PAGE1XX人文科技學院課程設計報告課程名稱:單片機課程設計設計題目:學習型紅外線遙控器的設計系別:通信與控制工程系專業(yè):電子信息工程班級:學生姓名:學號:起止日期:指導教師:教研室主任:指導教師評語:指導教師簽名:年月日成績評定項目權重成績1、設計過程中出勤、學習態(tài)度等方面0.22、課程設計質量與答辯0.53、設計報告書寫及圖紙規(guī)范程度0.3總成績教研室審核意見:教研室主任簽字:年月日教學系審核意見:主任簽字:年月日摘要當今社會科學技術的發(fā)展與日俱增,人們的生活水平也是日益提高,為了減少人的工作量,所以對各種家用電器、電子器件的非人工控制的要求也是越來越高,針對這種情況,設計出一種集成度比較高的控制體系是必然的。單片機的集成度很高,它具有體積小、質量輕、價格便宜、耗電少等突出特點,尤其耗電少,又可使供電電源體積小、質量輕。本課程設計介紹了基于單片機的一種學習型萬能遙控器的設計與實現,可以對各種紅外線遙控器發(fā)射的信號進行識別、存儲和再現等功能,從而實現對各類家電的控制。學習型紅外遙控器由單片機、紅外線接收、紅外線發(fā)射、顯示、存儲、按鍵等部分組成。本設計詳細介紹了學習型紅外遙控器的軟硬件設計方法,并給出了具體的各單元電路設計、程序設計及主程序流程圖。在硬件設計中,我們選取STC89C52型號單片機為核心器件,并給出外圍電路模塊如紅外接收模塊、紅外發(fā)射模塊、顯示模塊、以及外部控制模塊等組成部分的設計實現。軟件部分采用keil進行C程序設計與編譯,并將編譯后產生的hex文件通過STC_ISP_V479下載到單片機中,進行調試。本學習型遙控器采用最小化應用模式設計,電路簡單,尤其是通過大量不同遙控碼的特征分析,在遙控碼的讀入時選擇了最佳采樣間隔,使遙控碼的學習成功率大大提高。關鍵詞:遙控學習;紅外解碼;單片機控制;紅外遙控目錄設計要求1前言11、方案論證12、基本功能模塊設計與說明22.1.初始化模塊22.2遙控碼讀入處理模塊22.3遙控碼發(fā)射處理模塊32.4主模塊33、調試與操作說明53.1學習型紅外遙控器的電路原理圖的設計53.2程序的編譯及下載63.3實際電路的測試84、課程設計心得體會95、元器件及儀器設備明細106、參考文獻117、致謝128、附錄13..學習型紅外遙控器的設計設計要求學習型紅外線遙控器要求可以學習不同遙控器的某個按鍵碼功能。使用時先用原遙控器對著學習器按一下某操作鍵,學習器就可以實現原遙控器中該鍵的遙控功能。前言本課程設計是一個基于單片機的學習型紅外遙控器,能夠學習不同遙控器的某個按鍵功能。利用單片機STC89C52對多個紅外遙控編碼的脈沖寬度進行測量,并原封不動地把發(fā)射信號中高、低電平的時間寬度記憶至擴展存儲區(qū)的指定地址。當要發(fā)射紅外信號時,從擴展存儲區(qū)中還原出相應的紅外遙控編碼,并調制到38KHz的載波信號上,最后,通過三極管放大電路驅動紅外發(fā)光二極管發(fā)射紅外信號,達到學習和發(fā)射的目的,從而實現一個遙控器控制多種紅外遙控設備。1、方案論證為了實現遙控碼的記錄還原功能,系統(tǒng)應具有紅外線的接收解碼、紅外線調制發(fā)射、操作按鍵和功能控制功能等單元。由于功能定為學習一個遙控器按鍵的遙控功能,因此決定采用STC89C52單片機作為控制器。STC89C52單片機中具有256字節(jié)的內存單元,可存儲遙控碼脈寬的數據。遙控碼的脈寬數據可用紅外線接收器解碼后送單片機讀入,接受電路圖如圖1所示。發(fā)射時通過設置定時器的初值為F3H產生38kHZ紅外調制信號送紅外發(fā)射管發(fā)射,紅外發(fā)射電路圖如圖2所示。單鍵學習型紅外遙控器的實現方案框圖如圖3所示。圖1紅外接收電路原理圖圖2紅外發(fā)送電路原理圖圖3單鍵學習型紅外遙控器系統(tǒng)框圖2、基本功能模塊設計與說明2.1.初始化模塊初始化模塊的主要任務是清存放脈寬數據單元,關閉學習及發(fā)射指示燈,關閉遙控輸出口,將定時器T1設為8位自動重裝模式,設置中斷。2.2遙控碼讀入處理模塊遙控碼的學習處理程序主要是將原遙控器發(fā)出的脈沖碼寬依次存入內存單元,存放規(guī)則為偶數地址〔0、2、4、6等存放低電平脈寬數據,奇數地址〔1、3、5等存放高電平脈寬數據。定義文件中劃了206個單元用于存放脈寬數據,符合常用遙控器的最大碼長要求。遙控碼讀入程序流程圖如圖4所示。本程序在編程設計中非常重要,通過大量的、不同中來的遙控碼波形實驗測試分析,遙控碼的幀間歇位寬度均在10ms以上,起始碼寬度由9ms低電平的引導碼和4.5ms高電平的起始位組成。編碼位在100us~3.5ms之間。為確保所有遙控器學習的成功,可采用以下程序實現方法。讀起始位方法:由于起始位的碼寬范圍較大,因此計數單元采用單獨的2字節(jié),計數周期約為15us,這樣按65536*15us算,最大可存起始位脈寬為983ms。當輸入為低電平時,開始9ms的引導碼計數,輸入高電平時開始4.5ms的起始位計數,當再次進入低電平時,則開始讀遙控碼并計數。讀遙控碼的方法:采用1字節(jié)計數單元對遙控碼〔高電平或低電平進行寬度計數,電平跳變時結束計數,并將數據存入規(guī)定的地址。在高電平碼計數時,當計數值大于255時〔寬度大于3.825ms,則判定為結束幀間隔位,在相應存儲單元寫入數據0xOO作為結束標志。2.3遙控碼發(fā)射處理模塊遙控碼發(fā)射程序將原存于內存單元的脈沖數據還原成38KHZ方波,利用定時/計數器T1中斷功能產生38KHZ載波,調制波從P1.0腳送出。利用原讀入時的低電平持續(xù)時間控制產生38KHZ方波的時間,而原讀入時為高電平的脈寬數據將作為停發(fā)38KHZ方波的持續(xù)時間控制。經過反向放大器,9ms的引導碼變?yōu)楦唠娖?4.5ms的低電平變?yōu)楦唠娖桨l(fā)送出去。波形圖如圖5所示。遙控碼發(fā)射處理程序圖如圖6所示。圖5紅外線發(fā)送波形圖2.4主模塊主程序在完成上電初始化后進行按鍵查詢,當確認有鍵按下時將編碼發(fā)出去??刂齐娨暀C。在主程序中加入了數碼管顯示部分,用于顯示接收到的引導碼和起始位個數,原理圖如圖7。主程序流程圖8所示圖6數碼管顯示原理圖圖4遙控碼讀入程序流程圖圖6遙控碼發(fā)射處理程序圖圖8主程序流程圖3、調試與操作說明3.1學習型紅外遙控器的電路原理圖的設計圖5所示為該學習機遙控器的電路原理圖,單片機使用STC89C52。其中:P3.3口接遙控器發(fā)射按鍵;P1.6口用作狀態(tài)指示,綠燈亮代表學習狀態(tài),綠燈滅代表碼已讀入;P1.7口用作指示遙控鍵的操作,閃爍代表遙控碼正在發(fā)射之中;第9腳為單片機的復位腳,采用RC上電復位電路;第12腳為單片機中斷輸入口,用于工作方式的轉換控制,當INT0腳為低電平時,系統(tǒng)進入學習狀態(tài);第2腳用于紅外線接收解碼器的輸出信號輸入第1腳作為遙控碼紅外調制信號的輸出口,輸出38KHZ的方波脈沖;第18、19腳接12M晶振。STC89C52芯片引腳如圖6。圖9STC89C52引腳圖由于采用最小化應用系統(tǒng),因此控制線PSEN〔片外取指控制、ALE〔地址鎖存控制不用,EA〔片外存儲器選擇接高電平,使用片內程序存儲器。紅外線接收器使用市場上用于電視機的三端一體化紅外接收解調器,三極管可用9013系列,紅外線發(fā)射二極管也用普通遙控器中使用的器件。3.2程序的編譯及下載1、創(chuàng)建工程并選擇AT89C52型號芯片。2、新建hongwai.c文件。3、編寫源程序并編譯,如圖10所示。圖10學習型遙控器的程序編譯圖3、打開STC-ISP下載軟件,選擇STC89C52RC型號的芯片,選擇串口3并導入編譯生成的hex文件。4、將單片機與計算機的串口相連,并將程序下載至單片機,如圖11所示。圖11學習型紅外遙控器程序下載圖3.3實際電路的測試程序下載進單片機后,打開單片機開發(fā)板上電源接口開關以及P1口電源切換開關,按下中斷0控制鍵,待綠色的流水燈亮后,將電視遙控器對準單片機開發(fā)板上的紅外接收頭按下某個按鍵,當綠燈熄滅時,此時代表學習完成了,然后關閉PI口電源切換開關按下單片機開發(fā)板上的發(fā)射鍵對電視機進行遙控操作。測試可知,本次設計的學習型遙控器完全符合要求,達到了預期目的。4、課程設計心得體會本次課程設計的基于單片機學習型紅外遙控器,在keil軟件上進行了進行C程序的設計、編譯,并將輸出的的hex文件通過STC_ISP_V479下載到單片機中,最后在單片機開發(fā)板上進行調試,測試硬件電路功能。經過實踐驗證,本設計是正確的。測試中,我們選取了電視機的遙控器作為學習對象,通過學習遙控器上某個鍵的功能,能實現單片機對電視機的控制。達到預期目的,設計完全成功。本文給出的設計思想也適用于其他基于單片機的系統(tǒng)設計。我們這次課程設計是通過小組的討論與實驗所完成的,在進行過程中碰到了一些困難。首先,本次設計是采用keil與STC_ISP_V479軟件來完成的。因此對于這兩種軟件的使用也提出了一定的要求。其次,由于在設計遙控碼的碼寬時,參數設置不夠恰當,導致單片機無法成功對遙控器的按鍵功能進行學習。再次,在硬件電路功能測試過程中,由于實際的單片機開發(fā)板的電路連接與本課程設計的硬件電路不完全一致,導致無法進行調試。通過修改信號輸入輸出端口,并結合實際的單片機開發(fā)板硬件連接進行外部控制,最終成功實現了學習型遙控器的學習功能。通過這次實驗我們感覺到動手能力及思維方式得到很大的加強。在這次課程設計中,我們學會了怎樣去根據課題的要求運用學過的知識去設計電路和調試電路。從中我們發(fā)現了實踐的重要性,在以后的學習中我們要加強理論與實際的結合。而且這次實驗也體現了團隊合作的重要性與探索精神的必要性。5、元器件及儀器設備明細表1元器件及儀器設備明細表器件名稱型號/版本數量備注微型計算機聯想一臺keil軟件一套STC_ISP_V479軟件一套單片機開發(fā)板STC89C52一套電視機TCL一臺電視機遙控器TCL一臺6、參考文獻[1]舒經文.最新彩電機芯及其遙控系統(tǒng)的原理與維修.北京:電子工業(yè)出版社,1993[2]李華.MCS-51系列單片機實用接口技術.北京:航天航空大學出版社,1999[3]麥山.基于單片機的協(xié)議紅外遙控系統(tǒng).電子技術:1998[4]何立民.MCS-51系列單片機應用系統(tǒng)設計,系統(tǒng)配置與接口技術.北京:航空航天大學出版社,1995[5]劉寧生周哨山.脈沖與數字電路.北京:中國廣播電視出版社,1995[6]康光華,陳大欽.電子技術基礎〔模擬部分.高等教育出版社.1999.6.第四版[7]李建華.實用遙控器原理與制作.北京:人民郵電出版社,19967、致謝本組成員,接到課題后,經過認真激烈的討論。開始確定基本思路,然后查閱了大量資料,然后根據老師提供的單片機原理圖了解和熟悉了紅外線遙控模塊的基本電路,利用keil軟件編寫C語言程序,調試程序無誤后,打開STC-ISP下載軟件將已編寫好的程序下載到單片機中完成紅外線遙控器的學習過程。通過本學期對單片機的初步了解和學習,讓我們對硬件和軟件之間的聯系有了更加深入的了解。為期兩個星期的課程設計不僅鞏固了我們的理論知識而且也培養(yǎng)了學生們的動手實踐能力。此次課程設計是一次把理論應用于實際的實踐,本次實踐受益匪淺。第一:鞏固和加深了單片機基本知識和理解,提高了綜合運用所學知識的能力。第二,提高了查閱手冊,圖表,文獻資料以及相關軟件的自學能力。第三,通過第四,意識到,光有理論知識是不夠的,還必須懂一些實踐中的知識。所以在課程設計的實踐中,本組成員將理論知識與實際想結合,鍛煉自己理論聯系實際的能力和實際動手能力。第五、充分意識到團結的需要性,明白了團結的力量是無窮大的。為以后的工作打下基礎。第六、培養(yǎng)了嚴謹的工作作風和科學態(tài)度。第九、熟悉了論文的正確規(guī)范的寫作格式以及論文的基本框架的寫作思路。這些收獲不管是對我們今后的學習還是工作,生活都有著非常重要的作用,為我們更好的學習本專業(yè)打下了堅實的基礎。此次的課程設計能過順利完成,得力于老師們的悉心指導和同學們的熱心幫助。在這,借此機會,本組成員要特別感謝各位老師和同學,謝謝你們。特別要感謝的是譚周文老師,謝謝你們的悉心指導,耐心講解以及寶貴意見。祝你們身體健康,萬事如意。8、附錄/*********************************************************************///remote.c//學習型遙控器//使用keilc512004.10.12/*********************************************************************///使用AT89C52單片機,12MHZ晶振,#include<reg52.h>#include<intrins.h>//_nop_<>;延時函數用#include<absacc.h>#defineucharunsignedchar#defineuintunsignedint#definePAXBYTE[0xD0FF]#definePBXBYTE[0xD2FF]#definePCXBYTE[0xD4FF]#defineCONXBYTE[0xD6FF] voidfenmiao<uint,uint>;voidmiao<uint,uint>;voidfen<uint,uint>;//數碼管用于顯示紅外線引導碼和起始碼的個數voiddelay<uint>;ucharcodea[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};sbitstudylamp=P1^6;//學習狀態(tài)指示燈sbitlamp=P1^7;//發(fā)射指示燈sbitstudykey=P3^2;//學習鍵<中斷口sbitremotein=P1^1;//遙控信號輸入口sbitremoteout=P1^0;//遙控輸出口sbittxkey=P3^3;//發(fā)射鍵uinti,j,m=255,n,k,s,t,y=0;ucharidataremotedata[206];//存緩沖寬度數據用uinthead,tou;//存起始位用uintremdata;uintge,shi,bai,qian,wan,shiwan,z;/*********1毫秒延時程序**********/delay1ms<uintt>{for<i=0;i<t;i++>for<j=0;j<120;j++>;}/***********初始化函數**********/clearmen<>{studylamp=1;//關學習燈lamp=1;//關發(fā)射指示remoteout=1;//關遙控輸出remotein=1;//關遙控輸入for<i=0;i<206;i++>//清內存{remotedata[i]=0x00;}IE=0x00;IP=0x01;TMOD=0x22;//8位自動重裝模式PCON=0X00;TH1=0xf3;//38KHZ初值TL1=0xf3;IT0=1;EX0=1;//外中斷0允許EA=1;//開總中斷EX1=0;}/**********鍵功能函數************/keywork<>{if<txkey==0>{while<txkey==0>;remoteout=0;n=0;delay<1>;//先發(fā)送低電平ET1=1;TR1=1;//發(fā)送引導碼高電平for<i=<head-55>;i>0;i-->{;}//使輸入與輸出引導碼個數一致ET1=0;TR1=0;remoteout=0;//發(fā)起始碼低電平for<i=tou;i>0;i-->{_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;} while<1> {remoteout=1;ET1=1;TR1=1; //發(fā)高電平for<i=remotedata[n]-5;i>0;i-->{;}//使輸入與輸出遙控碼個數一致ET1=0;TR1=0;n++;remoteout=0;if<remotedata[n]==0x00>{delay1ms<10>;break;}for<i=remotedata[n];i>0;i-->{_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;}n++;//低電平不發(fā)脈沖 }}}/***********主函數***************/main<>{CON=0x80;n=0;head=0;tou=0;remdata=0;clearmen<>;//初始化while<1>{keywork<>;//按鍵掃描fenmiao<shi,ge>;miao<qian,bai>;fen<shiwan,wan>;qian=tou/1000;bai=tou%1000/100;shi=tou%1000%100/10;ge=tou%10;}}/*********40KHZ發(fā)生器***********///定時中斷T1voidtime_intt1<void>interrupt3{remoteout=~remoteout;}/***********學習函數***********///外中斷0voidintt0<void>interrupt0{while<studykey==0>;//等待鍵釋放下降沿觸發(fā)EA=0;for<i=0;i<206;i++>//清內存{remotedata[i]=0x00;}head=0;tou=0;studylamp=0;lamp=1;n=0;remdata=0;while<remotein==1>;//等待遙控碼輸入while<remotein==0>{_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;head++;}//接收引導碼while<remotein==1>{_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;tou++;}//接收起始碼while<1> {while<remotein==0>{_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;_nop_<>;remdata++;}remotedata[n]=remdata;n++;remdata=0;while<remotein==0>;//確定接收完while<rem

溫馨提示

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

評論

0/150

提交評論