電話遠(yuǎn)程智能遙控系統(tǒng)設(shè)計(jì)_第1頁
電話遠(yuǎn)程智能遙控系統(tǒng)設(shè)計(jì)_第2頁
電話遠(yuǎn)程智能遙控系統(tǒng)設(shè)計(jì)_第3頁
電話遠(yuǎn)程智能遙控系統(tǒng)設(shè)計(jì)_第4頁
電話遠(yuǎn)程智能遙控系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(jì)畢業(yè)論文 題目:電話遠(yuǎn)程智能遙控系統(tǒng)設(shè)計(jì) 摘要本文主要介紹了一種以單片機(jī)AT89C51和雙音多頻解碼集成電路MT8870為核心,通過電話線路遙控的遠(yuǎn)程多路智能控制器。該系統(tǒng)實(shí)用、功能靈活多樣,可以對(duì)被遙控對(duì)象的狀態(tài)進(jìn)行查詢以及控制,可以廣泛的應(yīng)用于家用電器或者其它場所的各種控制設(shè)備。關(guān)鍵詞:電話遙控、雙音頻編解碼、遠(yuǎn)程多路智能控制器AbstractThis paper presents a AT89C51 to SCM and DTMF decoding IC MT8870 as the core, through the telephone lines of long-range m

2、ulti-channel remote intelligent controller. The system practical, flexible and diverse functions, remote control can be targeted for state control and can be widely used in household appliances or other places of control equipment. Key words: telephone remote control, dual-audio codecs, long-range m

3、ulti-channel intelligent controller 目 錄第一章 緒論1第二章 總體設(shè)計(jì)2第三章 系統(tǒng)設(shè)計(jì)可行性分析33.1 總體設(shè)計(jì)分析33.2 硬件模塊63.2.1 自動(dòng)摘掛機(jī)63.2.2 振鈴音的檢測63.2.3 控制電器63.2.4 雙音頻解碼73.3 軟件模塊73.3.1 信號(hào)音計(jì)數(shù)73.3.2 密碼檢測73.3.3 信號(hào)分析處理7第四章 硬件單元電路設(shè)計(jì)84.1 振鈴檢測電路84.2 模擬摘掛機(jī)電路94.3 雙音頻解碼104.4 信號(hào)音提示電路114.5 電器控制電路13第五章 軟件設(shè)計(jì)145.1 信號(hào)音發(fā)聲部分145.2 密碼檢測部分185.3 密碼修改部分1

4、95.4 控制電器部分215.5 振鈴計(jì)數(shù)部分23第六章 系統(tǒng)調(diào)試236.1 整體調(diào)試236.2 硬件單元電路246.2.1 5V穩(wěn)壓電源246.2.2 振鈴音檢測246.2.3 模擬摘掛機(jī)256.2.4 控制電器266.2.5 雙音頻檢測276.3 軟件程序調(diào)試276.3.1 軟件系統(tǒng)設(shè)置276.3.2 提示音信號(hào)286.3.3 密碼檢測306.4 聯(lián)機(jī)在線調(diào)試32第七章 系統(tǒng)使用說明33結(jié) 論35參考文獻(xiàn)36致 謝37第一章 緒論21世紀(jì)是信息時(shí)代,各種電信新技術(shù)推動(dòng)了人類文明的進(jìn)步。自從1876年,Alexander Graham Bell(貝爾)發(fā)明電話以來,世界各國的電話網(wǎng)絡(luò)發(fā)展非常

5、迅速。 進(jìn)十年來,中國的固定電話業(yè)務(wù)呈現(xiàn)出舉世矚目的快速增長。1997年8月局用電話交換機(jī)總?cè)萘客黄?億門,網(wǎng)絡(luò)規(guī)模躍居世界第二位,1999年7月固定電話用戶總數(shù)突破1億戶。 現(xiàn)代電話網(wǎng)絡(luò)是由交換機(jī)和電話傳輸線共同組成,它的性能已經(jīng)有了很大的進(jìn)展,而且可靠性非常高。 遙控技術(shù)是通過一定的手段對(duì)被控物體實(shí)施一定距離的控制,常用的方式有無線電遙控、有線遙控、紅外線和超聲波遙控等。無線電遙控既是利用無線電信號(hào)對(duì)被控物體實(shí)施遠(yuǎn)距離控制。無線電遙控不可避免的須占用一定的無線電頻率資源,造成電磁污染;常規(guī)的有線遙控需進(jìn)行專門的布線,增加了投入;而紅外線、超聲波遙控則受距離所限?,F(xiàn)有的遙控方式中,還有載波通

6、信控制手段和基于無線尋呼的遙控方式。載波方式即通過電力線傳遞信息,該方式只能局限于同一變電所、同一變壓器所轄范圍內(nèi)。因此也存在距離問題,應(yīng)用范圍有限?;跓o線尋呼的遙控方式利用了現(xiàn)有的尋呼頻率資源,不需占用額外的頻譜。而且,隨著尋呼網(wǎng)的全國聯(lián)網(wǎng),其遙控的距離基本不受限制。但該方式的受控方動(dòng)作滯后于控制方的操作,不具備實(shí)時(shí)性,而且不具備很高的可靠性。 電話遙控作為一較新的課題與常規(guī)的遙控方式相比,顯示出一定的優(yōu)越性,不需進(jìn)行專門的布線,不占用無線電頻率資源,避免了電磁污染。同時(shí),由于電話線路各地聯(lián)網(wǎng),可以充分利用現(xiàn)有的電話網(wǎng),因此遙控距離可跨省市,甚至跨越國家?;陔娫掃b控的諸多優(yōu)點(diǎn),本文對(duì)其進(jìn)

7、行更為詳細(xì)的講解及介紹,并設(shè)計(jì)出了實(shí)用的成品。第二章 總體設(shè)計(jì)電話智能遙控器由單片機(jī)構(gòu)成主控部分,進(jìn)行主要的信息處理,接收外部操作指令形成各種控制信號(hào),并完成對(duì)于各種信息的記錄;接口電路提供單片機(jī)與電話外線的接口。其中包括鈴流檢測、摘掛機(jī)控制、忙音檢測、雙音頻DTMF識(shí)別,及語音提示電路。系統(tǒng)原理框圖如圖2.1所示 圖2.1系統(tǒng)原理框圖 語音提示電路是該作品重要組成部分。為了降低本裝置的造價(jià),作品的提示音使用程序產(chǎn)生。語音提示電路受單片機(jī)的控制產(chǎn)生相應(yīng)的提示音提示,并通過反饋電路反饋至電話外線。從而使操作者對(duì)電器的操作達(dá)到交互式,并能即時(shí)了解有關(guān)的信息;顯示電路用于狀態(tài)設(shè)置時(shí)的顯示;控制部分即

