用AT89C2051實現(xiàn)電話遠程控制家用電器
關(guān)鍵詞:AT89C2051 MC145436 ISD33060 電話遙控
1 主要芯片簡介
(1)AT89C2051
AT89C2051是Atmel公司生產(chǎn)的與MCS-51系列兼容的單片機。內(nèi)含:2K字節(jié)Flash EEPROM、128字節(jié)RAM、15根I/O引線、2個16位定時器/計數(shù)器、1個五向量兩級中斷結(jié)構(gòu),1個全雙工串行口、1個精密模擬比較器等,其引腳如圖1所示。
(2)MC15436
MC145436是Motorola公司生產(chǎn)的DTMF(雙音多頻)解碼器,負責將DTMF信號轉(zhuǎn)變?yōu)槎M制數(shù)字信號,其引腳如圖2所示。7腳(AIN)為信號輸入端;2、1、14、13腳D1、D2、D3、D4為解碼輸出端;12腳(DV)為輸出數(shù)據(jù)有效端,當輸入的DTMF信號經(jīng)IC解碼成功后該腳轉(zhuǎn)變?yōu)楦唠娖剑?腳(EN)為解碼輸出控制端;6腳(XEN)為CLK信號控制端。
(3)ISD33060
ISD33060是ISD公司的第3代3V的單片語音IC,其引腳如圖3所示。
該芯片總存儲時間達60s,其與外部微處理器的接口采用SPI(Serial Peripheral Interface)串行外設接口或MSI(Mircowire Serial Interface)微傳輸線串行接口,ISD33060的錄放音時間可任意進行分段,每段最短長度為150ms。
使用SPI接口協(xié)議時,主要用到5條控制線:
①1腳(SS)--芯片選擇輸入端,低電平有效;
②2腳(MOSI)--串行數(shù)據(jù)輸入端,ISD芯片從該腳接收來自單片機的控制命令數(shù)據(jù);
③3腳(MISO)--串行數(shù)據(jù)輸出端,單片機從該腳獲得ISO的返回數(shù)據(jù);
④28腳(SCLk)--SPI接口串行時鐘輸入,用于同步數(shù)據(jù)的傳送;
⑤25腳(INT)--當語音放結(jié)束或錄放音溢出時,該腳變低電平,在下一個SPI周期開始時,該信號被清除并返回高電平。
2 硬件原理圖
硬件原理如圖4所示。上電后單片機在不斷查詢P1.4腳。無來電時,P1.4呈高電平,當有鈴流來到時,光電耦合器PC817導通,P1.4呈現(xiàn)低電平。單片機檢測到P1.4的低電平后,為了防止正常來電話本裝置過快動作,先延時一段時間(這里初定為7s),然后再查詢有無鈴流存在,如沒有,繼續(xù)進入查詢狀態(tài);如還有,則P3.7輸出高電平,驅(qū)動9012導通,繼電器J動作,接通線路。這時P1.5、P1.6、P1.7、P3.0、P3.1發(fā)出配合信號,啟動語音電路ISD33060,通過13腳AUDOUT端發(fā)出語音提示:"請輸入密碼,以#字結(jié)束"。用戶聽到提示后,通過電話發(fā)出DTMF密碼信號,此信號通過C1進入MC145436的AIN腳,經(jīng)內(nèi)部解碼得到4位二進制信號從D1~D4腳輸出;同時DV端輸出高電平,單片機不斷查詢P3.2腳,將密碼信號從P1.0~P1.3端輸入,檢測到"#"字信號即0CH后說明已輸入完密碼,然后判斷密碼是否正確。不正確,可輸入3次,3次再不正確就結(jié)束。如正確,則ISD33060再發(fā)語音提示:"請選擇:1開燈,2關(guān)燈,3開空調(diào),4關(guān)空調(diào),5開總閘,6關(guān)總閘,7改密碼,8退出"(這里初定只對燈具、空調(diào)和總閘進行控制,也可改為控制其它電器)。單片機再通過MC145436接收控制選擇,如想開空調(diào),則用戶發(fā)出信號3,單片機P3.4送出高電平,控制固態(tài)繼電器SSR2動態(tài),使空調(diào)運轉(zhuǎn);如想退出,則用戶通過電話按8,單片機P3.7送出低電平,9012截止,J切斷線路。每次可進行多個電器的控制。
圖4
3 軟件設計
主程序框圖如圖5所示。
圖5
4 結(jié)束語
本裝置只控制3種電器,通過改進完全可以控制更多電器;還可用來遙控開鎖,或作為遠程報警器。
評論