版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
西安交通大學(xué)城市學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)摘要目錄摘要 IABSTRACT III第一章緒論 11.1選題背景及意義 11.2國內(nèi)外發(fā)展現(xiàn)狀 11.3本論文所做的工作 21.4本論文的結(jié)構(gòu)安排 2第2章
系統(tǒng)總體設(shè)計(jì) 32.1系統(tǒng)總體框圖設(shè)計(jì) 32.2系統(tǒng)的主要性能指標(biāo) 32.3總體方案設(shè)計(jì) 32.4元器件的選擇 3第3章
系統(tǒng)硬件設(shè)計(jì) 93.1資源分配 93.2最小單片機(jī)系統(tǒng) 93.3各模塊電路的設(shè)計(jì) 103.3.1單片機(jī)與D/A連接圖 103.3.2按鍵電路 103.3.3電流電壓轉(zhuǎn)換電路(MC1458) 11第4章
系統(tǒng)軟件設(shè)計(jì) 134.1單片機(jī)軟件開發(fā)系統(tǒng) 134.2主程序模塊 174.3鋸齒波程序模塊 194.4三角波程序模塊 204.5正弦波程序模塊 214.6方波程序模塊 22第5章波形發(fā)生器的調(diào)試 255.1軟件仿真 255.2硬件電路測試 305.3結(jié)果分析 315.4調(diào)試小結(jié) 31第六章結(jié)論與展望 336.1結(jié)論 336.2展望 33致謝 35參考文獻(xiàn) 37附錄1Proteus原理圖 39附錄2源程序 41附錄3外文翻譯 45緒論第一章緒論1.1選題背景及意義單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。波形發(fā)生器是一種數(shù)據(jù)信號發(fā)生器,在調(diào)試硬件時(shí),常常需要加入一些信號,以觀察電路工作是否正常。用一般的信號發(fā)生器,不但笨重,而且只發(fā)一些簡單的波形,不能滿足需要。例如用戶要調(diào)試串口通信程序時(shí),就要在計(jì)算機(jī)上寫好一段程序,再用線連接計(jì)算機(jī)和用戶實(shí)驗(yàn)板,如果不正常,不知道是通訊線有問題還是程序有問題。用E2000/L的波形發(fā)生器功能,就可以定義串口數(shù)據(jù)。通過邏輯探勾輸出,調(diào)試起來簡單快捷?;趩纹瑱C(jī)的簡易波形發(fā)生器是一種常用的信號源,它廣泛地應(yīng)用在電子技術(shù)實(shí)驗(yàn)、自動(dòng)控制系統(tǒng)和其他科研領(lǐng)域。目前,簡易波形發(fā)生器的構(gòu)成方法有很多,例如采用DDS(Direct2DigitalSynthesis)型的任意波發(fā)生器、采用專用的信號發(fā)生芯片MAX038以及傳統(tǒng)的AWG。本設(shè)計(jì)通過分析比較后采用傳統(tǒng)的方法來實(shí)現(xiàn)多功能波形發(fā)生器。借助高性能單片機(jī)運(yùn)算速度高,系統(tǒng)集成度強(qiáng)的優(yōu)勢,設(shè)計(jì)的這種信號發(fā)生器,比以前的數(shù)字式信號發(fā)生器具有硬件簡單,理解及實(shí)現(xiàn)起來較容易,該方案的設(shè)計(jì)思路較為清晰,且容易對頻率和幅值進(jìn)行控制等優(yōu)點(diǎn)。1.2國內(nèi)外發(fā)展現(xiàn)狀任意波形發(fā)生器是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號和用戶定義信號,并保證高精度、高穩(wěn)定性、可重復(fù)性和易操作性的電子儀器。任意波形發(fā)生器具有連續(xù)的相位變換、和頻率穩(wěn)定性等優(yōu)點(diǎn),不僅可以模擬各種復(fù)雜信號,還可對頻率、幅值、相移、波形進(jìn)行動(dòng)態(tài)、及時(shí)的控制,并能夠與其它儀器進(jìn)行通訊,組成自動(dòng)測試系統(tǒng),因此被廣泛用于自動(dòng)控制系統(tǒng)、震動(dòng)激勵(lì)、通訊和儀器儀表領(lǐng)域。近幾年來,國際上任意波形發(fā)生器技術(shù)發(fā)展主要體現(xiàn)在以下幾個(gè)方面:(1)過去由于頻率很低應(yīng)用的范圍比較狹小,輸出波形頻率的提高,使得任意波形發(fā)生器能應(yīng)用于越來越廣的領(lǐng)域。任意波形發(fā)生器軟件的開發(fā)正使任意波形的輸入變得更加方便和容易。任意波形發(fā)生器通常允許用一系列的點(diǎn)、直線和固定的函數(shù)段把波形數(shù)據(jù)存入存儲(chǔ)器。同時(shí)可以利用一種非常強(qiáng)有力的數(shù)學(xué)方程輸入方式,復(fù)雜的波形可以由幾個(gè)比較簡單的公式復(fù)合成v=f(t)形式的波形方程的數(shù)學(xué)表達(dá)式產(chǎn)生。各種計(jì)算機(jī)語言的飛速發(fā)展也推動(dòng)了任意波形發(fā)生器軟件技術(shù)的發(fā)展。目前可以利用可視化編程語言(如VisualBasicVisualC等等)編寫任意波形發(fā)生器的軟面板,這樣允許徒手從計(jì)算機(jī)顯示屏上輸入任意波形,來實(shí)現(xiàn)波形的輸入。(2)隨著信息技術(shù)蓬勃發(fā)展,臺式儀器在走了一段下坡路之后,有在繁榮起來。不過現(xiàn)在的新的臺式儀器的形態(tài),和幾年前的已有很大的不同。這些新一代臺式儀器具有多種特性,可以執(zhí)行多種功能。而且外形尺寸與價(jià)格,都比過去的類似產(chǎn)品減少了一半。1.3本論文所做的工作本論文主要進(jìn)行了以下工作:(1)通過查閱相關(guān)資料,學(xué)習(xí)信號發(fā)生器的工作原理及了解其應(yīng)用場合。(2)復(fù)習(xí)“MCS-51單片機(jī)原理及其系統(tǒng)設(shè)計(jì)”,掌握其接口擴(kuò)展包括:顯示鍵盤等(3)掌握單片機(jī)仿真軟件keil3和Proteus的使用(4)組建基于單片機(jī)的信號發(fā)生器系統(tǒng),畫出總體結(jié)構(gòu)框圖(5)采用匯編語言編寫應(yīng)用程序,輸出不同波形,幅度可以調(diào)節(jié)并且在示波器上顯示(6)最后完成對系統(tǒng)測試結(jié)果的統(tǒng)計(jì)和分析(7)撰寫論文。1.4本論文的結(jié)構(gòu)安排全文共分為六章,本章介紹本課題的研究現(xiàn)狀和選題目的意義等;第二章介紹波形發(fā)生器設(shè)計(jì)的總體方案與論證;第三章介紹波形發(fā)生器系統(tǒng)硬件電路的設(shè)計(jì);第四章介紹波形發(fā)生器系統(tǒng)功能的軟件設(shè)計(jì)(信號產(chǎn)生、D/A轉(zhuǎn)換等的軟件設(shè)計(jì)),并給出了各個(gè)子模塊的程序流程圖;第五章介紹了系統(tǒng)的調(diào)試過程和調(diào)試結(jié)果,并對系統(tǒng)調(diào)試過程中出現(xiàn)的問題進(jìn)行了分析,給出了相應(yīng)的解決方案。第六章結(jié)論和展望。系統(tǒng)總體設(shè)計(jì)第2章
系統(tǒng)總體設(shè)計(jì)2.1系統(tǒng)總體框圖設(shè)計(jì)本系統(tǒng)是以單片機(jī)AT89C51和8位D/A轉(zhuǎn)換芯片DAC0832以及8個(gè)按鍵盤共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的產(chǎn)生及幅值調(diào)節(jié)的功能。按鈕開關(guān)按鈕開關(guān)單片機(jī)控制單元D/A示波器圖2-1系統(tǒng)原理框2.2系統(tǒng)的主要性能指標(biāo)主要功能是實(shí)現(xiàn)利用單片機(jī)AT89C51和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的發(fā)生,并且通過按鍵利用DAC接口實(shí)現(xiàn)波形發(fā)生器可以產(chǎn)生鋸齒波、三角波、方波和正弦波等常用標(biāo)準(zhǔn)波形。將P1.0,P1.1,P1.2和P1.3分別作為這四種波的控制位,當(dāng)相應(yīng)的控制鍵按下后,出現(xiàn)相應(yīng)的波形主要性能指標(biāo)正弦波的頻率范圍:下限頻率為0.1Hz,上限頻率暫時(shí)不確定,但應(yīng)盡量提高,對于四種波形它們的幅值都有五種即1V、2V、3V、4V和5V。2.3總體方案設(shè)計(jì)方案:采用單片機(jī)(AT89S51)和數(shù)模轉(zhuǎn)換芯片(DAC0832)實(shí)現(xiàn)波形的產(chǎn)生,波形的產(chǎn)生由程序控制,向D/A的輸入端按一定的規(guī)律發(fā)送數(shù)據(jù),經(jīng)過D/A和LM324輸出,通過兩個(gè)中斷控制不同波形的產(chǎn)生。此方案通過編程簡化了外部電路,原理簡單,容易實(shí)現(xiàn)。2.4元器件的選擇該波形發(fā)生器有以下幾部分組成:(1)控制模塊(2)按鍵(3)采樣模塊三部分組成。(1)控制模塊:方案:用單片AT89C5189S52單片機(jī)有44個(gè)引腳PLCC和TQFP方形封裝形式,40個(gè)引腳的雙列直插式封裝形式,最常用的40個(gè)引腳封裝形式及其配置如圖3-1所示,各個(gè)引腳功能說明如圖2-2:圖2-2單片機(jī)GND:接地P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對P0端口寫“1”P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對P1端口寫“1”P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對P2端口寫“1”P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對P3端口寫“1”RST:復(fù)位輸入。晶振工作時(shí),RST腳將持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/:地址鎖存控制信號(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可以用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE將被微弱拉高。這個(gè)ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。:外部程序存儲(chǔ)器選通信號()是外部程序存儲(chǔ)器選通信號。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被激活。/VPP:訪問外部程序存儲(chǔ)器控制信號。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在flash編程期間,也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。(2)按鍵方案:采用傳統(tǒng)的獨(dú)立式按鍵;用傳統(tǒng)的LED段選位選的方式進(jìn)行波形的切換及顯示。這種方式占用系統(tǒng)資源較多,并且效率低,程系編寫大量而復(fù)雜。(3)采樣模塊:采用ADC0832DAC0832基本介紹DAC0832是雙列直插式8位D/A轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。圖2-3為DAC0832的引腳圖。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時(shí)間為1μs,滿量程誤差為±1LSB,參考電壓(+10/span>-10)V,供電電源為(+5~+15)V,邏輯電平輸入與TTL兼容。從圖3-1中可見,在DAC0832中有兩級鎖存器,第一級鎖存器稱為輸入寄存器,它的允許鎖存信號為ILE,第二級鎖存器稱為DAC寄存器,它的鎖存信號也稱為通道控制信號/XFER。圖2-3DAC0832的引腳圖圖2-3中,當(dāng)ILE為高電平,片選信號/CS和寫信號/WR1為低電平時(shí),輸入寄存器控制信號為1,這種情況下,輸入寄存器的輸出隨輸入而變化。此后,當(dāng)/WR1由低電平變高時(shí),控制信號成為低電平,此時(shí),數(shù)據(jù)被鎖存到輸入寄存器中,這樣輸入寄存器的輸出端不再隨外部數(shù)據(jù)DB的變化而變化。對第二級鎖存來說,傳送控制信號/XFER和寫信號/WR2同時(shí)為低電平時(shí),二級鎖存控制信號為高電平,8位的DAC寄存器的輸出隨輸入而變化,此后,當(dāng)/WR2由低電平變高時(shí),控制信號變?yōu)榈碗娖?,于是將輸入寄存器的信息鎖存到DAC寄存器中。圖2-3中其余各引腳的功能定義如下:(1)DI7~DI0:8位的數(shù)據(jù)輸入端,DI7為最高位。(2)IOUT1:模擬電流輸出端1,當(dāng)DAC寄存器中數(shù)據(jù)全為1時(shí),輸出電流最大,當(dāng)DAC寄存器中數(shù)據(jù)全為0時(shí),輸出電流為0。(3)IOUT2:模擬電流輸出端2,IOUT2與IOUT1的和為一個(gè)常數(shù),即IOUT1+I(xiàn)OUT2=常數(shù)。(4)RFB:反饋電阻引出端,DAC0832內(nèi)部已經(jīng)有反饋電阻,所以RFB端可以直接接到外部運(yùn)算放大器的輸出端,這樣相當(dāng)于將一個(gè)反饋電阻接在運(yùn)算放大器的輸出端和輸入端之間。(5)VREF:參考電壓輸入端,此端可接一個(gè)正電壓,也可接一個(gè)負(fù)電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來的模擬量電壓值的幅度,VREF范圍為(+10~-10)V。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。(6)VCC:芯片供電電壓,范圍為(+5~15)V。(7)AGND:模擬量地,即模擬電路接地端。(8)DGND:數(shù)字量地。P3口:8位準(zhǔn)雙向I/O口,雙功能復(fù)用口。ADC0832是美國國家半導(dǎo)體公司生產(chǎn)的一種8位分辨率、雙通道A/D轉(zhuǎn)換芯片。由于它體積小,兼容性,性價(jià)比高而深受單片機(jī)愛好者及企業(yè)歡迎,其目前已經(jīng)有很高的普及率。學(xué)習(xí)并使用ADC0832可是使我們了解A/D轉(zhuǎn)換器的原理,有助于我們單片機(jī)技術(shù)水平的提高。單片機(jī)對ADC0832的控制原理:正常情況下ADC0832與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)ADC0832未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁用,CLK和DO/DI的電平可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時(shí)芯片開始轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘輸入端CLK輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號。在第1個(gè)時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號。在第2、3個(gè)脈沖下沉之前DI端應(yīng)輸入2位數(shù)據(jù)用于選擇通道功能當(dāng)此2位數(shù)據(jù)為“1”、“0”時(shí),只對CH0進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“1”、“1”時(shí),只對CH1進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“0”、“0”時(shí),將CH0作為正輸入端IN+,CH1作為負(fù)輸入端IN-進(jìn)行輸入。當(dāng)2位數(shù)據(jù)為“0”、“1”時(shí),將CH0作為負(fù)輸入端IN-,CH1作為正輸入端IN+進(jìn)行輸入。到第3個(gè)脈沖的下沉之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進(jìn)行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個(gè)脈沖下沉開始由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位DATA7,隨后每一個(gè)脈沖下沉DO端輸出下一位數(shù)據(jù)。直到第11個(gè)脈沖時(shí)發(fā)出最低位數(shù)據(jù)DATA0,一個(gè)字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個(gè)相反字節(jié)的數(shù)據(jù),即從第11個(gè)字節(jié)的下沉輸出DATA0。隨后輸出8位數(shù)據(jù),到第19個(gè)脈沖時(shí)數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理就可以了。作為單通道模擬信號輸入時(shí)ADC0832的輸入電壓是0~5V且8位分辨率時(shí)的電壓精度為19.53mV。如果作為由IN+與IN-輸入的輸入時(shí),可是將電壓值設(shè)定在某一個(gè)較大范圍之內(nèi),從而提高轉(zhuǎn)換的寬度。但值得注意的是,在進(jìn)行IN+與IN-的輸入時(shí),如果IN-的電壓大于IN+的電壓則轉(zhuǎn)換后的數(shù)據(jù)結(jié)果始終為00H。系統(tǒng)硬件設(shè)計(jì)第3章
系統(tǒng)硬件設(shè)計(jì)3.1資源分配軟硬件設(shè)計(jì)是設(shè)計(jì)中比不可少的,為了滿足功能和指標(biāo)要求,現(xiàn)分配資源如下:1.晶振采用12MHZ2.內(nèi)存分配:P0口與DAC0832的DI0-DI7數(shù)據(jù)輸入;P1口的P1.0~P1.3分別與四個(gè)按鍵相連,分別控制相應(yīng)波形的輸出;P1口的P1.4~P1.7分別與四個(gè)按鍵相連,控制相應(yīng)的幅值輸出;P2.6和P2.7口與兩片DAC0832的輸入寄存器選擇信號CS,輸入寄存器寫選通信號WR1及DAC寄存器寫選通WR2和數(shù)據(jù)傳送信號XFER3.中斷的分配:中斷INT0控制幅值INT1控制波形3.2最小單片機(jī)系統(tǒng)單片機(jī)晶振電路:對于MSC-51一般的晶振頻率可以在1.2MHz—12MHz之間選擇,這是電容C可以對應(yīng)的選擇10pF—30pF。當(dāng)使用89C55時(shí)晶振頻率可以提高到24MHZ。對于本設(shè)計(jì)的電容C用30pF,晶振選用11.0592MHz。晶振電路如下圖3-1所示,一條引腳接在XTAL1,另一條接在XTAL2。單片機(jī)的復(fù)位電路:為了防止程序執(zhí)行過程中失步或運(yùn)行紊亂,此處我們采用了上電復(fù)位及手動(dòng)復(fù)位電路,電路圖如下圖3-1所示:圖3-1最小單片機(jī)系統(tǒng)3.3各模塊電路的設(shè)計(jì)3.3.1說明:圖3-2所示,單片機(jī)與D/A連接是,第一片D/A的片選與P2.6口相連,則其選口地址為#0BFFFH,第二片D/A的片選與P2.7口相連,則其選口地址為#7FFFH。圖3-2D/A與單片機(jī)連接3.3.2按鍵電路說明:(1)按鍵原理圖如3-3所示,對于中斷方式對波形的切換,因?yàn)镮NT0優(yōu)先于INT1,當(dāng)按鍵按下時(shí),首先判斷是否有幅值輸出然后判斷出現(xiàn)相應(yīng)波形,當(dāng)無中斷0時(shí),即默認(rèn)第二個(gè)DA轉(zhuǎn)換器的參考電壓為5V,在執(zhí)行中斷1判斷出相應(yīng)的波形。圖3-3按鍵電路圖3.3.3電流電壓轉(zhuǎn)換電路(MC1458)(1)DA轉(zhuǎn)換幅值調(diào)整原理如圖3-4所示:圖3-4DA轉(zhuǎn)換原理圖說明:實(shí)現(xiàn)I/V轉(zhuǎn)換最簡單的方法就是直接在1out1和Iout2之間跨界一電阻,這樣就很容易的實(shí)現(xiàn)了I/V轉(zhuǎn)換,但是這種方法忽略了一個(gè)阻抗問題。對于DAC0832來說,R的取值應(yīng)盡可能大,能夠保證獲得更多的電壓,對于與輸出電壓相連的后續(xù)電路來說,R的取值應(yīng)盡可能的小,以降低輸出阻抗,這兩方面是矛盾的,所以這種方式欠合理。而合理的方式是應(yīng)用運(yùn)算放大器實(shí)現(xiàn)I/V轉(zhuǎn)換,也解決了阻抗的問題。第一個(gè)DA的輸出電壓作為第二個(gè)DA的參考電壓系統(tǒng)軟件設(shè)計(jì)第4章
系統(tǒng)軟件設(shè)計(jì)4.1單片機(jī)軟件開發(fā)系統(tǒng)KeilC51是美國KeilSoftware公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。KeilC51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。KeilC51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)
C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51forWindows和forDos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng),使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個(gè)集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision2IDE可為它們提供單一而靈活的開發(fā)環(huán)境。第二部分uVision2集成開發(fā)環(huán)境一.項(xiàng)目管理工程(project)是由源文件、開發(fā)工具選項(xiàng)以及編程說明三部分組成的。一個(gè)單一的uVision2工程能夠產(chǎn)生一個(gè)或多個(gè)目標(biāo)程序。產(chǎn)生目標(biāo)程序的源文件構(gòu)成“組”。開發(fā)工具選項(xiàng)可以對應(yīng)目標(biāo),組或單個(gè)文件。uVision2包含一個(gè)器件數(shù)據(jù)庫(devicedatabase),可以自動(dòng)設(shè)置匯編器、編譯器、連接定位器及調(diào)試器選項(xiàng),來滿足用戶充分利用特定微控制器的要求。此數(shù)據(jù)庫包含:片上存儲(chǔ)器和外圍設(shè)備的信息,擴(kuò)展數(shù)據(jù)指針(extradatapointer)或者加速器(mathaccelerator)的特性。uVision2可以為片外存儲(chǔ)器產(chǎn)生必要的連接選項(xiàng):確定起始地址和規(guī)模。二.源代碼編輯器uVision2編輯器包含了所有用戶熟悉的特性。彩色語法顯像和文件辯識都對C源代碼進(jìn)行和優(yōu)化??梢栽诰庉嬈鲀?nèi)調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使你更快速地檢查和修改程序。三、斷點(diǎn)uVision2允許用戶在編輯時(shí)設(shè)置程序斷點(diǎn)(甚至在源代碼未經(jīng)編譯和匯編之前)。用戶啟動(dòng)V2調(diào)試器之后,斷點(diǎn)即被激活。斷點(diǎn)可設(shè)置為條件表達(dá)式,變量或存儲(chǔ)器訪問,斷點(diǎn)被觸發(fā)后,調(diào)試器命令或調(diào)試功能即可執(zhí)行。在屬性框(attributescolumn)中可以快速瀏覽斷點(diǎn)設(shè)置情況和源程序行的位置。代碼覆蓋率信息可以讓你區(qū)分程序中已執(zhí)行和未執(zhí)行的部分。四、調(diào)試函數(shù)語言uVision2中,你可以編寫或使用類似C的數(shù)語言進(jìn)行調(diào)試。1.內(nèi)部函數(shù):如printf,memset,rand及其它功能的函數(shù)。2.信號函數(shù):模擬產(chǎn)生CPU的模擬信號和脈沖信號(simulateanaloganddigitalinputstoCPU)。3.用戶函數(shù):擴(kuò)展指令范圍,合并重復(fù)動(dòng)作。Proteus軟件說明proteus軟件是英國Labcenterelectronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。編輯本段功能特點(diǎn)Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是:(1)原理布圖(2)PCB自動(dòng)或人工布線(3)SPICE電路仿真革命性的特點(diǎn)(1)互動(dòng)的電路仿真用戶甚至可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。(2)仿真處理器及其外圍電路可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。編輯本段功能模塊(1)智能原理圖設(shè)計(jì)(ISIS)豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件;智能的器件搜索:通過模糊搜索可以快速定位所需要的器件;智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡單快捷,大大縮短繪圖時(shí)間;支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡明清晰;可輸出高質(zhì)量圖紙:通過個(gè)性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。(2)完善的電路仿真功能(Prospice)ProSPICE混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真;超過27000個(gè)仿真器件:可以通過內(nèi)部原型或使用廠家的SPICE文件自行設(shè)計(jì)仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件;多樣的激勵(lì)源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號、單頻FM、數(shù)字時(shí)鐘和碼流,還支持文件形式的信號輸入;豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、I2C調(diào)試器等;生動(dòng)的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀、生動(dòng);高級圖形仿真功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進(jìn)行一致性分析;(3)獨(dú)特的單片機(jī)協(xié)同仿真功能(VSM)支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級還在繼續(xù)增加,如即將支持CORTEX、DSP處理器;支持通用外設(shè)模型:如字符LCD模塊、圖形LCD模塊、LED點(diǎn)陣、LED七段顯示模塊、鍵盤/按鍵、直流/步進(jìn)/伺服電機(jī)、RS232虛擬終端、電子溫度計(jì)等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過PC機(jī)串口和外部電路實(shí)現(xiàn)雙向異步串行通信;實(shí)時(shí)仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;編譯及調(diào)試:支持單片機(jī)匯編語言的編輯/編譯/源碼級仿真,內(nèi)帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結(jié)合,進(jìn)行高級語言的源碼級仿真和調(diào)試;(4)實(shí)用的PCB設(shè)計(jì)平臺原理圖到PCB的快速通道:原理圖設(shè)計(jì)完成后,一鍵便可進(jìn)入ARES的PCB設(shè)計(jì)環(huán)境,實(shí)現(xiàn)從概念到產(chǎn)品的完整設(shè)計(jì);先進(jìn)的自動(dòng)布局/布線功能:支持器件的自動(dòng)/人工布局;支持無自動(dòng)布線或人工布線;支持引腳交換/門交換功能使PCB設(shè)計(jì)更為合理;完整的PCB設(shè)計(jì)功能:最多可設(shè)計(jì)16個(gè)銅箔層,2個(gè)絲印層,4個(gè)機(jī)械層(含板邊),靈活的布線策略供用戶設(shè)置,自動(dòng)設(shè)計(jì)規(guī)則檢查,3D可視化預(yù)覽;多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導(dǎo)入或?qū)С?,便利與其它PCB設(shè)計(jì)工具的互轉(zhuǎn)(如protel)和PCB板的設(shè)計(jì)和加工。編輯本段資源豐富(1)Proteus可提供的仿真元器件資源:仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,有30多個(gè)元件庫。(2)Proteus可提供的仿真儀表資源:示波器、邏輯分析儀、虛擬終端、SPI調(diào)試器、I2C調(diào)試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個(gè)電路中隨意的調(diào)用。(3)除了現(xiàn)實(shí)存在的儀器外,Proteus還提供了一個(gè)圖形顯示功能,可以將線路上變化的信號,以圖形的方式實(shí)時(shí)地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結(jié)果的影響。(4)Proteus可提供的調(diào)試手段Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。編輯本段電路仿真在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。PROTEUS是單片機(jī)課堂教學(xué)的先進(jìn)助手。PROTEUS不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于PROTEUS提供了實(shí)驗(yàn)室無法相比的大量的元器件庫,提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺隨著科技的發(fā)展,“計(jì)算機(jī)仿真技術(shù)”已成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)??墒乖O(shè)計(jì)時(shí)間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險(xiǎn)。相信在單片機(jī)開發(fā)應(yīng)用中PROTEUS也能茯得愈來愈廣泛的應(yīng)用。使用Proteus軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計(jì),是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力;在單片機(jī)課程設(shè)計(jì)和全國大學(xué)生電子設(shè)計(jì)競賽中,我們使用Proteus開發(fā)環(huán)境對學(xué)生進(jìn)行培訓(xùn),在不需要硬件投入的條件下,學(xué)生普遍反映,對單片機(jī)的學(xué)習(xí)比單純學(xué)習(xí)書本知識更容易接受,更容易提高。實(shí)踐證明,在使用Proteus進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實(shí)際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。因此,Proteus有較高的推廣利用價(jià)值。根據(jù)功能,系統(tǒng)軟件設(shè)計(jì)分成幾個(gè)模塊編程:主程序模塊,鋸齒波程序模塊,三角波程序模塊,正弦波程序模塊,方波程序模塊,延時(shí)程序模塊。4.2主程序模塊(1)主程序流程圖說明:通過中斷0首先判斷是否要調(diào)整幅值,然后在看中斷0判斷輸出哪種波形開始開始判斷是否有中斷1否是輸出各種波形先調(diào)整一下幅值判斷是否有中斷0否是圖4-1主程序流程圖(2)波形流程圖說明:下面要實(shí)現(xiàn)的各種波形通過開關(guān)的切換過程的流程圖,按下一個(gè)開關(guān)通過P1.0為0則輸出三角波,P1.1為0輸出方波,P1.2為0輸出梯形波,P1.3為0輸出鋸齒波,P3.4為1輸出正弦波。開始P1.0按下了?輸出三角波P1.2按下了?P1.1按下了?P1.3按下了?NNN中斷斷NYYYY輸出方波輸出鋸齒波輸出正弦波 圖4-2鋸齒波形選擇流程圖4.3鋸齒波程序模塊(1)程序流程圖說明:鋸齒波產(chǎn)生首先將DAC0832口地址至為7FFFH,然后將00H送入寄存器A中,DAC0832輸出A中的內(nèi)容,當(dāng)A中的內(nèi)容等于FFH返回開始,當(dāng)A中的內(nèi)容不為FFH時(shí),A中的內(nèi)容累加,從而輸出波形。設(shè)置初值A(chǔ)為00H設(shè)置初值A(chǔ)為00HMOVDPTR,#7FFFHMOVX@DPTR,AINCA判斷A是否已滿了?否重新設(shè)置初值A(chǔ)為00H是開始圖4-3鋸齒波程序流程圖4.4三角波程序模塊(1)程序流程圖說明:三角波產(chǎn)生首先將DAC0832口地址至為7FFFH,通過A中數(shù)值的加一遞升,當(dāng)A中的內(nèi)容為0時(shí),與0FFH相比,相等時(shí)A中的內(nèi)容減一遞減,從而循環(huán)產(chǎn)生三角波。給A設(shè)置初值00H給A設(shè)置初值00HMOVDPTR,#7FFFHMOVX@DPTR,AINCA判斷A是否滿?否是DECA判斷是否等于初值?是開始否圖4-4三角波程序流程圖4.5正弦波程序模塊(1)程序流程圖說明:計(jì)算0~Pi/2區(qū)間N/4個(gè)離散的正弦值,根據(jù)對稱關(guān)系,復(fù)制Pi/2~Pi區(qū)間的值,將0~Pi區(qū)間各點(diǎn)根據(jù)求補(bǔ)即得Pi~2Pi區(qū)間各值,將得到的這些數(shù)據(jù)根據(jù)所用DAC的位數(shù)進(jìn)行量化,得到相應(yīng)的數(shù)字值,正弦波波形通過查表指令得出
圖4-5鋸齒波程序流程圖4.6方波程序模塊 (1)程序流程圖說明:方波產(chǎn)生首先將DAC0832口地址至為7FFFH,當(dāng)A中的內(nèi)容為0時(shí),輸出對應(yīng)模擬量,然后延時(shí),當(dāng)A中的內(nèi)容為0FFH時(shí),同樣輸出對應(yīng)模擬量,再延時(shí)相同時(shí)間,從而得到方波。開始開始給A設(shè)置初值FFHMOVDPTR,#7FFFHMOVX@DPTR,A調(diào)用延時(shí)子程序再給A設(shè)置00HMOVX@DPTR,A調(diào)用延時(shí)子程序圖4-6方波程序流程圖
波形發(fā)生器的調(diào)試第5章波形發(fā)生器的調(diào)試簡單系統(tǒng)硬件的調(diào)試通常采用載入簡單的測試程序并運(yùn)行,使用數(shù)字表或示波器觀察;對有些硬件例如鍵盤可直接編入程序觀察程序執(zhí)行狀態(tài)。5.1軟件仿真對于鍵盤是,我們應(yīng)當(dāng)首先確定每個(gè)按鍵的作用,只有當(dāng)我們確定鍵之后,才可以對我們所要設(shè)置的按鍵的功能通過真正做到使軟硬件相結(jié)合在一起,實(shí)現(xiàn)我們的目標(biāo)功能。對于設(shè)計(jì)的八個(gè)按鍵及功能見表5-1表5-1KEY作用K0三角波K1方波K2鋸齒波K3正弦波K4幅值1VK5幅值2VK6幅值3VK7幅值4V對整個(gè)系統(tǒng)用proteus仿真后得到的結(jié)果如下(1)方波仿真圖如圖5-1(a)所示如圖5-1(b)所示輸出幅值為1V輸出幅值為2V周期為250ms周期為250ms時(shí)間檔為100ms時(shí)間檔為100ms幅值檔為1V幅值檔為1V圖5-1(a) 圖5-1(b)如圖5-1(c)所示如圖5-1(d)所示輸出幅值為3V輸出幅值為4V周期為250ms周期為250ms時(shí)間檔為100ms時(shí)間檔為100ms幅值檔為1V幅值檔為1V圖5-1(c) 圖5-1(d)如圖5-1(e)所示輸出幅值為5V周期為250ms時(shí)間檔為100ms幅值檔為1V圖5-1(e)(2)三角波仿真圖如圖5-2(a)所示如圖5-2(b)所示輸出幅值為1V輸出幅值為2V周期為2.5ms周期為2.5ms時(shí)間檔為1ms時(shí)間檔為1ms幅值檔為1V幅值檔為1V圖5-2(a) 圖5-2(b)如圖5-2(c)所示如圖5-2(d)所示輸出幅值為3V輸出幅值為4V周期為2.5ms周期為2.5ms時(shí)間檔為1ms時(shí)間檔為1ms幅值檔為1V/格幅值檔為1V圖5-2(c) 圖5-2(d)如圖5-2(e)所示輸出幅值為5V周期為2.5ms時(shí)間檔為1ms幅值檔為1V圖5-2(e)(3)正弦波仿真圖如圖5-3(a)所示如圖5-3(b)所示輸出幅值為1V輸出幅值為2V周期為0.5ms周期為0.5ms時(shí)間檔為0.2ms時(shí)間檔為0.2ms幅值檔為1V幅值檔為1V圖5-3(a) 圖5-3(b)如圖5-3(c)所示如圖5-3(d)所示輸出幅值為3V輸出幅值為4V周期為0.5ms周期為0.5ms時(shí)間檔為0.2ms時(shí)間檔為0.2ms幅值檔為1V幅值檔為1V圖5-3(c) 圖5-3(d)如圖5-3(e)所示輸出幅值為5V,周期為0.5ms,時(shí)間檔為0.2ms幅值檔為1V圖5-3(e)(4)鋸齒波仿真圖如圖5-4(a)所示如圖5-4(b)所示輸出幅值為1V輸出幅值為2V周期為1.2ms周期為1.2ms時(shí)間檔為0.5ms時(shí)間檔為0.5ms幅值檔為1V幅值檔為1V圖5-4(a) 圖5-4(b)如圖5-4(c)所示如圖5-4(d)所示輸出幅值為3V輸出幅值為4V周期為0.5ms周期為0.5ms時(shí)間檔為0.2ms時(shí)間檔為0.2ms幅值檔為1V幅值檔為1V圖5-4(c) 圖5-4(d)如圖5-4(e)所示輸出幅值為5V周期為0.5ms時(shí)間檔為0.2ms幅值檔為1V圖5-4(e)5.2硬件電路測試實(shí)驗(yàn)方波如圖5-5(a)所示 實(shí)驗(yàn)三角波如圖5-5(b)所示圖5-5(a) 圖5-5(b)幅值24V周期200ms 幅值24V周期2.5ms實(shí)驗(yàn)鋸齒波如圖5-5(c)所示 實(shí)驗(yàn)正弦波如圖5-5(d)所示圖5-5(c) 圖5-5(d)幅值24V周期1.2ms 幅值24V周期0.5ms5.3結(jié)果分析從實(shí)驗(yàn)結(jié)果分析,有一些干擾,因此波形存在一定的失真,這主要跟程序的設(shè)計(jì)有關(guān),沒有做到那么精確,再者,仿真軟件本身也會(huì)給測試結(jié)果一定的誤差。在進(jìn)行試驗(yàn)過程中,只用一個(gè)DA轉(zhuǎn)換器時(shí),圖形只有一點(diǎn)點(diǎn)失真。這說明也和增加了D/A轉(zhuǎn)換器有關(guān)的。5.4調(diào)試小結(jié)經(jīng)過在實(shí)驗(yàn)室七天的調(diào)試過程中,遇到了很多問題和困難,最后在申淼老師和譚亞麗老師的幫助下都得到了解決。使我在整個(gè)過程當(dāng)中學(xué)到了很多知識和經(jīng)驗(yàn),在用KEIL調(diào)試程序時(shí),我竟然把MOVC和MOVX混淆了還有中斷中調(diào)用子程序時(shí)接受句應(yīng)該是RETI而我竟然用RET,及在多個(gè)子程序中跳轉(zhuǎn)時(shí),把JNB寫成了JB導(dǎo)致程序無法正常運(yùn)行等等小問題。在硬件調(diào)試時(shí),我剛開始都是一次性的把硬件圖全部畫出來,可是結(jié)果加載程序之后運(yùn)行不了,在申淼老師的指導(dǎo)下,我知道了,硬件部分要一部分一部分的調(diào)試,先看89C52能否工作,然后用一個(gè)DA加示波器調(diào)試一遍,接著用兩個(gè)DA加示波器,在各個(gè)部分沒有出錯(cuò)的情況下最后加上按鍵部分,進(jìn)行整體調(diào)試了。在調(diào)試過程中,一定要細(xì)心和毅力絕對不能心急的,不然會(huì)更加的糟糕從而得不到我們想要的結(jié)果。
結(jié)論與展望第六章結(jié)論與展望6.1結(jié)論單片機(jī)控制的波形發(fā)生器可以用于“單片機(jī)技術(shù)”的教學(xué)實(shí)踐,也可以用于實(shí)驗(yàn)信號的產(chǎn)生。其比較典型的接口電路設(shè)計(jì)也為實(shí)際應(yīng)用提供參考。該儀器的研制既解決了實(shí)驗(yàn)教學(xué)的需求,也節(jié)約了實(shí)驗(yàn)設(shè)備投資,降低了實(shí)驗(yàn)成本。經(jīng)過進(jìn)一步完善后,可由學(xué)生利用課程設(shè)計(jì)的機(jī)會(huì),親自動(dòng)手制作,這樣還可以進(jìn)一步降低成本,同時(shí)極大地提高了學(xué)生的動(dòng)手能力,是一件一舉多得的好事。隨著科學(xué)技術(shù)的不斷發(fā)展,以及實(shí)驗(yàn)教學(xué)要求的不斷更新,要求我們開發(fā)的應(yīng)用系統(tǒng)具有良好的可擴(kuò)充性和更新能力,作為一名技術(shù)人員,應(yīng)時(shí)刻跟蹤科技發(fā)展的步伐,不斷豐富專業(yè)知識,不斷完善我們開發(fā)的系統(tǒng)。本設(shè)計(jì)是是自己對“單片機(jī)技術(shù)”課程的理解和實(shí)際技術(shù)的總結(jié)。論文中可能會(huì)存在一些不足之處,敬請?jiān)u審專家和各位老師批評指正。6.2展望通過本次畢業(yè)設(shè)計(jì),我感到自己應(yīng)用基礎(chǔ)知識及專業(yè)知識解決問題的能力有了很大的提高。并且這次畢業(yè)設(shè)計(jì)的選題,是一個(gè)實(shí)際應(yīng)用工程。是我學(xué)完單片機(jī)課程后,自己動(dòng)手做的一個(gè)系統(tǒng)。但是我的簡易波形發(fā)生器還不完善,例如只能調(diào)節(jié)幅值不能調(diào)頻率,因?yàn)槲也粫?huì)用矩陣式的鍵盤。希望在以后研究生的學(xué)習(xí)中能夠進(jìn)一步學(xué)習(xí)。盡管在設(shè)計(jì)過程中碰到了不少“難題”,通過自己翻閱大量資料,解決了一個(gè)個(gè)難題。通過這次畢業(yè)設(shè)計(jì),我深深體會(huì)到:世上無難題,只怕有心人。碰到難題不要懼怕,只要你肯鉆研,問題總會(huì)有解決的辦法。我想,通過這次畢業(yè)設(shè)計(jì),在以后的進(jìn)一步學(xué)習(xí)中,我對自己未來充滿信心??傊?,這次畢業(yè)設(shè)計(jì)對我而言是受益匪淺的。
致謝致謝在本次系統(tǒng)的研究和設(shè)計(jì)過程中,我得到了老師和同學(xué)們的熱情幫助。在此,對他們表示衷心的感謝。首先,要對我的指導(dǎo)老師譚亞麗老師表示衷心的感謝。從方案的選取、審題、查找資料,到系統(tǒng)軟硬件的各部分設(shè)計(jì)工作,到最后論文的書寫和完成,老師在我的整個(gè)畢業(yè)設(shè)計(jì)工作中給了我很大的幫助和支持。老師的諄諄教導(dǎo),使我受益匪淺。其次,還要感謝申淼老師在調(diào)試時(shí)給了我很大的幫助,也對大學(xué)四年以來所有給我授課的老師們表示感謝。是他們教會(huì)了我大學(xué)應(yīng)該掌握的知識和技能,給我打下了堅(jiān)實(shí)的理論基礎(chǔ)。只有運(yùn)用四年學(xué)習(xí)的基礎(chǔ)知識和經(jīng)驗(yàn)的積累,才能使我能夠順利的完成本次畢業(yè)設(shè)計(jì)工作。最后,要感謝我們班的眾多同學(xué),本次設(shè)計(jì)能夠圓滿完成,和各位同學(xué)的幫助是息息相關(guān)的。在本次設(shè)計(jì)中,我遇到了無數(shù)困難,在需要幫助的時(shí)候,各位同學(xué)給了我無私的幫助,助我度過了一個(gè)又一個(gè)的難題。參考文獻(xiàn)參考文獻(xiàn)[1]薛鈞義,張彥斌.MCS-51/96系列單片微型計(jì)算機(jī)及其應(yīng)用.西安:西安交通大學(xué)出版社,1997.8.[2]胡漢才.單片機(jī)原理及其接口技術(shù).北京:清華大學(xué)出版社,1996.7。[3]張鑫,華臻,陳書謙.單片機(jī)原理及應(yīng)用.北京:電子工業(yè)出版社,2005.8.[4]申忠如,郭福田,丁暉.現(xiàn)代測試技術(shù)與系統(tǒng)設(shè)計(jì).西安:西安交通大學(xué)出版社,2006.2.[5]申忠如.MCS-51單片機(jī)原理及其系統(tǒng)設(shè)計(jì).北京:西安:西安交通大學(xué)出版社,2008.3.[6]袁南、沈平子,電磁量的單位制和單位的復(fù)現(xiàn)與傳遞,北京:機(jī)械工業(yè)出版社,1986[7]張克農(nóng)等,數(shù)字電子技術(shù)基礎(chǔ),北京:高等教育出版社,2005[8]劉君華,現(xiàn)代檢測技術(shù)與測試系統(tǒng)設(shè)計(jì),西安:西安交通大學(xué)出版社,1999[9]郭戍生、古天祥、陸玉新、張世箕,電子儀器原理,北京:國防工業(yè)出版社,1989[10]趙新民、王祁,智能儀器設(shè)計(jì)基礎(chǔ),哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1999
附錄1Proteus原理圖附錄1Proteus原理圖
附錄2源程序附錄2源程序ORG0000HSTART: LJMPMAINORG0003H;外部中斷0入口LJMPINSER;轉(zhuǎn)到中斷服務(wù)程序ORG0013HLJMPINSER1;外部中斷1入口ORG0030HMAIN:MOVA,#0FFHMOVDPTR,#0BFFFH;把0832(1)的地址送給DPTRMOVX@DPTR,ASETBEX0;允許中斷 SETBIT0;負(fù)邊沿觸發(fā)方式SETBEX1;允許中斷 SETBIT1;負(fù)邊沿觸發(fā)方式 SETBEA;開中斷SJMP$INSER: JNBP1.4,FUZHI1;中斷服務(wù)程序0,查詢按鍵 SJMPL4L4: JNBP1.5,FUZHI2 SJMPL5L5: JNBP1.6,FUZHI3 SJMPL6L6: JNBP1.7,FUZHI4 RETIINSER1:JNBP1.0,TRI;中斷服務(wù)程序1,查詢按鍵 SJMPL1L1: JNBP1.1,SQ SJMPL2L2: JNBP1.2,JCBSJMPL3L3:JNBP1.3,SINRETIFUZHI1:MOVA,#01H;把幅值送給0832(1)SJMPFZFUZHI2:MOVA,#02H;把幅值送給0832(1)SJMPFZFUZHI3:MOVA,#03H;把幅值送給0832(1)SJMPFZFUZHI4:MOVA,#04H;把幅值送給0832(1)FZ:MOVDPTR,#V_TAB;把幅值表的首地址送給DPTRMOVCA,@A+DPTRMOVDPTR,#0BFFFH;把0832(1)的地址送給DPTRMOVX@DPTR,ARETITRI:MOVA,#00H;三角波MOVDPTR,#7FFFH;DAC0832地址UP:MOVX@DPTR,A;啟動(dòng)D/A轉(zhuǎn)換INCA;上升沿CJNEA,#0FFH,UPDOWN:MOVX@DPTR,A;啟動(dòng)D/A轉(zhuǎn)換DECA;下降沿CJNEA,#00H,DOWNJNBP1.0,TRI;連續(xù)輸出波形RETISQ:MOVA,#00H;方波MOVDPTR,#7FFFH;DAC0832地址MOVX@DPTR,A;DAC輸出低電平ACALLDELAY;延時(shí)1MOVA,#0FFHMOVX@DPTR,A;DAC輸出高電平ACALLDELAY;延時(shí)2JNBP1.1,SQ;連續(xù)輸出波形RETIJCB:MOVA,#00H;鋸齒波MOVDPTR,#7FFFH;DAC0832地址JCB2:MOVX@DPTR,A;啟動(dòng)D/A變換INCACJNEA,#0FFH,JCB2JNBP1.2,JCB;連續(xù)輸出波形RETISIN:MOVDPTR,#SINTAB;正弦波 MOVR0,#6DHLOOP11:CLRA MOVCA,@A+DPTR MOV@R0,A INCDPTR INCR0 CJNER0,#80H,LOOP11 MOVDPTR,#7FFFH ;DAC0832端口地址 MOVR0,#6DHLOOP1:MOVA,@R0 ;取得第一個(gè)1/4周期的數(shù)據(jù) MOVX@DPTR,A ;送往DAC0832 INCR0 CJNER0,#7FH,LOOP1LOOP2:MOVA,@R0 ;取得第二個(gè)1/4周期的數(shù)據(jù) MOVX@DPTR,A ;送往DAC0832 DECR0 CJNER0,#6DH,LOOP2LOOP3:MOVA,@R0 ;取得第三個(gè)1/4周期的數(shù)據(jù) CPLA ;數(shù)據(jù)取反 MOVX@DPTR,A ;送往DAC0832 INCR0 CJNER0,#7FH,LOOP3LOOP4:MOVA,@R0 ;取得第四個(gè)1/4周期的數(shù)據(jù) CPLA ;數(shù)據(jù)取反 MOVX@DPTR,A ;送往DAC0832 DECR0 CJNER0,#6DH,LOOP4JNBP1.3,LOOP1RETISINTAB:DB7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,0D9H DB0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFHV_TAB:DB0FFH,35H,6AH,9FH,0D5HDELAY: MOV R5,#10DELAY1: MOVR6,#50DELAY2: MOVR7,#250 DJNZR7,$ DJNZR6,DELAY2 DJNZ R5,DELAY1 RETEND
附錄3外文翻譯附錄3外文翻譯外文文獻(xiàn)MicrocomputerSystems(SCMcontrolsystem)Electronicsystemsareusedforhandinginformationinthemostgeneralsense;thisinformationmaybetelephoneconversation,instrumentreadoracompany’saccounts,butineachcasethesamemaintypeofoperationareinvolved:theprocessing,storageandtransmissionofinformation.Inconventionalelectronicdesigntheseoperationsarecombinedatthefunctionlevel;forexampleacounter,whetherelectronicormechanical,storesthecurrentandincrementsitbyoneasrequired.Asystemsuchasanelectronicclockwhichemployscountershasitsstorageandprocessingcapabilitiesspreadthroughoutthesystembecauseeachcounterisabletostoreandprocessnumbers.Presentdaymicroprocessorbasedsystemsdepartfromthisconventionalapproachbyseparatingthethreefunctionsofprocessing,storage,andtransmissionintodifferentsectionofthesystem.ThispartitioningintothreemainfunctionswasdevisedbyVonNeumannduringthe1940s,andwasnotconceivedespeciallyformicrocomputers.Almosteverycomputerevermadehasbeendesignedwiththisstructure,anddespitetheenormousrangeintheirphysicalforms,theyhaveallbeenofessentiallythesamebasicdesign.Inamicroprocessorbasedsystemtheprocessingwillbeperformedinthemicroprocessoritself.Thestoragewillbebymeansofmemorycircuitsandthecommunicationofinformationintoandoutofthesystemwillbebymeansofspecialinput/output(I/O)circuits.Itwouldbeimpossibletoidentifyaparticularpieceofhardwarewhichperformedthecountinginamicroprocessorbasedclockbecausethetimewouldbestoredinthememoryandincrementedatregularintervalsbutthemicroprocessor.However,thesoftwarewhichdefinedthesystem’sbehaviorwouldcontainsectionsthatperformedascounters.Theapparentlyratherabstractapproachtothearchitectureofthemicroprocessoranditsassociatedcircuitsallowsittobeveryflexibleinuse,sincethesystemisdefinedalmostentirelysoftware.Thedesignprocessislargelyoneofsoftwareengineering,andthesimilarproblemsofconstructionandmaintenancewhichoccurinconventionalengineeringareencounteredwhenproducingsoftware.Thefigure1.1illustrateshowthesethreesectionswithinamicrocomputerareconnectedintermsofthecommunicationofinformationwithinthemachine.Thesystemiscontrolledbythemicroprocessorwhichsupervisesthetransferofinformationbetweenitselfandthememoryandinput/outputsections.Theexternalconnectionsrelatetotherest(thatis,thenon-computerpart)oftheengineeringsystem.Fig.1.1ThreeSectionsofaTypicalMicrocomputerAlthoughonlyonestoragesectionhasbeenshowninthediagram,inpracticetwodistincttypesofmemoryRAMandROMareused.Ineachcase,theword‘memory’isratherinappropriatesinceacomputermemoryismorelikeafilingcabinetinconcept;informationisstoredinasetofnumbered‘boxes’anditisreferencedbytheserialnumberofthe‘box’inquestion.MicrocomputersuseRAM(RandomAccessMemory)intowhichdatacanbewrittenandfromwhichdatacanbereadagainwhenneeded.Thisdatacanbereadbackfromthememoryinanysequencedesired,andnotnecessarilythesameorderinwhichitwaswritten,hencetheexpression‘random’accessmemory.AnothertypeofROM(ReadOnlyMemory)isusedtoholdfixedpatternsofinformationwhichcannotbeaffectedbythemicroprocessor;thesepatternsarenotlostwhenpowerisremovedandarenormallyusedtoholdtheprogramwhichdefinesthebehaviorofamicroprocessorbasedsystem.ROMscanbereadlikeRAMs,butunlikeRAMstheycannotbeusedtostorevariableinformation.SomeROMshavetheirdatapatternsputinduringmanufacture,whileothersareprogrammablebytheuserbymeansof
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年航空服務(wù)人員職業(yè)培訓(xùn)服務(wù)禮儀與航空業(yè)務(wù)知識考核
- 糖尿病飲食指導(dǎo)總結(jié)-醫(yī)學(xué)課件
- 施工材料信息化管理系統(tǒng)方案
- 綠色社區(qū)建設(shè)技術(shù)方案
- 全屋定制家具設(shè)計(jì)方案
- 城中村生態(tài)修復(fù)技術(shù)方案
- 城中村職業(yè)培訓(xùn)與就業(yè)服務(wù)方案
- 施工階段溝通協(xié)調(diào)方案
- 城中村建筑風(fēng)貌提升方案
- 2026年數(shù)字創(chuàng)意行業(yè)UIUX設(shè)計(jì)核心知識題集
- 電梯安裝文明施工方案
- GB/T 31897.201-2025燈具性能第2-1部分:特殊要求LED燈具
- 水利項(xiàng)目堤防工程單位工程驗(yàn)收建設(shè)管理工作報(bào)告
- 林區(qū)道路設(shè)計(jì)合同范本
- 江蘇省南京市建鄴區(qū)2026屆物理九上期末復(fù)習(xí)檢測模擬試題含解析
- 家居行業(yè)投資合作合同(2025修訂版)
- 2025年高三語文10月考聯(lián)考作文匯編(解析+立意+范文)
- 自動(dòng)化設(shè)備維護(hù)保養(yǎng)操作手冊
- 蓖麻醇酸鋅復(fù)合除味劑的制備及其除臭效能研究
- 危重病人的院前急救課件
- 礦井突水機(jī)理研究-洞察及研究
評論
0/150
提交評論