基于單片機(jī)的函數(shù)信號(hào)發(fā)生器論文_第1頁
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器論文_第2頁
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器論文_第3頁
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器論文_第4頁
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器論文_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、編號(hào): 桂林電子科技大學(xué)信息科技學(xué)院畢業(yè)設(shè)計(jì)(論文)說明書題 目:基于單片機(jī)的波形發(fā)生器的設(shè)計(jì) 系 別: 信息工程系 專 業(yè): 通信工程 學(xué)生姓名: 李潤(rùn)杰 學(xué) 號(hào): 0951100210 指導(dǎo)教師: 梁紅玉 職 稱: 講師 題目類型:理論研究 實(shí)驗(yàn)研究 工程設(shè)計(jì) 工程技術(shù)研究 軟件開發(fā) 應(yīng)用研究2013年5月24日摘 要本論文主要介紹基于單片機(jī)的波形發(fā)生器,該系統(tǒng)是基于AT89S52單片機(jī)的低頻信號(hào)發(fā)生器。主要采用AT89S52單片機(jī)作為控制核心,外圍電路包括數(shù)字/模擬轉(zhuǎn)換電路(DAC0832)、運(yùn)放電路(TL082CP)、按鍵和液晶等。同時(shí)用液晶顯示其對(duì)應(yīng)的波的名稱及頻率??僧a(chǎn)生方波、三角

2、波、正弦波、等多種波形,波形的頻率以可以通過編程,利用按鍵控制,可以根據(jù)需要,選擇不同類型的波形輸出,并且可以通過電位器調(diào)節(jié)輸出波形峰峰值。單片機(jī)控制信號(hào)輸出,通過D/A轉(zhuǎn)換器DAC0832將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),濾波放大,最終由示波器顯示出來,能產(chǎn)1Hz3kHz的波形。通過按鍵來控制三種波形的類型選擇、頻率變化,并通過1602液晶屏顯示其各自的類型以及數(shù)值,系統(tǒng)大致包括信號(hào)發(fā)生部分、數(shù)/模轉(zhuǎn)換部分以及液晶顯示部分三部分。本系統(tǒng)具有線路簡(jiǎn)單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點(diǎn)。文章給出了源代碼,通過仿真測(cè)試,其性能指標(biāo)達(dá)到了設(shè)計(jì)要求,可用于多種需要低頻信號(hào)的場(chǎng)所,具有一定的實(shí)用性。關(guān)鍵詞:?jiǎn)纹瑱C(jī);波形

3、;信號(hào)發(fā)生器;DAC0832AbstractThis paper describes the waveform generator consisting of, the system was using AT89S52 microcontroller digital low-frequency signal generator. Control using AT89S52 microcontroller as the core, peripheral circuits including digital analogue conversion circuit (DAC0832), and di

4、scharge (TL082CP), the keypad and LCD. Both LCD displays the name of the corresponding wave and frequency. To produce square wave, triangle wave, sine wave, such as a variety of waveforms. Waveform frequency can also be controlled through programming and keys, and you can adjust the waveform peaks p

5、eaks. Can select different types of waveform output.Single chip microcomputer control signal output through DAC0832 DA converter to convert the digital signal into an analog signal, filter amplifier, and ultimately by the oscilloscope display, 1Hz-3kHz waveform. To control three wave types by pressi

6、ng select, change, and by 1602 LCD display their types and values. Systems generally include mode conversion and the signal generator parts, and liquid crystal display parts in three parts.The system has simple lines, compact, excellent performance characteristics. Article gives a source, through si

7、mulation tests, their performance meets the design requirements, places of low-frequency signals can be used for a variety of needs, has a certain relevance.Key words: SCM; waveform;signal generator;DAC0832目 錄引言11 設(shè)計(jì)課題概況21.1 課題背景及重要意義21.1.1課題的背景21.1.2課題的意義21.2 課題設(shè)計(jì)的目的31.3 本論文所做的工作32 設(shè)計(jì)的主要內(nèi)容及性能要求42.1

8、設(shè)計(jì)主要內(nèi)容42.2 基本內(nèi)容和性能要求42.3 創(chuàng)新部分43 方案論證與比較43.1 參考方案及分析43.2 方案選擇及理由54 整體設(shè)計(jì)思路及原理54.1 方案介紹54.1.1畢業(yè)設(shè)計(jì)題目要求54.1.2方案介紹54.2 設(shè)計(jì)原理64.2.1系統(tǒng)設(shè)計(jì)原理64.2.2系統(tǒng)設(shè)計(jì)框圖64.2.3硬件原理64.2.4軟件原理65 硬件設(shè)計(jì)部分75.1主要器件介紹75.1.1AT89S52單片機(jī)75.1.2數(shù)模轉(zhuǎn)換芯片DAC083285.1.3液晶顯示屏LCD160285.1.4雙運(yùn)算放大器TL082CP95.2 單元電路設(shè)計(jì)105.2.1供電電路的設(shè)計(jì)105.2.2單片機(jī)最小系統(tǒng)電路的設(shè)計(jì)105.

9、2.3主控電路設(shè)計(jì)115.2.4數(shù)/模轉(zhuǎn)換電路設(shè)計(jì)125.2.5運(yùn)算放大電路及波形輸出電路125.2.6按鍵接口電路135.2.7時(shí)鐘電路135.2.8 LCD1602液晶顯示屏電路146 軟件設(shè)計(jì)部分146.1 軟件部分設(shè)計(jì)方案146.2 單片機(jī)開發(fā)所使用的軟件156.2.1Keil C51軟件介紹156.2.2uVision4集成開發(fā)環(huán)境介紹166.2.3編輯器和調(diào)試器166.2.4仿真軟件Proteus介紹166.3 系統(tǒng)程序流程圖176.4 軟件部分主要模塊設(shè)計(jì)186.4.1三種波形產(chǎn)生程序186.4.2主程序197 系統(tǒng)測(cè)試與誤差分析207.1 測(cè)量?jī)x器及測(cè)試說明207.2 仿真測(cè)試

10、207.2.1仿真電路設(shè)計(jì)207.2.2仿真測(cè)試207.2.3仿真結(jié)果總結(jié)257.3 實(shí)物測(cè)試267.3.1測(cè)試連接框圖267.3.2測(cè)試數(shù)據(jù)267.3.3測(cè)試結(jié)果總結(jié)287.4誤差分析298 問題及解決方法299 總結(jié)32謝 辭34參考文獻(xiàn)35附 錄36附錄1 基于單片機(jī)的波形發(fā)生器原理圖36附錄2 基于單片機(jī)的波形發(fā)生器PCB圖36 桂林電子科技大學(xué)信息科技學(xué)院畢業(yè)設(shè)計(jì)(論文)說明書 第36頁 共36頁引言隨著電子測(cè)量及其他部門對(duì)各類信號(hào)發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展,促使信號(hào)發(fā)生器中了增多,性能提高。尤其隨著70年代微處理器的出現(xiàn),更促使信號(hào)發(fā)生器向著自動(dòng)化、智能化方向發(fā)展。函數(shù)信

