1 引 言
由于經(jīng)濟(jì)的快速發(fā)展,人們生活水平得到較大的提高,生活節(jié)奏也越來越快,為此家電遙控和家庭安全也為人們所需要和重視。以AT89C51單片機(jī)為核心通過電話進(jìn)行電器遙控和報(bào)警裝置主要解決這些問題。他的主要功能有:通過電話可以遙控16路電器通斷,遙控路數(shù)可以根據(jù)需要進(jìn)行擴(kuò)展;可以實(shí)現(xiàn)電器調(diào)壓調(diào)速控制,有密碼設(shè)定,保密安全性好;有語言提示,避免盲目操作;可以取消已輸入的操作命令;當(dāng)單片機(jī)接收到家中天然氣泄露、溫度超限和失竊信號(hào)后會(huì)自動(dòng)撥打預(yù)留電話并報(bào)告家中發(fā)生的情況。
2硬件電路設(shè)計(jì)
總體電路設(shè)計(jì)思路是:電話遙控報(bào)警器與家用電話采用并聯(lián)方式,當(dāng)有振鈴信號(hào)時(shí)單片機(jī)開始記數(shù),前10次鈴聲內(nèi)若有人接電話,則遙控報(bào)警器被屏蔽,不影響正常接聽電話,若10次鈴聲后無人接聽,約定遙控報(bào)警器自動(dòng)模擬掛機(jī),并發(fā)出提示音要求用戶輸入密碼,允許3次輸入錯(cuò)誤,并有2次提示輸入錯(cuò)誤重新輸入,若第3次輸入錯(cuò)誤則自動(dòng)掛機(jī)。密碼輸入確認(rèn)無誤后,發(fā)出提示音,提示用戶輸入要求執(zhí)行任務(wù)的電器代碼,代碼為3位數(shù)字加“#”字確認(rèn),前2位數(shù)字為電器代號(hào),范圍為1~16(假定控制電器為16個(gè)),第3位數(shù)為調(diào)壓調(diào)速的級(jí)數(shù),范圍為1~4(檔數(shù)根據(jù)需要確定),若電器無調(diào)壓調(diào)速,則第3位數(shù)無效。若同一任務(wù)所輸入的次數(shù)為偶數(shù),表示取消任務(wù)。若2次按鍵的時(shí)間間隔小于100mS,則第2次按鍵輸入無效,以防止抖動(dòng)。若前次按鍵后10 s無按鍵輸入,默認(rèn)為無任務(wù)輸入,自動(dòng)掛機(jī)。掛機(jī)后單片機(jī)把輸入任務(wù)送對(duì)應(yīng)輸出口執(zhí)行任務(wù),并保持狀態(tài)直到有新任務(wù)輸入。硬件電路主要包括震鈴檢測(cè)電路、模擬摘機(jī)和DTMF解調(diào)電路、調(diào)速電路、任務(wù)執(zhí)行電路、3路傳感器報(bào)警信號(hào)電路,以及語音電路部分。硬件電路框圖如圖1所示。
2.1振鈴檢測(cè)電路電路如圖2所示。電話線振鈴信號(hào)為25Hz,75~100 V。因此不能直接與IC電路連接,同時(shí)為了防雷擊,輸入端用1 μF/160v電容進(jìn)行隔離。鈴流聲經(jīng)全橋整流后再由光電耦合器.4N25耦合并經(jīng)40106整形后送89C51 TO計(jì)數(shù)器進(jìn)行振鈴次數(shù)記數(shù),當(dāng)TO記數(shù)為10次時(shí),按約定為有任務(wù)輸入,89C51輸出模擬摘機(jī)信號(hào)使線路接通,同時(shí)單片機(jī)控制語音提示電路“請(qǐng)用戶輸入密碼”并通過電話線路將輸入的密碼信號(hào)送人雙音頻DTMF解碼電路。
2.2 雙音頻解碼DTMF電路
DTMF電路采用典型的MF8870芯片作雙音頻解碼電路。當(dāng)單片機(jī)發(fā)出模擬摘機(jī)信號(hào)后使線路接通,在提示音后輸入密碼,如MF8870,確認(rèn)有信號(hào)輸入后,CIO端(15腳)為“1”,更新輸出鎖存器,并將輸入雙音頻信號(hào)解碼為4位二進(jìn)制數(shù)送輸出鎖存器D1~D4端,CIO端電平送EN端(10腳)允許輸出。單片機(jī)首先進(jìn)行密碼核對(duì),然后將MF8870送入的任務(wù)信號(hào)送RAM中存儲(chǔ),直到輸入任務(wù)結(jié)束。2.3語音提示及撥號(hào)電路
語音提示電路采用美國(guó)ISD公司語音芯片ISD25120,該芯片可錄放120 s,由于采用“直接模擬量存儲(chǔ)”(DAST)專利技術(shù),信號(hào)無需經(jīng)D/A,A/D轉(zhuǎn)換等處理過程,失真小,音質(zhì)好。片內(nèi)含振蕩器、話筒前置放大器、自動(dòng)增益控制、防混淆濾波器、平滑濾波器、揚(yáng)聲器驅(qū)動(dòng)及E2PROM陳列,外圍電路簡(jiǎn)單,體積小,3 V單電源供電,耗電省,維持電流僅1 μA。用該芯片只播放預(yù)錄好的語句,所以電路只用了放音功能,錄/放模式P/R接高電平,節(jié)電方式為工作接地。時(shí)鐘采用外時(shí)鐘,ISD25120外時(shí)鐘頻率f=512 kHz。ISD25120共有10條地址線,要這樣可以實(shí)現(xiàn)200 ms的信息分辨率,但由于我們只需要尋找每段錄音起始地址,所以可以降低分辨率使用,這里把A3~A0接地。A9和A8決定A7~A0的意義,當(dāng)A9和A8有一個(gè)為“0”時(shí),A7~A0表示為當(dāng)前錄放操作的起始地址,當(dāng)A9和A8有一不為“0”時(shí),A7~A0表示為不同的操作模式,在此A9和A8接地,表示A7~A0為地址數(shù)。當(dāng)需要放音時(shí),89C51使ISD25120片選端CE=“0”,同時(shí)給出A7~A0地址數(shù),在CE的下降沿鎖存,A9~A0具體設(shè)置如下:
這樣由A7~A4四條地址線可以最大尋址數(shù)為16個(gè),每段時(shí)間長(zhǎng)短可以由設(shè)計(jì)者根據(jù)需要決定。錄音段起始時(shí)間和此段起始地址數(shù)關(guān)系如下:時(shí)間=某段起始地址數(shù)(十進(jìn)制)×分辨率不同芯片分辨率不同,具體可查閱有關(guān)手冊(cè)。ISD25120分辨率為200 ms,本裝置1~7段為6 s,輸入有關(guān)的提示語。第8段為預(yù)留電話號(hào)碼,9~11段為15 s,用于撥號(hào)報(bào)警,12~16段共27 s備用。語音提示及撥號(hào)電路圖如圖3所示。
當(dāng)89C51收到由天然氣、溫度和失竊報(bào)警器送來信號(hào)后,89C51采用將預(yù)錄在ISD25120語音芯片中的雙音頻電話號(hào)碼及報(bào)警語音播出的方式進(jìn)行報(bào)警。由于DTMF雙音多頻數(shù)字信號(hào)和ISD語音芯片在電話和無線網(wǎng)絡(luò)傳輸?shù)恼Z音信號(hào)頻率范圍相同,所以此方案可行。但要注意以下問題:貝爾電話DTMF、信號(hào)標(biāo)稱誤差是±1.5%,當(dāng)電話晶體為3.579 45 MHz時(shí),產(chǎn)生的音調(diào)誤差范圍為+0.74%~-0.54%。而大部分ISD器件內(nèi)部振蕩器在全電壓和全溫度范圍內(nèi)誤差為2.25%,即:ISD器件誤差大于DTMF、標(biāo)準(zhǔn)誤差,如圖4所示。所以不能用ISD內(nèi)部振蕩器,而必須用外部晶體振蕩輸入信號(hào)。從圖4可以看出,最壞錄放音情況時(shí),提供給ISD器件的外部時(shí)鐘要求誤差小于0.75%,他可以是TTL或CMOS電平。對(duì)于ISD25120采樣速率為4 kHz,提供的時(shí)鐘頻率為512 kHz,單片機(jī)為6 MHz晶體,工作頻率為1 MHz,外加二分頻電路提供給ISD25120的頻率為5 kHz,與要求的512 kHz很接近,使用中不會(huì)造成任何問題。這里要求頻率變化誤差要小,而并不要求非常準(zhǔn)確的頻率值。
2.4電器控制電路
任務(wù)輸入后首先存放在存儲(chǔ)器中,當(dāng)任務(wù)輸入結(jié)束后,軟件首先刪除輸入偶次數(shù)的任務(wù)項(xiàng),然后將任務(wù)送相應(yīng)口線。若單片機(jī)口線夠用,則可以直接由口線送外電路執(zhí)行,軟件只需進(jìn)行任務(wù)口線狀態(tài)取反即可。若單片口線不夠用,則可以外加CD4514芯片進(jìn)行4~16線解碼的擴(kuò)展,但每路需加雙穩(wěn)態(tài)電路保持,并進(jìn)行電流放大,執(zhí)行的器件一般采用繼電器,繼電器觸頭容量應(yīng)根據(jù)用電器的功率大小決定,并留一定的余量。2.5調(diào)速調(diào)壓電路
調(diào)速調(diào)壓電路執(zhí)行器件選用雙向可控硅,單片機(jī)根據(jù)任務(wù)送不同脈沖個(gè)數(shù),則BT33馳張振蕩器沖放電時(shí)間不同,使雙向可控硅導(dǎo)通角大小不同而輸出電壓不同。3軟件設(shè)計(jì) 根據(jù)以上分析,軟件主流程圖如圖5所示。
除主程序外,子程序包括6位密碼核對(duì)子程序、(3位數(shù)+#)任務(wù)輸入核對(duì)子程序、提示音子程序、報(bào)警子程序、任務(wù)排除偶次輸入子程序、對(duì)方回鈴聲和忙音區(qū)分子程序以及10 ms,10 s,60 s延時(shí)子程序,編寫程序時(shí)注意二次按鍵時(shí)間小于10 ms時(shí)第2次按鍵無效,以防止抖動(dòng)。當(dāng)上次按鍵后連續(xù)10 s無按鍵輸入信號(hào),則默認(rèn)可以自動(dòng)掛機(jī)。報(bào)警撥號(hào)后對(duì)方回鈴音和忙音的區(qū)別:按規(guī)定回鈴音為1 s高電平4 s低電平方波信號(hào),忙音為高電平和低電平均為0.35 s方波信號(hào),回鈴音和忙音呼叫時(shí)間60 s,60 s后自動(dòng)掛機(jī)。當(dāng)有報(bào)警信號(hào)送單片機(jī)時(shí),通過軟件模擬摘機(jī),預(yù)留電話撥號(hào)輸出后,在接到第一聲回鈴音或忙音時(shí),定時(shí)器開始定時(shí),計(jì)數(shù)器開始計(jì)輸入的回鈴音或忙音的個(gè)數(shù)。然后判別在60 s內(nèi),若計(jì)數(shù)值》15個(gè)脈沖(這時(shí)無論60 s定時(shí)到否)則表示對(duì)方為忙音,應(yīng)掛機(jī),延時(shí)60 s后重?fù)芴?hào)呼叫。若在60 s內(nèi)計(jì)數(shù)《14個(gè)脈沖,則表示為回鈴音。若在少于12個(gè)脈沖中間回鈴音中斷表示對(duì)方有人接聽,可以播放報(bào)警信號(hào)對(duì)應(yīng)的報(bào)警語音。若60 s內(nèi)一直有回鈴音,且定時(shí)到,表示對(duì)方無人接聽,則掛機(jī)延時(shí)后重?fù)?,直到電話?bào)警完成。
4結(jié) 語
該裝置是現(xiàn)代家庭中一項(xiàng)十分有用的技術(shù),對(duì)裝有無線控制裝置的家庭,只需將執(zhí)行任務(wù)部分改為無線遙控發(fā)射即可。隨著可視電話的發(fā)展,安裝一個(gè)微型攝像頭,出差在外也可以對(duì)家中的情況一目了然。