8、受控的終端,如前所述,可通過接駁不同的終端并對(duì)電話進(jìn)行必要的改動(dòng)從而達(dá)到功能的擴(kuò)展。這一點(diǎn),可使產(chǎn)品達(dá)到系列化。 本系統(tǒng)的每一個(gè)接口電路(振鈴檢測、模擬摘掛機(jī)、語音反饋、雙音頻解碼等)都已經(jīng)經(jīng)過實(shí)際的交換機(jī)在線實(shí)驗(yàn),具有很強(qiáng)的實(shí)用性。本系統(tǒng)使用最簡單的電路、最便宜的電路芯片實(shí)現(xiàn)了完善的功能。本系統(tǒng)還有許多可以添加的功能,具有很強(qiáng)的市場前景。 本裝置并聯(lián)于電話機(jī)的兩端,不會(huì)影響到電話機(jī)的正常使用。用戶通過異地的電話機(jī)撥通本裝置所連接外線的電話號(hào)碼,通過市局交換機(jī)向電話機(jī)發(fā)出振鈴信號(hào)。本裝置如果檢測到振鈴五次,即五次響鈴后無人接,自動(dòng)摘機(jī),進(jìn)入密碼檢測,輸入正確后選擇被控制電器,然后輸入開或關(guān)進(jìn)行

9、遙控電器,完成后返回。第三章 系統(tǒng)設(shè)計(jì)可行性分析3.1 總體設(shè)計(jì)分析根據(jù)電話遠(yuǎn)程智能遙控系統(tǒng)的具體設(shè)計(jì)要求: 通過電話網(wǎng)對(duì)異地的電器實(shí)現(xiàn)控制(開/關(guān)); 控制器可以實(shí)現(xiàn)自動(dòng)模擬摘掛機(jī); 控制器設(shè)置密碼校驗(yàn); 我設(shè)計(jì)此系統(tǒng)必須具有以下單元功能模塊: 鈴音檢測、計(jì)數(shù); 自動(dòng)摘掛機(jī); 密碼校驗(yàn); 在線修改密碼; 雙音頻信號(hào)解碼; 輸入信息分析; 控制電器開關(guān); 電器狀態(tài)查詢; 忙音檢測;根據(jù)電話機(jī)和交換機(jī)發(fā)出的不同信號(hào)音以及電話線各種狀態(tài)的不同要求,我結(jié)合實(shí)際情況對(duì)具體的單元功能模塊作出軟件或硬件上的不同分工,具體如下。理論上交換機(jī)所發(fā)出的各種信號(hào)音都可以通過軟件編程而識(shí)別,即通過單片機(jī)發(fā)出的脈沖信

10、號(hào)來檢測信號(hào)音單位時(shí)間內(nèi)的脈沖個(gè)數(shù)計(jì)算出其頻率,從而完成信號(hào)音識(shí)別。但是從系統(tǒng)的可靠性和程序的結(jié)構(gòu)設(shè)計(jì)上分析,我選擇了硬件來解決振鈴音檢測、忙音檢測、雙音頻信號(hào)解碼等功能模塊。自動(dòng)摘掛機(jī)和電器的控制必須使用具體硬件電路來實(shí)現(xiàn)。振鈴音計(jì)數(shù)、忙音計(jì)數(shù)、密碼校驗(yàn)、在線修改密碼、輸入信息分析、電器狀態(tài)查詢等功能模塊使用軟件編程方式要比硬件電路簡單的多,實(shí)現(xiàn)也很容易。綜上所述,我設(shè)計(jì)信號(hào)音檢測、自動(dòng)摘掛機(jī)、控制電器、雙音頻解碼等功能模塊使用硬件電路實(shí)現(xiàn)。而信號(hào)音計(jì)數(shù)、密碼校驗(yàn)、在線修改密碼、信息分析、電器狀態(tài)查詢等功能模塊用軟件編程完成。 下面就硬件以及軟件實(shí)現(xiàn)的電路分別進(jìn)行具體分析,電路圖如下圖3-1

11、:圖3-1總原理電路圖3.2 硬件模塊本作品使用了大量的硬件電路完成部分功能模塊,其目的就是充分利用硬件電路的可靠性、穩(wěn)定性,使整體電路達(dá)到比較高的穩(wěn)定性。3.2.1 自動(dòng)摘掛機(jī)因?yàn)槌炭仉娫捊粨Q機(jī)對(duì)電話摘機(jī)的響應(yīng)是電話線回路電流突然變大為約30mA的電流,交換機(jī)檢測到回路電流變大就認(rèn)為電話機(jī)已經(jīng)摘機(jī)。自動(dòng)摘掛機(jī)電路可以通過單片機(jī)控制一個(gè)繼電器的開關(guān),繼電器的控制端連接一個(gè)大約300的電阻接入電話線兩端,從而完成模擬摘掛機(jī)。3.2.2 振鈴音的檢測當(dāng)用戶被呼叫時(shí),電話交換機(jī)發(fā)來鈴流信號(hào)。振鈴為253伏的正弦波,諧鈴失真不大于10%,電壓有效值9015V。振鈴以5秒為周期,即1秒送,4秒斷。根據(jù)振

12、鈴信號(hào)電壓比較高的特點(diǎn),可以先使用高壓穩(wěn)壓二極管進(jìn)行降壓,然后輸入至光電耦合器。經(jīng)過光耦的隔離轉(zhuǎn)換,從光電耦合器輸出的波形是時(shí)通時(shí)斷的正弦波,經(jīng)過RC回路進(jìn)行濾波輸出很標(biāo)準(zhǔn)的方波。方波信號(hào)就可以直接輸出至單片機(jī)的中斷計(jì)數(shù)器輸入口,完成整個(gè)振鈴音檢測和計(jì)數(shù)的過程。3.2.3 控制電器此部分比較簡單,通過單片機(jī)控制多路繼電器的開關(guān)即可,常用的電路已經(jīng)很成熟,在此就不累述了。3.2.4 雙音頻解碼此部分是整個(gè)系統(tǒng)的關(guān)鍵,它的工作情況直接決定了系統(tǒng)的可靠性。經(jīng)過翻閱大量的文獻(xiàn)資料,我發(fā)現(xiàn)使用電話專用的雙音頻編解碼芯片進(jìn)行輸入雙音頻信號(hào)的解碼,是比較常用的一種方法。使用集成電路不但外圍電路簡單,而且可靠