11、號(hào)發(fā)生器就是一種經(jīng)常使用的信號(hào)設(shè)備,由純粹物理器件構(gòu)成的傳統(tǒng)的設(shè)計(jì)方法存在許多弊端,如:體積較大、重量較沉、移動(dòng)不夠方便、信號(hào)失真較大、波形種類過于單一、波形形狀調(diào)節(jié)過于死板,無法滿足用戶對(duì)精度、便攜性、穩(wěn)定性等的要求。本次設(shè)計(jì)的主要目標(biāo)是學(xué)習(xí)和運(yùn)用單片機(jī)的C語言和匯編語言,利用單片機(jī)AT89S52和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波、方波、三角波,這三種常見波形的發(fā)生,并且可以通過按鍵在一定范圍內(nèi)改變頻率。在無標(biāo)準(zhǔn)函數(shù)發(fā)生儀器時(shí),本設(shè)計(jì)可以作為簡(jiǎn)單的函數(shù)發(fā)生器使用。本次設(shè)計(jì)準(zhǔn)備在成本較低廉的前提下完成,主要是用AT89S52單片機(jī)和DAC0832,性能指數(shù)都不是很高,所以對(duì)此信號(hào)

12、源的基本要求是能發(fā)生幾種常見的波形:正弦波、方波、三角波,并且能夠在一定的范圍內(nèi)改變頻率。通過該課題的設(shè)計(jì)掌握以AT89S52為核心的單片機(jī)系統(tǒng)的軟硬件開發(fā)過程和基本信號(hào)的產(chǎn)生原理、測(cè)量及誤差分析方法同時(shí)掌握函數(shù)發(fā)生器系統(tǒng)的設(shè)計(jì)流程,培養(yǎng)我們綜合運(yùn)用所學(xué)的基本知識(shí)、基本理論和基本技能的能力。學(xué)習(xí)解決一般工程技術(shù)和有關(guān)專業(yè)問題的能力,學(xué)習(xí)工程設(shè)計(jì)和科學(xué)研究的基本方法,完成對(duì)所學(xué)知識(shí)的綜合訓(xùn)練。1 設(shè)計(jì)課題概況1.1 課題背景及重要意義1.1.1 課題的背景在電子測(cè)量?jī)x器家族中,波形發(fā)生器即函數(shù)信號(hào)發(fā)生器是一種非常重要的儀器,因此它是電子系統(tǒng)中十分重要部件,是一種能夠決定電子測(cè)試系統(tǒng)性能的重要關(guān)鍵

13、設(shè)備。在七十年代前,波形發(fā)生器主要有兩大種類:正弦信號(hào)發(fā)生器和脈沖信號(hào)發(fā)生器。正弦信號(hào)發(fā)生器只是提供正弦波信號(hào),通常用的技術(shù)是一自由振蕩器,工作頻率就是輸出頻率,頻率的范圍有限,大多從幾Hz到約1MHz。脈沖波發(fā)生器可產(chǎn)生高質(zhì)量的方波和脈沖串,其頻率范圍一般低至1Hz,高至1GHz,它被用在數(shù)字系統(tǒng)中模擬或取代數(shù)字信號(hào),如時(shí)鐘,數(shù)據(jù)等。在七十年代后,微處理器的出現(xiàn),運(yùn)用信號(hào)處理器,A/D、D/A和軟件讓函數(shù)產(chǎn)生器的功能擴(kuò)大,能產(chǎn)生更復(fù)雜的波形。例如衰減震蕩波,隨機(jī)脈沖波,指數(shù)形脈沖等等。那時(shí)的信號(hào)處理器都是專門用于信號(hào)處理的微處理器,不過時(shí)鐘頻率只有12MHZ,A/D和D/A一般在8位左右,內(nèi)

14、部存儲(chǔ)器大約2K,所以能夠產(chǎn)生的正弦波的等效頻寬一般不會(huì)超過1MHZ,想要獲得比較平滑和失真度低的波形,其重復(fù)頻率不能超過10KHZ,當(dāng)時(shí)用模擬的方式產(chǎn)生特殊波形,重復(fù)頻率可以達(dá)到110MHZ,且波形完整性好,用數(shù)字電路的函數(shù)發(fā)生器尚且處于并發(fā)階段,正式產(chǎn)品還不多。八十年代情況有很大變化,伴隨著現(xiàn)代信息事業(yè)的飛速發(fā)展,測(cè)試對(duì)象開始不斷豐富,現(xiàn)代通信系統(tǒng)以及電子系統(tǒng)對(duì)測(cè)試系統(tǒng)提出了更高的要求,進(jìn)而對(duì)信號(hào)發(fā)生器也提出了越來越高的要求,需要通過模擬工作現(xiàn)場(chǎng)的情況來對(duì)產(chǎn)品進(jìn)行測(cè)試。然而工作現(xiàn)場(chǎng)的信號(hào)通常是多種多樣的,傳統(tǒng)模擬信號(hào)的發(fā)生器很顯然是不能滿足需要的,這時(shí)就非常需要一種能夠產(chǎn)生用戶自定義的波形

15、的儀器。近年來,一種較新的電子測(cè)量?jī)x器任意的波形發(fā)生器出現(xiàn)了,它可以視為函數(shù)發(fā)生器的一款換代產(chǎn)品。任意波形發(fā)生器功能遠(yuǎn)比函數(shù)發(fā)生器強(qiáng),在前文討論的難于產(chǎn)生的或不能產(chǎn)生的波形,都可以用任意波形發(fā)生器。自然它也可以用來產(chǎn)生前面討論的波形,但實(shí)際應(yīng)用中還利用發(fā)生器來模擬更加復(fù)雜的信號(hào),甚至信號(hào)中的缺陷,都可利用控制來模擬,此外,任意波形發(fā)生器還可產(chǎn)生瞬變的信號(hào)如阻尼正弦波等,它對(duì)存在的公眾的波形都可以模擬,只要可以用數(shù)字形式存儲(chǔ),并送進(jìn)波形存儲(chǔ)器的波形都能把他們模擬出來。1.1.2 課題的意義波形發(fā)生器是一種比較常用的信號(hào)源,在自動(dòng)控制的系統(tǒng)設(shè)計(jì)、調(diào)試以及電子實(shí)驗(yàn)過程中,常常會(huì)遇到需要不同頻率的正弦

