系統中選擇的是51 系列的AT89C51芯片,AT89C51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8 位微處理器,俗稱單片機。該器件采用ATMEL 高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51 指令集和輸出管腳相兼容。由于將多功能8 位CPU 和閃爍存儲器組合在單個芯片中,ATMEL 的AT89C51 是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。AT89C51 是一個低功耗高性能單片機,40 個引腳,32 個外部雙向輸入/輸出(I/O)端口,同時內含2 個外中斷口,2 個16 位可編程定時計數器,2 個全雙工串行通信口,AT89C51 可以按照常規(guī)方法進行編程,也可以在線編程。
紅外發(fā)射電路模塊:單片機發(fā)出的信號如何被紅外發(fā)射管識別,發(fā)射管能否正常發(fā)射紅外信號是發(fā)射電路要解決的關鍵問題。要發(fā)射紅外信號,必須要有紅外發(fā)射器件。紅外發(fā)光二極管是一種能產生紅外光的發(fā)光二極管,目前大量使用的紅外發(fā)光二極管發(fā)出的紅外線波長為940nm 左右,外形與普通發(fā)光二極管相同,只是顏色不同。常見的紅外發(fā)射二極管有黑色,透明色,它與普通發(fā)光二極管的最大區(qū)別在于所發(fā)出的光為不可見光,而普通發(fā)光二極管發(fā)出的是各種顏色的可見光,通常,紅外發(fā)光二極管分為兩種結構形式:一種是遙控發(fā)射型紅外發(fā)光二極管(即最常用的手持遙控器所用的紅外發(fā)射二極管);一種是近距離發(fā)射型紅外發(fā)光二極管,這種二極管把紅外光的發(fā)射與接收共集為一體。由于本設計實現的是家居遙控,因此采用第一種即可。
如圖所示為系統遙控發(fā)射原理圖,P1.0 口為按鍵輸入口;P2.0 口為紅外發(fā)射端口,用于輸出38kHz 載波編碼,脈沖經9013(NPN)放大然后由紅外發(fā)射管輸出;第9 腳為單片機的復位腳,采用RC 手動復位電路;18、19 腳接晶振。
紅外接收電路模塊:接收電路和調光電路的實現均是通過繼電器實現的,給每一個繼電器串聯一個電阻,構成一個回路,本電路將四個繼電器回路并聯,連接在P0 口上,當四個繼電器均閉合時,燈最亮,當三個繼電器工作時,燈較亮,當兩個繼電器工作時燈次亮,當一個繼電器工作時,燈最暗,當四個繼電器都不工作時,燈泡處于關閉狀態(tài)。接收電路圖如圖6所示:
點評分析:
所用的紅外線接收器SM0038 的解調中心頻率為38KHz,故發(fā)射頻率也采用38kHz,本電路采用一路按鍵,一種編碼方式實現對電路的控制,接收端根據接收到的不同編碼個數實現燈的不同亮度的調節(jié)控制。每一次P1.0 口為低電平時,則確定鍵被按下,由P2.0 口發(fā)射一個編碼。接收端接收編碼時進行判斷,首個低電平是否大于2ms,如果是,再判斷是否是正確的編碼,如果是,num加1,亮度調暗一檔。本設計最大的難點是如何實現紅外信號的發(fā)射與接收,為了減少電路的繁瑣,可以使用單片機來實現軟件編碼解碼,能大大提高電路的靈活性,降低了成本,僅僅使用一個鍵就能實現對一個燈具的開關和亮度調節(jié),若是把一個按鍵開關改設成一個矩陣鍵盤,就可以實現對整個家里的燈具的開關和亮度控制,實用性很強。