13、性強(qiáng)。經(jīng)過專用集成電路的解碼,信號(hào)轉(zhuǎn)換成為不同的碼制信號(hào),可以直接被單片機(jī)讀取。一般常用的電話雙音頻編解碼集成電路有8870、8880、8888等,經(jīng)過反復(fù)論證比較,我決定使用雙音頻解碼集成片MT8870來完成此功能模塊。3.3 軟件模塊經(jīng)過比較,我決定使用AT89C51作為控制的單片機(jī)芯片。3.3.1 信號(hào)音計(jì)數(shù)本單元可以使用AT89C51的兩個(gè)計(jì)數(shù)器的外部中斷方式來實(shí)現(xiàn)對(duì)不同信號(hào)音的計(jì)數(shù)。3.3.2 密碼檢測本單元可以在系統(tǒng)初始化的時(shí)候,在單片機(jī)內(nèi)部的存儲(chǔ)器的內(nèi)部開辟一塊空間放置密碼。當(dāng)用戶輸入密碼的時(shí)候,單片機(jī)把輸入的密碼寫入另外的一塊空間,然后利用減法運(yùn)算比較兩者是否相等。這樣就可以實(shí)

14、現(xiàn)密碼檢測的功能。3.3.3 信號(hào)分析處理 本單元可以利用查表方式,也可以用簡單的語句,稍微長一點(diǎn)的語句實(shí)現(xiàn),例如CASE語句等。經(jīng)過翻閱大量的技術(shù)資料,對(duì)具體要求實(shí)現(xiàn)的功能進(jìn)行完整的系統(tǒng)分析,我認(rèn)為我的電話遙控系統(tǒng)設(shè)計(jì)基本符合實(shí)際情況,可以完成設(shè)計(jì)任務(wù)所要求實(shí)現(xiàn)的基本功能。第四章 硬件單元電路設(shè)計(jì)4.1 振鈴檢測電路在電話線路未來鈴流前,電話線路由電話交換機(jī)提供大約48V的直流電壓。當(dāng)用戶被呼叫時(shí),電話交換機(jī)發(fā)來鈴流信號(hào)。振鈴信號(hào)為253伏的正弦波,諧鈴失真不大于10%,電壓有效值9015V。振鈴以5秒為周期,即1秒送,4秒斷。 在本電路檢測鈴流信號(hào)時(shí),以五次鈴響為準(zhǔn),即五次振鈴后無人摘機(jī),

15、便由單片機(jī)控制自動(dòng)模擬摘機(jī)。原理說明: 電話振鈴信號(hào)通過電容C1隔直、D1穩(wěn)壓二極管、R1限流電阻輸入至光電耦合器4N25的輸入端1口,C1、D1和R1共同組成振鈴信號(hào)變換電路,它們使輸入電壓和電流不會(huì)太大,對(duì)后面的光電耦合器起保護(hù)作用。光電耦合器4N25起的是隔離作用,光電耦合器是一種電信號(hào)的耦合器件,它一般是將發(fā)光二極管和光敏三極管的光路耦合在一起,輸入和輸出之間不可共地,輸入電信號(hào)加于發(fā)光二極管上,輸出信號(hào)由光敏三極管取出。 光電耦合器以光電轉(zhuǎn)換原理傳輸信息,它不僅使信息發(fā)出端(一次側(cè))與信息接收并輸出端(二次側(cè))是絕緣的,從而對(duì)地電位差干擾有很強(qiáng)的抑制能力,而且有很強(qiáng)的抑制電磁干擾能力

16、。速度高、價(jià)格低、接口簡單。 振鈴信號(hào)通過光耦4N25的4腳輸出振鈴正弦波,R2和C2共同組成濾波電路,信號(hào)到了開關(guān)三極管T1的基極就變成了方波。經(jīng)過三個(gè)反向器的整形輸出到單片機(jī)AT89C51的T0/P3.4口,中斷方式采用外部中斷,計(jì)數(shù)5次產(chǎn)生T0中斷,控制繼電器模擬摘機(jī),完成振鈴音檢測。 原器件選取: 1、C1隔直電容,因?yàn)槭沁^濾直流,濾出低頻信號(hào),而且振鈴信號(hào)的電壓還比較高,因此選取1F耐壓100V的瓷片電容(由于條件限制,用兩個(gè)2F耐壓60V的電解電容負(fù)極相連代替之); 2、D1為穩(wěn)壓二極管,選取36V的穩(wěn)壓二極管; 3、R1是4N25的限流電阻,取33 k; 4、IC1選取光電耦合器

17、4N25; 5、R2和C2共同組成振鈴信號(hào)音濾波電路,根據(jù)電話振鈴的技術(shù)指標(biāo):頻率25Hz的正弦波,1秒通,4秒斷,=RC可以推出0.024(S)。為了使振鈴信號(hào)音輸出很好的方波波形,計(jì)算后選取R2=10k,C2=100F,=1s; 6、R3和D3共同組成振鈴指示燈,R3=100,D3為黃色5mm發(fā)光二極管;7、T1和R4組成模擬開關(guān)電路,T1選取9013,根據(jù)分壓原理和74LS04的低電平有效值,R4取2.9 k; 8、反向器由74LS04中的三組反向器組成,起整流作用;4.2 模擬摘掛機(jī)電路 設(shè)計(jì)主要思路:根據(jù)國家有關(guān)標(biāo)準(zhǔn)規(guī)定:不論任何電話機(jī),摘機(jī)狀態(tài)的直流電阻應(yīng)300,有“R”鍵的電子電

18、話機(jī)的摘機(jī)狀態(tài)直流電阻應(yīng)350。在掛機(jī)狀態(tài)下,其漏電流5A。當(dāng)用戶摘機(jī)時(shí),電話機(jī)通過叉簧接上約300的負(fù)載,使整個(gè)電話線回路流過約30mA的電流。交換機(jī)檢測到該電流后便停止鈴流發(fā)送,并將線路電壓變?yōu)槭畮追闹绷?,完成接續(xù)。模擬摘掛機(jī)電路主要由一個(gè)三極管開關(guān)電路控制繼電器的開關(guān),繼電器控制接入電話線兩端的200電阻。摘掛機(jī)信令由單片機(jī)通過使TXD/P3.1口變?yōu)楦唠娖綄?shí)現(xiàn)。經(jīng)過兩個(gè)反向器驅(qū)動(dòng)發(fā)光二極管D1指示摘機(jī),同時(shí)改變?nèi)龢O管T1的基極電壓,使T1處于導(dǎo)通狀態(tài),從而開啟繼電器J1,J1使電阻R3接入電話線兩端。因?yàn)镽3的電阻為200,使回路電流變大,控制電路向交換機(jī)發(fā)出模擬摘機(jī)的信號(hào),交換機(jī)響