16、波、方波、三角波等信號(hào)作為信號(hào)源。目前我國生產(chǎn)的波形發(fā)生器大多是利用分立元件組成的,再根據(jù)具體的需要加入積分電路等構(gòu)成正弦、矩形波、三角等波形發(fā)生器。這種波形發(fā)生器輸出頻率范圍較窄且電路設(shè)計(jì)參數(shù)設(shè)定相對(duì)繁瑣,其頻率的大小測(cè)量往往需要利用硬件電路的切換來實(shí)現(xiàn)不同頻率范圍值的測(cè)量,電路設(shè)計(jì)復(fù)雜、操作不便,而體積大,可靠性、準(zhǔn)確性都相對(duì)較差,不能滿足科研、生產(chǎn)的要求。伴隨大規(guī)模集成電路及彈片機(jī)的迅速發(fā)展,提供了儀器的更新?lián)Q代可能性。目前利用單片機(jī)組成的信號(hào)發(fā)生器進(jìn)行一系列實(shí)地測(cè)試和調(diào)試,結(jié)果表明,完全可以代替以往的模擬電路。在以上的基礎(chǔ)上,怎樣利用單片機(jī)進(jìn)行控制,那么儀器的準(zhǔn)確度和功能將有一個(gè)飛躍,

17、就成為多功能智能波形發(fā)生器,此儀器電路結(jié)構(gòu)簡(jiǎn)單,雖然性能指標(biāo)及功能趕不上標(biāo)準(zhǔn)信號(hào)發(fā)生器,但滿足通常的實(shí)驗(yàn)要求是沒有問題的,并且它的成本低、體積小,更加容易被大家接受,而且還可作為電子產(chǎn)品維修員的重要隨身設(shè)備之一。利用單片機(jī)的運(yùn)算和存儲(chǔ)功能,可以編制一些以提高準(zhǔn)確度,增強(qiáng)功能的軟件,對(duì)波形發(fā)生器的準(zhǔn)確度提高、體積的縮小以及功能的加強(qiáng)有著重大的影響。1.2 課題設(shè)計(jì)的目的(1)利用所學(xué)單片機(jī)機(jī)的理論知識(shí)進(jìn)行軟硬件整體設(shè)計(jì),鍛煉學(xué)生理論聯(lián)系實(shí)際、提高我們的綜合應(yīng)用能力。(2)我們這次的課程設(shè)計(jì)是以單片機(jī)為基礎(chǔ),設(shè)計(jì)并開發(fā)能輸出多種波形(正弦波、三角波、鋸齒波、方波、梯形波等)且頻率、幅度可變的波形發(fā)

18、生器。(3)掌握各個(gè)接口芯片(如0832等)的功能特性及接口方法,并能運(yùn)用其實(shí)現(xiàn)一個(gè)簡(jiǎn)單的單片機(jī)應(yīng)用系統(tǒng)功能器件。(4)在平時(shí)的學(xué)習(xí)中,我們所學(xué)的知識(shí)大都是課本上的,在機(jī)房的練習(xí)大家也都是分散的對(duì)各個(gè)章節(jié)的內(nèi)容進(jìn)行練習(xí)。因此,缺乏一種系統(tǒng)的設(shè)計(jì)鍛煉。在課程所學(xué)結(jié)束以后,這樣的課程設(shè)計(jì)十分有助于學(xué)生的知識(shí)系統(tǒng)的總結(jié)到一起。(5)通過這幾個(gè)波形進(jìn)行組合形成了一個(gè)波形發(fā)生器,使得我對(duì)系統(tǒng)的整個(gè)框架的設(shè)計(jì)有了一個(gè)很好的鍛煉。這不僅有助于大家找到自己感興趣的題目,更可以鍛煉大家單片機(jī)知識(shí)的應(yīng)用。1.3 本論文所做的工作本論文主要進(jìn)行了以下工作:(1)通過查閱相關(guān)資料,學(xué)習(xí)信號(hào)發(fā)生器的工作原理及了解其應(yīng)用

19、場(chǎng)合。(2)復(fù)習(xí)單片機(jī)原理及其系統(tǒng)設(shè)計(jì),掌握其接口擴(kuò)展包括:顯示鍵盤等(3)掌握單片機(jī)仿真軟件keil4和Proteus的使用(4)組建基于單片機(jī)的信號(hào)發(fā)生器系統(tǒng),畫出總體結(jié)構(gòu)框圖(5)采用C語言編寫應(yīng)用程序,輸出不同波形,幅度可以調(diào)節(jié)并且在示波器上顯示(6)最后完成對(duì)系統(tǒng)測(cè)試結(jié)果的統(tǒng)計(jì)和分析(7)撰寫論文。2 設(shè)計(jì)的主要內(nèi)容及性能要求2.1設(shè)計(jì)主要內(nèi)容該設(shè)計(jì)電路適用于通信工程專業(yè)所涉及到的有關(guān)實(shí)驗(yàn),還可用于科研、技術(shù)開發(fā)等工作。在整個(gè)系統(tǒng)設(shè)計(jì)中,電流到電壓的轉(zhuǎn)化是系統(tǒng)需要解決的核心問題,因?yàn)镈AC0832輸出的是2路電流信號(hào),而對(duì)應(yīng)的單片機(jī)輸入信號(hào)是電壓信號(hào)。波形發(fā)生器電路包含3個(gè)部分的設(shè)計(jì)

20、:(1)是如何通過單片機(jī)和外圍信號(hào)發(fā)生芯片的組合完成波形發(fā)生功能的。(2)是如何設(shè)計(jì)外圍電路和單片機(jī)的接口電路的。(3)是如何編寫控制單片機(jī)進(jìn)行波形發(fā)生的單片機(jī)程序。因此,系統(tǒng)可分為3個(gè)功能模塊:(1)單片機(jī)系統(tǒng):控制外圍的AT89S52器件,完成功能函數(shù)信號(hào)的輸出。(2)外圍電路:實(shí)現(xiàn)外圍的芯片和單片機(jī)之間的接口電路。(3)C52程序:編寫單片機(jī)控制的接口程序,實(shí)現(xiàn)單片機(jī)的函數(shù)信號(hào)輸出功能。2.2 基本內(nèi)容和性能要求(1)設(shè)計(jì)一款能夠產(chǎn)生3種波形的波形發(fā)生器;(2)設(shè)計(jì)波形選擇按鈕;(3)通過顯示屏顯示波形的類型;(4)頻率范圍在1Hz到3000Hz;(4)其他功能(創(chuàng)新部分)。2.3 創(chuàng)新

