基于單片機(jī)的代做遠(yuǎn)程電話控制系統(tǒng)畢業(yè)設(shè)計(jì)論文_第1頁
基于單片機(jī)的代做遠(yuǎn)程電話控制系統(tǒng)畢業(yè)設(shè)計(jì)論文_第2頁
基于單片機(jī)的代做遠(yuǎn)程電話控制系統(tǒng)畢業(yè)設(shè)計(jì)論文_第3頁
基于單片機(jī)的代做遠(yuǎn)程電話控制系統(tǒng)畢業(yè)設(shè)計(jì)論文_第4頁
基于單片機(jī)的代做遠(yuǎn)程電話控制系統(tǒng)畢業(yè)設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于單片機(jī)的遠(yuǎn)程電話控制系統(tǒng)摘要 隨著移動(dòng)通訊行業(yè)的快速發(fā)展手機(jī)已經(jīng)走進(jìn)了千家萬戶。在中國(guó)幾乎每個(gè)成年人都有一部手機(jī)。但是利用手機(jī)進(jìn)行遠(yuǎn)程控制的技術(shù)卻不是很多。如何利用手機(jī)這種通信方式控制日常生活中的電子產(chǎn)品是本設(shè)計(jì)所要研究的課題。眾所周知最近這些年通信行業(yè)和電子行業(yè)有了飛速的發(fā)展,在這個(gè)基礎(chǔ)上本文設(shè)計(jì)了一種通過GSM模塊實(shí)現(xiàn)遠(yuǎn)程控制的系統(tǒng)。此系統(tǒng)以 STC89C52RC 單片機(jī)和SIM900A 模塊及ISD1760語音芯片為電路核心,通過公共移動(dòng)通信網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)遠(yuǎn)程電器設(shè)備的智能化控制。關(guān)鍵詞: STC89C52RC 單片機(jī) 雙音多頻 DTMF 遠(yuǎn)程控制Abstract with the r

2、apid development of mobile phone mobile communications industry have already walked into thousands of households. In China almost every adult has a mobile phone. But for use in remote control technology is not a lot of mobile phone. How to use the mobile phone this communication mode control of elec

3、tronic products in daily life is the design of the subject to be studied. As everyone knows in recent years the communications industry and electronic industry has made rapid development, on this basis, this paper designs a system to realize remote control through the GSM module. This system is base

4、d on STC89C52RC MCU and SIM900A module and the ISD1760 speech chip as the core circuit, through the public mobile communication network, the realization of intelligent control of remote electrical equipment.關(guān)鍵詞: STC89C52RC 單片機(jī) 雙音多頻 DTMF 遠(yuǎn)程控制Keywords: STC89C52RC single chip dual tone multi frequency

5、DTMF remote control目錄1緒 論52系統(tǒng)設(shè)計(jì)原理73硬件電路設(shè)計(jì)103.1復(fù)位電路103.2控制輸出電路113.3晶振電路123.4 SIM900A模塊接口電路133.5 ISD語音芯片工作電路164軟件設(shè)計(jì)214.1程序說明214.2函數(shù)申明及變量定義224.3初始化函數(shù)244.4密碼校驗(yàn)函數(shù)254.5定時(shí)器中斷函數(shù)354.6通信中斷函數(shù)374.7主函數(shù)435調(diào)試分析及總結(jié)48參考文獻(xiàn)49基于單片機(jī)的遠(yuǎn)程電話控制系統(tǒng)本文出自 1緒 論21 世紀(jì)是信息時(shí)代,各種電信新技術(shù)推動(dòng)了人類社會(huì)文明的進(jìn)步。自從貝爾發(fā)明了電話機(jī),全世界各國(guó)的電話網(wǎng)絡(luò)發(fā)展迅速。電話遠(yuǎn)程遙控技術(shù)是通過通訊手

6、段對(duì)被控物體實(shí)施遠(yuǎn)距離的控制,常用的方式有無線電遙控、有線遙控、紅外線和超聲波遙控等。無線電遙控既是利用無線電信號(hào)對(duì)被控物體實(shí)施遠(yuǎn)距離控制。無線電遙控不可避免的須占用一定的無線電頻率資源,造成電磁污染;常規(guī)的有線遙控需進(jìn)行專門的布線,增加了投入;而紅外線、超聲波遙控則受距離所限。現(xiàn)有的遙控方式中,還有載波通信控制手段和基于無線尋呼的遙控方式。載波方式即通過電力線傳遞信息,該方式只能局限于同一變電所、同一變壓器所轄范圍內(nèi)。因此也存在距離問題,應(yīng)用范圍有限。基于無線尋呼的遙控方式利用了現(xiàn)有的尋呼頻率資源,不需占用額外的頻譜。而且,隨著尋呼網(wǎng)的全國(guó)聯(lián)網(wǎng),其遙控的距離基本不受限制。但該方式的受控方動(dòng)作

