?

基于單片機的智能電話控制系統軟件設計

2017-05-18 12:58馮若愚
漯河職業技術學院學報 2017年2期
關鍵詞:子程序中斷電器

趙 璐, 馮若愚

(漯河職業技術學院, 河南 漯河 462002)

基于單片機的智能電話控制系統軟件設計

趙 璐, 馮若愚

(漯河職業技術學院, 河南 漯河 462002)

本設計基于STC89C52單片機控制單元,通過通信、遙控方式,讓用戶只需通過電話機(固定電話或移動電話)輸入簡單命令就可以實現對家電的遠程控制,操作簡單便捷。

單片機;智能電話;控制系統;軟件設計

1 研究背景

隨著計算機技術和電信業的發展,通過電話線進行的遠程通信得到了越來越多的應用。人們通常采用MODEM進行通信,但只是應用在通信數據量不大、對通信速率要求不高的場合,所以可以考慮采用DTMF通信方式,它具有接口簡單、成本低廉、可靠性高的特點。目前,在電話控制器和受控家用電器之間的通訊鏈路主要有兩種方式:一種是采用直觀方式,由電話控制器通過一對雙芯電纜直接與家用電器控制器相連進行信號傳輸。這種方式成本較低,但家庭安裝比較麻煩,同時需要在墻上走明線,會破壞裝修的整體效果。另一種方法是采用電力載波通訊技術,用家庭內現有的交流電源線作為通訊鏈路,安裝較為方便,只要插入墻上的電源插座即可達到通訊控制的要求。另外,社會經濟水平的不斷提高促使家庭自動化的拓展,人們希望能夠隨時隨地對家庭安全實行遠程監控,對家電實行遠程控制。由于電話線路是全國聯網的,可以跨省市實現遠距離遙控,因此該方法具有較高的實用價值。

筆者設計的電話遠程控制系統,用于具有單片機控制的家用電器的電話遙控,用戶可通過任意一部雙音多頻電話(包括手機、電話分機)對自己家庭所安裝的各種電器(如電飯鍋、微波爐、電視機等)進行開機、停機等遙控操作。

2 系統控制流程

所設計的智能電話控制系統是以STC89C52單片機為控制中心,主要由鈴流檢測電路、摘掛機控制開關電路、DTMF信號譯碼電路、語音提示電路、電器設備驅動電路等部分組成。因此,軟件設計也分為系統初始化、振鈴檢測、模擬摘掛機、雙音頻信號分析處理、控制電器、語音提示等部分。采用匯編語言編程,采用HK-51系列仿真開發系統完成匯編語言的編譯,再通過STC-ISP-V3.5調試將程序傳送給單片機。系統的主程序流程如圖1所示。

系統軟件主要包括監控管理主程序和中斷子程序,單片機響應用戶操作和送出控制信號通過中斷子程序來完成。遙控裝置通電后,單片機主程序負責系統初始化,設置中斷和計數器的值。當有鈴流到來且連續振鈴達到一定次數時,在振鈴檢測子程序中送出模擬摘機控制信號,裝置實現模擬摘機,并語音提示用戶輸入密碼,此時進入密碼檢驗程序。用戶在遠端話機上輸入密碼,MT8870解碼雙音頻信號,將用戶按鍵的8421碼送入單片機,單片機將用戶輸入和內置在AT24C02存儲器中的密碼作比較,如果用戶輸入的密碼正確,則可以操作電器或者修改密碼;如果用戶連續三次輸入的密碼錯誤,系統則認為此用戶無權對電器進行操作,于是通過外圍電路實現掛機,并返回主程序重新初始化中斷和計數器。

圖1 系統主流程圖

用戶操作電器和修改密碼是在控制電器部分完成的。如果用戶操作電器,則單片機進入電器操作子程序,首先接受MT8870解調的碼字,然后處理用戶的操作,再通過P1.4端口連接的電源控制電路實現開關電器。密碼修改與此程序相同,用戶可在遠端話機修改AT24C02芯片存儲器中記錄的密碼。在用戶操作過程中,單片機根據用戶的操作不斷給出ISD1420的地址信息和控制信息,將系統的工作狀態反饋給用戶。

3 系統各模塊軟件設計

3.1 密碼檢測部分

在系統初始化時把原始密碼寫入AT24C02存儲芯片的存儲空間內,密碼的位數“5”賦給R7。當系統摘機時,語音提示輸入密碼,單片機把解碼后的數據存儲在38H開始的存儲空間內。然后單片機對兩個存儲地址的內容逐位進行比較,直到完全相等時才能轉到下一進程,若有某一位碼不同,程序就轉到出錯程序。密碼檢測子程序如圖2。

3.2 語音提示部分