21、部分(1)波形頻率調(diào)節(jié)增減調(diào)節(jié)(通過按鍵);(2)波形幅值調(diào)節(jié)(通過精密可調(diào)電位器);(3)停止按鍵的。3 方案論證與比較3.1 參考方案及分析方案1:用純硬件方法設(shè)計(jì)波形發(fā)生器,波形發(fā)生器的設(shè)計(jì)主要采用運(yùn)算放大器及分立元件來實(shí)現(xiàn)。實(shí)現(xiàn)的波形相對(duì)比較單一,主要為正弦波、方波和三角波。其工作原理也相對(duì)簡(jiǎn)單:首先是產(chǎn)生正弦波,接著通過波形變換(正弦波經(jīng)比較器產(chǎn)生方波,方波通過積分器變?yōu)槿遣?實(shí)現(xiàn)方波及三角波。在各種波形后增加一級(jí)放大電路,可以使輸出的波形幅度達(dá)到要求,通過開關(guān)電路來實(shí)現(xiàn)不同的輸出波形之間的切換,改變電路的詳細(xì)參數(shù)就可以實(shí)現(xiàn)頻率、幅度及占空比的改變。通過對(duì)電路結(jié)構(gòu)的優(yōu)化和所用器件的

22、嚴(yán)格選擇就可以提高電路頻率的穩(wěn)定性及準(zhǔn)確度。其優(yōu)點(diǎn)是:電路簡(jiǎn)單,利用模電知識(shí),不需要編程,缺點(diǎn)是頻率不高,頻率的調(diào)節(jié)不方便,波形不穩(wěn)定,不易調(diào)試。方案2:利用專用直接數(shù)字合成DDS芯片的波形發(fā)生器:能產(chǎn)生任意波形并達(dá)到很高的頻率。就合成信號(hào)的質(zhì)量而言,專用DDS集成芯片由于采用了特定的集成工藝,內(nèi)部數(shù)字信號(hào)消抖很小,輸出信號(hào)的指標(biāo)較高。專用DDS集成芯片通常設(shè)有與單片機(jī)連接的并行接口或串行接口,編程簡(jiǎn)單方便。但缺點(diǎn)是:設(shè)計(jì)成本較高,電路設(shè)計(jì)相對(duì)復(fù)雜。方案3:采用AT89S52單片機(jī)和DAC0832芯片,直接連接獨(dú)立按鍵和1602液晶顯示屏。該種方案優(yōu)點(diǎn)是:能充分利用AT89S52單片機(jī)的各個(gè)I

23、/O口,而不在多用其它芯片,從而減小了系統(tǒng)的成本。也對(duì)按照系統(tǒng)便攜式低頻信號(hào)發(fā)生器的要求所完成。占用空間小,使用芯片少,低功耗。通過編程的方法來控制信號(hào)波形的頻率和幅度,而且在硬件電路不變的情況下,通過編程,利用按鍵來實(shí)現(xiàn)頻率的變換。3.2 方案選擇及理由綜合考慮,方案3各項(xiàng)性能和指標(biāo)都優(yōu)于其他幾種方案,能使輸出頻率有較好的穩(wěn)定性,充分體現(xiàn)了模塊化設(shè)計(jì)的要求,而且這些芯片及器件均為通用器件,在市場(chǎng)上較常見,價(jià)格也低廉,樣品制作成功的可能性比較大,所以本設(shè)計(jì)采用方案3。4 整體設(shè)計(jì)思路及原理4.1 方案介紹4.1.1畢業(yè)設(shè)計(jì)題目要求單片機(jī)AT89S52采用程序設(shè)計(jì)方法產(chǎn)生鋸齒波、正弦波、矩形波三

24、種波形,再通過D/A轉(zhuǎn)換器DAC0832將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),濾波放大,最終由示波器顯示出來,能產(chǎn)1Hz3kHz的波形。通過鍵盤來控制三種波形的類型選擇、頻率變化,并通過液晶屏1602顯示其各自的類型以及數(shù)值。4.1.2方案介紹采用軟硬件結(jié)合的方法,利用AT89S52單片機(jī)和DAC0832芯片,直接連接獨(dú)立按鍵和1602液晶顯示屏。通過單片機(jī)控制該系統(tǒng)的外圍電路,構(gòu)成函數(shù)信號(hào)發(fā)生器,波形的產(chǎn)生是通過單片機(jī)執(zhí)行波形發(fā)生程序,向D/A轉(zhuǎn)換器的輸入端按一定規(guī)律發(fā)送數(shù)據(jù),從而在D/A轉(zhuǎn)換電路的輸出端得到相應(yīng)的波形,波形的頻率可以用程序改變,加上按鍵控制和液晶顯示,可以通過鍵盤設(shè)定所需要的波形頻率及

25、波形類型,并在液晶上顯示。該種方案優(yōu)點(diǎn)是:能充分利用AT89S52單片機(jī)的各個(gè)I/O口,而不在多用其它芯片,從而減小了系統(tǒng)的成本。也對(duì)按照系統(tǒng)便攜式低頻信號(hào)發(fā)生器的要求所完成。占用空間小,使用芯片少,低功耗。通過編程的方法來控制信號(hào)波形的頻率和幅度,而且在硬件電路不變的情況下,通過編程,利用按鍵來實(shí)現(xiàn)頻率的變換。4.2 設(shè)計(jì)原理4.2.1系統(tǒng)設(shè)計(jì)原理數(shù)字信號(hào)能通過數(shù)模轉(zhuǎn)換器再轉(zhuǎn)換成模擬信號(hào),因此就可以通過產(chǎn)生數(shù)字信號(hào)然后再轉(zhuǎn)換成模擬信號(hào)的方法來實(shí)現(xiàn),AT89S52單片機(jī)原本就是一個(gè)較為完整的微型計(jì)算機(jī),且具有組成微型計(jì)算機(jī)各部分的部件:隨機(jī)存儲(chǔ)器RAM、中央處理器CPU、I/O接口電路、只讀存

26、儲(chǔ)器ROM、定時(shí)器/計(jì)數(shù)器和串行通訊接口等,只要將單片機(jī)再配置按鍵、接口和液晶顯示屏、數(shù)模轉(zhuǎn)換和放大輸出電路等,便可以構(gòu)成基于單片機(jī)的函數(shù)信號(hào)發(fā)生器。AT89S52是整個(gè)函數(shù)信號(hào)發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號(hào),并從按鍵接收數(shù)據(jù),進(jìn)行各種功能的轉(zhuǎn)換和信號(hào)幅度調(diào)節(jié)。當(dāng)數(shù)字信號(hào)經(jīng)過接口電路到達(dá)轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號(hào)也就是所需要的輸出波形。單片機(jī)鍵盤電路顯示電路復(fù)位電路數(shù)/模轉(zhuǎn)換電路放大電路波形輸出4.2.2系統(tǒng)設(shè)計(jì)框圖圖4-1總體框圖4.2.3硬件原理將AT89S52單片機(jī)的8位P0口與D/A0832 8位數(shù)模轉(zhuǎn)換芯片相連,將單片機(jī)產(chǎn)生的數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),模擬