7、滯后于控制方的操作,不具備實(shí)時(shí)性,而且不具備很高的可靠性。手機(jī)電話遙控作為一較新的課題與常規(guī)的遙控方式相比,顯示出一定的優(yōu)越性,不需進(jìn)行專門的布線,不占用無線電頻率資源,避免了電磁污染。本次設(shè)計(jì)正是采取單片機(jī)做智能控制,利用不同的提示音達(dá)到對(duì)于不同操作的提示及對(duì)受控方狀態(tài)的信息反饋,從而使操作者能夠及時(shí)了解受控方信息,使產(chǎn)品達(dá)到交互式與智能化。本設(shè)計(jì)的各種電器接口、各項(xiàng)標(biāo)準(zhǔn)都嚴(yán)格遵循國(guó)家有關(guān)標(biāo)準(zhǔn),為以后的產(chǎn)品化提供了良好的基礎(chǔ)。設(shè)計(jì)為突出電話遙控的信息反饋功能,并使產(chǎn)品達(dá)到非常高性價(jià)比。故未對(duì)電話裝置的其他功能進(jìn)行進(jìn)一步的擴(kuò)展,而且所有使用的集成電路和其它元器件都盡量選擇廉價(jià)的。在該作品的基礎(chǔ)

8、上進(jìn)行了功能擴(kuò)展是很方便的。譬如:使用語音芯片音樂片作為信號(hào)音反饋,提高本設(shè)計(jì)的實(shí)用性。 隨著社會(huì)的發(fā)展和人們生活水平的提高越來越多的家用電器進(jìn)入了百姓的生活給大家?guī)砹撕芏嗟姆奖愫拖硎芡瑫r(shí)隨著電話在家庭中的普及利用電話實(shí)現(xiàn)家用電器遙控是未來的發(fā)展方向。遙控裝置是電子愛好者熱衷開發(fā)的產(chǎn)品,現(xiàn)在市場(chǎng)上的遙控裝置采用紅外線、超聲波、動(dòng)力載波、無線遙控及無線尋呼等方式。勿容置疑,這些裝置為滿足工農(nóng)業(yè)生產(chǎn)和人民生活的需要,帶來了便利。然而采用紅外線、超聲波方式的遙控裝置,遙控距離在 10m 以內(nèi);載波方式是通過電力線傳遞信息,該方式僅適用于同一變壓器所轄范圍;采用無線遙控,一方面,不可避免占用無線頻率

9、資源,造成電磁污染,另一方面也存在遙控距離的問題。 基于無線尋呼的遙控方式利用了現(xiàn)有的尋呼頻率資源,雖然遙控距離不受限制,但可靠性差,如處于信號(hào)弱區(qū)域內(nèi)的通信設(shè)備就無法實(shí)現(xiàn)控制。長(zhǎng)期以來困擾遙控裝置發(fā)展的關(guān)鍵問題,是如何實(shí)現(xiàn)遠(yuǎn)程電器設(shè)備可靠控制。基于單片機(jī)的智能電話控制系統(tǒng),借助公共電話網(wǎng)絡(luò),操作者可在語音提示下實(shí)現(xiàn)對(duì)遠(yuǎn)程設(shè)備的可靠控制。該裝置具有可靠性高不受傳輸距離限制不占用頻率資源等特點(diǎn)。適用于家庭、企事業(yè)單位、工業(yè)現(xiàn)場(chǎng)、商店等場(chǎng)所,利用手機(jī)或固定電話就能實(shí)現(xiàn)電器設(shè)備的控制和運(yùn)行狀態(tài)查詢. 電話遙控和常規(guī)的遙控方式相比不需進(jìn)行專門的布線不占用無線電頻率資源避免了電磁污染而且由于電話線路各地

10、聯(lián)網(wǎng)可以充分利用現(xiàn)有的電話網(wǎng)。 本文介紹了一種基于電話和單片機(jī)的家用電器遙控裝置。利用該裝置用戶可以通過任意一部雙音頻電話隨時(shí)開關(guān)、檢查家里電器的使用情況而且當(dāng)用戶要下班時(shí)還可以通過電話提前打開空調(diào)、電飯鍋等。2系統(tǒng)設(shè)計(jì)原理本設(shè)計(jì)基本思路是這樣,當(dāng)用戶需要控制家中電器時(shí),可用手機(jī)或固定電話撥打家中的電話號(hào)碼,在有人接聽或振鈴次數(shù)不大于6次(可由軟件設(shè)定)時(shí),控制系統(tǒng)認(rèn)為是電話呼叫信號(hào)或誤操作而不動(dòng)作,以避免干擾正常電話業(yè)務(wù)。當(dāng)振鈴次數(shù)大于6次時(shí),系統(tǒng)認(rèn)為是對(duì)插座和電器的控制,單片機(jī)控制摘機(jī)并啟動(dòng)語音提示電路發(fā)出提示音,要求用戶輸入密碼。如果密碼不正確,則語音提示重新輸入,當(dāng)輸入次數(shù)超過3次(可

11、由軟件設(shè)定)時(shí),系統(tǒng)將自動(dòng)掛機(jī)。如果輸入密碼經(jīng)系統(tǒng)確認(rèn)正確后,語音提示用戶各項(xiàng)操作所對(duì)應(yīng)的數(shù)字鍵,確認(rèn)操作完成后,系統(tǒng)自動(dòng)掛機(jī)。用戶撥打話機(jī)按鍵的過程中,按鍵時(shí)間間隔不能超過一定時(shí)間(一般設(shè)置為510秒),當(dāng)超過設(shè)定時(shí)間時(shí),系統(tǒng)同樣會(huì)自動(dòng)掛機(jī)。實(shí)物如圖2-1所示。圖2-1遠(yuǎn)程電話控制系統(tǒng)實(shí)物圖利用手機(jī)通信方式達(dá)到遠(yuǎn)程控制家用電器的系統(tǒng),其具體設(shè)計(jì)要求本系統(tǒng)必須滿足以下功能:1. 通過電話網(wǎng)對(duì)異地的電器實(shí)現(xiàn)控制(開/關(guān));2. 控制器可以實(shí)現(xiàn)自動(dòng)模擬摘掛機(jī); 3. 控制器設(shè)置密碼校驗(yàn);4.密碼輸入正確后,根據(jù)語音提示進(jìn)行操作。 系統(tǒng)必須具有以下單元功能模塊: 1. 鈴音檢測(cè)、計(jì)數(shù);2. 自動(dòng)摘掛