19、應(yīng)摘機(jī)信號(hào),完成電話線路接通。整個(gè)電路完成自動(dòng)模擬摘機(jī)過程。根據(jù)設(shè)計(jì)原理,原器件選取如下:1、 反向器取74LS04中的兩組反向器;2、 R1是摘機(jī)指示燈限流保護(hù)電阻,取220;3、 D1是摘機(jī)指示燈,取5mm綠色發(fā)光二極管;4、 R2是三極管限流電阻,取2k;5、 T1三極管是起模擬開關(guān)控制繼電器的作用,取9013;6、 D2二極管是起繼電器反向保護(hù)的作用,取4001;7、 J1是繼電器控制開關(guān),取JRC 4001F(DC5V);8、 R3是摘機(jī)電阻,取200;4.3 雙音頻解碼原理簡介:雙音多頻DTMF信號(hào)解碼電路由MT8870主要承擔(dān)。MT8870的2、3腳接收來自電話機(jī)的雙音多頻脈沖信

20、號(hào)該雙音多頻信號(hào)先經(jīng)其內(nèi)部的撥號(hào)音濾波器,濾除撥號(hào)音信號(hào),然后經(jīng)前置放大后送入雙音頻濾波器,將雙音頻信號(hào)按高,低音頻信號(hào)分開,再經(jīng)高,低群濾波器,幅度檢測器送入輸出譯碼電路,經(jīng)過數(shù)字運(yùn)算后,在其數(shù)據(jù)輸出端(1114腳)輸出相對(duì)應(yīng)的8421碼。MT8870的數(shù)據(jù)輸出端Q4 Q1連到AT89C51的P1口的P1.4 P1.7,CPU經(jīng)P1口識(shí)別4位代碼。注意,需要特別指出的是,對(duì)于“0”號(hào)碼,MT8870輸出的8421碼并非是“0000”,而是“1010”;另外,“*”,“#”字號(hào)碼,MT8870輸出的8421碼分別為“1011”和“1100”。有些技術(shù)資料會(huì)出現(xiàn)錯(cuò)誤,包括比較權(quán)威的手冊(cè),所以我是

21、在實(shí)驗(yàn)中,記錄下測量的每一組數(shù)據(jù)后,才把這些數(shù)據(jù)應(yīng)用于程序當(dāng)中。為了使單片機(jī)AT89C51獲取有效數(shù)據(jù),MT8870的STD有效端經(jīng)反相后接CPU的/INT0引腳。當(dāng)MT8870獲取有效雙音多頻信號(hào)后,STD電平由低變高,再反相為低,CPU檢測后,指示P1口接收有效二進(jìn)制代碼。而無效的雙音頻信號(hào)(電話線路雜音、人們的語音信號(hào)等)是不會(huì)引起MT8870的STD端變化的。其中,接在電源處的電容對(duì)抗干擾有一定的作用。在實(shí)際應(yīng)用中,存在這樣一個(gè)問題:MT8870的使能控制端不允許中斷時(shí),將使MT8870的STD端中斷關(guān)閉。其解決辦法是,將STD端接與非門的一輸入,與非門的另一輸入端接一不定電平端P。當(dāng)

22、STD有效(即中斷開放)時(shí),P = 1則/INT0中斷關(guān)閉;P = 0時(shí)則/INT0中斷允許。 本單元元器件列表: 1、 D1、D2、D3、D4共同組成整流電路,選取4001; 2、 R1和R2是輸入平衡電阻,取100K,C1隔直電容,取0.1F; 3、 芯片外部晶振選擇3.579MHz; 4、 IC1是雙音頻解碼芯片,選取MT8870; 5、 C2選取0.1F; 6、 R3是輸出平衡電阻,選取100K; 7、 反向器選取74LS04的一組反向器;4.4 信號(hào)音提示電路原理說明:首先我規(guī)定了信號(hào)音的規(guī)范以及其對(duì)應(yīng)含義: 1、 響1聲,頻率為500Hz:請(qǐng)輸入密碼; 2、 響2聲,頻率為500H

23、z:請(qǐng)輸入需要控制的電器號(hào); 3、 響3聲,頻率為500Hz:請(qǐng)輸入控制開/關(guān); 4、 響1聲,頻率為1000Hz:完成操作; 5、 響3聲,頻率為1000Hz:密碼錯(cuò)誤;信號(hào)音從單片機(jī)89C51的RXD/P3.0口輸出,先經(jīng)過一組反向器進(jìn)行整流、隔離,從反向器輸出的是頻率一定,時(shí)通時(shí)斷的方波,提示信號(hào)經(jīng)過隔直電容C1輸入到音頻放大集成電路LM386N-1的輸入端。經(jīng)過LM386N-1的放大,信號(hào)音經(jīng)耦合電容C5至變壓器T1,它是音頻輸出專用的耦合變壓器,正好符合阻抗匹配的要求。本電路比較難點(diǎn)在于耦合變壓器T1的選取。因?yàn)殡娫捑€中直流電壓比較高,而且還有各種信號(hào)音,這些都會(huì)影響到語音信號(hào)加載到

24、電話線上,因此本裝置使用一個(gè)耦合變壓器作為隔離器件。這個(gè)耦合變壓器的阻抗匹配問題是設(shè)計(jì)的難點(diǎn),設(shè)計(jì)初我查閱有關(guān)資料并沒發(fā)現(xiàn)具體參數(shù)。后來看到可以郵購這種電話語音專用耦合變壓器,其具體性能都很優(yōu)秀,但是價(jià)格太高,不符合我的設(shè)計(jì)原則(元器件便宜),因此棄置不用。到了畢業(yè)設(shè)計(jì)的后期,本裝置的基本功能已經(jīng)完成,音反饋的問題又重新提到議事日程上來了。經(jīng)過我不懈的努力,終于在電子市場上發(fā)現(xiàn)了體積很小的電話專用耦合變壓器,價(jià)格只有2元。這種耦合變壓器分兩種,一種是輸入,一種是輸出,經(jīng)過實(shí)驗(yàn)表明輸入用的耦合變壓器反饋語音性能比較好,其體積大約是10mm10mm8mm。 音頻放大集成電路LM386的連接比較簡單

25、,本裝置的使用是LM386放大增益為50dB的連接方式。原器件選?。?1、 反向器選取74LS04中的一組反向器; 2、 C1的是對(duì)音頻信號(hào)起隔直耦合的作用,所以取100F的電解電容,耐壓性能無特殊要求; 3、 IC1、R1、R2、C2、C3、 C4和C5共同組成音頻放大電路,IC1選取LM386N-1,R1取1k,C2取10F的電解電容,C3取10F的電解電容,R2取1k, C4取10F的電解電容,C5取100F的電解電容; 4、 T1是音頻輸出專用變壓器;4.5 電器控制電路原理說明:本單元電路主要是由譯碼擴(kuò)展電路、反向電路、D觸發(fā)器和繼電器控制電路組成。首先,單片機(jī)AT89C51從P1口