27、信號(hào)經(jīng)運(yùn)算放大器放大后可由示波器觀測(cè)到波形。顯示部分用1602液晶顯示屏顯示,1602液晶顯示屏數(shù)據(jù)端與P1口相連,位選端與P2口相連。此函數(shù)發(fā)生器主要由一片AT89S52單片機(jī)、一片DAC0832數(shù)/模轉(zhuǎn)換器、一片運(yùn)算放大器TL082CP、1602液晶顯示屏以及5個(gè)獨(dú)立按鍵構(gòu)成。4.2.4軟件原理軟件部分:主要是波形數(shù)據(jù)的存儲(chǔ)、波形數(shù)據(jù)的選擇、波形周期大小的調(diào)整,通過程序得到各種波形。波形參數(shù)存入sine_tab(正弦波)、triangle_tab (三角波)和square _tab(方波)三個(gè)數(shù)組中,波形的選擇通過獨(dú)立按鍵,每按一次按鍵切換一個(gè)波形,周期的改變采用調(diào)整定時(shí)計(jì)數(shù)初值來實(shí)現(xiàn),由

28、獨(dú)立按鍵來調(diào)整周期。單片機(jī)順序讀取存儲(chǔ)在各波形數(shù)組中的波形數(shù)據(jù),將波形數(shù)據(jù)經(jīng)P0口送到D/A數(shù)模轉(zhuǎn)換芯片得到模擬信號(hào)。5 硬件設(shè)計(jì)部分5.1主要器件介紹圖5-1 芯片管腳5.1.1AT89S52單片機(jī)(1)芯片介紹基本組成部分: 一個(gè)8位的CPU 128B或256B單元內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM) 4KB或8KB片內(nèi)程序存儲(chǔ)器(ROM或EPROM) 4個(gè)8位并行I/O接口P0P3。 兩個(gè)定時(shí)/計(jì)數(shù)器。 5個(gè)中斷源的中斷管理控制系統(tǒng)。 一個(gè)全雙工串行I/O口UART(通用異步接收、發(fā)送器)。 一個(gè)振蕩器和時(shí)鐘產(chǎn)生電路。(2)AT89S52單片機(jī)的管腳功能如下(如圖5-1所示)VCC:供電電壓, GND

29、:接地。 P0口:P0口為一個(gè)8位開路雙向I/O口。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0用于外部程序數(shù)據(jù)存儲(chǔ)器,它能被定義成數(shù)據(jù)/地址的第八位。當(dāng)FIASH編程時(shí),P0端口作為原碼輸入口,在FIASH進(jìn)行校驗(yàn)時(shí),P0端口輸出原碼,這時(shí)P0外部必須被拉高。 P1口:P1端口是在單片機(jī)內(nèi)部提供一個(gè)上拉電阻的8位雙向I/O口,P1端口緩沖器可以接收輸出4TTL門電流。P1端口管腳寫入1后,就被內(nèi)部上拉為高,可以用作輸入,P1端口被外部下拉成低電平時(shí),將會(huì)輸出電流,這是因?yàn)閮?nèi)部上拉的緣故。當(dāng)FLASH編程和校驗(yàn)時(shí),P1端口作為第8位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I

30、/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,

31、由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。5.1.2數(shù)模轉(zhuǎn)換芯片DAC0832(1)芯片介紹DAC0832是采樣頻率為八位的D/A轉(zhuǎn)換芯片,集成電路內(nèi)有兩級(jí)輸入寄存器。DAC0832輸出的是電流,一般要求輸出是電壓,所以還必須經(jīng)過一個(gè)外接的運(yùn)算放大器轉(zhuǎn)換成電壓。DAC0832的數(shù)字量是用二進(jìn)制代碼按數(shù)位組合起來的,每一位代碼都有一定的權(quán)。為了將數(shù)字量轉(zhuǎn)換成為模擬量,必須將每一位的代碼按其權(quán)的大小轉(zhuǎn)換成相應(yīng)的模擬量,然后將這些模擬量相加,即得到與數(shù)字量成正的總模擬量,從而實(shí)現(xiàn)數(shù)字/模擬轉(zhuǎn)換。本次課題設(shè)計(jì)所使用的D/A轉(zhuǎn)換芯片為DAC0832。DAC0832是使用非常普遍

32、的8位D/A轉(zhuǎn)換器。(2)DAC0832的管腳功能如下(如圖5-2所示): 圖5-2數(shù)模轉(zhuǎn)換芯片DAC0832管腳圖D0D7:數(shù)字信號(hào)輸入端。ILE:輸入寄存器允許,高電平有效。CS:片選信號(hào),低電平有效。WR1:寫信號(hào)1,低電平有效。XFER:傳送控制信號(hào),低電平有效。WR2:寫信號(hào)2,低電平有效。IOUT1、IOUT2:DAC電流輸出端。RfB:是集成在片內(nèi)的外接運(yùn)放的反饋電阻。 VREF:基準(zhǔn)電壓(-1010V)。VCC:是源電壓(+5+15V)。GND:地。5.1.3液晶顯示屏LCD1602(1)器件介紹LCD1602液晶顯示屏也叫1602字符型液晶,這是一種專門用于顯示數(shù)字、字母、符

33、號(hào)等的點(diǎn)陣型液晶顯示模塊。由若干個(gè)5X7或5X11等點(diǎn)陣字符位組成,每一個(gè)點(diǎn)陣字符位都能夠顯示一個(gè)字符,每位之間都有一個(gè)點(diǎn)距的間隔,并且每行之間也都有間隔,起到了字符間距以及行間距的作用。工作電壓為3.3V或5V,對(duì)比度可以調(diào)節(jié),內(nèi)含復(fù)位電路。提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能。有80個(gè)字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM,內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM,8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM。其優(yōu)點(diǎn)是:微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。(2)LCD1602的管腳功能如下(如圖5-3所示):圖5-