12、機(jī); 3. 密碼校驗(yàn); 4. 雙音頻信號(hào)解碼;5. 輸入數(shù)據(jù)分析; 6. 控制電器開關(guān); 7. 語音提示;本設(shè)計(jì)以 STC89C52RC 單片機(jī)為主控芯片,ISD1760作為語音芯片,還有SIM900A模塊組合在一起實(shí)現(xiàn)這些功能。單片機(jī)進(jìn)行信息處理及邏輯控制,通過USART接收外部操作指令形成各種控制信號(hào),并完成對(duì)于各種信息的記錄;接口電路提供單片機(jī)與SIM900A模塊的連接電路以及SIM900A模塊與ISD1760語音芯片的接口電路。本裝置使用普通電話機(jī)發(fā)出遙控命令信號(hào),以 DTMF 信號(hào)作為運(yùn)載遙控命令的媒體,而無需專門安裝遙控發(fā)送裝置,利用電話網(wǎng)絡(luò)傳送遙控命令或其他數(shù)字信息時(shí),只需把接收

13、裝置放在任何一個(gè)有通信信號(hào)的場(chǎng)所,就可以接收任何地方只要電話能通達(dá)的地方的遙控操作或其他數(shù)字信息,接收裝置就像一部普通電話機(jī),傳真機(jī)或其他電話用戶終端設(shè)備一樣被使用,因此不受距離的局限。用戶通過異地的電話機(jī)撥通本裝置所連接外線的電話號(hào)碼,本裝置如果檢測(cè)到振鈴六次,即六次響鈴后無人接,自動(dòng)摘機(jī),進(jìn)入密碼檢測(cè),密碼輸入正確后根據(jù)語音提示選擇被控制電器,然后輸入開或關(guān)進(jìn)行遙控電器,完成后返回。 系統(tǒng)基本工作原理是:系統(tǒng)上電,單片機(jī)復(fù)位,SIM900A模塊初始化系統(tǒng)開始工作,當(dāng)有電話打入時(shí),SIM900A模塊通過通信口將AT命令協(xié)議中的相關(guān)字符(“RING”)發(fā)送給單片機(jī),單片機(jī)檢測(cè)到字符判斷字符含義

14、,如果是來電響鈴則開始計(jì)數(shù)響鈴次數(shù)。當(dāng)振鈴次數(shù)為六次時(shí)約30 秒若沒有人接電話,表明沒有人在場(chǎng),系統(tǒng)一方面,啟動(dòng)語音提示電路,發(fā)出“您好!歡迎使用遠(yuǎn)程電話控制系統(tǒng),請(qǐng)輸入密碼,并以#鍵結(jié)束”;另一方面,發(fā)出自動(dòng)摘機(jī)控制信號(hào),如果用戶輸入密碼錯(cuò)誤超過三次(可由用戶任意設(shè)),則系統(tǒng)掛機(jī),如果輸入密碼正確,開始提示用戶控制電器,并發(fā)出“控制電飯煲請(qǐng)按1;控制熱水器請(qǐng)按2”的語音提示。此時(shí)用戶根據(jù)提示進(jìn)行操作,如果長(zhǎng)時(shí)間未有任何按鍵按下,則單片機(jī)自動(dòng)控制SIM900A模塊掛機(jī)。3硬件電路設(shè)計(jì)硬件電路如圖3-1所示。整個(gè)電路包括輸出控制部分,晶振電路,復(fù)位電路,電源部分,SIM900A模塊接口以及ISD