26、的低四位輸出四位控制信號(hào)。P1.0、P1.1、P1.2作為三位數(shù)據(jù)線,P1.3作為使能控制信號(hào),一同加在3-8線譯碼器的輸入端。當(dāng)使能端有效時(shí),三位數(shù)據(jù)線經(jīng)過譯碼器數(shù)擴(kuò)展為八位數(shù)據(jù)線。這八位數(shù)據(jù)連接八個(gè)反向器進(jìn)行整流隔離,然后連接D觸發(fā)器進(jìn)行數(shù)據(jù)鎖存。每個(gè)D觸發(fā)器的輸出端都控制一路繼電器,而每一路繼電器也控制一路電器的開關(guān)。二極管指示燈并聯(lián)在開關(guān)三極管兩段作為電器開關(guān)指示。這樣就可以完成單片機(jī)對(duì)多路電器的控制。也可以把P1口的八位都用作控制電器,數(shù)據(jù)輸入口改在P2口。元器件選?。?、3-8線譯碼器選取74LS138P; 2、反向器選取兩片74LS04(每一片內(nèi)有六個(gè)反向器)中的九個(gè)反向器; 3

27、、觸發(fā)器選取四片4013(每一片內(nèi)有兩個(gè)D觸發(fā)器); 4、三極管選取八個(gè)9013; 5、二極管起保護(hù)作用,選取八個(gè)4001; 6、指示燈選取八個(gè)紅色5mm發(fā)光二極管; 7、指示燈限流電阻選取八個(gè)1k的電阻; 8、三極管的限流電阻選取八個(gè)2k的電阻; 9、繼電器選取八個(gè)JRC-4100F DC5V繼電器;第五章 軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)主要分為系統(tǒng)初始化、振鈴檢測計(jì)數(shù)、控制摘掛機(jī)、雙音頻信號(hào)分析處理、控制電器、信號(hào)音提示等部分。每個(gè)功能模塊對(duì)于整體設(shè)計(jì)都是非常重要的,單片機(jī)T89C51通過軟件程序才能很好的對(duì)外部的信息進(jìn)行采集、分析和決策。下面,就整體設(shè)計(jì)以及每個(gè)單元功能模塊分別進(jìn)行說明。5.1

28、 信號(hào)音發(fā)聲部分本功能模塊主要是產(chǎn)生信號(hào)提示音,方便不同的使用者。根據(jù)普通人耳的反應(yīng)頻率為20Hz至20KHz的范圍,和CCITT規(guī)定的電話話音信號(hào)的頻率范圍是300Hz至3400Hz,我在本功能單元的發(fā)聲頻率定為500Hz和1000Hz兩種。 主要分為五種提示音: 1、 低音,表示裝置已經(jīng)摘機(jī),請(qǐng)輸入密碼,其參數(shù):頻率f=500Hz,延時(shí)t=0.5秒/聲; 2、兩聲低音,表示密碼已經(jīng)通過,請(qǐng)選擇電器,其參數(shù):頻率f=500Hz,延時(shí)t=0.5秒/聲; 3、三聲低音,表示電器已經(jīng)選定,請(qǐng)控制(開/關(guān)),其參數(shù):頻率f=500Hz,延時(shí)t=0.5秒/聲; 4、三聲高音,表示密碼輸入錯(cuò)誤,其參數(shù):

29、頻率f=1000Hz,延時(shí)t=0.3秒/聲; 5、一聲高音,表示控制已經(jīng)完成,其參數(shù):頻率f=1000Hz,延時(shí)t=0.3秒/聲; 提示音發(fā)生是使用有限循環(huán),反復(fù)使單片機(jī)的RXD口的電平反轉(zhuǎn),從而形成方波信號(hào)。 子程序代碼:ORG 1100HRING10:MOV R6,#20 ;input passwordRING11:MOV R7,#20 ;800HzRING12:LCALL DL10 ;sound=1CPL P3.0 ;delay=0.5sDJNZ R7,RING12DJNZ R6,RING11CLR P3.0RET ORG 1150HRING20:MOV R3,#03RING21:MOV

30、 R6,#20 ;password wrongRING22:MOV R7,#20 ;1600HzRING23:LCALL DL20 ;sound=3CPL P3.0 ;delay=0.25sDJNZ R7,RING23DJNZ R6,RING22CLR P3.0MOV R7,#200RING24:LCALL DL10DJNZ R7,RING24DJNZ R3,RING21CLR P3.0RETORG 1200HRING30:MOV R3,#02RING31:MOV R6,#20 ;selectRING32:MOV R7,#20 ;800HzRING33:LCALL DL10 ;sound=2C

31、PL P3.0 ;delay=0.5sDJNZ R7,RING33DJNZ R6,RING32CLR P3.0MOV R7,#200RING34:LCALL DL10DJNZ R7,RING34DJNZ R3,RING31CLR P3.0RETORG 1250HRING40:MOV R3,#03RING41:MOV R6,#20 ;controlRING42:MOV R7,#20 ;800HzRING43:LCALL DL10 ;sound=3CPL P3.0 ;delay=0.5sDJNZ R7,RING43DJNZ R6,RING42CLR P3.0MOV R7,#100RING44:LC

32、ALL DL10DJNZ R7,RING44DJNZ R3,RING41CLR P3.0RETORG 1300HRING50:MOV R6,#40 ;finishRING51:MOV R7,#20 ;1600HzRING52:LCALL DL20 ;sound=1CPL P3.0 ;delay=0.15sDJNZ R7,RING52DJNZ R6,RING51CLR P3.0RETORG 1500HDL10:MOV R5,#25 ;delay1.25ms,f=800HZ,fosc=12MHz,DL12:MOV R4,#25DL11:DJNZ R4,DL11DJNZ R5,DL12RETORG

33、1600HDL20:MOV R5,#12 ;delay0.625ms,f=1600HZ,fosc=12MHz,DL22:MOV R4,#25DL21:DJNZ R4,DL21DJNZ R5,DL22RETORG 1650HDL30:MOV R5,#50 ;delay20msDL32:MOV R4,#200DL31:DJNZ R4,DL31DJNZ R5,DL32RET5.2 密碼檢測部分本系統(tǒng)密碼校驗(yàn)的基本原理是:在系統(tǒng)初始化的時(shí)候把原始密碼寫入地址為30H開始的存儲(chǔ)空間內(nèi),密碼的位數(shù)“5”賦給R7。當(dāng)系統(tǒng)摘機(jī)時(shí),要求輸入密碼,單片機(jī)把解碼后的數(shù)據(jù)(使用者輸入的密碼)存儲(chǔ)在38H開始的存儲(chǔ)空間