34、3 LCD1602的管腳圖第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0是液晶顯示器對(duì)比度調(diào)整端,在接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度是最高(對(duì)比度過高時(shí)就會(huì) 產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器來調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:RW為讀寫信號(hào)線,高電平1時(shí)進(jìn)行讀操作,低電平0時(shí)進(jìn)行寫操作。第6腳:E(或EN)端是使能(enable)端,高電平1時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳為背光正極,16腳為背光負(fù)極。5.1.4雙運(yùn)算放大

35、器TL082CP(1)芯片介紹運(yùn)算放大器,英文描述 Operation Amplifier(OA),是應(yīng)用非常廣泛的一類線性集成電路,其種類繁多。在運(yùn)用方面,不僅僅可以把微弱信號(hào)放大,還可以作為反相器、電壓比較器、電壓跟隨器、加法器、積分器、微分器等等,所以他被稱為運(yùn)算放大器。(2)雙運(yùn)算放大器TL082CP管腳功能如下:第1腳:運(yùn)放A輸出端;第2腳:運(yùn)放A負(fù)輸入端;第3腳:運(yùn)放A正輸入端;第4腳:負(fù)電源電壓;第5腳:運(yùn)放B正輸入端;第6腳:運(yùn)放B負(fù)輸入端;第7腳:運(yùn)放B輸入端;第8腳:正電源電壓。5.2 單元電路設(shè)計(jì)5.2.1供電電路的設(shè)計(jì)作為函數(shù)信號(hào)發(fā)生器,需要電源輸入,大多情況下,沒有+

36、/-12V的直流電源,本課題,又沒有要求需要制作電源模塊。因此設(shè)計(jì)兩種供電方式:(1)通過單片機(jī)的下載口進(jìn)行供電。單片機(jī)下載口要求輸入+/-5V的電源,給單片機(jī)供電,此供電,能夠滿足運(yùn)行單片機(jī),下載程序,驅(qū)動(dòng)LCD1602液晶顯示屏,但是無法使TL082CP運(yùn)算放大芯片工作。(2)通過外部供電(如圖5-4所示)。設(shè)計(jì)了+/-12V直流電源輸入端口,使TL082CP運(yùn)算放大芯片能夠正常工作,然后通過L7805CV穩(wěn)壓芯片,輸出+/-5V的電壓供AT89S52單片機(jī)使用。這樣設(shè)計(jì)的好處是:降低制作成本、電路復(fù)雜程度,提高制作效率,更為便攜圖5-4 外部供電電路原理圖5.2.2單片機(jī)最小系統(tǒng)電路的設(shè)

37、計(jì)(1)單片機(jī)晶振電路單片機(jī)外圍的晶振電路是通過單片機(jī)的第18(XTAL1),19(XTAL2)引腳接入,XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。對(duì)于AT89S52一般的晶振頻率可以在12MHz35MHz之間選擇,這時(shí)電容C可以對(duì)應(yīng)的選擇10pF30pF。對(duì)于本設(shè)計(jì)的電容C用30pF,晶振選用12MHz。晶振電路解法圖3-1,一條引腳接在XTAL1,另一條接在XTAL2。(2)單片機(jī)的復(fù)位電路RST:復(fù)位輸入。晶振工作時(shí),RST腳將持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址

38、8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。為了防止程序執(zhí)行過程中失步或運(yùn)行紊亂,此處我們采用了上電復(fù)位及手動(dòng)復(fù)位電路,(3)/VPP:為訪問外部程序存儲(chǔ)器控制信號(hào)。要使外部程序存儲(chǔ)器能從0000H到FFFFH讀取指令,必須接GND。接VCC,才能執(zhí)行內(nèi)部程序指令。在flash編程的同時(shí),也接收5伏的VPP電壓。(4)ALE/:地址鎖存控制信號(hào)ALE訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳()也用作于編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定的頻率來輸出脈沖,可以用作外部定時(shí)器或時(shí)鐘使用。但是,特別強(qiáng)調(diào),每

39、次訪問外部數(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è)置對(duì)微控制器處于外部執(zhí)行模式下無效。圖5-5 單片機(jī)最小系統(tǒng)電路設(shè)計(jì)原理圖5.2.3主控電路設(shè)計(jì)AT89S52單處機(jī)內(nèi)部設(shè)置兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器T0和T1,它們具有計(jì)數(shù)器方式和定時(shí)器方式的兩種工作方式以及4種工作模式。在波形發(fā)生器中,將其作為定時(shí)器來使用,用它來準(zhǔn)確地確定波形的兩個(gè)采樣點(diǎn)輸出之間的延遲時(shí)間。模式1采

40、用的是16位計(jì)數(shù)器,當(dāng)T0或T1被允許計(jì)數(shù)后,便從初值開始加計(jì)數(shù),當(dāng)最高位產(chǎn)生溢出時(shí),便向CPU請(qǐng)求中斷。中斷系統(tǒng)是使處理器具有對(duì)外界異步事件的處理能力而設(shè)置的。當(dāng)中央處理器CPU正在處理某件事的時(shí)候外界發(fā)生了緊急事件,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊急事件。在波形發(fā)生器中,只用到片內(nèi)定時(shí)器計(jì)數(shù)器溢出時(shí)產(chǎn)生的中斷請(qǐng)求,即在AT89S52輸出一個(gè)波形采樣點(diǎn)信號(hào)后,接著便啟動(dòng)定時(shí)器,在定時(shí)器未產(chǎn)生中斷之前,AT89S52等待,直到定時(shí)器計(jì)時(shí)結(jié)束,此時(shí)產(chǎn)生中斷請(qǐng)求,AT89S52響應(yīng)中斷,接著輸出下一個(gè)采樣點(diǎn)信號(hào),如此循環(huán)產(chǎn)生所需要的信號(hào)波形6。AT89S52從P3口接收來自鍵盤的信號(hào),并

41、通過P0口輸出一些控制信號(hào),將其輸入到DAC0832數(shù)模轉(zhuǎn)換,濾波經(jīng)TL082CP運(yùn)算放大后輸出,并在LCD1602液晶屏上顯示相應(yīng)的波形及頻率值。5.2.4數(shù)/模轉(zhuǎn)換電路設(shè)計(jì)由于單片機(jī)產(chǎn)生的是數(shù)字信號(hào),要想得到所需要的波形,就要把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),所以該文選用價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部分組成。但實(shí)際上,DAC0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對(duì)分辨率為單位增減,是準(zhǔn)模擬量的輸出。DAC0832是電流型輸出,在應(yīng)用時(shí)外接運(yùn)放使之成為電