15、1760語音芯片部分。圖3-1硬件電路原理圖 3.1復(fù)位電路 復(fù)位電路如圖3-2所示。復(fù)位電路是保證在單片機(jī)運(yùn)行過程中出現(xiàn)不可預(yù)知的錯(cuò)誤時(shí),人為手動(dòng)的將單片機(jī)的程序拉回到起始點(diǎn)重新執(zhí)行程序功能。圖中S1是按鍵,R101為下拉電阻,C103為方抖動(dòng)濾波電容。根據(jù)STC89C52RC單片機(jī)的數(shù)據(jù)手冊(cè),我們知道單片機(jī)的RST復(fù)位管腳在接入高電平時(shí)會(huì)將單片機(jī)復(fù)位。因此RST管腳在圖中接入到下拉電阻的上端,當(dāng)按鍵未按下時(shí)此管腳一直為低電平;當(dāng)按鍵按下時(shí),此管腳為高電平,單片機(jī)復(fù)位。圖3-2單片機(jī)復(fù)位電路3.2控制輸出電路控制輸出電路如圖3-3所示。本設(shè)計(jì)中輸出部分我們采用LED的亮滅來表示控制邏輯是否正

16、確。圖中P2.2一路代表控制電飯煲,P2.3代表控制熱水器。圖中的R302和R301都是限流電阻,防止電流過大燒掉LED。本部分電路的工作原理為當(dāng)單片機(jī)管腳輸出低電平時(shí),LED的陰極被拉低,因此構(gòu)成回路,LED被點(diǎn)亮,當(dāng)單片機(jī)的管腳輸出高電平時(shí),LED的陰極被拉高,回路兩端的電平同樣高,回路中沒有電流流過,因此LED滅。圖3-3控制輸出電路3.3晶振電路 晶振電路如圖3-4所示。圖中的C101,C102和Y1構(gòu)成了晶振電路,這部分電路的作用是給單片機(jī)提供精準(zhǔn)的時(shí)鐘電路,保證單片機(jī)正常工作。圖3-4晶振電路3.4 SIM900A模塊接口電路SIM900A模塊接口電路如圖3-5所示。圖中TX和RX

17、為街道單片機(jī)的TX和RX管腳,OUT_SP+與OUT_SP-為音頻輸出接口可以直接接到小喇叭上。IN_SP+與IN_SP-為音頻輸入端因?yàn)楸驹O(shè)計(jì)中前端的音頻輸出是由ISD1760語音芯片提供的,這個(gè)輸出信號(hào)不能直接接到SIM900A模塊的音頻輸入端,要做一些衰減,圖中的R303和R304就是起到衰減的作用的。圖3-5 SIM900A模塊接口電路 SIM900A模塊如圖6-6所示。圖3-6 SIM900A模塊實(shí)物圖SIM900A模塊外形尺寸為長(zhǎng)*寬:3.6 *5(cm) 高度由插針及天線類型決定。關(guān)于引腳功能如表3-1所示。引腳名稱功能描述引腳名稱功能描述15STAT模塊運(yùn)行狀態(tài)status16

