




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、東 莞 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)畢業(yè)設(shè)計(jì)題目:遠(yuǎn)程無(wú)線遙控系統(tǒng)軟件編程學(xué)生姓名:學(xué) 號(hào):系 別:電子工程學(xué)院專業(yè)班級(jí): 指導(dǎo)教師姓名及職稱:起止時(shí)間: 2009 年 2 月 2009 年5月摘要本文主要介紹了一種以單片機(jī)AT89C51和雙音多頻解碼集成電路MT8870為核心,通過(guò)遠(yuǎn)程無(wú)線遙控系統(tǒng)能異地遙控各種終端,如打開、關(guān)閉、延時(shí)關(guān)閉家用電器或者工業(yè)自動(dòng)化控制設(shè)備。根據(jù)用戶的控制數(shù)量需求,用戶可以方便地設(shè)置多路輸出方式,而且每個(gè)操作都具有明確的鳴響音提示, 操作者非常清楚當(dāng)前的操作效果。除此之外,該系統(tǒng)具有自動(dòng)定時(shí)功能和時(shí)間延長(zhǎng)監(jiān)聽操作功能,可以遠(yuǎn)程打開監(jiān)聽,也可關(guān)閉監(jiān)聽。為了
2、增強(qiáng)系統(tǒng)的安全與穩(wěn)定,在遠(yuǎn)程遙控的過(guò)程,操作者要輸入正確的密碼才能實(shí)現(xiàn)遙控功能。當(dāng)然,操作者還可以對(duì)密碼進(jìn)行設(shè)置。該系統(tǒng)實(shí)用、功能靈活多樣,可以對(duì)被遙控對(duì)象的狀態(tài)進(jìn)行查詢以及控制,可以廣泛的應(yīng)用于家用電器或者其它場(chǎng)所的各種控制設(shè)備。關(guān)鍵詞智能電話遠(yuǎn)程控制系統(tǒng)雙音多頻鈴流檢測(cè)AbstractTelephone remote-control can telecontrol the household appliances in another place, can remote monitor abnormal conditions at home, which is a good assist
3、for house life.Telephone remote-control enables user to set or modify password on local or remote place, allows user to setup the ringing times of simulating answer and perform operations.Whats more, the data wont be lost even the electricity is cut down suddenly. According to the requirement of the
4、 users control numbers, user can setup 4-channel output conveniently. Every operation will be reminded by explicit bells. As a result, operator can know very clear what is the operating effect of current operation. This paper mainly introduces a multi-channel intelligent remote-control based on MCU
5、AT89C51, decoding IC of DTMF MT8870 via telephone cables. This system is very pratical and has various functions. It can carry out enquiry and control upon the situations of objects controlled, it also can be widely applied to household appliances or different kinds of devices in other arenas.Keywor
6、ds: Intelligent telephone, remote-control system, DTMF,Detecting of ringing flow目錄1、引言4選題背景及意義 42、遠(yuǎn)程無(wú)線控制系統(tǒng)硬件電路的組成及原理 421 振鈴檢測(cè)電路 422 電話自動(dòng)摘機(jī)和掛機(jī)電路 523 音頻放大電路 524 DTMF信號(hào)解碼電路 525 語(yǔ)音提示電路 626 電路的元件選擇 63、軟件設(shè)計(jì) 931 信號(hào)音發(fā)聲部分 1032 密碼檢測(cè)部分 1333 密碼修改部分 1534 控制電器部分 1635 振鈴計(jì)數(shù)部分 194、PCB板的設(shè)計(jì)與制作 195、電路的裝配調(diào)試 2251 硬件調(diào)試 22
7、52 軟件調(diào)試 2553 聯(lián)機(jī)在線調(diào)試 296、總結(jié)30 附錄 33 致謝351、引言選題背景及意義隨著通訊產(chǎn)業(yè)的發(fā)展,電話機(jī)已經(jīng)走進(jìn)了千家萬(wàn)戶;隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,利用電話機(jī)進(jìn)行遠(yuǎn)程控制的技術(shù)也日益用于生活中。本文介紹了一種電話遠(yuǎn)程控制系統(tǒng)。該系統(tǒng)以單片機(jī)AT89C51和雙音多頻解碼集成電路MT8870為核心,通過(guò)遠(yuǎn)程無(wú)線遙控系統(tǒng)能異地遙控各種終端,如打開、關(guān)閉、延時(shí)關(guān)閉家用電器或者工業(yè)自動(dòng)化控制設(shè)備。如需遙控家用電器,用戶可通過(guò)任意一部雙音多頻電話(包括手機(jī),電話分機(jī))對(duì)自己家庭安裝的各種、電器(如電飯鍋,微波爐,電視機(jī)等)進(jìn)行開機(jī),停機(jī)等操作。系統(tǒng)主要由DTMF音頻解碼電路、語(yǔ)音提示
8、電路、離線/上線/復(fù)位電路、中央處理單元、驅(qū)動(dòng)電路、電源電路等組成,如圖1所示。CPU驅(qū)動(dòng)電路尋址電路DTMF解碼電路振鈴檢測(cè)電路受控設(shè)備電源電路語(yǔ)音提示電路開關(guān)電路用戶電話線INToINT1圖1 系統(tǒng)電路組成框圖21世紀(jì)是信息時(shí)代,各種電信新技術(shù)推動(dòng)了人類文明的進(jìn)步。隨著科學(xué)技術(shù)的發(fā)展,無(wú)線控制技術(shù)正在向各個(gè)領(lǐng)域滲透,遠(yuǎn)程無(wú)線遙控技術(shù)的實(shí)現(xiàn)方便了人們的日常生活,操作簡(jiǎn)單,具有較大的使用價(jià)值與市場(chǎng)潛力,同時(shí)無(wú)線控制也適合遠(yuǎn)程無(wú)人控制,有著良好的發(fā)展前景。2、遠(yuǎn)程無(wú)線控制系統(tǒng)硬件電路的組成及原理2.1 振鈴檢測(cè)電路當(dāng)電話振鈴信號(hào)到來(lái)時(shí),電話線路上的90伏振鈴信號(hào),經(jīng)過(guò)整流及濾波后,驅(qū)動(dòng)光電耦合器
9、,如圖2所示。有振鈴信號(hào)時(shí),輸出為高電平,無(wú)振鈴時(shí)為低電平,CPU以此來(lái)來(lái)判斷有無(wú)振鈴及振鈴次數(shù)。圖2 振鈴檢測(cè)電路2.2 電話自動(dòng)摘機(jī)和掛機(jī)電路圖3 電話自動(dòng)摘機(jī)、掛機(jī)電路 電話打入并等待默認(rèn)的振鈴次數(shù)后,從CPU的P1.7送出的摘機(jī)信號(hào)驅(qū)動(dòng)光藕導(dǎo)通使假負(fù)載接入,進(jìn)入摘機(jī)狀態(tài)。當(dāng)整個(gè)設(shè)定過(guò)程完成后或輸入密碼錯(cuò)誤時(shí),CPU使摘機(jī)信號(hào)恢復(fù)為高電平以斷開假負(fù)載,進(jìn)入掛機(jī)狀態(tài),如圖3所示。2.3 音頻放大電路圖4 音頻放大電路使用LM386低壓音頻功率放大器,LM386是為低壓用戶設(shè)計(jì)的功率放大器,內(nèi)部增益為20,外接元件數(shù)目較少。音頻放大電路如圖4所示。2.4 DTMF信號(hào)解碼電路在電路遠(yuǎn)程控制電
10、路中,DTMF的信號(hào)解碼電路是非常重要的部分。本系統(tǒng)采用常規(guī)的MT8870解碼芯片,該芯片具有功耗低、調(diào)整簡(jiǎn)單、抑制撥號(hào)音能力強(qiáng)等特點(diǎn)。當(dāng)MT8870檢測(cè)到有DTMF信號(hào)輸入并已解調(diào)、鎖存到輸出寄存器后,STD端輸出高電平,CPU檢測(cè)到該信號(hào)后便可使MT8870的三態(tài)輸出鎖存器使能端TOE有效,并將代表?yè)芴?hào)值的四位二進(jìn)制代碼Q1-Q4送往CPU處理。電路如圖5所示。圖5 DTMF信號(hào)解碼電路2.5 語(yǔ)音提示電路當(dāng)有電話打入并且電話遠(yuǎn)程控制器摘機(jī)后,控制者便會(huì)在語(yǔ)音提示電路的提示下輸入密碼、選擇通道、選定各種數(shù)值、執(zhí)行開機(jī)、掛機(jī)等操作。語(yǔ)音電路采用美國(guó)ISD公司的語(yǔ)音錄放芯片ISD1420。此芯
11、片能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂(lè)、音調(diào)和效果聲,并且存儲(chǔ)的住處在斷電的情況下百年不丟失。將需要提示的語(yǔ)音住處按段錄入到芯片后,在CPU的控制下將錄入的信息順序由音頻輸出端輸出,然后經(jīng)音頻功率放大器放大后送到電話線路上。電路如圖6所示。圖6 語(yǔ)音提示電路2.6電路元件選擇芯片的選擇單片機(jī)主要選擇51系列,因?yàn)槲覀兙褪菍W(xué)51單片機(jī),用起來(lái)比較容易上手,指令也很熟悉,而且都是用STC系列,方便燒錄芯片。電阻、電容與電感的選擇電阻的選擇電阻在電路中的主要作用為:分流、限流、分壓、偏置等。(1)參數(shù)識(shí)別:電阻的單位為歐姆(),倍率單位有:千歐(K),兆歐(M)等。換算方法是:1兆歐=1000千歐=歐
12、。電阻的參數(shù)標(biāo)注方法有3種,即直標(biāo)法、色標(biāo)法和數(shù)標(biāo)法。a、數(shù)標(biāo)法主要用于貼片等小體積的電路,如:472 表示 47100(即4.7K); 104則表示100Kb、色環(huán)標(biāo)注法使用最多,現(xiàn)舉例如下:四色環(huán)電阻 五色環(huán)電阻(精密電阻) (2)注意電阻的色標(biāo)位置和倍率之間的對(duì)應(yīng)關(guān)系。電容的選擇(1)電容在電路中一般用“C”加數(shù)字表示(如C13表示編號(hào)為13的電容)。電容是由兩片金屬膜緊靠,中間用絕緣材料隔開而組成的元件。電容的特性主要是隔直流通交流。電容容量的大小就是表示能貯存電能的大小,電容對(duì)交流信號(hào)的阻礙作用稱為容抗,它與交流信號(hào)的頻率和電容量有關(guān)。容抗XC=1/2f c (f表示交流信號(hào)的頻率,
13、C表示電容容量)電話機(jī)中常用電容的種類有電解電容、瓷片電容、貼片電容、獨(dú)石電容、鉭電容和滌綸電容等。(2)識(shí)別方法:電容的識(shí)別方法與電阻的識(shí)別方法基本相同,分直標(biāo)法、色標(biāo)法和數(shù)標(biāo)法3種。電容的基本單位用法拉(F)表示,其它單位還有:毫法(mF)、微法(uF)、納法(nF)、皮法(pF)。其中:1法拉=103毫法=106微法=109納法=1012皮法容量大的電容其容量值在電容上直接標(biāo)明,如10 uF/16V;容量小的電容其容量值在電容上用字母表示或數(shù)字表示;字母表示法:1m=1000 uF 1P2=1.2PF 1n=1000PF ;數(shù)字表示法:一般用三位數(shù)字表示容量大小,前兩位表示有效數(shù)字,第三
14、位數(shù)字是倍率。如:102表示10102PF=1000PF 224表示22104PF=0.22 uF。(3)電容容量誤差表符號(hào) F G J K L M允許誤差 1% 2% 5% 10% 15% 20% 如:一瓷片電容為104J表示容量為0. 1 uF、誤差為5%。出于價(jià)格方面與來(lái)源方面的考慮,可調(diào)電容我們采用了210pF的39123,電解電容由實(shí)驗(yàn)室提供,普通電容我們采用獨(dú)石電容跟瓷片電容為主。電感的選擇從RF電路的觀點(diǎn)看,不能制造質(zhì)量好的電感是至今標(biāo)準(zhǔn)IC工藝最明顯的缺陷。盡管采用有源電路常??梢跃C合得到等效的電感,但它們比起“真正”的用幾匝導(dǎo)線制成的電感來(lái),總是具有較高的噪聲、失真以及功耗5
15、。電感線圈是將絕緣的導(dǎo)線在絕緣的骨架上繞一定的圈數(shù)制成。直流可通過(guò)線圈,直流電阻就是導(dǎo)線本身的電阻,壓降很小;當(dāng)交流信號(hào)通過(guò)線圈時(shí),線圈兩端將會(huì)產(chǎn)生自感電動(dòng)勢(shì),自感電動(dòng)勢(shì)的方向與外加電壓的方向相反,阻礙交流的通過(guò),所以電感的特性是通直流阻交流,頻率越高,線圈阻抗越大。電感在電路中可與電容組成振蕩電路。電感一般有直標(biāo)法和色標(biāo)法,色標(biāo)法與電阻類似。如:棕、黑、金、金表示1uH(誤差5%)的電感。 電感的基本單位為:亨(H) 換算單位有:1H=103mH=106uH。由于此多通道無(wú)線遙控電路易受外界干擾,尤其在遠(yuǎn)距離操作時(shí)天線對(duì)信號(hào)強(qiáng)弱影響較大,不便于調(diào)試,故電感我們選取市面上發(fā)射、接收模塊使用的線
16、圈電感跟天線,以求達(dá)到良好發(fā)射與接收的目的。二極管、三極管的選擇雖然二極管很少直接出現(xiàn)在當(dāng)今數(shù)字門電路圖中,但它們?nèi)匀皇菬o(wú)所不在的。每個(gè)MOS管都內(nèi)含有一定數(shù)量的反向偏置二極管,它們直接影響著器件的行為。特別是由這些寄生元件形成的與電壓有關(guān)的電容在MOS數(shù)字邏輯門的開關(guān)特性中起著重要的作用。二極管也用來(lái)保護(hù)IC的輸入器件以抗靜電荷6。變?nèi)荻O管是根據(jù)普通二極管內(nèi)部 “PN結(jié)” 的結(jié)電容能隨外加反向電壓的變化而變化這一原理專門設(shè)計(jì)出來(lái)的一種特殊二極管。變?nèi)荻O管在無(wú)繩電話機(jī)中主要用在手機(jī)或座機(jī)的高頻調(diào)制電路上,實(shí)現(xiàn)低頻信號(hào)調(diào)制到高頻信號(hào)上,并發(fā)射出去。在工作狀態(tài),變?nèi)荻O管調(diào)制電壓一般加到負(fù)極上
17、,使變?nèi)荻O管的內(nèi)部結(jié)電容容量隨調(diào)制電壓的變化而變化。二極管我們采用常見的隔離二極管IN4148,IN4248也采用IN4148代替,穩(wěn)壓二極管采用5.1V的變?nèi)荻O管。晶體三極管的特點(diǎn)如下:晶體三極管(簡(jiǎn)稱三極管)是內(nèi)部含有2個(gè)PN結(jié),并且具有放大能力的特殊器件。它分NPN型和PNP型兩種類型,這兩種類型的三極管從工作特性上可互相彌補(bǔ),所謂OTL電路中的對(duì)管就是由PNP型和NPN型配對(duì)使用。電話機(jī)中常用的PNP型三極管有:A92、9015等型號(hào);NPN型三極管有:A42、9014、9018、9013、9012等型號(hào)。我們采用三極管9014、9018兩種類型。3、軟件設(shè)計(jì)NY掛機(jī)設(shè)置密碼開始初
18、始化摘機(jī)語(yǔ)音提示輸入密碼語(yǔ)音提示輸入功能操作開機(jī)操作關(guān)機(jī)操作等待應(yīng)答操作完成、掛機(jī)有振鈴密碼正確操作成功NYYN本系統(tǒng)的軟件設(shè)計(jì)主要分為系統(tǒng)初始化、振鈴檢測(cè)計(jì)數(shù)、控制摘掛機(jī)、雙音頻信號(hào)分析處理、控制電器、信號(hào)音提示等部分。每個(gè)功能模塊對(duì)于整體設(shè)計(jì)都是非常重要的,單片機(jī)AT89C51通過(guò)軟件程序才能很好的對(duì)外部的信息進(jìn)行采集、分析和決策。下面,就整體設(shè)計(jì)以及每個(gè)單元功能模塊分別進(jìn)行說(shuō)明。整體流程圖:3.1 信號(hào)音發(fā)聲部分本功能模塊主要是產(chǎn)生信號(hào)提示音,方便不同的使用者。根據(jù)普通人耳的反應(yīng)頻率為20Hz至20KHz的范圍,和CCITT規(guī)定的電話話音信號(hào)的頻率范圍是300Hz至3400Hz,我在本功
19、能單元的發(fā)聲頻率定為500Hz和1000Hz兩種。主要分為五種提示音: 低音,表示裝置已經(jīng)摘機(jī),請(qǐng)輸入密碼,其參數(shù):頻率f=500Hz,延時(shí)t=0.5秒/聲; 兩聲低音,表示密碼已經(jīng)通過(guò),請(qǐng)選擇電器,其參數(shù):頻率f=500Hz,延時(shí)t=0.5秒/聲; 三聲低音,表示電器已經(jīng)選定,請(qǐng)控制(開/關(guān)),其參數(shù):頻率f=500Hz,延時(shí)t=0.5秒/聲; 三聲高音,表示密碼輸入錯(cuò)誤,其參數(shù):頻率f=1000Hz,延時(shí)t=0.3秒/聲; 一聲高音,表示控制已經(jīng)完成,其參數(shù):頻率f=1000Hz,延時(shí)t=0.3秒/聲;提示音發(fā)生是使用有限循環(huán),反復(fù)使單片機(jī)的RXD口的電平反轉(zhuǎn),從而形成方波信號(hào)。子程序代碼
20、: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 R6,#20 ;password wrongRING22:MOV R7,#20 ;1600HzRING23:LCALL DL20 ;sound=3CPL P3.0 ;delay=0.25sDJNZ R7,RING23DJ
21、NZ 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=2CPL P3.0 ;delay=0.5sDJNZ R7,RING33DJNZ R6,RING32CLR P3.0MOV R7,#200RING34:LCALL DL10DJNZ R7,RING34DJNZ R3,RING31
22、CLR P3.0RET ORG 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:LCALL DL10DJNZ R7,RING44DJNZ R3,RING41CLR P3.0RETORG 1300HRING50:MOV R6,#40 ;finishRING51:MOV R7,#20 ;1600HzRING
23、52: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 1600HDL20:MOV R5,#12 ;delay0.625ms,f=1600HZ,fosc=12MHz,DL22:MOV R4,#25DL21:DJNZ R4,DL21DJNZ R5,DL22RETORG 1650
24、HDL30:MOV R5,#50 ;delay20msDL32:MOV R4,#200DL31:DJNZ R4,DL31DJNZ R5,DL32RET3.2 密碼檢測(cè)部分本系統(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ǔ)空間內(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 telephone
25、CLR 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,CC ;wait INT0LJMP WAITCC: MOV R7,#5H ;password 5*MOV R0,#30H ;password topMOV R1,#38H ;signCMP: MOV A,R1MOV R4
26、,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 wrong,try!LJMP IN3.3 密碼修改部分本系統(tǒng)是通過(guò)在線輸入密碼而改變特定存儲(chǔ)器中的密碼值的。程序代碼:ORG 1700HKEYIN: SETB RS1 ;當(dāng)前工作寄存器第二工作區(qū)CLR RS0ANL A
27、,#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,READ1 ;判斷輸入密碼是否為5位,否跳轉(zhuǎn)READ1LCALL RING10 ;滿5位,發(fā)提示音:再輸入新密碼MOV R7,#5HMOV R1,#38HWRE: JBC 7EH,KEYCMP ;等待中斷INT1LJMP WR
28、EKEYCMP: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,#30HMOV R6,#5HKEYREIN:MOV A,R1MOV R0,AINC R1INC R0DJNZ R6,KEYREIN ;R6減1不為0,則跳轉(zhuǎn),即循環(huán)比較密碼的五位LCALL RING50 ;發(fā)提示音:新密碼已經(jīng)設(shè)置L
29、JMP STOPRET3.4 控制電器部分本系統(tǒng)首先通過(guò)外圍雙音頻解碼電路解碼的信息(選擇電器)判斷所選擇的電器,然后跳轉(zhuǎn)到每一個(gè)子程序,通過(guò)單片機(jī)向P1口的低四位發(fā)送數(shù)據(jù),這些控制信息表示對(duì)不同的電器進(jìn)行控制的控制字。為了簡(jiǎn)單表示,在這里只寫出了電器“一”的控制子程序,其它子程序很相似。程序代碼:LL: LCALL RING30 ;sound:input controlMOV R7,#1H ;*MOV R1,#38HCLR 7EHWAIT0: JBC 7EH,DD ;wait INT0LJMP WAIT0DD: MOV R1,#38HMOV A,R1RR ARR ARR ARR AMOV R
30、4,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;3LJMP LL ;*,*LJMP SEVEN;7LJMP LL ;C,*ORG 0250HZERO: LJMP LLONE: LCALL RING40 ;發(fā)提示音:請(qǐng)操作電器OO1: MOV R7,#01HCLR 7
31、EHWAIT1: 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 P1.3 ;open 1CLR P1.2CLR P1.1CLR P1.0LJMP QUIT1ZZ1: CLR P1.3 ;close allCLR P1.2CLR P1.1CLR P1.0LCALL RING50 ;fin
32、shQUIT1: LJMP LL 3.5 振鈴計(jì)數(shù)部分本單元是通過(guò)計(jì)數(shù)器T0的外部中斷方式來(lái)計(jì)數(shù)的。程序代碼:ORG 0090HTT0: SETB 7DHRETI4、PCB板的設(shè)計(jì)與制作由于發(fā)射編碼電路發(fā)射的是約為300MHz的高頻載波,為了使接收電路能夠正常運(yùn)作,也方便調(diào)試,制作PCB板的時(shí)候要注意的事項(xiàng)是比較多的。高頻電路往往集成度較高,布線密度大,采用多層板既是布線所必須的,也是降低干擾的有效手段。合理選擇層數(shù)能大幅度降低印板尺寸,能充分利用中間層來(lái)設(shè)置屏蔽,能更好地實(shí)現(xiàn)就近接地,能有效地降低寄生電感,能有效縮短信號(hào)的傳輸長(zhǎng)度,能大幅度地降低信號(hào)間的交叉干擾等等,所有這些都對(duì)高頻電路的可
33、靠工作有利。有資料顯示,同種材料時(shí),四層板要比雙面板的噪聲低20dB。但是,板層數(shù)越高,制造工藝越復(fù)雜,成本越高。高頻電路器件管腳間的引線彎折越少越好。高頻電路布線的引線最好采用全直線,需要轉(zhuǎn)折,可用45度折線或圓弧轉(zhuǎn)折,這種要求在低頻電路中僅僅用于提高鋼箔的固著強(qiáng)度,而在高頻電路中,滿足這一要求卻可以減少高頻信號(hào)對(duì)外的發(fā)射和相互間的耦合。用Protel 99 SE布線時(shí)可在以下兩處預(yù)先設(shè)置,一是在“Options”菜單的“Track Mode”子菜單中預(yù)約以 4590 Line或 90 ArcLine方式布線,二是在“Auto”菜單的“Setup Auto router”項(xiàng)所打開的“Rout
34、ing Passes”對(duì)話框中選定“Add Arcs”,以便自動(dòng)布線結(jié)束時(shí)使轉(zhuǎn)角圓弧化。高頻電路器件管腳間的引線越短越好。Protel 99 SE滿足布線最短化的最有效手段是在自動(dòng)布線前對(duì)個(gè)別重點(diǎn)的高速網(wǎng)絡(luò)進(jìn)行“布線”預(yù)約。首先,打開“Net list”菜單的“Edit Net”子菜單,會(huì)出現(xiàn)一個(gè)“Change Net”對(duì)話框,把此對(duì)話框中的“Optimize Method(布線優(yōu)化模式)”選為“Shortest(最短化)” 即可。其次,從整體考慮,元件布局時(shí)用“Auto”中“Placement ToolsShove”和“Auto”中的“Density(密度檢查)”來(lái)對(duì)比調(diào)整,使元件排列緊湊,
35、并配合“Net list”菜單中的“Length”功能和“Info”菜單中的“Length of selection”功能,對(duì)所選定的需要最短化的重點(diǎn)網(wǎng)絡(luò)進(jìn)行布線長(zhǎng)度測(cè)量。高頻電路器件管腳間的引線層間交替越少越好。所謂“引線的層間交替越少越好”是指元件連接過(guò)程中所用的過(guò)孔(Via)越少越好,據(jù)測(cè),一個(gè)過(guò)孔可帶來(lái)約0.5 PF的分布電容,減少過(guò)孔數(shù)量能顯著提高速度。Protel 99 SE軟件專門提供了這一功能,它在 Auto菜單的“Setup Auto router”項(xiàng)所打開的“Routing Passes”對(duì)話框中,有一個(gè)“Advanced”欄目,把其中的“Smoothing”設(shè)為接通即可。
36、高頻電路布線要注意信號(hào)線近距離平行走線所引入的“交叉干擾”,若無(wú)法避免平行分布,可在平行信號(hào)線的反面布置大面積“地線”來(lái)大幅度減少干擾。同一層內(nèi)的平行走線幾乎無(wú)法避免,但是在相鄰的兩個(gè)層,走線的方向務(wù)必取為相互垂直,這在Protel 99 SE中不難辦到但卻容易忽視。在“Auto”菜單的“Setup Auto router”項(xiàng)所打開的“Routing Lagers”對(duì)話框中允許對(duì)每一層的走線方向進(jìn)行預(yù)定,供預(yù)選的方向有三種:“Horizontal、Vertical和 No Preference”,不少用戶習(xí)慣選用“No Preference(無(wú)特定取向)”,認(rèn)為這樣布通率高,但是,在高頻電路布
37、線中最好在相鄰層分別取水平和豎直布線交替進(jìn)行。同一層內(nèi)的平行走線無(wú)法避免,但可以在印板反面大面積敷設(shè)地線來(lái)降低干擾(這是針對(duì)常用的雙面板而言,多層板可利用中間的電源層來(lái)實(shí)現(xiàn)這一功能),Protel 99 SE在“Edit”菜單的“Place”選項(xiàng)中提供了強(qiáng)大的放置“Polygon Plane”的功能,即:多邊形柵格(條)銅箔面,如果在放置它時(shí)就把多邊形取為整個(gè)印板的一個(gè)面,并把此柵格(條)與電路的GND網(wǎng)絡(luò)連通,那么,該功能將能實(shí)現(xiàn)整塊電路板的某一面的“鋪銅”操作,經(jīng)過(guò)“鋪銅”的電路板除能提高剛才所講的高頻抗干擾能力外,還對(duì)散熱、印板強(qiáng)度等有很大好處,另外,在電路板金屬機(jī)箱上的固定處若加上鍍錫
38、柵條,不僅可以提高固定強(qiáng)度,保障接觸良好,更可利用金屬機(jī)箱構(gòu)成合適的公共線。在軟件菜單中打開此功能后可見到一個(gè)“Place Polygon Plane”對(duì)話框,它會(huì)問(wèn)你是否要把所放置的多邊形柵格(條)與網(wǎng)絡(luò)接通(connect net),若接通該項(xiàng),退出對(duì)話框時(shí)將提示你給出欲接通的網(wǎng)絡(luò)名,給定接通GND網(wǎng)絡(luò)將能起到屏蔽層的作用。同時(shí)還會(huì)問(wèn)你“鋪銅”的圖案是用水平條(horizontal)、豎直條(vertical)還是柵格(兩者都選即可)。選用柵格將會(huì)有較好的屏蔽效果,同時(shí),柵格網(wǎng)的尺寸(習(xí)慣稱作為“目”)確定依據(jù)所要重點(diǎn)屏蔽的干擾頻率而定。對(duì)特別重要的信號(hào)線或局部單元實(shí)施地線包圍的措施。該措
39、施在Protel 99 SE軟件中也能自動(dòng)實(shí)現(xiàn),它就是“Edit”菜單的“Place”下的“Outline Selected Items”,即:繪制所選對(duì)象的外輪廓線。利用此功能,可以自動(dòng)地對(duì)所選定的重要信號(hào)線進(jìn)行所謂的“包地”處理,當(dāng)然,把此功能用于時(shí)鐘等單元局部進(jìn)行包地處理對(duì)高速系統(tǒng)也將非常有益。各類信號(hào)走線不能形成環(huán)路,地線也不能形成電流環(huán)路。Protel 99 SE自動(dòng)布線的走線原則除了前面所講的最短化原則外,還有基于X方向、基于Y方向和菊花狀(daisy)走線方式,采用菊花狀走線能有效避免布線時(shí)形成環(huán)路。具體可打開“Net list”菜單的“Edit Net”子菜單,出現(xiàn)一個(gè)“Cha
40、nge Net”對(duì)話框,把此對(duì)話框中的“Optimize Method(布線優(yōu)化模式)”選為“Daisy Chain”即可。每個(gè)集成電路塊的附近應(yīng)設(shè)置一個(gè)高頻退耦電容。由于Protel 99 SE軟件在自動(dòng)放置元件時(shí)并不考慮退耦電容與被退耦的集成電路間的位置關(guān)系,任由軟件放置,使兩者相距太遠(yuǎn),退耦效果大打折扣,這時(shí)必須用手工移動(dòng)元件的辦法事先干預(yù)兩者位置,使之靠近。模擬地線、數(shù)字地線等接往公共地線時(shí)要用高頻扼流環(huán)節(jié)。在實(shí)際裝配高頻扼流環(huán)節(jié)時(shí)用的往往是中心孔穿有導(dǎo)線的高頻鐵氧體磁珠,在電路原理圖上對(duì)它一般不予表達(dá),由此形成的網(wǎng)絡(luò)表(net list)就不包含這類元件,布線時(shí)就會(huì)因此而忽略它的存在
41、。針對(duì)此現(xiàn)實(shí),可在原理圖中把它當(dāng)作電感,在PCB元件庫(kù)中單獨(dú)為它定義一個(gè)元件封裝,布線前把它手工移動(dòng)到靠近公共地線匯合點(diǎn)的合適位置上即可。參考了以上注意事項(xiàng),我導(dǎo)入網(wǎng)絡(luò)表以后,首先進(jìn)行了電路圖、網(wǎng)絡(luò)表和PCB元件的匹配,即要求電路圖、網(wǎng)絡(luò)表和PCB元件的名稱、元件結(jié)構(gòu)和封裝形式等內(nèi)容要一一對(duì)應(yīng)且不能有遺漏。然后進(jìn)行布線設(shè)計(jì)規(guī)則設(shè)置、制造設(shè)計(jì)規(guī)則設(shè)置、高頻電路設(shè)計(jì)規(guī)則設(shè)置、元件布局規(guī)則設(shè)置、信號(hào)完整性規(guī)則設(shè)置、Other規(guī)則設(shè)置、設(shè)計(jì)規(guī)則檢查等相關(guān)參數(shù)的設(shè)置。雖然Protel 99 SE程序具有自動(dòng)布線的功能(即它會(huì)根據(jù)用戶設(shè)定的有關(guān)布線參數(shù)和布線規(guī)則,按照一定的算法,依照網(wǎng)絡(luò)表所指定的連接關(guān)系
42、,自動(dòng)在各個(gè)元件之間進(jìn)行連線,從而完成印刷電路板的布線工作),但是考慮到自動(dòng)布線的優(yōu)點(diǎn)與缺點(diǎn),我們利用自動(dòng)布線、指定網(wǎng)絡(luò)布線、手工布線、手工導(dǎo)線調(diào)整相結(jié)合的方式完成了元器件的位置分布及必要的調(diào)整。在整個(gè)布線過(guò)程中必須注意的是當(dāng)兼有強(qiáng)、弱電電路的PCB板設(shè)計(jì)時(shí)應(yīng)注意解決強(qiáng)電平給弱電控制信號(hào)帶來(lái)的干擾問(wèn)題,而且電源線、地線、各測(cè)試點(diǎn)的排列要美觀、得體、實(shí)用。最后我們根據(jù)需要進(jìn)行了敷銅、包地、補(bǔ)淚滴、加上了焊盤,在絲印層加上了必要的文字注釋,順利地完成了PCB板的設(shè)計(jì)與制作。5、系統(tǒng)調(diào)試本系統(tǒng)的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試和聯(lián)機(jī)調(diào)試等三大部分。經(jīng)過(guò)初步的分析設(shè)計(jì)后,在制作硬件電路的同時(shí),調(diào)試也在穿
43、插進(jìn)行。這樣有利于問(wèn)題的分析和解決,不會(huì)造成問(wèn)題的積累,而且不會(huì)因?yàn)橐粋€(gè)小問(wèn)題而進(jìn)行整體電路的檢查,從而可以節(jié)約大量的調(diào)試時(shí)間。軟件編程中,我是首先完成單元功能模塊的調(diào)試,然后進(jìn)行系統(tǒng)調(diào)試,整體上與硬件調(diào)試的方法差不多。聯(lián)機(jī)調(diào)試是最重要的一部分,同時(shí)也是本裝置成功的關(guān)鍵。有許多新問(wèn)題都不是很容易解決的。整體調(diào)試所使用的測(cè)試儀器儀表和工具:1、IBM-PC/XT兼容機(jī)一臺(tái),主頻:50Hz,有軟驅(qū)和25針串行接口;2、ME-5103單片機(jī)仿真機(jī)一個(gè);3、MF116萬(wàn)用表一個(gè);4、計(jì)算機(jī)5V穩(wěn)壓電源一個(gè);5、SR8雙蹤示波器; 6、Manley In-Circuit Emulator Debugge
44、r(MBUG)開發(fā)軟件;51硬件調(diào)試5V穩(wěn)壓電源本裝置使用單5V穩(wěn)壓電源供電,要求交流成分小。經(jīng)過(guò)示波器測(cè)量5V穩(wěn)壓電源輸出端,其交流部分電壓的峰-峰值為6mV,符合本裝置的電源要求,穩(wěn)壓電源調(diào)試完畢。振鈴音檢測(cè)在本單元電路制作前期,實(shí)驗(yàn)室中無(wú)模擬交換機(jī),無(wú)法產(chǎn)生振鈴信號(hào),我只好在完成此部分的焊接后回寢室中完成其測(cè)試。將本裝置的電話線兩端并聯(lián)在電話機(jī)兩端,摘機(jī)撥打“190”,然后掛機(jī),市交換機(jī)會(huì)回送連續(xù)的測(cè)試振鈴音。經(jīng)過(guò)測(cè)量,這種測(cè)試振鈴音和正常的振鈴信號(hào)的頻率、振幅等特性都一樣,只是正常的振鈴信號(hào)是1秒通4秒斷,而這種測(cè)試振鈴音是連續(xù)的。當(dāng)送測(cè)試振鈴音時(shí),用萬(wàn)用表的直流檔測(cè)量光電耦合器4N2
45、5的輸出端,有明顯的電壓,這說(shuō)明可以形成中斷響應(yīng)信號(hào)。后接振鈴指示燈,發(fā)現(xiàn)在送鈴流 圖5.1信號(hào)時(shí),指示燈亮,但是燈在閃爍。分析得光耦輸出端所接的濾波電容C2太小,于是把原來(lái)的1F換成現(xiàn)在的100F,如右圖5.1所示,問(wèn)題得到解決。 因?yàn)閱纹瑱C(jī)T0所響應(yīng)的外部中斷信號(hào)是低電平有效,所以在光耦輸出端接了一個(gè)開關(guān)三極管T1控制指示燈,在三極管的輸出端接了三個(gè)反向器。經(jīng)過(guò)三極管T1的開關(guān)作用和三個(gè)反向器的反向作用,輸出應(yīng)該為低電平。但是在測(cè)量反向器輸出端時(shí)發(fā)現(xiàn):振鈴指示燈亮,但反向器輸出端為高電平。說(shuō)明振鈴信號(hào)可以通過(guò)三極管,但無(wú)法通過(guò)反向器。分析原因可能是反向器74LS04壞了,換之,再測(cè),還是老
46、問(wèn)題。經(jīng)過(guò)細(xì)心測(cè)量三極管的發(fā)射極電壓發(fā)現(xiàn):有振鈴時(shí)Ve=1.1V,這時(shí)反向器74LS04認(rèn)為是低電平,當(dāng)無(wú)振鈴脈沖信號(hào)時(shí),還是認(rèn)為是低電平,所以振鈴信號(hào)無(wú)法通過(guò)反向器。解決方法很簡(jiǎn)單,把三極管的發(fā)射極端的下拉電阻R4從原來(lái)的20k改成5.1k,提升三極管的發(fā)射極電壓。 在畢業(yè)設(shè)計(jì)的后期,實(shí)驗(yàn)室有了模擬小交換機(jī),經(jīng)測(cè)試,本單元電路完全正常,振鈴檢測(cè)部分調(diào)試完畢。模擬摘掛機(jī)此部分的調(diào)試較為容易,電路接好后,用5V高電平測(cè)試之,指示燈亮,繼電器吸合正常。接入模擬小交換機(jī),控制摘機(jī)時(shí),交換機(jī)的端口指示燈亮,反之掛機(jī)時(shí),指示燈滅。說(shuō)明此部分完全正常。接入仿真機(jī)測(cè)試時(shí)發(fā)現(xiàn):?jiǎn)纹瑱C(jī)的TXD端不能控制模擬摘掛
47、機(jī)部分的摘掛機(jī)。分析得出結(jié)論:可能是接口的電平不相符合。解決方法:加上一個(gè)三極管模擬開關(guān),加上一個(gè)反向器(74LS04)進(jìn)行控制隔離作用。經(jīng)過(guò)接入仿真機(jī)測(cè)試表明反向器的作用很明顯,于是在后面的電路設(shè)計(jì)當(dāng)中,我在許多的接口上大多使用了反向器。至此,模擬摘掛機(jī)部分調(diào)試完畢。控制電器控制電器這部分的外圍硬件電路很容易,在調(diào)試過(guò)程中很順利完成。在接仿真機(jī)時(shí),使用的是P2口控制電器,實(shí)驗(yàn)結(jié)果表明P2口無(wú)法正??刂泼總€(gè)電器,翻閱資料發(fā)現(xiàn)單片機(jī)89C51的P2口沒(méi)有數(shù)據(jù)鎖存功能,不能保持上一個(gè)狀態(tài)的數(shù)據(jù)。解決方法:把P2口控制電器改為P1口的低四位控制電器,改線之后控制正常,但是新的問(wèn)題出現(xiàn)了,原來(lái)要求控制
48、八路的端口,現(xiàn)在只能控制四個(gè)電器。 經(jīng)過(guò)市場(chǎng)實(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è)新的問(wèn)題:遙控器不能同時(shí)使兩路以及兩路以上的電器開,即在同一時(shí)刻,遙控器只能使一路電器開啟。 經(jīng)過(guò)仔細(xì)分析,我發(fā)現(xiàn)了問(wèn)題原因之所在,那就是譯碼器的原理問(wèn)題。通常情況下我們認(rèn)為的譯碼器可以擴(kuò)展所能控制的電器,其實(shí)譯碼器只能擴(kuò)展位數(shù),而不能使?fàn)顟B(tài)發(fā)生變化。例如:三位二進(jìn)制000111可以控制表示三個(gè)電器、八種狀態(tài),而經(jīng)
49、過(guò)3-8線譯碼器譯碼后,可以控制八個(gè)電器,但是其狀態(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)。雙音頻檢測(cè) 雙音頻檢測(cè)是整體電路一個(gè)比較重要的過(guò)程,它的調(diào)試主
50、要圍繞著雙音多頻解碼芯片8870展開的。在此部分的制作的前期,我采用的芯片是CM8870CPI。開始連接電路調(diào)試時(shí),整體電路工作很正常,后來(lái)這塊芯片使用大約一個(gè)星期左右的時(shí)間,解碼電路經(jīng)常會(huì)出現(xiàn)解碼出錯(cuò)的情況。經(jīng)過(guò)仔細(xì)檢查電路,仿真機(jī)單步執(zhí)行進(jìn)行調(diào)試,確認(rèn)硬件電路無(wú)誤,診斷為CM8870CPI的問(wèn)題。根據(jù)我的初步分析認(rèn)定可能是芯片老化的原因,后更換為MT8870DE發(fā)現(xiàn)本裝置工作很正常,而且換上MT8870DE工作了將近一個(gè)月,整體電路沒(méi)有發(fā)生任何解碼誤碼情況,MT8870DE在最后的聯(lián)機(jī)調(diào)試過(guò)程中也沒(méi)有出現(xiàn)任何問(wèn)題。 5.2 軟件調(diào)試調(diào)試前的軟件環(huán)境設(shè)置對(duì)于本系統(tǒng)而言,軟件程序所實(shí)現(xiàn)的功能比
51、較多,所以軟件程序的調(diào)試顯得相當(dāng)?shù)臒┈崱U麄€(gè)程序是使用匯編語(yǔ)言,在MBUG下編寫調(diào)試完成的。首先我使用的是我自己的計(jì)算機(jī)聯(lián)接MCS-51仿真機(jī),計(jì)算機(jī)的主頻為333MHz,但是出現(xiàn)了許多的問(wèn)題。第一個(gè)問(wèn)題就是:我所使用的MCS-51仿真機(jī)型號(hào)是ME-5103,聯(lián)入計(jì)算機(jī)的25針串行口來(lái)進(jìn)行程序的讀入,但是我的計(jì)算機(jī)沒(méi)有25針串行口。觀察計(jì)算機(jī)的后面,主板上只有一個(gè)25針并行口,是用來(lái)連接打印機(jī)的;除了這個(gè)25針串行口外,還有兩個(gè)9針串行口。我只有把MCS-51仿真機(jī)的25針接口變成9針串行接口,才能連接計(jì)算機(jī)。后來(lái)我找到一個(gè)25針-9針的轉(zhuǎn)換口,可以通過(guò)他使MCS-51仿真機(jī)和我的計(jì)算機(jī)聯(lián)接。
52、我使用的是Manley 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),這就使得無(wú)法進(jìn)行仿真機(jī)模擬實(shí)驗(yàn)。經(jīng)過(guò)實(shí)驗(yàn)室多組同學(xué)的八臺(tái)計(jì)算機(jī)的嘗試,我們終于發(fā)現(xiàn)了問(wèn)題之所在。實(shí)驗(yàn)結(jié)果表明:主頻高于233MHz的計(jì)算機(jī)都不能正常聯(lián)接MCS-51仿真機(jī),而主頻低于100MHz的計(jì)算機(jī)(有25針串行接口)均可以進(jìn)行仿真實(shí)驗(yàn)。后來(lái)經(jīng)過(guò)查閱有關(guān)技術(shù)資料,型號(hào)為ME-5103的MCS-51仿真機(jī)只能工
53、作在IBM PC/XT/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ī)資源。我的匯編語(yǔ)言程序相對(duì)來(lái)說(shuō)還是比較多的,調(diào)試起來(lái)可能費(fèi)時(shí),所以我先在自己的計(jì)算機(jī)上對(duì)程序的語(yǔ)法錯(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)配好了。 提示音信號(hào)調(diào)試在本單元的調(diào)試過(guò)程中,我認(rèn)為此部分的結(jié)構(gòu)比較簡(jiǎn)單,因此在整體程序中直接調(diào)試。首先Ctrl+F5
54、單步執(zhí)行,發(fā)現(xiàn)此部分的RING1子程序正常,而其它的子程序在執(zhí)行時(shí)卻發(fā)生死循環(huán)。我把這幾個(gè)子程序單獨(dú)切出來(lái)進(jìn)行分析,卻發(fā)現(xiàn)執(zhí)行正常,于是我推測(cè)并不是子程序本身的結(jié)構(gòu)問(wèn)題。然后使用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ù)賦值,因此無(wú)法跳出循環(huán)子程序,直接導(dǎo)致死循環(huán)。后來(lái)我將子程序中的R5寄存器換成R7寄存器,子程序就正常了。程序代碼:ORG 1150HRING20:MOV R3,#03RING21:MOV R6,#20 ;password wrongRING22:MOV R5,#20 ;1600HzRING23:LCALL DL20 ;sound=3CPL P3.0 ;delay=0.25sDJNZ R5,RING23DJNZ R6,RING22CLR P3.0MOV R5,#200RING24:LCALL DL10DJNZ R5,RI
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作辦醫(yī)院合同范本
- 雙方貨物交易合同范本
- 個(gè)人碎石運(yùn)輸合同范本
- 刷墻臨時(shí)協(xié)議合同范本
- 雙城租房合同范本
- 醫(yī)藥銷售協(xié)議合同范本
- 合作合同范本合集15篇
- 中藥采購(gòu)種植合同范本
- 合同范本定制手機(jī)買賣
- 各種房屋糾紛合同范本
- YB-T+4190-2018工程用機(jī)編鋼絲網(wǎng)及組合體
- 高大模板安全施工施工安全保證措施
- 地連墻鋼筋籠吊裝安全施工T及T吊裝驗(yàn)算及設(shè)備選定
- 委托辦理報(bào)廢汽車協(xié)議書
- 蘇教版(SJ)《四年級(jí)下冊(cè)數(shù)學(xué)》補(bǔ)充習(xí)題
- 體育足球籃球排球體操教案
- 保管錢財(cái)協(xié)議書的范本
- 湖北省武漢市二月調(diào)考讀后續(xù)寫解析+課件
- GB/T 9364.8-2023小型熔斷器第8部分:帶有特殊過(guò)電流保護(hù)的熔斷電阻器
- 安全培訓(xùn)提升安全意識(shí)
- 如何上好一堂主題班會(huì)課課件
評(píng)論
0/150
提交評(píng)論