趙 璐, 馮若愚
(漯河職業(yè)技術(shù)學(xué)院, 河南 漯河 462002)
基于單片機(jī)的智能電話控制系統(tǒng)軟件設(shè)計
趙 璐, 馮若愚
(漯河職業(yè)技術(shù)學(xué)院, 河南 漯河 462002)
本設(shè)計基于STC89C52單片機(jī)控制單元,通過通信、遙控方式,讓用戶只需通過電話機(jī)(固定電話或移動電話)輸入簡單命令就可以實現(xiàn)對家電的遠(yuǎn)程控制,操作簡單便捷。
單片機(jī);智能電話;控制系統(tǒng);軟件設(shè)計
隨著計算機(jī)技術(shù)和電信業(yè)的發(fā)展,通過電話線進(jìn)行的遠(yuǎn)程通信得到了越來越多的應(yīng)用。人們通常采用MODEM進(jìn)行通信,但只是應(yīng)用在通信數(shù)據(jù)量不大、對通信速率要求不高的場合,所以可以考慮采用DTMF通信方式,它具有接口簡單、成本低廉、可靠性高的特點。目前,在電話控制器和受控家用電器之間的通訊鏈路主要有兩種方式:一種是采用直觀方式,由電話控制器通過一對雙芯電纜直接與家用電器控制器相連進(jìn)行信號傳輸。這種方式成本較低,但家庭安裝比較麻煩,同時需要在墻上走明線,會破壞裝修的整體效果。另一種方法是采用電力載波通訊技術(shù),用家庭內(nèi)現(xiàn)有的交流電源線作為通訊鏈路,安裝較為方便,只要插入墻上的電源插座即可達(dá)到通訊控制的要求。另外,社會經(jīng)濟(jì)水平的不斷提高促使家庭自動化的拓展,人們希望能夠隨時隨地對家庭安全實行遠(yuǎn)程監(jiān)控,對家電實行遠(yuǎn)程控制。由于電話線路是全國聯(lián)網(wǎng)的,可以跨省市實現(xiàn)遠(yuǎn)距離遙控,因此該方法具有較高的實用價值。
筆者設(shè)計的電話遠(yuǎn)程控制系統(tǒng),用于具有單片機(jī)控制的家用電器的電話遙控,用戶可通過任意一部雙音多頻電話(包括手機(jī)、電話分機(jī))對自己家庭所安裝的各種電器(如電飯鍋、微波爐、電視機(jī)等)進(jìn)行開機(jī)、停機(jī)等遙控操作。
所設(shè)計的智能電話控制系統(tǒng)是以STC89C52單片機(jī)為控制中心,主要由鈴流檢測電路、摘掛機(jī)控制開關(guān)電路、DTMF信號譯碼電路、語音提示電路、電器設(shè)備驅(qū)動電路等部分組成。因此,軟件設(shè)計也分為系統(tǒng)初始化、振鈴檢測、模擬摘掛機(jī)、雙音頻信號分析處理、控制電器、語音提示等部分。采用匯編語言編程,采用HK-51系列仿真開發(fā)系統(tǒng)完成匯編語言的編譯,再通過STC-ISP-V3.5調(diào)試將程序傳送給單片機(jī)。系統(tǒng)的主程序流程如圖1所示。
系統(tǒng)軟件主要包括監(jiān)控管理主程序和中斷子程序,單片機(jī)響應(yīng)用戶操作和送出控制信號通過中斷子程序來完成。遙控裝置通電后,單片機(jī)主程序負(fù)責(zé)系統(tǒng)初始化,設(shè)置中斷和計數(shù)器的值。當(dāng)有鈴流到來且連續(xù)振鈴達(dá)到一定次數(shù)時,在振鈴檢測子程序中送出模擬摘機(jī)控制信號,裝置實現(xiàn)模擬摘機(jī),并語音提示用戶輸入密碼,此時進(jìn)入密碼檢驗程序。用戶在遠(yuǎn)端話機(jī)上輸入密碼,MT8870解碼雙音頻信號,將用戶按鍵的8421碼送入單片機(jī),單片機(jī)將用戶輸入和內(nèi)置在AT24C02存儲器中的密碼作比較,如果用戶輸入的密碼正確,則可以操作電器或者修改密碼;如果用戶連續(xù)三次輸入的密碼錯誤,系統(tǒng)則認(rèn)為此用戶無權(quán)對電器進(jìn)行操作,于是通過外圍電路實現(xiàn)掛機(jī),并返回主程序重新初始化中斷和計數(shù)器。
圖1 系統(tǒng)主流程圖
用戶操作電器和修改密碼是在控制電器部分完成的。如果用戶操作電器,則單片機(jī)進(jìn)入電器操作子程序,首先接受MT8870解調(diào)的碼字,然后處理用戶的操作,再通過P1.4端口連接的電源控制電路實現(xiàn)開關(guān)電器。密碼修改與此程序相同,用戶可在遠(yuǎn)端話機(jī)修改AT24C02芯片存儲器中記錄的密碼。在用戶操作過程中,單片機(jī)根據(jù)用戶的操作不斷給出ISD1420的地址信息和控制信息,將系統(tǒng)的工作狀態(tài)反饋給用戶。
3.1 密碼檢測部分
在系統(tǒng)初始化時把原始密碼寫入AT24C02存儲芯片的存儲空間內(nèi),密碼的位數(shù)“5”賦給R7。當(dāng)系統(tǒng)摘機(jī)時,語音提示輸入密碼,單片機(jī)把解碼后的數(shù)據(jù)存儲在38H開始的存儲空間內(nèi)。然后單片機(jī)對兩個存儲地址的內(nèi)容逐位進(jìn)行比較,直到完全相等時才能轉(zhuǎn)到下一進(jìn)程,若有某一位碼不同,程序就轉(zhuǎn)到出錯程序。密碼檢測子程序如圖2。
3.2 語音提示部分
本功能模塊主要是產(chǎn)生信號提示音,方便不同的使用者。本功能模塊主要是產(chǎn)生提示語音,給使用者以不同的操作提示。本設(shè)計分五段錄音,分別為“請輸入密碼”、“請選擇控制號”、“請輸入新密碼”、“請操作電器”、“操作成功”。根據(jù)語音芯片ISD1420的工作原理和本設(shè)計的功能要求,系統(tǒng)選擇地址模式,即A6、A7至少有一個為低電平,并將芯片內(nèi)部存儲器分為五段:00H-20H、20H-40H、40H-60H、60H-80H,每段為32個存儲單元,為4s長時間的錄音。觀察地址,發(fā)現(xiàn)低三位始終為“0”,因此將低三位直接接地,高五位與P2口的低五位相連接。由硬件的接法可知,可以將地址依次轉(zhuǎn)化為0E0H、0E4H、0E2H、0E6H、0E1H。通過P2口將地址送給語音芯片,達(dá)到單片機(jī)控制語音芯片錄放音的效果。
在放音之前先將提示音錄制好,把所要提示的語音存放在每段地址里面,如果要放音的話,直接調(diào)用每一段語音子程序即可。錄音和語音子程序的流程分別如圖3和圖4。
3.3 密碼修改子程序
按下“*”鍵時,用戶進(jìn)入密碼修改子程序,用戶可以設(shè)定想要修改的密碼。密碼修改的基本原理如下:把第一次新輸入的5位密碼存到AT24C02芯片內(nèi)以43H地址開始的單元中,然后在第二次輸入新密碼時,每輸入一位與第一次輸入的新密碼校驗一次,若5位都校驗成功,則將43H開始的單元中的新密碼依次傳送給AT24C02芯片以30H開始的單元中,5位傳送完畢后,提示“操作成功”,密碼修改完畢。若第二次輸入的新密碼有其中一位和第一次輸入的不同,則修改密碼不成功,掛機(jī)返回。密碼修改子程序流程如圖5。
圖2 密碼檢測流程
圖3 錄音流程
圖4 語音流程
3.4 中斷子程序部分
在系統(tǒng)的軟件設(shè)計中,使用了中斷源INT1。INT1連接MT8870的STD端,當(dāng)MT8870獲取有效雙音多頻信號后,STD電平由低變高,再反相為低,CPU檢測后進(jìn)入INT1中斷,在中斷子程序中消除鍵抖,并指示P1口接收有效二進(jìn)制代碼。消除鍵抖采用延時的方法。中斷子程序的流程如圖6。
在軟件初始化后,調(diào)用振鈴檢測子程序,判斷是否有外來電話打入。當(dāng)檢測到有鈴流時,在程序中設(shè)置T0工作方式為計數(shù)方式,累積次數(shù)達(dá)到6次時,系統(tǒng)自動摘機(jī)。這一單元的調(diào)試基本沒什么問題,只要把T0的工作方式設(shè)置好就行了。密碼檢測單元調(diào)試比較艱難,先調(diào)試一位密碼,然后再調(diào)試五位密碼。先設(shè)定R5為一位,即先設(shè)定一位密碼作測試。首先單步執(zhí)行,到了等待INT1中斷時,按下“7”鍵的時間延長,直到程序執(zhí)行到寫入地址為38H的存儲空間后才松手。密碼修改是在選擇控制號階段進(jìn)行的,當(dāng)用戶按“*”鍵時就進(jìn)入密碼修改功能。
圖5 密碼修改流程
圖6 中斷子程序流程圖
本系統(tǒng)可以通過電話隨時對異地的電器實現(xiàn)控制,用戶首先把本裝置的電話信號線并聯(lián)在電話線的兩端,插上電源線,打開電源開關(guān),復(fù)位本裝置,使其正常工作。當(dāng)用戶從異地打來電話時,本裝置接收到電話振鈴音,開始計數(shù);當(dāng)電話鈴聲計到六次時,裝置自動摘機(jī),回送提示音提示請輸入密碼;當(dāng)用戶輸入正確的密碼后,用戶就可以對裝置所連的電器進(jìn)行選擇,然后根據(jù)需要對其進(jìn)行開關(guān)控制。 用戶可以在一次“通話”中同時控制幾個電器,也可以按“*”鍵進(jìn)行密碼修改,如果用戶控制完畢,可以按“#”鍵讓裝置自動掛機(jī),結(jié)束“通話”。已經(jīng)開啟的電器將保持其開啟狀態(tài),直到下一次的“通話”控制使其關(guān)閉。
[1] 張建斌.智能DTMF編解碼器[J].現(xiàn)代通信,1999(12):26-27.
[2] 劉沛.基于ISD1420的語言報警器設(shè)計[J].現(xiàn)代電子技術(shù),2004(12):19-21.
[3] Alan Shalloway,James R Trott . Design Patterns Explained[M].Trans on Industry Applications,2002, 38(2):167-193.
[責(zé)任編輯 吳??黓
2016-11-19
趙璐(1986-),女,河南漯河人,助教,主要從事自動化技術(shù)方面的教學(xué)及研究工作。
10.3969/j.issn.1671-7864.2017.02.006
TP311.52
A
1671-7864(2017)02-0020-04