18、RST模塊復(fù)位低電平有效13POWN開機(jī)引腳14DTR數(shù)據(jù)終端已就緒11VMCU接MCU電源(可懸空)12MICP話筒差分輸入9RXD接MCU的TXD10MICN話筒差分輸入7TXD接MCU的RXD8SPKP耳機(jī)差分輸出5GND地6SPKN耳機(jī)差分輸出3GND地4GND地1+5V標(biāo)準(zhǔn)5V2VBTA3.8V-4.5V 可接鋰電池表3-1 SIM900A管腳功能最基本應(yīng)用所需引腳:1供電:1 3 或2 4)峰值電流需要2A(即標(biāo)準(zhǔn)5V 和 VBTA 選一即可。2通信:5 7 9三線UART串口通信(3.3V和5V均可)。3開機(jī):13引腳POWN,上升沿后維持電壓1S以上開機(jī),SIM900A的再次上

19、升沿可關(guān)機(jī),也可直接接高電平(3V和5V均可)。其他引腳:4. 14腳 DTR 可以用來進(jìn)入和退出休眠模式,詳見SIM900A官方手冊(cè)的3.5 省電。5. 15腳STATUS 可以檢測(cè)模塊開關(guān)機(jī)狀態(tài),詳見SIM900A官方手冊(cè)的3.4開機(jī)。6. 16腳 RTS 為低電平有效,最高3V,最好不用,出故障直接重啟。7. 音頻引腳:6、8、10、12使用時(shí)加濾波電容,官方手冊(cè)的3.9 音頻接口一節(jié)。指示燈閃爍描述:1. 電源指示燈:POWER 長(zhǎng)亮2. 網(wǎng)絡(luò)狀態(tài)信號(hào)燈:開機(jī)后有反應(yīng)網(wǎng)絡(luò)燈狀態(tài) SIM900A工作狀況 熄滅 SIM900A沒有工作 64ms亮/800ms熄滅 SIM900A 沒有找到網(wǎng)

20、絡(luò) 64ms亮/3000ms熄滅 SIM900A 注冊(cè)到網(wǎng)絡(luò) 64ms亮/300ms 熄滅 GPRS 通訊關(guān)于SIM卡的選擇:1. 中國(guó)大陸:移動(dòng)、聯(lián)通 (電信和3G卡不能用)2. 外國(guó):除臺(tái)灣地區(qū)的其他亞洲地區(qū)均可。3. 其他地區(qū)請(qǐng)選sim900版本。本設(shè)計(jì)當(dāng)中用到AT指令有握手測(cè)試指令:1.手動(dòng)發(fā)送AT回車,數(shù)據(jù)接收為AT OK。2.掛斷電話指令:自己掛斷電話 ATH 回車。3.來電時(shí):往GSM打電話時(shí),會(huì)出現(xiàn)RING字符。4.接聽電話指令,接聽對(duì)方電話 ATA 回車。3.5 ISD語音芯片工作電路 ISD1760語音芯片工作電路如圖3-7所示。ISD1700系列芯片是華邦公司新推出的單片

21、優(yōu)質(zhì)語音錄放電路,該芯片提供多項(xiàng)新功能,包括內(nèi)置專利的多信息管理系統(tǒng),新信息提示(vAlert),雙運(yùn)作模式(獨(dú)立&嵌入式),以及可定制的信息操作指示音效。芯片內(nèi)部包含有自動(dòng)增益控制、麥克風(fēng)前置擴(kuò)大器、揚(yáng)聲器驅(qū)動(dòng)線路、振蕩器與內(nèi)存等的全方位整合系統(tǒng)功能。 此類芯片的特點(diǎn): 1.可錄、放音十萬次,存儲(chǔ)內(nèi)容可以斷電保留一百年。 2.兩種控制方式,兩種錄音輸入方式,兩種放音輸出方式·可處理多達(dá)255段以上信息 3.有豐富多樣的工作狀態(tài)提示4.多種采樣頻率對(duì)應(yīng)多種錄放時(shí)間 5.音質(zhì)好,電壓范圍寬,應(yīng)用靈活,價(jià)廉物美 圖3-7 ISD1760語音芯片工作電路 圖中R1為限流電阻,D1為

22、指示燈,C1、C3為去耦電容,咪頭測(cè)的電阻與電容構(gòu)成了濾波電路。R2為振蕩電阻。ISD1760芯片可以工作在獨(dú)立按鍵工作模式,現(xiàn)就獨(dú)立按鍵模式做下簡(jiǎn)單介紹。ISD1700的獨(dú)立按鍵工作模式錄放電路非常簡(jiǎn)單(如圖3-7),而且功能強(qiáng)大。不僅有錄、放功能,還有快進(jìn)、擦除、音量控制、直通放音和復(fù)位等功能。這些功能僅僅通過按鍵就可完成。 在按鍵模式工作時(shí),芯片可以通過/LED管腳給出信號(hào)來提示芯片的工作狀態(tài),并且伴隨有提示音,用戶也可自定4種提示音效。 錄音操作:按下REC鍵,/REC管腳電平變低后開始錄音,直到松開按鍵使電平拉高或者芯片錄滿時(shí)結(jié)束。錄音結(jié)束后,錄音指針自動(dòng)移向下一個(gè)有效地址。而放音指

23、針則指向剛剛錄完的那段語音地址。 放音操作:放音操作有兩種模式,分別是邊沿觸發(fā)和電平觸發(fā),都由/PLAY管腳觸發(fā)。 1.邊沿觸發(fā)模式:點(diǎn)按一下PLAY鍵,/PLAY管腳電平變低便開始播放當(dāng)前段的語音,并在遇到EOM標(biāo)志后自動(dòng)停止。放音結(jié)束后,播放指針停留在剛播放的語音起始地址處,再次點(diǎn)按放音鍵會(huì)重新播放剛才的語音。在放音期間,LED燈會(huì)閃爍直到放音結(jié)束時(shí)熄滅。如果在放音期間點(diǎn)按放音鍵會(huì)停止放音。 2.電平放音模式:如果一直按住PLAY鍵,使/PLAY管腳電平持續(xù)為低,那么會(huì)將芯片內(nèi)所有語音信息播放出來,并且循環(huán)播放直到松開按鍵將/PLAY管腳電平拉高。在放音期間LED閃爍。當(dāng)放音停止,播放指針

24、會(huì)停留在當(dāng)前停止的語音段起始位置。 快進(jìn)操作:點(diǎn)按一下FWD按鈕將/FWD端拉低,會(huì)啟動(dòng)快進(jìn)操作。快進(jìn)操作用來將播放指針移向下一段語音信息。當(dāng)播放指針到達(dá)最后一段語音處時(shí),再次快進(jìn),指針會(huì)返回到第一段語音。當(dāng)下降沿來到/FWD端時(shí),快進(jìn)操作還要決定于芯片當(dāng)時(shí)的狀態(tài):1. 如果芯片在掉電狀態(tài)并且當(dāng)前播放指針的位置不在最后一段,那么指針會(huì)前進(jìn)一段,到達(dá)下一段語音處。 2.如果芯片在掉電狀態(tài)并且當(dāng)前播放指針的位置在最后一段,那么 指針會(huì)返回到第一段語音處。 3.如果芯片正在播放一段語音(非最后一段),那么此時(shí)放音停止,播放指針前進(jìn)到下一段,緊接著播放新的語音。 4.如果芯片正在播放最一段語音,那么此

25、時(shí),放音停止,播放指針返回到第一段語音,緊接著播放第一段語音。 擦除操作:擦除操作分為單段擦除和全體擦除兩種擦除方式,區(qū)別如下: 1.單個(gè)擦除:只有第一段或最后一段語音可以被單個(gè)擦除。點(diǎn)按一下ERASE健將/ERASE管腳拉低,這時(shí)具體的擦除情況要看播放指針的狀態(tài):1>如果芯片空閑并且播放指針指向第一段語音,則會(huì)刪除第一段語音,播放指針指向新的第一段語音(執(zhí)行擦除操作前的第二段) 2>如果芯片空閑并且播放指針指向最后一段語音,則會(huì)刪除最后一段語音,播放指針指向新的最后一段語音(執(zhí)行擦除操作前的倒數(shù)第二段)3>如果芯片空閑并且播放指針指向沒有指向第一或最后一段語音,則不會(huì)刪除任

26、何語音,播放指針也不會(huì)被改變 4>如果芯片當(dāng)前正在播放第一段或最后一段語音,點(diǎn)按下ERASE鍵會(huì)刪除當(dāng)前語音。 2.全體擦除:當(dāng)按下ERASE鍵將/ERASE管腳電平拉低超過2.5秒鐘,會(huì)觸發(fā)全體擦除操作,刪除全部語音信息。 復(fù)位操作:如果用RESET控制此管腳,建議/RESET管腳與地之間連接一個(gè)0.1F電容。當(dāng)/RESET被觸發(fā),芯片將播放指針和錄音指針都放置在最后一段語音信息的位置。 音量操作:點(diǎn)按一下VOL鍵將/VOL管腳拉低會(huì)改變音量大小。每按一下,音量會(huì)減小一檔,再到達(dá)最小檔后再按的話,會(huì)增加音量直到最大檔,如此循環(huán)。總共有8個(gè)音量檔供用戶選擇,每一檔會(huì)改變4dB。復(fù)位操作會(huì)

27、將音量檔放在默認(rèn)位置,即最大音量。 FT直通操作:將/FT管腳與GND短接,持續(xù)保持在低電平會(huì)啟動(dòng)直通模式。出廠設(shè) 定的是在芯片空閑狀態(tài),直通操作會(huì)將語音從Analn端直接通往喇叭端或AUD輸出口。在錄音期間開啟FT功能,會(huì)同時(shí)錄下Analn進(jìn)入的語音信號(hào)。 提示音(SE)編輯:ISD1700S中設(shè)計(jì)了4 種聲音來提示當(dāng)前的工作狀態(tài),分別為SE1,SE2,SE3,SE4。 SE1:錄音,下一曲或全部擦除的開始; SE2:錄音,單首擦除或最后一曲結(jié)束時(shí);SE3:無效地擦除操作;SE4:全部擦除成功。A)進(jìn)入SE 編輯模式: 1 首先保持FWD 為低3 秒左右,然后LED 會(huì)閃一下(若有SE1,會(huì)

28、同時(shí)播放SE1)。但是若當(dāng)前曲目為最后一曲或沒有錄音則LED 會(huì)閃兩下(若有SE2,會(huì)同時(shí)播放SE2)。 2保持FWD 為低,然后按下REC 使之為低直到LED 閃一下。 3 LED 再閃一下說明已經(jīng)進(jìn)入SE 編輯模式;進(jìn)入此模式后,當(dāng)前待編輯SE 為SE1。B)編輯: 進(jìn)入SE 編輯模式后可按原來的方式進(jìn)行錄音,放音和擦除。按FWD 可選SE1 至SE4,按FWD 后可根據(jù)LED 的閃動(dòng)次數(shù)來判斷當(dāng)前的SE,閃一下為SE1,閃兩下為SE2,依此類推。 C) 退出SE 編輯模式: 操作方法同進(jìn)入方法一樣。4軟件設(shè)計(jì)單片機(jī)編程軟件我們用的是Keil uVision軟件。Keil uVision是

