隨著紅外遙控技術快速發展讓人們的生活變得越來越方便與快捷的同時,在平時的家居生活中使用的智能化家電也越來越多,同樣,我們使用的紅外遙控型號也越來越多樣化,但是,一個紅外遙控只能控制相對應的紅外受控家電,家電多的家庭平時還因為遙控器多以及找不到相對應遙控器而煩惱,這時候,設計一款基于單片機紅外遙控器設計系統,此系統要兼顧紅外遙控的簡單實用、操作方便和性價比高等特點,以滿足人們生活中對遙控器的需要。
2 系統方案與功能指標
2.1 系統方案
基于單片機紅外遙控器設計系統的整個硬件設計系統以STC89C52RC芯片作為系統的主控芯片,以4×4矩陣鍵盤作為基于單片機紅外遙控器設計系統的控制輸入模塊,LCD1602液晶顯示屏作為系統的輸出顯示模塊,再利用STC89C52RC芯片通過UART協議以波特率9600波特與IR01紅外收發模塊進行通訊,控制IR01紅外收發模塊對紅外遙控器的紅外編碼進行學習和發射。基于單片機紅外遙控器設計系統的硬件設計圖如上圖2-1所示。
2.2 功能指標
- 利用單片機和紅外學習模塊進行設計;
- 選取合適的液晶顯示屏顯示;
- 紅外遙控范圍能在4到6米;
- 能對相應電器的遙控器進行學習,從而實現操控相應電器。
- 系統器件選型
- 主控芯片
基于單片機紅外遙控器設計系統的主控芯片采用的是STC89C52RC芯片。STC89C52RC芯片是STC公司研發的新一代小型單片機,其在軟件和硬件方面與MCS-51完全兼容,這個類型的單片機抗干擾能力強,數據傳輸速率快,具備高性能的同時,其功耗也低,為很多嵌入式控制系統提供了一個性價比較高的方案。
STC89C52RC芯片擁有以下特點:①STC89C52RC芯片可以工作在2.7V6V電壓范圍,以及可以工作在-40°C85°C的溫度環境;②STC89C52RC芯片與MCS-51系列的單片機在指令系統和引腳上的分布完全兼容,意味著MCS-51系列的單片機在指令系統能在STC89C52RC芯片直接適用;③STC89C52RC芯片具有4K字節可反復編程快速擦寫程序的內部RAM;④STC89C52RC芯片可以工作在頻率范圍為0Hz~24Hz之間全靜態工作模式。
STC89C52RC芯片同時也具備豐富的芯片資源:①STC89C52RC芯片內部擁有128×8位的RAM;②STC89C52RC芯片擁有32位可以雙向輸入輸出的功能引腳;③STC89C52RC芯片擁有兩個16位的定時器和兩個16位的計數器;④STC89C52RC芯片擁有5個中斷源,5個中斷源又分兩級中斷優先級;⑤STC89C52RC芯片擁有一個支持全雙工的異步通訊串行口。
綜合STC89C52RC芯片具有這些功能與特點,所 以STC89C52RC芯片是本基于單片機紅外遙控器設計系統的主控芯片的不二之選。STC89C52RC直插芯片引腳資源分布圖如下圖3-1所示:
- 顯示模塊
根據自己目前所掌握的知識,初步認為以下兩種的顯示方案適合基于單片機紅外遙控器設計系統:
方案1:
使用MAX7219 數碼管顯示模塊作為基于單片機紅外遙控器設計系統輸出顯示模塊,MAX7219 數碼管顯示模塊是一種共陰極顯示驅動器,它連接微控制器與8位數字顯示的7段數字LED顯示。該顯示模塊的支持四線串行接口,可以并聯多個MAX7219 型號的數碼管,達到多個數碼管同時使用,還不占用芯片資源的好處。
MAX7219 數碼管顯示模塊支持10MHz連續串行口;該顯示模塊擁有獨立的LED段選控制接口;該顯示模塊可以選擇非譯碼與數字的譯碼等方式;該顯示模塊支持150uA的低功耗關閉模式;該顯示模塊是共陰極LED顯示驅動;該顯示模塊可以限制回轉電流的段驅動來減少EMI;該模塊支持QSPI、MICROWIRE和SPI等多種串行接口;MAX7219 數碼管顯示模塊可以工作在0°C~70°C的溫度范圍。
方案2:
使用LCD1602液晶顯示模塊作為基于單片機紅外遙控器設計系統輸出顯示模塊,LCD1602液晶顯示模塊作為電子愛好者平時電子制作中常用到的電子顯示元器件,其是一種經常用來顯示數字、字母和符號等的LCD顯示模塊,LCD1602液晶顯示模塊的1602表示該顯示模塊能顯示的最多內容是16×2,簡而言之就是說LCD1602液晶顯示模塊只能顯示兩行字符,每一行字符最多可以顯示16個字符;LCD1602液晶顯示模塊工作在電壓4.5V~5.5V之間;LCD1602液晶顯示模塊的額定工作電流為2.0mA(即也就是說額定電壓5V,5V是LCD1602液晶顯示模塊的最佳工作電壓);LCD1602液晶顯示模塊的字符尺寸為2.95×4.35(W×H)mm;模塊分辨率為16×2×35,35為單個字符占用的點大小。
最后,通過兩個顯示模塊的對比,MAX7219 數碼管顯示模塊只能顯示數字、一些常用的字母以及個別字符,而LCD1602液晶顯示模塊可以顯示大多數的數字、字母和符號等,能更好的滿足電子制作者的需求,所以基于單片機紅外遙控器設計系統選用LCD1602液晶顯示模塊作為輸出顯示模塊。
- 紅外收發模塊
對于基于單片機紅外遙控器設計系統的紅外接收方案,通過查資料和相關文獻了解到的紅外收發方案如下所示:
方案1:
利用普通的紅外對管作為基于單片機紅外遙控器設計系統的紅外收發。紅外對管分為紅外發射頭和紅外接收頭,我們知道紅外線的光譜位于紅色光之外,人的肉眼無法察覺,波長是0.76μm~1.5μm,比紅光的波長還長。紅外對管通過發射端的晶振產生與被控紅外接收設備的相同的調制載波頻率,進而控制被控紅外接收設備。紅外對管支持NEC解碼,通過解碼紅外對管可以控制紅外碼段較簡單和紅外頻段較低的紅外設備。
方案2:
使用IR01 紅外遙控學習模塊作為基于單片機紅外遙控器設計系統的紅外收發模塊。IR01 紅外遙控學習模塊是一款可以學習的萬能型紅外遙控學習模塊,它可以支持普通的NEC編碼的紅外遙控學習,也支持空調的長碼編碼的學習,它可以先學習紅外遙控的編碼,之后再利用以學習的鍵碼發送出去,就能實現遙控器的復制或者集成到更智能的設備中。IR01 紅外遙控學習模塊可以通過簡碼串口控制,并配合上位機軟件,就能輕松實現產品的開發,可以很大程度上降低新產品的開發難度。
IR01 紅外遙控學習模塊支持DC5V,100mA的供電方式,其中靜態電流<1mA,發射電流為80mA;IR01 紅外遙控學習模塊可以控制半徑10m內的紅外設備;IR01 紅外遙控學習模塊采用標準的串口通信,即5V/3.3V的TTL電平,8位數據,1個停止位,0個奇偶校驗位;IR01 紅外遙控學習模塊支持波特率為2400、4800、9600、19200和115200等波特率;IR01 紅外遙控學習模塊支持NEC、RC-5、PWM、PPM和空調碼等絕大部分的紅外遙控器;IR01 紅外遙控學習模塊支持的載波頻率高達38KHz。IR01 紅外遙控學習模塊的應用范圍也十分廣泛,可以應用在智能家居產品,如:多功能遙控器魔方、萬能遙控器等;也可以應用在工業控制產品,如空調控制器,溫濕度機控制器,恒溫恒濕控制器等。
IR01 紅外遙控學習模塊帶有記憶存儲芯片,具有掉電保護功能,不會因為單片機復位或者電源突然掉電/上電導致要重新解碼;IR01 紅外遙控學習模塊可以反復的進行紅外學習模塊,可以通過上位機學習把已學習的紅外編碼導入或者導出,IR01 紅外遙控學習模塊是一個可以實現高效率研發、生產產品的紅外學習模塊。
綜上兩個方案所述以及進行測試對比,普通的紅外對管只能控制普通的紅外遙控,稍微頻段高一點的以及編碼長一點的紅外編碼,就無法對紅外設備進行解碼控制;而IR01 紅外遙控學習模塊支持NEC、RC-5、PWM、PPM和空調碼等絕大部分的紅外遙控器。在當前來說,市場上的紅外接收家電的紅外編碼都不一樣,頻段也不一樣,普通的紅外接收管難以滿足本設計的需求,IR01 紅外遙控學習模塊更適合本基于單片機紅外遙控器設計系統的需要,并且IR01 紅外遙控學習模塊自帶記憶存儲芯片,具有掉電保護功能,不會因為單片機復位或者電源突然掉電/上電導致要重新解碼,IR01 紅外遙控學習模塊開發效率也高,對于研發人員來說也非常友好,所以IR01 紅外遙控學習模塊非常適合本設計的需要。
- 系統硬件電路設計
4.1 主控系統電路
圖 4?1 主控系統電路圖
主控電路由STC89C52RC直插芯片、電源指示燈模塊、復位電路、起振電路以及上拉排阻組成一個最小系統。復位電路采用了一個10K直插電阻和一個10uF的鋁電解電容,由此可以計算出系統的復位時間為T=RC=10000(10K)×0.00001F(10uF)=100ms;起振電路采用的是11.0592MHz的晶振芯片和兩個22pF的獨石電容組成,選擇晶振11.0592MHz是因為它能夠準確的劃分時鐘頻率,與串口通信的波特率有很大的關系,其參數對于較高的波特率計算比較準確,例如波特率為19600,波特率為19800等都可以準確的計算出來,11.0592MHz晶振對于STC89C52RC直插芯片的定時器來說也有很大的影響,因為用其計算的的定時器初值都是整數的,如果使用12MHz的晶振,對于波特率的計算和定時器的初值計算都存在一定的變差;STC89C52RC芯片P0端口加一個103阻值的上拉排阻,因為STC89C52RC芯片內部P0端口沒有上拉電阻,加上拉電阻可以提高P0端口的引腳驅動能力和提高總線的抗干擾能力;同時電源指示燈是用來提示整個主控系統有沒有正常工作,以及獨立的程序燒寫接口,方便在編程過程中對系統程序進行燒寫和擦除。主控系統電路如上圖4-1所示。
- 紅外解碼電路
紅外解碼模塊使用的是IR01 紅外遙控學習模塊,其采用串口通訊方式(波特率為9600波特,1個停止位,8個數據位,0個奇偶校驗位)和STC89C52RC芯片進行通訊,STC89C52RC芯片的TX端口連接IR01 紅外遙控學習模塊的RX端口,STC89C52RC芯片的RX端口連接IR01 紅外遙控學習模塊的TX端口,兩個模塊的GND要相連,最后給兩個模塊有效的工作電壓兩個模塊就能進行工作和通訊。
STC89C52RC芯片通過4×4矩陣鍵盤掃描輸入,STC89C52RC芯片再給IR01 紅外遙控學習模塊有效串口信息,IR01 紅外遙控學習模塊通過STC89C52RC芯片發送過來的訊息判斷是要學習紅外碼還是發射紅外碼。并且IR01紅外遙控學習模塊使用了CH554T芯片,此芯片是一款兼容MCS51指令集,其79%的指令是單字節單周期指令,平均指令速度比標準MCS51快8~15倍,可支持24MHz系統主頻,內置16K程序存儲器ROM和256字節內部iRAM,此芯片還內置了ADC數模轉換、觸摸按鍵電容檢測、雙異步串口,支持4種復位信號源,內置上電復位,支持軟件復位和看門狗溢出復位,可選引腳外部輸入復位;還使用了FT24C128A存儲器,是一種電可擦除PROM,電壓可允許低至1.8V,待機電流和工作電流分別為1μA和1mA,具有頁寫能力。IR01 紅外遙控學習模塊連接電路如下圖4-2所示:
- 矩陣鍵盤電路
矩陣鍵盤電路采用的是4×4矩陣鍵盤,通過并行與STC89C52RC芯片的P1端口進行連接,STC89C52RC芯片內部一直使用I/O電平掃描,先進行行掃描,再進行掃描,就能讀取那個按鍵按下。使用4×4矩陣鍵盤是因為可以使用多個按鍵學習,方便可以管控多個紅外設備。4×4矩陣鍵盤連接電路如下圖4-3所示:
- LCD1602顯示電路
LCD1602液晶顯示模塊采用總線并行與STC89C52RC芯片進行通信,通過分析LCD1602液晶顯示模塊的讀寫操作時序圖,寫指令時,單片機給LCD1602液晶顯示模塊的RS引腳使能為高電平、RW和EN引腳使能為低電平,就可以把指令數據送到D0D7;寫數據時,CD1602液晶顯示模塊的RS引腳、RW和EN引腳都要使能為低電平,就可以把數據送到D0D7用以顯示出來。LCD1602液晶顯示模塊的VL引腳接了一個10K的可調電阻,用于調節LCD1602液晶顯示模塊的背光亮度。LCD1602顯示連接電路如下圖4-4所示:
- DC-5V電源電路
基于單片機紅外遙控器設計系統使用一個DC-5V電源接口,再接一個開關作為系統的電源開關,用以控制整個系統的電源輸入,方便使用前后的斷電和上電。DC-5V電源電路設計電路如下圖4-5所示:
- 系統軟件設計
- 主程序設計
系統主程序流程圖主要分為:模塊初始化、初始化顯示信息、學習/發射控制模式判斷、矩陣鍵盤掃描、LCD1602液晶顯示模塊顯示和紅外模塊學習/發射控制。矩陣按鍵有15個按鍵可以用于控制紅外模塊的學習和發射控制,當不同的按鍵按下,LCD1602液晶顯示模塊會顯示不同的按鍵信息;有一個按鍵用于紅外模塊的學習/發射控制模式切換鍵,當模式切換鍵按下,LCD1602液晶顯示模塊就會顯示當前是學習模式還是發射模式。不同的按鍵按下,IR01 的紅外遙控學習模塊接收到相應的訊號,就會進行紅外信號學習或者發送。程序流程圖如上圖5-1所示。
- 測試分析
在設計硬件電路的時候,要注意器件之間的安全距離,不能挨得太近,挨得太近容易產生干擾,導致一些模塊不能正常工作,特別是在線路得布局上,如果兩個電路線挨得太近,不保持一定得安全距離,就會很容易影響器件得工作,特別在通信方面容易產生干擾,導致接收和發送的訊號不正確,嚴重的會導致電路短接,造成整個系統燒毀。
在制作STC89C52RC單片機最小系統時,要注意復位電路的電容和電阻的選擇,因為STC89C52RC芯片時高電平復位有效,所以要選用帶正負極的鋁電解電容,不能選用沒有正負極的獨石電容和瓷片電容,獨石電容和瓷片電容只有低電平復位有效才會使用,不同的芯片的需要的復位電平時間不一樣,因此需要選用符合芯片最短的復位時間的電容和電阻;系統的電源指示燈需要的限流電阻也需要選合適的規格,電阻過大,指示燈無法點亮;起振電路的電容要選擇,常用的有22pF和33pF,使用的兩個電容大小要一致,不一致會導致芯片起振不正常,導致最小系統無法正常工作。當使用內部存儲器時,STC89C52RC單片機的EA引腳需要給高電平,這樣系統運行后才能訪問內部RAM,如果使用的時外部存儲器,則EA不用使能高電平;設計STC89C52RC單片機最小系統時,需要預留單片機的程序下載口,方便后續程序修改和調試。
評論