基于單片機的家用電話遠程遙控裝置設計
語音芯片ISD1420可錄制20 s語音信號,本裝置中共錄制語音信號:“請輸入密碼”、“密碼正確,請輸入功能健,按*鍵結束”、“密碼錯誤,請重新輸入”、“電器已開”、“電器已關閉”。
2 系統軟件設計
系統軟件設計主要由鈴流檢測、MT8870解碼、語音錄放、讀寫EEPROM、看門狗設置、密碼修改、密碼驗證、電器開關控制等組成。系統的工作流程如圖5所示。控制過程中,系統上電復位后,CPU根據外圍雙音頻譯碼電路的譯碼信息判斷出要選擇的電器,然后再得到要求進行的操作,并將單片機I/O的口相應位置0或置1,即可按要求實現對相應家用電器的控制。
(1)鈴流檢測模塊。由于整個電路無需中斷處理一些特殊的任務,所以軟件采用順序結構。鈴流檢測實質是單片機TIMER1對外部方波的計數。
(2)MT8870解碼模塊。DTMF發送與接收器MT8870未檢測到電話網上的雙音多頻信號時,將單片機的外部中斷口拉低,當檢測到雙音多頻信號并成功解碼輸出時會置高P3.2。因此程序可通過檢測P3.2口電平的高低來判斷是否有雙音多頻信號送往MT8870,一旦P3.2口電平置高,讀取P1口低4位數據并存儲。
(3)語音模塊。ISD1420語音芯片錄放音只需將相應的錄放音管腳拉低,送入相應的語音地址,即可完成錄放音功能。錄音時,先送P2口起始地址為0x90+Address,接著拉低錄音管腳。錄音完,再不斷播放錄音,尋找此段錄音結束時的地址,以確定下一段錄音的起始地址。
(4)EEPROM及看門狗功能模塊。單片機通過SPI串行總線向25045寫入指令、數據。25045在讀寫操作之前,需要先向它發出指令。25045芯片內包含有一個看門狗定時器,可通過軟件預置系統的監控時間。在看門狗定時器預置的時間內若沒有總線活動,則25045將從RESET輸出一個高電平信號使CPU復位。看門狗定時器的預置時間是通過25045的狀態寄存器的相應位來設定的。
(5)密碼修改和驗證模塊。密碼修改程序需注意按鍵的消抖動、密碼修改結束的確定、密碼的存儲。程序中使用第8個按鍵作為密碼修改結束的結束符。一旦第8個按鍵按下就結束密碼修改,將最終的密碼存儲到EEPROM中。密碼驗證比較容易,就是電話中輸入的密碼和EEPROM中的密碼進行逐個比較,如有一個不同就認為輸入的密碼有誤,返回一個“0”。程序中對EEPROM進行了兩次讀操作,以防第一次讀出數據有誤。
(6)電器開關控制模塊。電器開關控制模塊通過MT8870解碼數據對8路電器進行控制。該模塊程序一定程度上是MT8870模塊和放音模塊程序的疊加,另外加上簡單的P3口輸出操作。
3 結束語
系統借助家庭固定電話網絡傳送控制命令信號,由單片機系統進行命令分析,由繼電器控制家用電器,無需對固定電話或家電做太大改動,安裝方便、性能穩定、工作可靠,而且不影響電話的正常使用。
評論