29、德國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)c語言的語法來開發(fā),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用,而且大大的提高了工作效率和項(xiàng)目開發(fā)周期,他還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng), 使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision的集成開發(fā)環(huán)境中,這個(gè)集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管

30、理器,調(diào)試器。uVision IDE可為它們提供單一而靈活的開發(fā)環(huán)境。單片機(jī)程序上包括一些函數(shù)變量申明等,主程序及一些子函數(shù)。具體程序說明如下:4.1程序說明/* 實(shí)驗(yàn)名 : 遠(yuǎn)程電話控制系統(tǒng)* 使用的IO : P2.0、2.1、2.2、2.3;p2.0/2.1分別為輸出控制語音芯片播放及下一語音段,p2.2/2.3分別為輸出控制電飯煲機(jī)熱水器輸出。* 實(shí)驗(yàn)效果 : 1,來點(diǎn)響鈴超過6次(任意設(shè))進(jìn)入系統(tǒng) :2,密碼輸入次數(shù)超過3次(任意設(shè))掛機(jī) :3,密碼正確后提示用戶各項(xiàng)操作所對(duì)應(yīng)的數(shù)字鍵,確認(rèn)操作完成后,掛機(jī) :4,按鍵時(shí)間間隔不能超過5秒(可設(shè)5-10秒)當(dāng)超過設(shè)定值,掛機(jī)語音字段說明

31、 :1,歡迎進(jìn)入遠(yuǎn)程電話控制系統(tǒng) :2,請(qǐng)輸入密碼 :3,請(qǐng)重新輸入 :4,密碼錯(cuò)誤,再見 :5,謝謝使用,再見 :6,控制電飯煲請(qǐng)按1 :7,控制熱水器請(qǐng)按2*/4.2函數(shù)申明及變量定義#include<reg51.h>void UsartConfiguration();void Delay300ms(); /延時(shí)200ms void Init(); /初始化函數(shù)void Select_PLAY(unsigned char x); /定義選擇播放子函數(shù)void password_if(); /密碼判斷子程序void TimerConfiguration(); /定時(shí)器配置函數(shù)sb