本功能模塊主要是產生信號提示音,方便不同的使用者。本功能模塊主要是產生提示語音,給使用者以不同的操作提示。本設計分五段錄音,分別為“請輸入密碼”、“請選擇控制號”、“請輸入新密碼”、“請操作電器”、“操作成功”。根據語音芯片ISD1420的工作原理和本設計的功能要求,系統選擇地址模式,即A6、A7至少有一個為低電平,并將芯片內部存儲器分為五段:00H-20H、20H-40H、40H-60H、60H-80H,每段為32個存儲單元,為4s長時間的錄音。觀察地址,發現低三位始終為“0”,因此將低三位直接接地,高五位與P2口的低五位相連接。由硬件的接法可知,可以將地址依次轉化為0E0H、0E4H、0E2H、0E6H、0E1H。通過P2口將地址送給語音芯片,達到單片機控制語音芯片錄放音的效果。

在放音之前先將提示音錄制好,把所要提示的語音存放在每段地址里面,如果要放音的話,直接調用每一段語音子程序即可。錄音和語音子程序的流程分別如圖3和圖4。

3.3 密碼修改子程序

按下“*”鍵時,用戶進入密碼修改子程序,用戶可以設定想要修改的密碼。密碼修改的基本原理如下:把第一次新輸入的5位密碼存到AT24C02芯片內以43H地址開始的單元中,然后在第二次輸入新密碼時,每輸入一位與第一次輸入的新密碼校驗一次,若5位都校驗成功,則將43H開始的單元中的新密碼依次傳送給AT24C02芯片以30H開始的單元中,5位傳送完畢后,提示“操作成功”,密碼修改完畢。若第二次輸入的新密碼有其中一位和第一次輸入的不同,則修改密碼不成功,掛機返回。密碼修改子程序流程如圖5。

圖2 密碼檢測流程

圖3 錄音流程

圖4 語音流程

3.4 中斷子程序部分

在系統的軟件設計中,使用了中斷源INT1。INT1連接MT8870的STD端,當MT8870獲取有效雙音多頻信號后,STD電平由低變高,再反相為低,CPU檢測后進入INT1中斷,在中斷子程序中消除鍵抖,并指示P1口接收有效二進制代碼。消除鍵抖采用延時的方法。中斷子程序的流程如圖6。

4 調試

在軟件初始化后,調用振鈴檢測子程序,判斷是否有外來電話打入。當檢測到有鈴流時,在程序中設置T0工作方式為計數方式,累積次數達到6次時,系統自動摘機。這一單元的調試基本沒什么問題,只要把T0的工作方式設置好就行了。密碼檢測單元調試比較艱難,先調試一位密碼,然后再調試五位密碼。先設定R5為一位,即先設定一位密碼作測試。首先單步執行,到了等待INT1中斷時,按下“7”鍵的時間延長,直到程序執行到寫入地址為38H的存儲空間后才松手。密碼修改是在選擇控制號階段進行的,當用戶按“*”鍵時就進入密碼修改功能。

圖5 密碼修改流程

圖6 中斷子程序流程圖

5 結語

本系統可以通過電話隨時對異地的電器實現控制,用戶首先把本裝置的電話信號線并聯在電話線的兩端,插上電源線,打開電源開關,復位本裝置,使其正常工作。當用戶從異地打來電話時,本裝置接收到電話振鈴音,開始計數;當電話鈴聲計到六次時,裝置自動摘機,回送提示音提示請輸入密碼;當用戶輸入正確的密碼后,用戶就可以對裝置所連的電器進行選擇,然后根據需要對其進行開關控制。 用戶可以在一次“通話”中同時控制幾個電器,也可以按“*”鍵進行密碼修改,如果用戶控制完畢,可以按“#”鍵讓裝置自動掛機,結束“通話”。已經開啟的電器將保持其開啟狀態,直到下一次的“通話”控制使其關閉。

[1] 張建斌.智能DTMF編解碼器[J].現代通信,1999(12):26-27.

[2] 劉沛.基于ISD1420的語言報警器設計[J].現代電子技術,2004(12):19-21.

[3] Alan Shalloway,James R Trott . Design Patterns Explained[M].Trans on Industry Applications,2002, 38(2):167-193.

[責任編輯 吳??黓

2016-11-19

趙璐(1986-),女,河南漯河人,助教,主要從事自動化技術方面的教學及研究工作。

10.3969/j.issn.1671-7864.2017.02.006

TP311.52

A

1671-7864(2017)02-0020-04

猜你喜歡
子程序中斷電器
家中電器要“煥”新 這波惠民操作別錯過
奧田電器
基于FPGA的中斷控制器設計*
Linux中斷線程化分析及中斷延時測試
電器創新設計兩則
跟蹤導練(二)(5)
千里移防,衛勤保障不中斷
淺談子程序在數控車編程中的應用
子程序在數控車加工槽中的應用探索
西門子840D系統JOG模式下PLC調用并執行NC程序
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合