42、壓型輸出。由圖5-6可知,當(dāng)P13有效時(shí),若P0口向其送的數(shù)據(jù)為00H, 則U1 的輸出電壓為0V;若P0口向其送的數(shù)據(jù)為0FFH時(shí), 則U1的輸出電壓為-5V. 故當(dāng)U1 輸出電壓為0V時(shí),由公式 得:Vout = - 5V.當(dāng)輸出電壓為- 5V時(shí),可得:Vout = +5V,所以輸出波形的電壓變化范圍為- 5V+ 5V. 故可推得,當(dāng)P0所送數(shù)據(jù)為80H時(shí),Vout為0V。圖5-6 DAC0832數(shù)模轉(zhuǎn)換電路5.2.5運(yùn)算放大電路及波形輸出電路DAC0832是電流型輸出,在應(yīng)用時(shí)外接運(yùn)放使之成為電壓型輸出。以便于示波器顯示其波形及調(diào)節(jié)其幅度。所以又用到了運(yùn)放,我們用到的是TL082CP,此

43、運(yùn)放采用12V電源供電,其內(nèi)部集成有2個(gè)放大器,全部用上,如果只用其中一個(gè),那么沒有用到的運(yùn)算放大器接地。在運(yùn)放電路中,加入一個(gè)1K的電位器,用來控制輸出波形的峰峰值。圖5-7運(yùn)算放大電路及波形輸出電路原理圖5.2.6按鍵接口電路圖5-8為按鍵接口電路的原理圖,圖中按鍵和AT89S52的P3口相連,通過單片機(jī)檻車,看是否有鍵按下,如有,則根據(jù)相應(yīng)按鍵作出反應(yīng)。其中“K2”號(hào)鍵作用是選擇輸出的函數(shù)信號(hào)即波的類型(方波、正弦波、三角波)?!癒3”號(hào)鍵作用是增加輸出信號(hào)的頻率?!癒4”號(hào)鍵作用是減小輸出信號(hào)的頻率?!癒5”號(hào)鍵作用是停止輸出信號(hào)。圖5-8 按鍵接口電路原理圖5.2.7時(shí)鐘電路AT89

44、S52單片機(jī)有兩個(gè)引腳(XTAL1,XTAL2)用于外接石英晶體和微調(diào)電容,從而構(gòu)成時(shí)鐘電路,其電路圖如圖3.5所示。電容C1、C2對(duì)振蕩頻率有穩(wěn)定作用,其容量的選擇為30pf,振蕩器選擇頻率為12MHz的石英晶體。由于頻率較大時(shí),三角波、正弦波、鋸齒波中每一點(diǎn)的延時(shí)時(shí)間為幾微秒,故延時(shí)時(shí)間還要加上指令時(shí)間才能獲得較大的頻率波形。圖5-9 時(shí)鐘電路原理圖5.2.8 LCD1602液晶顯示屏電路通過液晶1602顯示輸出的波形類型、頻率,其電路圖如下:如上圖所示,1602的八位數(shù)據(jù)端接單片機(jī)的P2口,其三個(gè)使能端RS、RW、E分別接單片機(jī)的P1.0P1.2。通過軟件控制液晶屏可以顯示波形的種類以及

45、波形的頻率。圖5-10 LCD1602液晶顯示屏電路原理圖6 軟件設(shè)計(jì)部分6.1 軟件部分設(shè)計(jì)方案AT89S52單片機(jī)系列的編程語言常用的有兩種,一種是匯編語言,一種是C語言。匯編語言,是一種功能很強(qiáng)的程序設(shè)計(jì)語言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語言。匯編語言直接同計(jì)算機(jī)的底層軟件甚至硬件進(jìn)行交互,它具有如下一些優(yōu)點(diǎn):(1)能夠直接地訪問與硬件相關(guān)的存儲(chǔ)器或I/O端口;(2)能夠不受編譯器的限制,而對(duì)生成的二進(jìn)制代碼進(jìn)行完全的控制;(3)能夠?qū)σ恍╆P(guān)鍵的代碼進(jìn)行更準(zhǔn)確的控制,及時(shí)避免因線程共同訪問或者硬件設(shè)備共享引起的死鎖;(4)能夠根據(jù)特定的應(yīng)用對(duì)代碼做出最佳的優(yōu)化,從而提高運(yùn)

46、行速度;(5)能夠最大限度地發(fā)揮硬件的功能。同時(shí),匯編語言也是一種層次非常低的語言。它僅僅高于直接手工編寫二進(jìn)制的機(jī)器指令碼,因此不可避免地存在著缺點(diǎn):(1)編寫的代碼不易于理解,不便于維護(hù);(2)容易產(chǎn)生bug,難于調(diào)試;(3)只能針對(duì)特定的體系結(jié)構(gòu)和處理器來進(jìn)行優(yōu)化;(4)開發(fā)效率低,所用時(shí)間長(zhǎng)且過程單調(diào)。C語言,是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。所以,它既可以作為工作系統(tǒng)設(shè)計(jì)語言來編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍很是廣泛,不僅是在軟件開發(fā)上,而且各類科研工作都需要用到C語言,具體應(yīng)用比如

47、單片機(jī)以及嵌入式系統(tǒng)開發(fā)。它具有如下優(yōu)點(diǎn):(1)語言簡(jiǎn)潔緊湊、運(yùn)用靈活方便;(2)所含運(yùn)算符豐富;(3)數(shù)據(jù)結(jié)構(gòu)豐富;(4)為結(jié)構(gòu)式語言;(5)語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大;(6)允許直接訪問物理地址,也可以直接對(duì)硬件進(jìn)行操作;(7)生成目標(biāo)代碼的質(zhì)量高,程序執(zhí)行的效率高;(8)適用范圍廣,可移植性好。匯編語言的機(jī)器代碼生成效率很高,但可讀性卻并不是很強(qiáng),復(fù)雜一點(diǎn)的程序就更不容易讀懂了,而對(duì)于C語言,在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語言相當(dāng),其可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過匯編語言,并且C語言還可以嵌入?yún)R編來解決高時(shí)效性的代碼編寫。對(duì)于開發(fā)周期來說,中大型的軟件編寫用C語言的開發(fā)周期通

48、常要遠(yuǎn)遠(yuǎn)小于匯編語言。綜合以上C語言的優(yōu)點(diǎn),函數(shù)發(fā)生器系統(tǒng)的軟件部分由C語言設(shè)計(jì)編程實(shí)現(xiàn)。6.2 單片機(jī)開發(fā)所使用的軟件6.2.1 Keil C51軟件介紹Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng)。與匯編相比,C語言在功能、結(jié)構(gòu)性、可讀性、可維護(hù)性上有著明顯的優(yōu)勢(shì),易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常的高,多數(shù)語句生成的匯編代碼形式緊湊,容易