32、it PLAY=P20; /播放控制sbit NEXT=P21; /播放下一個(gè)sbit CTRL1=P22; /控制輸出第一路sbit CTRL2=P23; /控制輸出第二路unsigned char RX_BUF30; /接收緩沖區(qū)unsigned char TX_BUF20; /發(fā)送緩沖區(qū)unsigned char RX_count=0; /接收字符計(jì)數(shù)變量unsigned char Ring_Count; /響鈴計(jì)數(shù)變量unsigned char Ring_Count_set; /響鈴計(jì)數(shù)變量設(shè)置值unsigned char Password_count; /密碼輸入次數(shù)unsigned

33、 char Password_count_set; /密碼輸入次數(shù)設(shè)置值unsigned char Password1; /初始密碼第一位unsigned char Password2; /初始密碼第二位unsigned char Password3; /初始密碼第三位unsigned char Password4; /初始密碼第四位unsigned char buf_Password1; /接收密碼第一位unsigned char buf_Password2; /接收密碼第二位unsigned char buf_Password3; /接收密碼第三位unsigned char buf_Pas

34、sword4; /接收密碼第四位unsigned char buf_password_count; /接收密碼計(jì)數(shù)unsigned char order1; /命令1unsigned char order2; /命令2unsigned char order3; /命令3unsigned char order4; /命令4unsigned char delay_time_set; /按鍵延時(shí)時(shí)間設(shè)定值unsigned char delay_time_bit; /按鍵延時(shí)時(shí)間標(biāo)志unsigned char Time; /記時(shí)變量4.3初始化函數(shù) 初始化函數(shù)將一些變量付給了初值,系統(tǒng)初始密碼為123

35、4。詳細(xì)請(qǐng)見如下程序:/* 函數(shù)名 : Init()* 函數(shù)功能 : 初始化函數(shù)* 輸入 : 無* 輸出 : 無*/void Init()RX_count=0; /接收字符計(jì)數(shù)變量清零Ring_Count=0; /響鈴計(jì)數(shù)變量Ring_Count_set=6; /響鈴計(jì)數(shù)變量設(shè)置值初始值為6次Password_count=0; /密碼輸入次數(shù),初始值為0Password_count_set=3; /密碼輸入次數(shù)設(shè)置值,初始值為3Password1=1;/初始密碼設(shè)為1234Password2=2;/初始密碼設(shè)為1234Password3=3;/初始密碼設(shè)為1234Password4=4;/初始

36、密碼設(shè)為1234buf_password_count=0; /接收密碼計(jì)數(shù),初值為0order1=0; /命令標(biāo)志初值為0order2=0; /命令標(biāo)志初值為0order3=0; /命令標(biāo)志初值為0order4=0; /命令標(biāo)志初值為0PLAY=1; /播放聲音禁止NEXT=1; /選擇播放聲音指針默認(rèn)不選擇CTRL1=1; /控制輸出第一路默認(rèn)不輸出CTRL2=1; /控制輸出第二路默認(rèn)不輸出delay_time_set=15; /按鍵間隔延時(shí)時(shí)間設(shè)定15秒delay_time_bit=0; /按鍵間隔延時(shí)時(shí)間標(biāo)志Time=0;4.4密碼校驗(yàn)函數(shù) 密碼校驗(yàn)函數(shù)的功能主要是當(dāng)接通了電話后,在用

37、戶輸入密碼后進(jìn)行判斷,根據(jù)密碼的正確與否來執(zhí)行不同的程序。/* 函數(shù)名 : password_if()* 函數(shù)功能 : 密碼判斷函數(shù)* 輸入 : 無* 輸出 : 無*/void password_if()buf_password_count=buf_password_count+1; /密碼接收計(jì)數(shù)加一 if (buf_password_count=1)/處理接收到的第一位密碼數(shù)據(jù) if (RX_BUFRX_count-2=0x31) /如果接收到的命令字符為1 buf_Password1=1; else if (RX_BUFRX_count-2=0x32) /如果接收到的命令字符為2 buf