34、內(nèi)。然后單片機(jī)對(duì)進(jìn)行兩個(gè)存儲(chǔ)地址的內(nèi)容逐位進(jìn)行比較,直到完全相等才能轉(zhuǎn)到下一進(jìn)程,有一位不同,程序就轉(zhuǎn)到出錯(cuò)程序。子程序代碼:ORG 0150HHOKE: CLR 7DHSETB P3.1 ;open telephoneCLR TR0 ;close T0MOV R2,#03H ;password wrong 3LCALL RING10 ;input passwordIN: CLR 7EH ;7EH=0DTMF: MOV R7,#5H ;PASSWORD:5 R7MOV R1,#38H ;signSETB P1.4SETB P1.5SETB P1.6SETB P1.7WAIT: JBC 7EH,

35、CC ;wait INT0LJMP WAITCC: MOV R7,#5H ;password 5*MOV R0,#30H ;password topMOV R1,#38H ;signCMP: MOV A,R1MOV R4,ACLR CMOV A,R1SUBB A,R0 ;testINC R0INC R1JZ AAA ;OK,pass oneLJMP QQAAA: DJNZ R7,CMP ;R7-1!=0LJMP LL ;passQQ: DJNZ R2,IN1 ;password wrong&R2!=0LCALL RING20LJMP STOPIN1:LCALL RING20 ;password

36、 wrong,try!LJMP IN5.3 密碼修改部分本系統(tǒng)是通過在線輸入密碼而改變特定存儲(chǔ)器中的密碼值的。 程序代碼:ORG 1700HKEYIN: SETB RS1 ;當(dāng)前工作寄存器第二工作區(qū)CLR RS0ANL A,#00H ;清零A寄存器MOV B,#05HLCALL RING10 ;發(fā)提示音:輸入密碼*MOV R7,#5HMOV R1,#38HWPIN: JBC 7EH,READ ;等待INT0中斷LJMP WPINREAD: MOV R1,#38HMOV R0,#40HMOV R7,#05HREAD1: MOV A,R1MOV R0,AINC R0INC R1DJNZ R7,RE

37、AD1 ;判斷輸入密碼是否為5位,否跳轉(zhuǎn)READ1LCALL RING10 ;滿5位,發(fā)提示音:再輸入新密碼MOV R7,#5HMOV R1,#38HWRE: JBC 7EH,KEYCMP ;等待中斷INT1LJMP WREKEYCMP:MOV R6,#05HMOV R0,#40HMOV R1,#38HKEYCP:MOV A,R0CLR CSUBB A,R1 ;A減(R1)INC R1INC R0JZ BBB ;A的內(nèi)容如果為0,則跳轉(zhuǎn)BBBLJMP LLBBB: DJNZ R6,KEYCP ;R6減1不為0,則跳轉(zhuǎn)KEYCP,即循環(huán)比較密碼的五位MOV R1,#38HMOV R0,#30HM

38、OV R6,#5HKEYREIN:MOV A,R1MOV R0,AINC R1INC R0DJNZ R6,KEYREIN ;R6減1不為0,則跳轉(zhuǎn),即循環(huán)比較密碼的五位LCALL RING50 ;發(fā)提示音:新密碼已經(jīng)設(shè)置LJMP STOPRET5.4 控制電器部分本系統(tǒng)首先通過外圍雙音頻解碼電路解碼的信息(選擇電器)判斷所選擇的電器,然后跳轉(zhuǎn)到每一個(gè)子程序,通過單片機(jī)向P1口的低四位發(fā)送數(shù)據(jù),這些控制信息表示對(duì)不同的電器進(jìn)行控制的控制字。為了簡單表示,在這里只寫出了電器“一”的控制子程序,其它子程序很相似。程序代碼:LL: LCALL RING30 ;sound:input controlMO

39、V R7,#1H ;*MOV R1,#38HCLR 7EHWAIT0: JBC 7EH,DD ;wait INT0LJMP WAIT0DD: MOV R1,#38HMOV A,R1RR ARR ARR ARR AMOV R4,ARL AADD A,R4MOV DPTR,#TABJMP A+DPTRTAB: LJMP ZEROLJMP EIGHT;8LJMP FOUR ;4LJMP STOP ;#LJMP TWO ;2LJMP ZERO ;0LJMP SIX ;6LJMP LL ;*LJMP ONE ;1LJMP LL ;9,*LJMP FIVE ;5LJMP LL ;A,*LJMP THREE

40、;3LJMP LL ;*,*LJMP SEVEN;7LJMP LL ;C,*ORG 0250HZERO: LJMP LLONE: LCALL RING40 ;發(fā)提示音:請(qǐng)操作電器OO1: MOV R7,#01HCLR 7EHWAIT1: JBC 7EH,WW1 ;wait INT0LJMP WAIT1WW1:MOV R1,#38H ;檢查信號(hào)首位MOV A,R1CJNE A,#50H,BB1 ;(38)不等于0AH(0),則跳轉(zhuǎn)BB1LJMP ZZ1 ;(38)等于0AH(0),則跳轉(zhuǎn)ZZ1BB1: CJNE A,#80H,QUIT1 ;(38)不等于01H(1),則跳轉(zhuǎn)QUIT1SETB P

41、1.3 ;open 1CLR P1.2CLR P1.1CLR P1.0LJMP QUIT1ZZ1: CLR P1.3 ;close allCLR P1.2CLR P1.1CLR P1.0LCALL RING50 ;finshQUIT1: LJMP LL5.5 振鈴計(jì)數(shù)部分本單元是通過計(jì)數(shù)器T0的外部中斷方式來計(jì)數(shù)的。程序代碼:ORG 0090HTT0: SETB 7DHRETI第六章 系統(tǒng)調(diào)試6.1 整體調(diào)試整體調(diào)試所使用的測試儀器儀表和工具:1、IBM-PC/XT兼容機(jī)一臺(tái),主頻:50Hz,有軟驅(qū)和25針串行接口; 2、ME-5103單片機(jī)仿真機(jī)一個(gè); 3、MF116萬用表一個(gè); 4、計(jì)算機(jī)

42、5V穩(wěn)壓電源一個(gè); 5、SR8雙蹤示波器; 6、Manley In-Circuit Emulator Debugger(MBUG)開發(fā)軟件;本裝置的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試和聯(lián)機(jī)調(diào)試等三大部分。 經(jīng)過初步的分析設(shè)計(jì)后,在制作硬件電路的同時(shí),調(diào)試也在穿插進(jìn)行。這樣有利于問題的分析和解決,不會(huì)造成問題的積累,而且不會(huì)因?yàn)橐粋€(gè)小問題而進(jìn)行整體電路的檢查,從而可以節(jié)約大量的調(diào)試時(shí)間。軟件編程中,我是首先完成單元功能模塊的調(diào)試,然后進(jìn)行系統(tǒng)調(diào)試,整體上與硬件調(diào)試的方法差不多。聯(lián)機(jī)調(diào)試是最重要的一部分,同時(shí)也是本裝置成功的關(guān)鍵。有許多新問題都不是很容易解決的。6.2 硬件單元電路 6.2.1 5V穩(wěn)

