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