<ol id="glfvi"></ol>

    <fieldset id="glfvi"></fieldset>

    1. <mark id="glfvi"></mark>
        <var id="glfvi"></var>

        <big id="glfvi"></big>

        天堂8在线天堂资源BT_一区二区在线 | 国_天堂SV在线最新版在线_97在线观看视频_欧美成人影院在线观看

        機電之家資源網(wǎng)
        單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
        培訓信息
        贊助商
        基于89C51設計的電話遠程控制開關
        基于89C51設計的電話遠程控制開關
         更新時間:2009-5-23 15:02:44  點擊數(shù):1
        【字體: 字體顏色

          摘要:本文主要介紹了一種以單片機AT89C51和雙音多頻解碼集成電路MT8870為核心,通過電話線路遙控的遠程多路智能控制器。該系統(tǒng)實用、功能靈活多樣,可以對被遙控對象的狀態(tài)進行查詢以及控制,可以廣泛的應用于家用電器或者其它場所的各種控制設備

            前言

            電話遙控作為一較新的課題與常規(guī)的遙控方式相比,顯示出一定的優(yōu)越性,不需進行專門的布線,不占用無線電頻率資源,避免了電磁污染。同時,由于電話線路各地聯(lián)網(wǎng),可以充分利用現(xiàn)有的電話網(wǎng),因此遙控距離可跨省市,甚至跨越國家。
        電話屬雙工通信手段。因此,這可以大大體現(xiàn)出利用電話進行遙控的更大優(yōu)越性。操作者可以通過各種提示音即時了解受控對象的有關信息,從而進行進一步的操作。電話遙控這一課題目前已有涉足者,但是只是還只限于實驗室階段,因而距離實際應用,尤其是對于日常生活尚有一定的差距,并不能完全體現(xiàn)出電話遙控方式的雙工通信特點。本作品正是針對這一點進行了較大改進,采取單片機智能控制,利用不同的提示音達到對于不同操作的提示及對受控方狀態(tài)的信息反饋,從而使操作者能夠及時了解受控方信息,使產(chǎn)品達到交互式與智能化。而且本作品的調(diào)試都是在線調(diào)試,已經(jīng)在宿舍連接電話經(jīng)過真正的交換機實驗并且成功。本作品的各種電器接口、各項標準都嚴格遵循國家有關標準,為以后的產(chǎn)品化提供了良好的基礎。
        作品為突出電話遙控的信息反饋功能,并使產(chǎn)品達到非常高性價比。故未對電話裝置的其他功能進行進一步的擴展,而且所有使用的集成電路和其它元器件都盡量選擇廉價的。在該作品的基礎上進行了功能擴展是很方便的。譬如:使用語音芯片作為信號音反饋,提高本作品的實用性(此次為了保證整體電路的廉價,所以并未使用語音芯片)。加上留言電路,主人不在家時客人留言。利用遙控方式可使主人很方便地在異地提取留言信息;在各路終端上接上傳感器即可實現(xiàn)對環(huán)境聲響的監(jiān)聽;接上自動撥碼電路可定時將預定信息轉(zhuǎn)至主人傳呼機或特定電話,從而達到定時提醒主人的目的。本作品還可以應用于工廠企業(yè)的自動化控制等領域。

            第一章 總體設計

            電話智能遙控器由單片機構成主控部分,進行主要的信息處理,接收外部操作指令形成各種控制信號,并完成對于各種信息的記錄;接口電路提供單片機與電話外線的接口。其中包括鈴流檢測、摘掛機控制、忙音檢測、雙音頻DTMF識別,及語音提示電路。系統(tǒng)原理框圖如圖1.1所示

           圖1.1
            語音提示電路是該作品重要組成部分。為了降低本裝置的造價,作品的提示音使用程序產(chǎn)生。語音提示電路受單片機的控制產(chǎn)生相應的提示音提示,并通過反饋電路反饋至電話外線。從而使操作者對電器的操作達到交互式,并能即時了解有關的信息;顯示電路用于狀態(tài)設置時的顯示;控制部分即受控的終端,如前所述,可通過接駁不同的終端并對電話進行必要的改動從而達到功能的擴展。這一點,可使產(chǎn)品達到系列化。
        本系統(tǒng)的每一個接口電路(振鈴檢測、模擬摘掛機、語音反饋、雙音頻解碼等)都已經(jīng)經(jīng)過實際的交換機在線實驗,具有很強的實用性。本系統(tǒng)使用最簡單的電路、最便宜的電路芯片實現(xiàn)了完善的功能。本系統(tǒng)還有許多可以添加的功能,具有很強的市場前景。
        本裝置并聯(lián)于電話機的兩端,不會影響到電話機的正常使用。用戶通過異地的電話機撥通本裝置所連接外線的電話號碼,通過市局交換機向電話機發(fā)出振鈴信號。本裝置如果檢測到振鈴五次,即五次響鈴后無人接,自動摘機,進入密碼檢測,輸入正確后選擇被控制電器,然后輸入開或關進行遙控電器,完成后返回。

            第二章 系統(tǒng)設計可行性分析

            2.1 總體設計分析

            根據(jù)電話遠程智能遙控系統(tǒng)的具體設計要求:

            ⑴ 通過電話網(wǎng)對異地的電器實現(xiàn)控制(開/關);
            ⑵ 控制器可以實現(xiàn)自動模擬摘掛機;
            ⑶ 控制器設置密碼校驗;

            我設計此系統(tǒng)必須具有以下單元功能模塊:

            ⑴ 鈴音檢測、計數(shù);
            ⑵ 自動摘掛機;
            ⑶ 密碼校驗;
            ⑷ 在線修改密碼;
            ⑸ 雙音頻信號解碼;
            ⑹ 輸入信息分析;
            ⑺ 控制電器開關;
            ⑻ 電器狀態(tài)查詢;
            ⑼ 忙音檢測;

            根據(jù)電話機和交換機發(fā)出的不同信號音以及電話線各種狀態(tài)的不同要求,我結(jié)合實際情況對具體的單元功能模塊作出軟件或硬件上的不同分工,具體如下:
        理論上交換機所發(fā)出的各種信號音都可以通過軟件編程而識別,即通過單片機發(fā)出的脈沖信號來檢測信號音單位時間內(nèi)的脈沖個數(shù)計算出其頻率,從而完成信號音識別。但是從系統(tǒng)的可靠性和程序的結(jié)構設計上分析,我選擇了硬件來解決振鈴音檢測、忙音檢測、雙音頻信號解碼等功能模塊。
        自動摘掛機和電器的控制必須使用具體硬件電路來實現(xiàn)。
        振鈴音計數(shù)、忙音計數(shù)、密碼校驗、在線修改密碼、輸入信息分析、電器狀態(tài)查詢等功能模塊使用軟件編程方式要比硬件電路簡單的多,實現(xiàn)也很容易。
        綜上所述,我設計信號音檢測、自動摘掛機、控制電器、雙音頻解碼等功能模塊使用硬件電路實現(xiàn)。而信號音計數(shù)、密碼校驗、在線修改密碼、信息分析、電器狀態(tài)查詢等功能模塊使用軟件編程完成。
        下面就硬件以及軟件實現(xiàn)的單元電路分別進行具體分析。

            2.2 硬件模塊

            本作品使用了大量的硬件電路完成部分功能模塊,其目的就是充分利用硬件電路的可靠性、穩(wěn)定性,使整體電路達到比較高的穩(wěn)定性。

            2.2.1自動摘掛機

            因為程控電話交換機對電話摘機的響應是電話線回路電流突然變大為約30mA的電流,交換機檢測到回路電流變大就認為電話機已經(jīng)摘機。自動摘掛機電路可以通過單片機控制一個繼電器的開關,繼電器的控制端連接一個大約300Ω的電阻接入電話線兩端,從而完成模擬摘掛機。

            2.2.2振鈴音的檢測

            當用戶被呼叫時,電話交換機發(fā)來鈴流信號。振鈴為25±3伏的正弦波,諧鈴失真不大于10%,電壓有效值90±15V。振鈴以5秒為周期,即1秒送,4秒斷。根據(jù)振鈴信號電壓比較高的特點,可以先使用高壓穩(wěn)壓二極管進行降壓,然后輸入至光電耦合器。經(jīng)過光耦的隔離轉(zhuǎn)換,從光電耦合器輸出的波形是時通時斷的正弦波,經(jīng)過RC回路進行濾波輸出很標準的方波。方波信號就可以直接輸出至單片機的中斷計數(shù)器輸入口,完成整個振鈴音檢測和計數(shù)的過程。

            2.2.3控制電器

            此部分比較簡單,通過單片機控制多路繼電器的開關即可,常用的電路已經(jīng)很成熟,在此就不累述了。

            2.2.4雙音頻解碼

            此部分是整個系統(tǒng)的關鍵,它的工作情況直接決定了系統(tǒng)的可靠性。經(jīng)過翻閱大量的文獻資料,我發(fā)現(xiàn)使用電話專用的雙音頻編解碼芯片進行輸入雙音頻信號的解碼,是比較常用的一種方法。使用集成電路不但外圍電路簡單,而且可靠性強。經(jīng)過專用集成電路的解碼,信號轉(zhuǎn)換成為不同的碼制信號,可以直接被單片機讀取。一般常用的電話雙音頻編解碼集成電路有8870、8880、8888等,經(jīng)過反復論證比較,我決定使用雙音頻解碼集成片MT8870來完成此功能模塊。有關MT8870的詳細介紹請參閱本報告的附錄部分。

            2.3 軟件模塊

            經(jīng)過比較,我決定使用AT89C51作為控制的單片機芯片,具體有關AT89C51的介紹不在這里累述,其詳細資料請參閱本報告的附錄部分。

            2.3.1信號音計數(shù)

            本單元可以使用AT89C51的兩個計數(shù)器的外部中斷方式來實現(xiàn)對不同信號音的計數(shù)。

            2.3.2密碼檢測

            本單元可以在系統(tǒng)初始化的時候,在單片機內(nèi)部的存儲器的內(nèi)部開辟一塊空間放置密碼。當用戶輸入密碼的時候,單片機把輸入的密碼寫入另外的一塊空間,然后利用減法運算比較兩者是否相等。這樣就可以實現(xiàn)密碼檢測的功能。

            2.3.3 信號分析處理

            本單元可以利用查表方式,也可以用簡單的語句,稍微長一點的語句實現(xiàn),例如CASE語句等。

            經(jīng)過翻閱大量的技術資料,對具體要求實現(xiàn)的功能進行完整的系統(tǒng)分析,我認為我的電話遙控系統(tǒng)設計基本符合實際情況,可以完成設計任務所要求實現(xiàn)的基本功能。 第三章 硬件單元電路設計

            3.1 振鈴檢測電路

            在電話線路未來鈴流前,電話線路由電話交換機提供大約48V的直流電壓。當用戶被呼叫時,電話交換機發(fā)來鈴流信號。振鈴信號為25±3伏的正弦波,諧鈴失真不大于10%,電壓有效值90±15V。振鈴以5秒為周期,即1秒送,4秒斷。
        在本電路檢測鈴流信號時,以五次鈴響為準,即五次振鈴后無人摘機,便由單片機控制自動模擬摘機。

        圖3.1
        原理說明:

        電話振鈴信號通過電容C1隔直、D1穩(wěn)壓二極管、R1限流電阻輸入至光電耦合器4N25的輸入端1口,C1、D1和R1共同組成振鈴信號變換電路,它們使輸入電壓和電流不會太大,對后面的光電耦合器起保護作用。光電耦合器4N25起的是隔離作用,光電耦合器是一種電信號的耦合器件,它一般是將發(fā)光二極管和光敏三極管的光路耦合在一起,輸入和輸出之間不可共地,輸入電信號加于發(fā)光二極管上,輸出信號由光敏三極管取出。
        光電耦合器以光電轉(zhuǎn)換原理傳輸信息,它不僅使信息發(fā)出端(一次側(cè))與信息接收并輸出端(二次側(cè))是絕緣的,從而對地電位差干擾有很強的抑制能力,而且有很強的抑制電磁干擾能力。速度高、價格低、接口簡單。
        振鈴信號通過光耦4N25的4腳輸出振鈴正弦波,R2和C2共同組成濾波電路,信號到了開關三極管T1的基極就變成了方波。經(jīng)過三個反向器的整形輸出到單片機AT89C51的T0/P3.4口,中斷方式采用外部中斷,計數(shù)5次產(chǎn)生T0中斷,控制繼電器模擬摘機,完成振鈴音檢測。

        原器件選。

        1、C1隔直電容,因為是過濾直流,濾出低頻信號,而且振鈴信號的電壓還比較高,因此選取1μF耐壓100V的瓷片電容(由于條件限制,本人用兩個2μF耐壓60V的電解電容負極相連代替之);
        2、D1為穩(wěn)壓二極管,選取36V的穩(wěn)壓二極管;
        3、R1是4N25的限流電阻,取33 kΩ;
        4、IC1選取光電耦合器4N25;
        5、R2和C2共同組成振鈴信號音濾波電路,根據(jù)電話振鈴的技術指標:頻率25Hz的正弦波,1秒通,4秒斷,τ=RC可以推出0.02≤τ≤4(S)。為了使振鈴信號音輸出很好的方波波形,如圖3.2所示,計算后選取R2=10kΩ,C2=100μF,τ=1s;

        圖3.2
        6、R3和D3共同組成振鈴指示燈,R3=100Ω,D3為黃色5mm發(fā)光二極管;
        7、T1和R4組成模擬開關電路,T1選取9013,根據(jù)分壓原理和74LS04的低電平有效值,R4取2.9 kΩ;
        8、反向器由74LS04中的三組反向器組成,起整流作用;

        3.2 模擬摘掛機電路

        設計主要思路:
        根據(jù)國家有關標準規(guī)定:不論任何電話機,摘機狀態(tài)的直流電阻應≤300Ω,有“R”鍵的電子電話機的摘機狀態(tài)直流電阻應≤350Ω。在掛機狀態(tài)下,其漏電流≤5μA。
        當用戶摘機時,電話機通過叉簧接上約300Ω的負載,使整個電話線回路流過約30mA的電流。交換機檢測到該電流后便停止鈴流發(fā)送,并將線路電壓變?yōu)槭畮追闹绷,完成接續(xù)。

        根據(jù)有關技術指標,模擬摘掛機電路設計如圖3.3所示:

        模擬摘掛機電路主要由一個三極管開關電路控制繼電器的開關,繼電器控制接入電話線兩端的200Ω電阻。摘掛機信令由單片機通過使TXD/P3.1口變?yōu)楦唠娖綄崿F(xiàn)。經(jīng)過兩個反向器驅(qū)動發(fā)光二極管D1指示摘機,同時改變?nèi)龢O管T1的基極電壓,使T1處于導通狀態(tài),從而開啟繼電器J1,J1使電阻R3接入電話線兩端。因為R3的電阻為200Ω,使回路電流變大,控制電路向交換機發(fā)出模擬摘機的信號,交換機響應摘機信號,完成電話線路接通。整個電路完成自動模擬摘機過程。

        圖3.3
        根據(jù)設計原理,原器件選取如下:

        1、 反向器取74LS04中的兩組反向器;
        2、 R1是摘機指示燈限流保護電阻,取220Ω;
        3、 D1是摘機指示燈,取5mm綠色發(fā)光二極管;
        4、 R2是三極管限流電阻,取2kΩ;
        5、 T1三極管是起模擬開關控制繼電器的作用,取9013;
        6、 D2二極管是起繼電器反向保護的作用,取4001;
        7、 J1是繼電器控制開關,取JRC 4001F(DC5V);
        8、 R3是摘機電阻,取200Ω;

        3.3 雙音頻解碼

        原理簡介:

        雙音多頻DTMF信號解碼電路由MT8870(簡介詳見附錄)主要承擔。MT8870的連線如圖3.4所示,它的2、3腳接收來自電話機的雙音多頻脈沖信號該雙音多頻信號先經(jīng)其內(nèi)部的撥號音濾波器,濾除撥號音信號,然后經(jīng)前置放大后送入雙音頻濾波器,將雙音頻信號按高,低音頻信號分開,再經(jīng)高,低群濾波器,幅度檢測器送入輸出譯碼電路,經(jīng)過數(shù)字運算后,在其數(shù)據(jù)輸出端(11~14腳)輸出相對應的8421碼。MT8870的數(shù)據(jù)輸出端Q4 ~ Q1連到AT89C51的P1口的P1.4 ~ P1.7,CPU經(jīng)P1口識別4位代碼。電話按鍵與相應譯碼(Q4~Q1)輸出見附錄。其中,A,B,C,D 4個按鍵常被當作R/P,REDIAL,HOLD,HANDSFREE等功能使用。注意,需要特別指出的是,對于“0”號碼,MT8870輸出的8421碼并非是“0000”,而是“1010”;另外,“*”,“#”字號碼,MT8870輸出的8421碼分別為“1011”和“1100”。有些技術資料會出現(xiàn)錯誤,包括比較權威的手冊,所以我是在實驗中,記錄下測量的每一組數(shù)據(jù)后,才把這些數(shù)據(jù)應用于程序當中。為了使單片機AT89C51獲取有效數(shù)據(jù),MT8870的STD有效端經(jīng)反相后接CPU的/INT0引腳。當MT8870獲取有效雙音多頻信號后,

        圖3.4

        STD電平由低變高,再反相為低,CPU檢測后,指示P1口接收有效二進制代碼。而無效的雙音頻信號(電話線路雜音、人們的語音信號等)是不會引起MT8870的STD端變化的。DTMF接收器的外圍電路如圖3.4所示。其中,接在電源處的電容對抗干擾有一定的作用。在實際應用中,存在這樣一個問題:MT8870的使能控制端不允許中斷時,將使MT8870的STD端中斷關閉。其解決辦法是,將STD端接與非門的一輸入,與非門的另一輸入端接一不定電平端P。當STD有效(即中斷開放)時,P = 1則/INT0中斷關閉;P = 0時則/INT0中斷允許。

        本單元元器件列表:

        1、 D1、D2、D3、D4共同組成整流電路,選取4001;
        2、 R1和R2是輸入平衡電阻,取100KΩ,C1隔直電容,取0.1μF;
        3、 芯片外部晶振選擇3.579MHz;
        4、 IC1是雙音頻解碼芯片,選取MT8870;
        5、 C2選取0.1μF;
        6、 R3是輸出平衡電阻,選取100KΩ;
        7、 反向器選取74LS04的一組反向器;

        3.4 信號音提示電路

        原理說明:

        為了方便本系統(tǒng)的使用者,本人設計了信號音提示音電路,如圖3.5。首先我規(guī)定了信號音的規(guī)范以及其對應含義:
        1、 響1聲,頻率為500Hz:請輸入密碼;
        2、 響2聲,頻率為500Hz:請輸入需要控制的電器號;
        3、 響3聲,頻率為500Hz:請輸入控制開/關;
        4、 響1聲,頻率為1000Hz:完成操作;
        5、 響3聲,頻率為1000Hz:密碼錯誤;

        信號音從單片機89C51的RXD/P3.0口輸出,先經(jīng)過一組反向器進行整流、隔離,從反向器輸出的是頻率一定,時通時斷的方波,提示信號經(jīng)過隔直電容C1輸入到音頻放大集成電路LM386N-1的輸入端。經(jīng)過LM386N-1的放大,信號音經(jīng)耦合電容C5至變壓器T1,它是音頻輸出專用的耦合變壓器,正好符合阻抗匹配的要求。
        本電路比較難點在于耦合變壓器T1的選取。因為電話線中直流電壓比較高,而且還有各種信號音,這些都會影響到語音信號加載到電話線上,因此本裝置使用一個耦合變壓器作為隔離器件。這個耦合變壓器的阻抗匹配問題是設計的難點,設計初我查閱有關資料并沒發(fā)現(xiàn)具體參數(shù)。后來看到可以郵購這種電話語音專用耦合變壓器,其具體性能都很優(yōu)秀,但是價格太高,不符合我的設計原則(元器件便宜),因此棄置不用。
        到了畢業(yè)設計的后期,本裝置的基本功能已經(jīng)完成,音反饋的問題又重新提到議事日程上來了。經(jīng)過我不懈的努力,終于在電子市場上發(fā)現(xiàn)了體積很小的電話專用耦合變壓器,價格只有2元。這種耦合變壓器分兩種,一種是輸入,一種是輸出,經(jīng)過實驗表明輸入用的耦合變壓器反饋語音性能比較好,其體積大約是10mm×10mm×8mm。
        音頻放大集成電路LM386的連接比較簡單,本裝置的使用是LM386放大增益為50dB的連接方式。


        圖3.5
        原器件選。
        1、 反向器選取74LS04中的一組反向器;
        2、 C1的是對音頻信號起隔直耦合的作用,所以取100μF的電解電容,耐壓性能無特殊要求;
        3、 IC1、R1、R2、C2、C3、 C4和C5共同組成音頻放大電路,IC1選取LM386N-1,R1取1kΩ,C2取10μF的電解電容,C3取10μF的電解電容,R2取1kΩ, C4取10μF的電解電容,C5取100μF的電解電容;
        4、 T1是音頻輸出專用變壓器;
        3.5 電器控制電路

        原理說明:
        本單元電路主要是由譯碼擴展電路、反向電路、D觸發(fā)器和繼電器控制電路組成。電路圖如圖3.6所示。
        首先,單片機AT89C51從P1口的低四位輸出四位控制信號。P1.0、P1.1、P1.2作為三位數(shù)據(jù)線,P1.3作為使能控制信號,一同加在3-8線譯碼器的輸入端。當使能端有效時,三位數(shù)據(jù)線經(jīng)過譯碼器數(shù)擴展為八位數(shù)據(jù)線。這八位數(shù)據(jù)連接八個反向器進行整流隔離,然后連接D觸發(fā)器進行數(shù)據(jù)鎖存。每個D觸發(fā)器的輸出端都控制一路繼電器,而每一路繼電器也控制一路電器的開關。二極管指示燈并聯(lián)在開關三極管兩段作為電器開關指示。這樣就可以完成單片機對多路電器的控制。也可以把P1口的八位都用作控制電器,數(shù)據(jù)輸入口改在P2口。
        圖3.6所示的為一路電器控制電路圖,在本裝置中一共有八路電器可以控制,其它電器控制相同。

        圖3.6
        元器件選。
        1、3-8線譯碼器選取74LS138P;
        2、反向器選取兩片74LS04(每一片內(nèi)有六個反向器)中的九個反向器;
        3、觸發(fā)器選取四片4013(每一片內(nèi)有兩個D觸發(fā)器);
        4、三極管選取八個9013;
        5、二極管起保護作用,選取八個4001;
        6、指示燈選取八個紅色5mm發(fā)光二極管;
        7、指示燈限流電阻選取八個1kΩ的電阻;
        8、三極管的限流電阻選取八個2kΩ的電阻;
        9、繼電器選取八個JRC-4100F DC5V繼電器;

        第四章 軟件設計

        本系統(tǒng)的軟件設計主要分為系統(tǒng)初始化、振鈴檢測計數(shù)、控制摘掛機、雙音頻信號分析處理、控制電器、信號音提示等部分。每個功能模塊對于整體設計都是非常重要的,單片機T89C51通過軟件程序才能很好的對外部的信息進行采集、分析和決策。下面,就整體設計以及每個單元功能模塊分別進行說明。

        整體流程圖:

        4.1 信號音發(fā)聲部分

        本功能模塊主要是產(chǎn)生信號提示音,方便不同的使用者。根據(jù)普通人耳的反應頻率為20Hz至20KHz的范圍,和CCITT規(guī)定的電話話音信號的頻率范圍是300Hz至3400Hz,我在本功能單元的發(fā)聲頻率定為500Hz和1000Hz兩種。

        主要分為五種提示音:

        1、 低音,表示裝置已經(jīng)摘機,請輸入密碼,其參數(shù):頻率f=500Hz,延時t=0.5秒/聲;
        2、兩聲低音,表示密碼已經(jīng)通過,請選擇電器,其參數(shù):頻率f=500Hz,延時t=0.5秒/聲;
        3、三聲低音,表示電器已經(jīng)選定,請控制(開/關),其參數(shù):頻率f=500Hz,延時t=0.5秒/聲;
        4、三聲高音,表示密碼輸入錯誤,其參數(shù):頻率f=1000Hz,延時t=0.3秒/聲;
        5、一聲高音,表示控制已經(jīng)完成,其參數(shù):頻率f=1000Hz,延時t=0.3秒/聲;

        提示音發(fā)生是使用有限循環(huán),反復使單片機的RXD口的電平反轉(zhuǎn),從而形成方波信號。 子程序代碼:

        ORG 1100H
        RING10:MOV R6,#20 ;input password
        RING11:MOV R7,#20 ;800Hz
        RING12:LCALL DL10 ;sound=1
        CPL P3.0 ;delay=0.5s
        DJNZ R7,RING12
        DJNZ R6,RING11
        CLR P3.0
        RET
        ORG 1150H
        RING20:MOV R3,#03
        RING21:MOV R6,#20 ;password wrong
        RING22:MOV R7,#20 ;1600Hz
        RING23:LCALL DL20 ;sound=3
        CPL P3.0 ;delay=0.25s
        DJNZ R7,RING23
        DJNZ R6,RING22
        CLR P3.0
        MOV R7,#200
        RING24:LCALL DL10
        DJNZ R7,RING24
        DJNZ R3,RING21
        CLR P3.0
        RET

        ORG 1200H
        RING30:MOV R3,#02
        RING31:MOV R6,#20 ;select
        RING32:MOV R7,#20 ;800Hz
        RING33:LCALL DL10 ;sound=2
        CPL P3.0 ;delay=0.5s
        DJNZ R7,RING33
        DJNZ R6,RING32
        CLR P3.0
        MOV R7,#200
        RING34:LCALL DL10
        DJNZ R7,RING34
        DJNZ R3,RING31
        CLR P3.0
        RET

        ORG 1250H
        RING40:MOV R3,#03
        RING41:MOV R6,#20 ;control
        RING42:MOV R7,#20 ;800Hz
        RING43:LCALL DL10 ;sound=3
        CPL P3.0 ;delay=0.5s
        DJNZ R7,RING43
        DJNZ R6,RING42
        CLR P3.0
        MOV R7,#100
        RING44:LCALL DL10
        DJNZ R7,RING44
        DJNZ R3,RING41
        CLR P3.0
        RET

        ORG 1300H
        RING50:MOV R6,#40 ;finish
        RING51:MOV R7,#20 ;1600Hz
        RING52:LCALL DL20 ;sound=1
        CPL P3.0 ;delay=0.15s
        DJNZ R7,RING52
        DJNZ R6,RING51
        CLR P3.0
        RET

        ORG 1500H
        DL10:MOV R5,#25 ;delay1.25ms,f=800HZ,fosc=12MHz,
        DL12:MOV R4,#25
        DL11:DJNZ R4,DL11
        DJNZ R5,DL12
        RET

        ORG 1600H
        DL20:MOV R5,#12 ;delay0.625ms,f=1600HZ,fosc=12MHz,
        DL22:MOV R4,#25
        DL21:DJNZ R4,DL21
        DJNZ R5,DL22
        RET

        ORG 1650H
        DL30:MOV R5,#50 ;delay20ms
        DL32:MOV R4,#200
        DL31:DJNZ R4,DL31
        DJNZ R5,DL32
        RET

        4.2 密碼檢測部分

        本系統(tǒng)密碼校驗的基本原理是:在系統(tǒng)初始化的時候把原始密碼寫入地址為30H開始的存儲空間內(nèi),密碼的位數(shù)“5”賦給R7。當系統(tǒng)摘機時,要求輸入密碼,單片機把解碼后的數(shù)據(jù)(使用者輸入的密碼)存儲在38H開始的存儲空間內(nèi)。然后單片機對進行兩個存儲地址的內(nèi)容逐位進行比較,直到完全相等才能轉(zhuǎn)到下一進程,有一位不同,程序就轉(zhuǎn)到出錯程序。

        子程序代碼:
        ORG 0150H
        HOKE: CLR 7DH
        SETB P3.1 ;open telephone
        CLR TR0 ;close T0
        MOV R2,#03H ;password wrong 3
        LCALL RING10 ;input password
        IN: CLR 7EH ;7EH=0
        DTMF: MOV R7,#5H ;PASSWORD:5 R7
        MOV R1,#38H ;sign
        SETB P1.4
        SETB P1.5
        SETB P1.6
        SETB P1.7
        WAIT: JBC 7EH,CC ;wait INT0
        LJMP WAIT
        CC: MOV R7,#5H ;password 5***
        MOV R0,#30H ;password top
        MOV R1,#38H ;sign
        CMP: MOV A,@R1
        MOV R4,A
        CLR C
        MOV A,@R1
        SUBB A,@R0 ;test
        INC R0
        INC R1
        JZ AAA ;OK,pass one
        LJMP QQ
        AAA: DJNZ R7,CMP ;R7-1!=0
        LJMP LL ;pass
        QQ: DJNZ R2,IN1 ;password wrong&R2!=0
        LCALL RING20
        LJMP STOP
        IN1:LCALL RING20 ;password wrong,try!
        LJMP IN

        4.3 密碼修改部分

        本系統(tǒng)是通過在線輸入密碼而改變特定存儲器中的密碼值的。
        程序代碼:
        ORG 1700H
        KEYIN: SETB RS1 ;當前工作寄存器第二工作區(qū)
        CLR RS0
        ANL A,#00H ;清零A寄存器
        MOV B,#05H
        LCALL RING10 ;發(fā)提示音:輸入密碼***
        MOV R7,#5H
        MOV R1,#38H
        WPIN: JBC 7EH,READ ;等待INT0中斷
        LJMP WPIN
        READ: MOV R1,#38H
        MOV R0,#40H
        MOV R7,#05H
        READ1: MOV A,@R1
        MOV @R0,A
        INC R0
        INC R1
        DJNZ R7,READ1 ;判斷輸入密碼是否為5位,否跳轉(zhuǎn)READ1
        LCALL RING10 ;滿5位,發(fā)提示音:再輸入新密碼
        MOV R7,#5H
        MOV R1,#38H
        WRE: JBC 7EH,KEYCMP ;等待中斷INT1
        LJMP WRE
        KEYCMP:MOV R6,#05H
        MOV R0,#40H
        MOV R1,#38H
        KEYCP:MOV A,@R0
        CLR C
        SUBB A,@R1 ;A減((R1))
        INC R1
        INC R0
        JZ BBB ;A的內(nèi)容如果為0,則跳轉(zhuǎn)BBB
        LJMP LL
        BBB: DJNZ R6,KEYCP ;R6減1不為0,則跳轉(zhuǎn)KEYCP,即循環(huán)比較密碼的五位
        MOV R1,#38H
        MOV R0,#30H
        MOV R6,#5H
        KEYREIN:MOV A,@R1
        MOV @R0,A
        INC R1
        INC R0
        DJNZ R6,KEYREIN ;R6減1不為0,則跳轉(zhuǎn),即循環(huán)比較密碼的五位
        LCALL RING50 ;發(fā)提示音:新密碼已經(jīng)設置
        LJMP STOP
        RET

        4.4 控制電器部分

        本系統(tǒng)首先通過外圍雙音頻解碼電路解碼的信息(選擇電器)判斷所選擇的電器,然后跳轉(zhuǎn)到每一個子程序,通過單片機向P1口的低四位發(fā)送數(shù)據(jù),這些控制信息表示對不同的電器進行控制的控制字。為了簡單表示,在這里只寫出了電器“一”的控制子程序,其它子程序很相似,詳見附錄。

        程序代碼:
        LL: LCALL RING30 ;sound:input control
        MOV R7,#1H ;***
        MOV R1,#38H
        CLR 7EH
        WAIT0: JBC 7EH,DD ;wait INT0
        LJMP WAIT0
        DD: MOV R1,#38H
        MOV A,@R1
        RR A
        RR A
        RR A
        RR A
        MOV R4,A
        RL A
        ADD A,R4
        MOV DPTR,#TAB
        JMP @A+DPTR
        TAB: LJMP ZERO
        LJMP EIGHT;8
        LJMP FOUR ;4
        LJMP STOP ;#
        LJMP TWO ;2
        LJMP ZERO ;0
        LJMP SIX ;6
        LJMP LL ;**
        LJMP ONE ;1
        LJMP LL ;9,**
        LJMP FIVE ;5
        LJMP LL ;A,**
        LJMP THREE;3
        LJMP LL ;*,**
        LJMP SEVEN;7
        LJMP LL ;C,**

        ORG 0250H
        ZERO: LJMP LL

        ONE: LCALL RING40 ;發(fā)提示音:請操作電器
        OO1: MOV R7,#01H
        CLR 7EH
        WAIT1: JBC 7EH,WW1 ;wait INT0
        LJMP WAIT1
        WW1:MOV R1,#38H ;檢查信號首位
        MOV A,@R1
        CJNE A,#50H,BB1 ;(38)不等于0AH(0),則跳轉(zhuǎn)BB1
        LJMP ZZ1 ;(38)等于0AH(0),則跳轉(zhuǎn)ZZ1
        BB1: CJNE A,#80H,QUIT1 ;(38)不等于01H(1),則跳轉(zhuǎn)QUIT1
        SETB P1.3 ;open 1
        CLR P1.2
        CLR P1.1
        CLR P1.0
        LJMP QUIT1
        ZZ1: CLR P1.3 ;close all
        CLR P1.2
        CLR P1.1
        CLR P1.0
        LCALL RING50 ;finsh
        QUIT1: LJMP LL

        4.5 振鈴計數(shù)部分

        本單元是通過計數(shù)器T0的外部中斷方式來計數(shù)的,程序代碼:

        ORG 0090H
        TT0: SETB 7DH
        RETI


        第五章 系統(tǒng)調(diào)試

        5.1 整體調(diào)試

        整體調(diào)試所使用的測試儀器儀表和工具:

        1、IBM-PC/XT兼容機一臺,主頻:50Hz,有軟驅(qū)和25針串行接口;
        2、ME-5103單片機仿真機一個;
        3、MF116萬用表一個;
        4、計算機5V穩(wěn)壓電源一個;
        5、SR8雙蹤示波器;
        6、Manley In-Circuit Emulator Debugger(MBUG)開發(fā)軟件;

        本裝置的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試和聯(lián)機調(diào)試等三大部分。
        經(jīng)過初步的分析設計后,在制作硬件電路的同時,調(diào)試也在穿插進行。這樣有利于問題的分析和解決,不會造成問題的積累,而且不會因為一個小問題而進行整體電路的檢查,從而可以節(jié)約大量的調(diào)試時間。軟件編程中,我是首先完成單元功能模塊的調(diào)試,然后進行系統(tǒng)調(diào)試,整體上與硬件調(diào)試的方法差不多。聯(lián)機調(diào)試是最重要的一部分,同時也是本裝置成功的關鍵。有許多新問題都不是很容易解決的。

        調(diào)試的步驟

        5.2 硬件單元電路 5.2.1 5V穩(wěn)壓電源

        本裝置使用單5V穩(wěn)壓電源供電,要求交流成分小。經(jīng)過示波器測量5V穩(wěn)壓電源輸出端,其交流部分電壓的峰-峰值為6mV,符合本裝置的電源要求,穩(wěn)壓電源調(diào)試完畢。

        5.2.2 振鈴音檢測

        在本單元電路制作前期,實驗室中無模擬交換機,無法產(chǎn)生振鈴信號,我只好在完成此部分的焊接后回寢室中完成其測試。將本裝置的電話線兩端并聯(lián)在電話機兩端,摘機撥打“190”,然后掛機,市交換機會回送連續(xù)的測試振鈴音。經(jīng)過測量,這種測試振鈴音和正常的振鈴信號的頻率、振幅等特性都一樣,只是正常的振鈴信號是1秒通4秒斷,而這種測試振鈴音是連續(xù)的。當送測試振鈴音時,用萬用表的直流檔測量光電耦合器4N25的輸出端,有明顯的電壓,這說明可以形成中斷響應信號。后接振鈴指示燈,發(fā)現(xiàn)在送鈴流 圖5.1信號時,指示燈亮,但是燈在閃爍。分析得光耦輸出端所接的濾波電容C2太小,于是把原來的1μF換成現(xiàn)在的100μF,如右圖5.1所示,問題得到解決。
        因為單片機T0所響應的外部中斷信號是低電平有效,所以在光耦輸出端接了一個開關三極管T1控制指示燈,在三極管的輸出端接了三個反向器。經(jīng)過三極管T1的開關作用和三個反向器的反向作用,輸出應該為低電平。但是在測量反向器輸出端時發(fā)現(xiàn):振鈴指示燈亮,但反向器輸出端為高電平。說明振鈴信號可以通過三極管,但無法通過反向器。分析原因可能是反向器74LS04壞了,換之,再測,還是老問題。經(jīng)過細心測量三極管的發(fā)射極電壓發(fā)現(xiàn):有振鈴時Ve=1.1V,這時反向器74LS04認為是低電平,當無振鈴脈沖信號時,還是認為是低電平,所以振鈴信號無法通過反向器。解決方法很簡單,把三極管的發(fā)射極端的下拉電阻R4從原來的20kΩ改成5.1kΩ,提升三極管的發(fā)射極電壓。
        在畢業(yè)設計的后期,實驗室有了模擬小交換機,經(jīng)測試,本單元電路完全正常,振鈴檢測部分調(diào)試完畢。

        5.2.3 模擬摘掛機

        此部分的調(diào)試較為容易,電路接好后,用5V高電平測試之,指示燈亮,繼電器吸合正常。接入模擬小交換機,控制摘機時,交換機的端口指示燈亮,反之掛機時,指示燈滅。說明此部分完全正常。接入仿真機測試時發(fā)現(xiàn):單片機的TXD端不能控制模擬摘掛機部分的摘掛機。分析得出結(jié)論:可能是接口的電平不相符合。解決方法:加上一個三極管模擬開關,加上一個反向器(74LS04)進行控制隔離作用。經(jīng)過接入仿真機測試表明反向器的作用很明顯,于是在后面的電路設計當中,我在許多的接口上大多使用了反向器。至此,模擬摘掛機部分調(diào)試完畢。

        5.2.4 控制電器

        控制電器這部分的外圍硬件電路很容易,在調(diào)試過程中很順利完成。在接仿真機時,使用的是P2口控制電器,實驗結(jié)果表明P2口無法正常控制每個電器,翻閱資料發(fā)現(xiàn)單片機89C51的P2口沒有數(shù)據(jù)鎖存功能,不能保持上一個狀態(tài)的數(shù)據(jù)。解決方法:把P2口控制電器改為P1口的低四位控制電器,改線之后控制正常,但是新的問題出現(xiàn)了,原來要求控制八路的端口,現(xiàn)在只能控制四個電器。
        經(jīng)過市場實際分析,一般的控制電器只要求3~4路即可,為了實驗單片機擴展控制功能,提高本遙控裝置的潛在功能,我決定實驗使用3-8線譯碼器74LS138對P1口的低四位輸出數(shù)據(jù)進行譯碼擴展。具體電路詳見前面。在成功的擴展了控制電器的個數(shù)后,我又發(fā)現(xiàn)了一個新的問題:遙控器不能同時使兩路以及兩路以上的電器開,即在同一時刻,遙控器只能使一路電器開啟。
        經(jīng)過仔細分析,我發(fā)現(xiàn)了問題原因之所在,那就是譯碼器的原理問題。通常情況下我們認為的譯碼器可以擴展所能控制的電器,其實譯碼器只能擴展位數(shù),而不能使狀態(tài)發(fā)生變化。例如:三位二進制000~111可以控制表示三個電器、八種狀態(tài),而經(jīng)過3-8線譯碼器譯碼后,可以控制八個電器,但是其狀態(tài)也只有八種,如下表所示。

        A2 A1 A0 輸出D0~D7
        0 0 0 0 1 1 1 1 1 1 1
        0 0 1 1 0 1 1 1 1 1 1
        0 1 0 1 1 0 1 1 1 1 1
        0 1 1 1 1 1 0 1 1 1 1
        1 0 0 1 1 1 1 0 1 1 1
        1 0 1 1 1 1 1 1 0 1 1
        1 1 0 1 1 1 1 1 1 0 1
        1 1 1 1 1 1 1 1 1 1 0

        其解決方法是:使用D觸發(fā)器使繼電器保持上一個狀態(tài),這樣才能使八路電器可以控制28=256個狀態(tài)。

        5.2.5 雙音頻檢測

        雙音頻檢測是整體電路一個比較重要的過程,它的調(diào)試主要圍繞著雙音多頻解碼芯片8870展開的。在此部分的制作的前期,我采用的芯片是CM8870CPI。開始連接電路調(diào)試時,整體電路工作很正常,后來這塊芯片使用大約一個星期左右的時間,解碼電路經(jīng)常會出現(xiàn)解碼出錯的情況。經(jīng)過仔細檢查電路,仿真機單步執(zhí)行進行調(diào)試,確認硬件電路無誤,診斷為CM8870CPI的問題。根據(jù)我的初步分析認定可能是芯片老化的原因,后更換為MT8870DE發(fā)現(xiàn)本裝置工作很正常,而且換上MT8870DE工作了將近一個月,整體電路沒有發(fā)生任何解碼誤碼情況,MT8870DE在最后的聯(lián)機調(diào)試過程中也沒有出現(xiàn)任何問題。

        5.3 軟件程序調(diào)試

        5.3.1軟件系統(tǒng)設置

        對于本系統(tǒng)而言,軟件程序所實現(xiàn)的功能比較多,所以軟件程序的調(diào)試顯得相當?shù)臒┈。整個程序是使用匯編語言,在MBUG下編寫調(diào)試完成的。
        首先我使用的是我自己的計算機聯(lián)接MCS-51仿真機,計算機的主頻為333MHz,但是出現(xiàn)了許多的問題。第一個問題就是:我所使用的MCS-51仿真機型號是ME-5103,聯(lián)入計算機的25針串行口來進行程序的讀入,但是我的計算機沒有25針串行口。觀察計算機的后面,主板上只有一個25針并行口,是用來連接打印機的;除了這個25針串行口外,還有兩個9針串行口。
        我只有把MCS-51仿真機的25針接口變成9針串行接口,才能連接計算機。后來我找到一個25針-9針的轉(zhuǎn)換口,可以通過他使MCS-51仿真機和我的計算機聯(lián)接。
        我使用的是Manley In-Circuit Emulator Debugger(MBUG)開發(fā)軟件,使用時發(fā)現(xiàn)此系統(tǒng)可以進行正常的Assemble(匯編),但是不能正常的進行Load Program,執(zhí)行時會出現(xiàn)divide overflow error的錯誤,然后就退出此編譯系統(tǒng),這就使得無法進行仿真機模擬實驗。
        經(jīng)過實驗室多組同學的八臺計算機的嘗試,我們終于發(fā)現(xiàn)了問題之所在。實驗結(jié)果表明:主頻高于233MHz的計算機都不能正常聯(lián)接MCS-51仿真機,而主頻低于100MHz的計算機(有25針串行接口)均可以進行仿真實驗。后來經(jīng)過查閱有關技術資料,型號為ME-5103的MCS-51仿真機只能工作在IBM PC/XT/AT 286/386/486的環(huán)境下。
        由于實驗室的低檔計算機(能聯(lián)接MCS-51仿真機)的不太多,所以我們只有把僅有的幾臺計算機進行優(yōu)化重組,以便合理利用有限的計算機資源。我的匯編語言程序相對來說還是比較多的,調(diào)試起來可能費時,所以我先在自己的計算機上對程序的語法錯誤(syntax error)進行調(diào)試修改,然后又對地址覆蓋(org address is less)的錯誤進行修改,既對每個子程序的開始地址進行仔細的調(diào)整。到此為止整個軟件程序調(diào)試環(huán)境就已經(jīng)配好了。

        5.3.2提示音信號

        在本單元的調(diào)試過程中,我認為此部分的結(jié)構比較簡單,因此在整體程序中直接調(diào)試。首先Ctrl+F5單步執(zhí)行,發(fā)現(xiàn)此部分的RING1子程序正常,而其它的子程序在執(zhí)行時卻發(fā)生死循環(huán)。我把這幾個子程序單獨切出來進行分析,卻發(fā)現(xiàn)執(zhí)行正常,于是我推測并不是子程序本身的結(jié)構問題。然后使用Ctrl+F8對整個程序單步執(zhí)行(兩種單步執(zhí)行的區(qū)別在于F5直接執(zhí)行子程序,即不單步執(zhí)行子程序,而F8對于整個程序都是單步執(zhí)行,包括子程序),發(fā)現(xiàn)RING2中的R5寄存器已經(jīng)在主程序中用作判斷標志位,程序已經(jīng)在外部完成對其賦值。這樣就導致重復賦值,因此無法跳出循環(huán)子程序,直接導致死循環(huán)。

        程序代碼:
        ORG 1150H
        RING20:MOV R3,#03
        RING21:MOV R6,#20 ;password wrong
        RING22:MOV R5,#20 ;1600Hz
        RING23:LCALL DL20 ;sound=3
        CPL P3.0 ;delay=0.25s
        DJNZ R5,RING23
        DJNZ R6,RING22
        CLR P3.0
        MOV R5,#200
        RING24:LCALL DL10
        DJNZ R5,RING24
        DJNZ R3,RING21
        CLR P3.0
        RET
        后來我將子程序中的R5寄存器換成R7寄存器,子程序就正常了。

        5.3.3密碼檢測
        本部分的調(diào)試比較艱難,我是先調(diào)試一位密碼,然后再調(diào)試五位密碼。我先設定R5為一位,即先設定一位密碼作為測試。首先單步執(zhí)行,發(fā)現(xiàn)信號音無法正常輸入到單片機的38H地址處的存儲空間,F(xiàn)象:計算機聯(lián)機單步執(zhí)行,接收振鈴信號,三次自動摘機,當程序執(zhí)行到等待INT0中斷(一個小的循環(huán)程序)時,既等待輸入密碼時,我按下“7”(事先設定的一位密碼),單片機能夠正常的響應中斷信號,跳出循環(huán)程序,執(zhí)行中斷處理程序,單片機在比較比較密碼時,總是出錯。
        在程序單步執(zhí)行時,我仔細觀察了每個寄存器和存儲器的內(nèi)容。地址為38H的存儲空間內(nèi)容始終為FFH,并沒有變化,而且無論輸入什么密碼,寄存器A的內(nèi)容總是恒定不變的。因為地址為38H的存儲空間內(nèi)放的是用戶輸入的密碼,累加器A放的是@30H減去@38H的值,即輸入密碼正確時應該為0,所以我認為單片機并沒有把數(shù)據(jù)寫入地址為38H的存儲空間。
        經(jīng)過反復調(diào)試我也沒有發(fā)現(xiàn)問題之所在,于是我抱著嘗試的想法用F9全部執(zhí)行一次。結(jié)果很驚人,程序居然能通過密碼檢測部分。我仔細的思考了單步執(zhí)行的每一個狀態(tài),終于發(fā)現(xiàn)了失敗的原因。
        程序單步執(zhí)行到等待INT0中斷,即要求輸入密碼時,按下電話機的一個按鍵,程序就跳出循環(huán)程序,跳到中斷處理程序處處理雙音頻信號的輸入。因為單步執(zhí)行是一步一步的執(zhí)行,其執(zhí)行速度比較慢,等到把單片機的P1口高四位的雙音頻解碼信號寫入地址為38H的存儲空間時,信號早已過去,P1口高四位也恢復高電平,寫入P1口高四位的數(shù)據(jù)當然是FFH。而F9全程執(zhí)行速度非?,不是外部信號等待單片機的處理,而是單片機等待外部信號的輸入,當然不會漏掉數(shù)據(jù)。
        原因找到了,解決方法也很簡單:在程序單步執(zhí)行時,到了等待INT0中斷時,我按下“7”鍵的時間特別長,直到看見程序執(zhí)行到寫入地址為38H的存儲空間后才松手。這樣數(shù)據(jù)就能正確寫入寄存器,當然能夠通過密碼檢測。

        程序代碼:
        HOKE1: LJMP HOKE
        ORG 0090H
        TT0: SETB 7DH
        RETI
        ORG 0150H
        HOKE: CLR 7DH
        SETB P3.1 ;open telephone
        CLR TR0 ;close T0
        MOV R2,#03H ;password wrong 3
        LCALL RING10 ;input password
        IN: CLR 7EH ;7EH=0
        DTMF: MOV R7,#1H ;PASSWORD:5 R7
        MOV R1,#38H ;sign
        SETB P1.4
        SETB P1.5
        SETB P1.6
        SETB P1.7
        WAIT: JBC 7EH,CC ;wait INT0
        LJMP WAIT
        CC: MOV R7,#1H ;password 5***
        MOV R0,#30H ;password top
        MOV R1,#38H ;sign
        CMP: MOV A,@R1
        MOV R4,A
        CLR C
        MOV A,@R1
        SUBB A,@R0 ;test
        INC R0
        INC R1
        JZ AAA ;OK,pass one
        LJMP QQ
        AAA: DJNZ R7,CMP ;R7-1!=0
        LJMP LL ;pass
        QQ: DJNZ R2,IN1 ;password wrong&R2!=0
        LCALL RING20
        LJMP STOP
        IN1:LCALL RING20 ;password wrong,try!
        LJMP IN

        5.4 聯(lián)機在線調(diào)試
        經(jīng)過前一階段硬件、軟件的分別調(diào)試,本裝置的制作也到了最后的沖刺階段,那就是聯(lián)機在線調(diào)試。

        聯(lián)機在線調(diào)試所用到的設備:
        1、 MCS-51仿真機一臺;
        2、 TC-108H“多路通”實驗程控交換機一臺;
        3、 HA8188(9)P/T雙音多頻電話機一臺;
        4、 HA119(6)P/T雙音多頻電話機一臺;
        5、 主頻為50MHz的微機一臺;

        由于實驗室條件有限,只有兩臺交換機供十幾組使用,時間非常有限。本裝置的前期調(diào)試工作盡可能的完成在交換機外,例如:振鈴檢測的調(diào)試基本上就是在宿舍的電話上完成的。我是選擇了一個晚上從23點一直調(diào)試到了次日凌晨2點,在別人不使用交換機的時候調(diào)試基本完畢的。
        聯(lián)機在線調(diào)試的第一步是振鈴音檢測,由于事先的調(diào)試,這一部分沒有花太多時間,只是在單步執(zhí)行的時候,有時會發(fā)生仿真機不正常結(jié)束程序的情況。經(jīng)過詢問老師和同學,MCS-51仿真機不是太穩(wěn)定,這種情況經(jīng)常發(fā)生,在全速執(zhí)行或把程序燒錄片子之后就不會發(fā)生了。
        雙音頻信號解碼在聯(lián)機在線調(diào)試的時候也沒有發(fā)生太大的問題。
        最大的問題發(fā)生在程序內(nèi)部的信息處理部分,因為我事先并沒有對信號的編解碼做規(guī)定,這樣就直接導致雙音頻信號解碼后輸入到單片機內(nèi),造成跳轉(zhuǎn)指令混亂。比如我按下“7”鍵,單片機會認為我按下的是“1”鍵。這一部分原理是比較簡單的,但是程序還是挺麻煩的,因為當時已經(jīng)是半夜,所以頭腦比較混亂,我用了一個多小時的時間才把程序內(nèi)譯碼、碼制轉(zhuǎn)換的問題解決。
        因為調(diào)試的時候是只使用一位密碼,控制一路電器,所以到了這時,我還有擴展密碼位數(shù)和擴展控制路數(shù)的問題要解決。這些擴展都是時間問題,只要仔細的拷貝一些程序代碼就可以順利完成。
        在聯(lián)機調(diào)試的后期我還發(fā)現(xiàn)了一些小問題:我的實驗桌上一共有三排數(shù)據(jù)線,我使用的是其中的一排。結(jié)果總是第三路電器無法實現(xiàn)遙控,更換數(shù)據(jù)線就會變正常。經(jīng)萬用表測量發(fā)現(xiàn)原先使用的數(shù)據(jù)線有一根線根本是不導通的。
        我還用不同的MCS-51仿真機實驗,發(fā)現(xiàn)幾乎沒有兩臺MCS-51仿真機的實驗結(jié)果是完全相同的,不是晶振的振蕩頻率不同,就是有個別管腳不能輸出數(shù)據(jù)。晶振的振蕩頻率不同就直接造成延時不同,發(fā)生頻率不一樣。
        經(jīng)過一個通宵的調(diào)試,大大小小的各種問題都得到了解決,到此為止,在線聯(lián)機調(diào)試也就告一段落。

        第六章 系統(tǒng)使用說明

        本系統(tǒng)使用起來非常方便,下面我就系統(tǒng)使用流程圖做一下簡單的使用方法介紹。
        如右圖7.1所示,首先用戶把本裝置的信號線并聯(lián)在電話線的兩端,插上電源線,打開電源開關,本裝置自動復位,就能正常工作了。
        當用戶從異地打來電話,本裝置接收到電話振鈴音,開始計數(shù)。當電話鈴聲計到五次,裝置自動摘機,回送提示音提示輸入密碼。
        當用戶在三次之內(nèi)輸入正確的密碼后,用戶就可以對裝置所連的電器進行選擇,然后根據(jù)需要對其進行開關控制。
        用戶可以在一次“通話”中同時控制幾個電器。如果用戶控制完畢,可以按‘#’鍵讓裝置自動掛機,結(jié)束“通話”。而已經(jīng)開啟的電器將保持其開啟的狀態(tài),直到下一次的“通話”控制使其關閉。
        本裝置使用起來簡單易學,而且功能強大。


        第七章 系統(tǒng)功能擴展
        本系統(tǒng)由于時間的限制,在畢業(yè)設計結(jié)束之前只能作到現(xiàn)有的程度。在本次畢業(yè)設計的后期,我也盡量對本作品的功能進行了相應的擴展。例如:單片機控制電器數(shù)量的增加,此部分充分應用了單片機外圍接口擴展技術。
        我在這里對本系統(tǒng)還可以的擴展功能做一下簡單的介紹。
        1、使用MT8888芯片還可以進一步擴展其功能,而且使本裝置的體積大大減小,在這里就MT8888集成電路作一個簡單的介紹。
        MT8888是MITEL公司的產(chǎn)品,是一種帶呼叫進展過濾器的單片雙音多頻收發(fā)器。它包括一個帶增益可調(diào)放大器的DTMF接收器和一個DTMF發(fā)送器。接收器的結(jié)構及工作原理與MT8870大同小異,也采用集頻帶分離濾波和數(shù)字解碼為一體的結(jié)構。其中濾波電路也采用高頻群和低頻群兩個六階開關電容帶通濾波器,解碼采用數(shù)字計數(shù)器技術來確定輸入的DTMF音調(diào)的頻率,并將其譯成標準的四位二進制碼。發(fā)送器采用開關電容D/A變換器。片內(nèi)使用了一個脈沖計數(shù)器,能合成精確的音調(diào)脈沖,保證音調(diào)脈沖準確的定時發(fā)送。MT8888提供了一個標準的微處理器總線接口,可以直接與MCS-51系列微機接口。它還可以選用呼叫進展方式工作,通過呼叫進展濾波器來檢測特定通帶內(nèi)的信號頻率,供微處理機或計數(shù)器電路分析,以確定檢測到的呼叫進展音的性質(zhì)。
        MT8888的接收工作方式,從檢測DTMF信號到解碼的過程與MT8870完全一致,差異較大的是解碼后的二進制碼的輸出。MT8888沒有延時導引輸出端stD,當收到的有效音調(diào)對已被寄存且相對應的四位二進制碼已被鎖在接收數(shù)據(jù)寄存器中時,片內(nèi)狀態(tài)寄存器中的延時控制標志位b3復位,同時狀態(tài)寄存器中的接收數(shù)據(jù)寄存器滿標志位b2置位,CPU可通過查詢這些狀態(tài)標志來了解解碼的過程。如果選中的是中斷方式,當延時控制標志位復位時,IRQ/CP端將變?yōu)榈碗娖,向CPU發(fā)送中斷請求,當CPU響應此中斷,讀出狀態(tài)寄存器中的數(shù)據(jù)后,IRQ/CP端返回高電平狀態(tài)。
        根據(jù)MT8888的以上特點,它可以檢測出電話振鈴音、忙音等信號音。我設計了新的系統(tǒng)功能,改進了的系統(tǒng)可以首先工作于第二方式,即電話線路信號音檢測狀態(tài),然后根據(jù)振鈴情況控制摘掛機,摘機后MT8888工作于第四方式,即雙音頻解碼狀態(tài),后面就和8870一樣了。這樣就能節(jié)省硬件電路的設計制作,還可以大大縮小本裝置整體體積。
        2、利用138譯碼器的STA、STB和STC還可以進行級聯(lián)擴展為24線譯碼器,若外接一個反向器還可以級聯(lián)擴展成為32線譯碼器。
        3、使用LM567鎖相環(huán)可以對電話信號音中的忙音進行識別,使使用者更加方便,而且能夠提高本裝置的穩(wěn)定性。

         
      1. 上一篇: 手機入不了網(wǎng)的原因分析
      2. 下一篇: 基于uPSD3200的人機對話設計
      3. 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
        熱點文章
         
        推薦文章
         
        相關文章
        網(wǎng)友評論:(只顯示最新5條。)
        關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

        點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
        本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
        機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
        Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
        電話:0571-87774297 傳真:0571-87774298
        杭州濱興科技有限公司提供技術支持

        主辦:杭州市高新區(qū)(濱江)機電一體化學會
        中國行業(yè)電子商務100強網(wǎng)站

        網(wǎng)站經(jīng)營許可證:浙B2-20080178-1
        黑人巨茎大战欧美白妇_一区二区在线 | 国_天堂SV在线最新版在线_97在线观看视频
          <ol id="glfvi"></ol>

          <fieldset id="glfvi"></fieldset>

          1. <mark id="glfvi"></mark>
              <var id="glfvi"></var>

              <big id="glfvi"></big>