49、理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)其高級(jí)語言的優(yōu)勢(shì)。Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),uVision和Ishell分別是C51 for Windows與for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用(IDE)本身或其它編輯器編輯C或匯編源文件。6.2.2uVision4集成開發(fā)環(huán)境介紹一個(gè)工程(project)是由源文件、開發(fā)工具選項(xiàng)以及編程說明三個(gè)部分組成的。 一個(gè)單一的uVision4工程能夠產(chǎn)生一個(gè)或多個(gè)目標(biāo)程序。產(chǎn)生目標(biāo)程序的源文件構(gòu)成“組”。開發(fā)工具選項(xiàng)可以對(duì)應(yīng)目標(biāo),組或單個(gè)文件。 uVision

50、4可以為片外存儲(chǔ)器產(chǎn)生必要的連接選項(xiàng):確定起始地址和規(guī)模。6.2.3編輯器和調(diào)試器 (1)源代碼編輯器 uVision4編輯器包含了所有用戶熟悉的基本特性。彩色語法顯像和文件辯識(shí)都對(duì)C源代碼進(jìn)行了優(yōu)化。用戶可以在編輯器內(nèi)調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使用戶更快速地檢查和修改程序。 (2)調(diào)試函數(shù)語言 在uVision4中,用戶可以編寫或使用類似C的數(shù)語言進(jìn)行調(diào)試。 內(nèi)部函數(shù):如printf, memset, rand及其它功能的函數(shù)。 信號(hào)函數(shù):模擬產(chǎn)生CPU的模擬信號(hào)和脈沖信號(hào)(simulate analog and digital inputs to CPU)。 用戶函數(shù):擴(kuò)展指令

51、范圍,合并重復(fù)動(dòng)作。6.2.4仿真軟件Proteus介紹(1)軟件介紹Proteus是目前世界上非常著名的EDA工具,從原理圖、代碼調(diào)試、單片機(jī)與外圍電路協(xié)同仿真,一鍵切換PCB的設(shè)計(jì),真正的實(shí)現(xiàn)了從概念到產(chǎn)品完整的設(shè)計(jì)。是世界上唯一將電路的仿真軟件、PCB的設(shè)計(jì)軟件及虛擬模型的仿真軟件三者合一的設(shè)計(jì)平臺(tái)。(2)仿真功能介紹在Proteus中繪制好原理圖以后,便可調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可在Proteus的原理圖上,看到模擬的實(shí)物運(yùn)行過程和狀態(tài)。Proteus是單片機(jī)課堂教學(xué)的先進(jìn)助手。畢業(yè)設(shè)計(jì)是大學(xué)生成功的走向就業(yè)的非常重要的實(shí)踐環(huán)節(jié)。因此Proteus提供了實(shí)驗(yàn)室中無法比擬

52、的大量的元器件庫,也提供了電路修改設(shè)計(jì)的靈活性、還有提供了實(shí)驗(yàn)室在數(shù)量和質(zhì)量上難以比擬的虛擬儀器、儀表,同時(shí)也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺(tái)。伴隨著目前科技的發(fā)展與進(jìn)步,“計(jì)算機(jī)仿真技術(shù)”已經(jīng)成為許多設(shè)計(jì)部門非常重要的前期設(shè)計(jì)手段。它擁有設(shè)計(jì)靈活,過程、結(jié)果統(tǒng)一的特點(diǎn)。使設(shè)計(jì)時(shí)間大大縮短、耗資也大大的減少,降低了工程制造中的風(fēng)險(xiǎn)。由此看來在單片機(jī)開發(fā)應(yīng)用中,PROTEUS也可以茯得愈來愈廣泛的應(yīng)用。用Proteus 軟件進(jìn)行單片機(jī)系統(tǒng)的仿真設(shè)計(jì),是計(jì)算機(jī)多媒體技術(shù)和虛擬仿真技術(shù)相結(jié)合的綜合運(yùn)用,比較有利于培養(yǎng)大學(xué)生的仿真軟件的操作能力和電路設(shè)計(jì)能力;在全國大學(xué)生電子設(shè)計(jì)競(jìng)賽和單片機(jī)課程

53、設(shè)計(jì)中,我們大多都使用 Proteus 開發(fā)環(huán)境,進(jìn)行培訓(xùn),在不需要較多硬件投入的條件下,大家普遍反映,對(duì)單片機(jī)的學(xué)習(xí)相比單純學(xué)習(xí)書本知識(shí)更加容易接受、容易提高。實(shí)踐證明,當(dāng)使用 Proteus 進(jìn)行系統(tǒng)仿真的開發(fā)成功之后再開始實(shí)際制作,能極大程度提高單片機(jī)系統(tǒng)設(shè)計(jì)的效率。因此,Proteus 有較高的利用推廣價(jià)值。6.3 系統(tǒng)程序流程圖本系統(tǒng)采用AT89S52單片機(jī),用編程的方法來產(chǎn)生三種波形,并通過編程來切換三種波形以及波形頻率的改變。具體功能有:三種波形(方波、正弦波、三角波)的輸出切換;輸出信號(hào)的頻率調(diào)節(jié);停止輸出信號(hào)等功能。軟件調(diào)通后,通過編程器下載到AT89S52芯片中,然后插到系

54、統(tǒng)中即可獨(dú)立完成所有的控制。開始初始化有按鍵按下?K2按下K3按下K4按下waveform+waveform=1waveform=2waveform=3輸出三角波液晶顯示Triangle wave輸出方波液晶顯示Square wave輸出正弦波液晶顯示Sine wave增加輸出信號(hào)頻率減小輸出信號(hào)頻率液晶屏f增加液晶屏f減小K5按下停止輸出信號(hào)NOYES軟件的流程圖如下:圖6-1系統(tǒng)程序流程圖6.4 軟件部分主要模塊設(shè)計(jì)6.4.1三種波形產(chǎn)生程序void triangle_out()/三角波輸出 DAdata=triangle_tabwavecount+;if(wavecount64) wav

55、ecount=0;DA_S1=0; /打開8位輸入寄存器_nop_(); _nop_();/給個(gè)空語句,讓數(shù)據(jù)有時(shí)間輸入到寄存器去,如果不給,會(huì)直接到DA_S1=1; 數(shù)據(jù)也就沒有輸入到寄存器DA_S1=1; /關(guān)閉8位輸入寄存器void sine_out() /正弦波輸出 if (wavecount 31)wavecount = 0;elsewavecount+;DAdata=sine_tabwavecount;DA_S1=0; /打開8位輸入寄存器_nop_(); _nop_();DA_S1=1; /關(guān)閉8位輸入寄存器void square_out() /方波輸出 judge=judge; if(judge=1) DAdata=0xff;else DAdata=0x00;DA_S1=0; /打開8位輸入寄存器_nop_(); _nop_();DA_S1=1; /關(guān)閉8位輸入寄存器6.4.2主程序void m

溫馨提示

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