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