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