43、壓電源本裝置使用單5V穩(wěn)壓電源供電,要求交流成分小。經(jīng)過示波器測量5V穩(wěn)壓電源輸出端,其交流部分電壓的峰-峰值為6mV,符合本裝置的電源要求,穩(wěn)壓電源調(diào)試完畢。6.2.2 振鈴音檢測在本單元電路制作前期,實(shí)驗(yàn)室中無模擬交換機(jī),無法產(chǎn)生振鈴信號(hào),我只好在完成此部分的焊接后回寢室中完成其測試。將本裝置的電話線兩端并聯(lián)在電話機(jī)兩端,摘機(jī)撥打“190”,然后掛機(jī),市交換機(jī)會(huì)回送連續(xù)的測試振鈴音。經(jīng)過測量,這種測試振鈴音和正常的振鈴信號(hào)的頻率、振幅等特性都一樣,只是正常的振鈴信號(hào)是1秒通4秒斷,而這種測試振鈴音是連續(xù)的。當(dāng)送測試振鈴音時(shí),用萬用表的直流檔測量光電耦合器4N25的輸出端,有明顯的電壓,這說

44、明可以形成中斷響應(yīng)信號(hào)。后接振鈴指示燈,發(fā)現(xiàn)在送鈴流信號(hào)時(shí),指示燈亮,但是燈在閃爍。分析得光耦輸出端所接的濾波電容C2太小,于是把原來的1F換成現(xiàn)在的100F,問題得到解決。因?yàn)閱纹瑱C(jī)T0所響應(yīng)的外部中斷信號(hào)是低電平有效,所以在光耦輸出端接了一個(gè)開關(guān)三極管T1控制指示燈,在三極管的輸出端接了三個(gè)反向器。經(jīng)過三極管T1的開關(guān)作用和三個(gè)反向器的反向作用,輸出應(yīng)該為低電平。但是在測量反向器輸出端時(shí)發(fā)現(xiàn):振鈴指示燈亮,但反向器輸出端為高電平。說明振鈴信號(hào)可以通過三極管,但無法通過反向器。分析原因可能是反向器74LS04壞了,換之,再測,還是老問題。經(jīng)過細(xì)心測量三極管的發(fā)射極電壓發(fā)現(xiàn):有振鈴時(shí)Ve=1.

45、1V,這時(shí)反向器74LS04認(rèn)為是低電平,當(dāng)無振鈴脈沖信號(hào)時(shí),還是認(rèn)為是低電平,所以振鈴信號(hào)無法通過反向器。解決方法很簡單,把三極管的發(fā)射極端的下拉電阻R4從原來的20k改成5.1k,提升三極管的發(fā)射極電壓。在畢業(yè)設(shè)計(jì)的后期,實(shí)驗(yàn)室有了模擬小交換機(jī),經(jīng)測試,本單元電路完全正常,振鈴檢測部分調(diào)試完畢。6.2.3 模擬摘掛機(jī)此部分的調(diào)試較為容易,電路接好后,用5V高電平測試之,指示燈亮,繼電器吸合正常。接入模擬小交換機(jī),控制摘機(jī)時(shí),交換機(jī)的端口指示燈亮,反之掛機(jī)時(shí),指示燈滅。說明此部分完全正常。接入仿真機(jī)測試時(shí)發(fā)現(xiàn):單片機(jī)的TXD端不能控制模擬摘掛機(jī)部分的摘掛機(jī)。分析得出結(jié)論:可能是接口的電平不相

46、符合。解決方法:加上一個(gè)三極管模擬開關(guān),加上一個(gè)反向器(74LS04)進(jìn)行控制隔離作用。經(jīng)過接入仿真機(jī)測試表明反向器的作用很明顯,于是在后面的電路設(shè)計(jì)當(dāng)中,我在許多的接口上大多使用了反向器。至此,模擬摘掛機(jī)部分調(diào)試完畢。6.2.4 控制電器控制電器這部分的外圍硬件電路很容易,在調(diào)試過程中很順利完成。在接仿真機(jī)時(shí),使用的是P2口控制電器,實(shí)驗(yàn)結(jié)果表明P2口無法正常控制每個(gè)電器,翻閱資料發(fā)現(xiàn)單片機(jī)89C51的P2口沒有數(shù)據(jù)鎖存功能,不能保持上一個(gè)狀態(tài)的數(shù)據(jù)。解決方法:把P2口控制電器改為P1口的低四位控制電器,改線之后控制正常,但是新的問題出現(xiàn)了,原來要求控制八路的端口,現(xiàn)在只能控制四個(gè)電器。經(jīng)過

47、市場實(shí)際分析,一般的控制電器只要求34路即可,為了實(shí)驗(yàn)單片機(jī)擴(kuò)展控制功能,提高本遙控裝置的潛在功能,我決定實(shí)驗(yàn)使用3-8線譯碼器74LS138對(duì)P1口的低四位輸出數(shù)據(jù)進(jìn)行譯碼擴(kuò)展。具體電路詳見前面。在成功的擴(kuò)展了控制電器的個(gè)數(shù)后,我又發(fā)現(xiàn)了一個(gè)新的問題:遙控器不能同時(shí)使兩路以及兩路以上的電器開,即在同一時(shí)刻,遙控器只能使一路電器開啟。經(jīng)過仔細(xì)分析,我發(fā)現(xiàn)了問題原因之所在,那就是譯碼器的原理問題。通常情況下我們認(rèn)為的譯碼器可以擴(kuò)展所能控制的電器,其實(shí)譯碼器只能擴(kuò)展位數(shù),而不能使?fàn)顟B(tài)發(fā)生變化。例如:三位二進(jìn)制000111可以控制表示三個(gè)電器、八種狀態(tài),而經(jīng)過3-8線譯碼器譯碼后,可以控制八個(gè)電器,

48、但是其狀態(tài)也只有八種,如下表所示。A2 A1 A0 輸出D0D70 0 0 0 1 1 1 1 1 1 10 0 1 1 0 1 1 1 1 1 10 1 0 1 1 0 1 1 1 1 10 1 1 1 1 1 0 1 1 1 11 0 0 1 1 1 1 0 1 1 11 0 1 1 1 1 1 1 0 1 11 1 0 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 0其解決方法是:使用D觸發(fā)器使繼電器保持上一個(gè)狀態(tài),這樣才能使八路電器可以控制28=256個(gè)狀態(tài)。6.2.5 雙音頻檢測雙音頻檢測是整體電路一個(gè)比較重要的過程,它的調(diào)試主要圍繞著雙音多頻解碼芯片8870