38、_Password1=2; else if (RX_BUFRX_count-2=0x33) /如果接收到的命令字符為3 buf_Password1=3; else if (RX_BUFRX_count-2=0x34) /如果接收到的命令字符為4 buf_Password1=4; else if (RX_BUFRX_count-2=0x35) /如果接收到的命令字符為5 buf_Password1=5; else if (RX_BUFRX_count-2=0x36) /如果接收到的命令字符為6 buf_Password1=6; else if (RX_BUFRX_count-2=0x37) /如

39、果接收到的命令字符為7 buf_Password1=7; else if (RX_BUFRX_count-2=0x38) /如果接收到的命令字符為8 buf_Password1=8; else if (RX_BUFRX_count-2=0x39) /如果接收到的命令字符為9 buf_Password1=9; else if (RX_BUFRX_count-2=0x30) /如果接收到的命令字符為0 buf_Password1=0; else if (buf_password_count=2)/處理接收到的第二位密碼數(shù)據(jù) if (RX_BUFRX_count-2=0x31) /如果接收到的命令字

40、符為1 buf_Password2=1; else if (RX_BUFRX_count-2=0x32) /如果接收到的命令字符為2 buf_Password2=2; else if (RX_BUFRX_count-2=0x33) /如果接收到的命令字符為3 buf_Password2=3; else if (RX_BUFRX_count-2=0x34) /如果接收到的命令字符為4 buf_Password2=4; else if (RX_BUFRX_count-2=0x35) /如果接收到的命令字符為5 buf_Password2=5; else if (RX_BUFRX_count-2=0

41、x36) /如果接收到的命令字符為6 buf_Password2=6; else if (RX_BUFRX_count-2=0x37) /如果接收到的命令字符為7 buf_Password2=7; else if (RX_BUFRX_count-2=0x38) /如果接收到的命令字符為8 buf_Password2=8; else if (RX_BUFRX_count-2=0x39) /如果接收到的命令字符為9 buf_Password2=9; else if (RX_BUFRX_count-2=0x30) /如果接收到的命令字符為0 buf_Password2=0; else if (buf

42、_password_count=3)/處理接收到的第三位密碼數(shù)據(jù) if (RX_BUFRX_count-2=0x31) /如果接收到的命令字符為1 buf_Password3=1; else if (RX_BUFRX_count-2=0x32) /如果接收到的命令字符為2 buf_Password3=2; else if (RX_BUFRX_count-2=0x33) /如果接收到的命令字符為3 buf_Password3=3; else if (RX_BUFRX_count-2=0x34) /如果接收到的命令字符為4 buf_Password3=4; else if (RX_BUFRX_co

43、unt-2=0x35) /如果接收到的命令字符為5 buf_Password3=5; else if (RX_BUFRX_count-2=0x36) /如果接收到的命令字符為6 buf_Password3=6; else if (RX_BUFRX_count-2=0x37) /如果接收到的命令字符為7 buf_Password3=7; else if (RX_BUFRX_count-2=0x38) /如果接收到的命令字符為8 buf_Password3=8; else if (RX_BUFRX_count-2=0x39) /如果接收到的命令字符為9 buf_Password3=9; else

44、if (RX_BUFRX_count-2=0x30) /如果接收到的命令字符為0 buf_Password3=0; else if (buf_password_count=4)/處理接收到的第四位密碼數(shù)據(jù) if (RX_BUFRX_count-2=0x31) /如果接收到的命令字符為1 buf_Password4=1; else if (RX_BUFRX_count-2=0x32) /如果接收到的命令字符為2 buf_Password4=2; else if (RX_BUFRX_count-2=0x33) /如果接收到的命令字符為3 buf_Password4=3; else if (RX_B

45、UFRX_count-2=0x34) /如果接收到的命令字符為4 buf_Password4=4; else if (RX_BUFRX_count-2=0x35) /如果接收到的命令字符為5 buf_Password4=5; else if (RX_BUFRX_count-2=0x36) /如果接收到的命令字符為6 buf_Password4=6; else if (RX_BUFRX_count-2=0x37) /如果接收到的命令字符為7 buf_Password4=7; else if (RX_BUFRX_count-2=0x38) /如果接收到的命令字符為8 buf_Password4=8

46、; else if (RX_BUFRX_count-2=0x39) /如果接收到的命令字符為9 buf_Password4=9; else if (RX_BUFRX_count-2=0x30) /如果接收到的命令字符為0 buf_Password4=0; if (buf_password_count>4)/如果數(shù)據(jù)計(jì)數(shù)大于4位 buf_password_count=0; /超過計(jì)數(shù)最大值則清零 4.5定時(shí)器中斷函數(shù) 定時(shí)器中斷函數(shù)實(shí)現(xiàn)的功能為判斷用戶操作按鍵的時(shí)間,如果超過設(shè)定的值時(shí),則系統(tǒng)自動(dòng)掛機(jī)。/* 函數(shù)名 : TimerConfiguration()* 函數(shù)功能 : 配置定時(shí)器值* 輸入 : 無* 輸出 : 無*/ void TimerConfiguration() TMOD = 0x01; /選擇工作方式1 TH0 = 0x3C; /設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論