49、展開的。在此部分的制作的前期,我采用的芯片是CM8870CPI。開始連接電路調(diào)試時(shí),整體電路工作很正常,后來這塊芯片使用大約一個(gè)星期左右的時(shí)間,解碼電路經(jīng)常會(huì)出現(xiàn)解碼出錯(cuò)的情況。經(jīng)過仔細(xì)檢查電路,仿真機(jī)單步執(zhí)行進(jìn)行調(diào)試,確認(rèn)硬件電路無誤,診斷為CM8870CPI的問題。根據(jù)我的初步分析認(rèn)定可能是芯片老化的原因,后更換為MT8870DE發(fā)現(xiàn)本裝置工作很正常,而且換上MT8870DE工作了將近一個(gè)月,整體電路沒有發(fā)生任何解碼誤碼情況,MT8870DE在最后的聯(lián)機(jī)調(diào)試過程中也沒有出現(xiàn)任何問題。6.3 軟件程序調(diào)試6.3.1 軟件系統(tǒng)設(shè)置對(duì)于本系統(tǒng)而言,軟件程序所實(shí)現(xiàn)的功能比較多,所以軟件程序的調(diào)試顯

50、得相當(dāng)?shù)臒┈?。整個(gè)程序是使用匯編語言,在MBUG下編寫調(diào)試完成的。首先我使用的是我自己的計(jì)算機(jī)聯(lián)接MCS-51仿真機(jī),計(jì)算機(jī)的主頻為333MHz,但是出現(xiàn)了許多的問題。第一個(gè)問題就是:我所使用的MCS-51仿真機(jī)型號(hào)是ME-5103,聯(lián)入計(jì)算機(jī)的25針串行口來進(jìn)行程序的讀入,但是我的計(jì)算機(jī)沒有25針串行口。觀察計(jì)算機(jī)的后面,主板上只有一個(gè)25針并行口,是用來連接打印機(jī)的;除了這個(gè)25針串行口外,還有兩個(gè)9針串行口。 我只有把MCS-51仿真機(jī)的25針接口變成9針串行接口,才能連接計(jì)算機(jī)。后來我找到一個(gè)25針-9針的轉(zhuǎn)換口,可以通過他使MCS-51仿真機(jī)和我的計(jì)算機(jī)聯(lián)接。 我使用的是Manley

51、 In-Circuit Emulator Debugger(MBUG)開發(fā)軟件,使用時(shí)發(fā)現(xiàn)此系統(tǒng)可以進(jìn)行正常的Assemble(匯編),但是不能正常的進(jìn)行Load Program,執(zhí)行時(shí)會(huì)出現(xiàn)divide overflow error的錯(cuò)誤,然后就退出此編譯系統(tǒng),這就使得無法進(jìn)行仿真機(jī)模擬實(shí)驗(yàn)。 經(jīng)過實(shí)驗(yàn)室多組同學(xué)的八臺(tái)計(jì)算機(jī)的嘗試,我們終于發(fā)現(xiàn)了問題之所在。實(shí)驗(yàn)結(jié)果表明:主頻高于233MHz的計(jì)算機(jī)都不能正常聯(lián)接MCS-51仿真機(jī),而主頻低于100MHz的計(jì)算機(jī)(有25針串行接口)均可以進(jìn)行仿真實(shí)驗(yàn)。后來經(jīng)過查閱有關(guān)技術(shù)資料,型號(hào)為ME-5103的MCS-51仿真機(jī)只能工作在IBM PC/X

52、T/AT 286/386/486的環(huán)境下。 由于實(shí)驗(yàn)室的低檔計(jì)算機(jī)(能聯(lián)接MCS-51仿真機(jī))的不太多,所以我們只有把僅有的幾臺(tái)計(jì)算機(jī)進(jìn)行優(yōu)化重組,以便合理利用有限的計(jì)算機(jī)資源。我的匯編語言程序相對(duì)來說還是比較多的,調(diào)試起來可能費(fèi)時(shí),所以我先在自己的計(jì)算機(jī)上對(duì)程序的語法錯(cuò)誤(syntax error)進(jìn)行調(diào)試修改,然后又對(duì)地址覆蓋(org address is less)的錯(cuò)誤進(jìn)行修改,既對(duì)每個(gè)子程序的開始地址進(jìn)行仔細(xì)的調(diào)整。到此為止整個(gè)軟件程序調(diào)試環(huán)境就已經(jīng)配好了。6.3.2 提示音信號(hào)在本單元的調(diào)試過程中,我認(rèn)為此部分的結(jié)構(gòu)比較簡單,因此在整體程序中直接調(diào)試。首先Ctrl+F5單步執(zhí)行,發(fā)

53、現(xiàn)此部分的RING1子程序正常,而其它的子程序在執(zhí)行時(shí)卻發(fā)生死循環(huán)。我把這幾個(gè)子程序單獨(dú)切出來進(jìn)行分析,卻發(fā)現(xiàn)執(zhí)行正常,于是我推測并不是子程序本身的結(jié)構(gòu)問題。然后使用Ctrl+F8對(duì)整個(gè)程序單步執(zhí)行(兩種單步執(zhí)行的區(qū)別在于F5直接執(zhí)行子程序,即不單步執(zhí)行子程序,而F8對(duì)于整個(gè)程序都是單步執(zhí)行,包括子程序),發(fā)現(xiàn)RING2中的R5寄存器已經(jīng)在主程序中用作判斷標(biāo)志位,程序已經(jīng)在外部完成對(duì)其賦值。這樣就導(dǎo)致重復(fù)賦值,因此無法跳出循環(huán)子程序,直接導(dǎo)致死循環(huán)。程序代碼:ORG 1150HRING20:MOV R3,#03RING21:MOV R6,#20 ;password wrongRING22:MO

54、V R5,#20 ;1600HzRING23:LCALL DL20 ;sound=3CPL P3.0 ;delay=0.25sDJNZ R5,RING23DJNZ R6,RING22CLR P3.0MOV R5,#200RING24:LCALL DL10DJNZ R5,RING24DJNZ R3,RING21CLR P3.0RET 后來我將子程序中的R5寄存器換成R7寄存器,子程序就正常了。6.3.3 密碼檢測本部分的調(diào)試比較艱難,我是先調(diào)試一位密碼,然后再調(diào)試五位密碼。我先設(shè)定R5為一位,即先設(shè)定一位密碼作為測試。首先單步執(zhí)行,發(fā)現(xiàn)信號(hào)音無法正常輸入到單片機(jī)的38H地址處的存儲(chǔ)空間?,F(xiàn)象:計(jì)算機(jī)聯(lián)機(jī)單步執(zhí)行,接收振鈴信號(hào),三次自動(dòng)摘機(jī),當(dāng)程序執(zhí)行到等待INT0中斷(一個(gè)小的循環(huán)程序)時(shí),既等待輸入密碼時(shí),我按下“7”(事先設(shè)定的一位密碼),單片機(jī)

溫馨提示

  • 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)論