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

下載本文檔

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

文檔簡介

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

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

3、求,可用于多種需要低頻信號的場所,具有一定的實用性。關(guān)鍵詞:單片機;波形;信號發(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

4、conversion circuit (DAC0832), and discharge (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

5、 you can adjust the waveform peaks peaks. 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. T

6、o control three wave types by pressing 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

7、. Article gives a source, through simulation 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è)計課題概況21.1 課題背景及重要意義21.1.1課題的背景21.1.2課題的意義21.2 課題設(shè)

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

9、05.2.1供電電路的設(shè)計105.2.2單片機最小系統(tǒng)電路的設(shè)計105.2.3主控電路設(shè)計115.2.4數(shù)/模轉(zhuǎn)換電路設(shè)計125.2.5運算放大電路及波形輸出電路125.2.6按鍵接口電路135.2.7時鐘電路135.2.8 LCD1602液晶顯示屏電路146 軟件設(shè)計部分146.1 軟件部分設(shè)計方案146.2 單片機開發(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è)計186.4.1三種波形產(chǎn)生程序186.4.2主程序19

10、7 系統(tǒng)測試與誤差分析207.1 測量儀器及測試說明207.2 仿真測試207.2.1仿真電路設(shè)計207.2.2仿真測試207.2.3仿真結(jié)果總結(jié)257.3 實物測試267.3.1測試連接框圖267.3.2測試數(shù)據(jù)267.3.3測試結(jié)果總結(jié)287.4誤差分析298 問題及解決方法299 總結(jié)32謝 辭34參考文獻35附 錄36附錄1 基于單片機的波形發(fā)生器原理圖36附錄2 基于單片機的波形發(fā)生器PCB圖36 桂林電子科技大學(xué)信息科技學(xué)院畢業(yè)設(shè)計(論文)說明書 第36頁 共36頁引言隨著電子測量及其他部門對各類信號發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展,促使信號發(fā)生器中了增多,性能提高。尤其隨著7

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

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

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

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

15、發(fā)生器很顯然是不能滿足需要的,這時就非常需要一種能夠產(chǎn)生用戶自定義的波形的儀器。近年來,一種較新的電子測量儀器任意的波形發(fā)生器出現(xiàn)了,它可以視為函數(shù)發(fā)生器的一款換代產(chǎn)品。任意波形發(fā)生器功能遠(yuǎn)比函數(shù)發(fā)生器強,在前文討論的難于產(chǎn)生的或不能產(chǎn)生的波形,都可以用任意波形發(fā)生器。自然它也可以用來產(chǎn)生前面討論的波形,但實際應(yīng)用中還利用發(fā)生器來模擬更加復(fù)雜的信號,甚至信號中的缺陷,都可利用控制來模擬,此外,任意波形發(fā)生器還可產(chǎn)生瞬變的信號如阻尼正弦波等,它對存在的公眾的波形都可以模擬,只要可以用數(shù)字形式存儲,并送進波形存儲器的波形都能把他們模擬出來。1.1.2 課題的意義波形發(fā)生器是一種比較常用的信號源,在

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

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

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

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

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

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

22、參數(shù)就可以實現(xiàn)頻率、幅度及占空比的改變。通過對電路結(jié)構(gòu)的優(yōu)化和所用器件的嚴(yán)格選擇就可以提高電路頻率的穩(wěn)定性及準(zhǔn)確度。其優(yōu)點是:電路簡單,利用模電知識,不需要編程,缺點是頻率不高,頻率的調(diào)節(jié)不方便,波形不穩(wěn)定,不易調(diào)試。方案2:利用專用直接數(shù)字合成DDS芯片的波形發(fā)生器:能產(chǎn)生任意波形并達到很高的頻率。就合成信號的質(zhì)量而言,專用DDS集成芯片由于采用了特定的集成工藝,內(nèi)部數(shù)字信號消抖很小,輸出信號的指標(biāo)較高。專用DDS集成芯片通常設(shè)有與單片機連接的并行接口或串行接口,編程簡單方便。但缺點是:設(shè)計成本較高,電路設(shè)計相對復(fù)雜。方案3:采用AT89S52單片機和DAC0832芯片,直接連接獨立按鍵和1

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

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

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

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

27、832 8位數(shù)模轉(zhuǎn)換芯片相連,將單片機產(chǎn)生的數(shù)字信號轉(zhuǎn)換成模擬信號,模擬信號經(jīng)運算放大器放大后可由示波器觀測到波形。顯示部分用1602液晶顯示屏顯示,1602液晶顯示屏數(shù)據(jù)端與P1口相連,位選端與P2口相連。此函數(shù)發(fā)生器主要由一片AT89S52單片機、一片DAC0832數(shù)/模轉(zhuǎn)換器、一片運算放大器TL082CP、1602液晶顯示屏以及5個獨立按鍵構(gòu)成。4.2.4軟件原理軟件部分:主要是波形數(shù)據(jù)的存儲、波形數(shù)據(jù)的選擇、波形周期大小的調(diào)整,通過程序得到各種波形。波形參數(shù)存入sine_tab(正弦波)、triangle_tab (三角波)和square _tab(方波)三個數(shù)組中,波形的選擇通過獨立

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

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

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

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

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

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

34、應(yīng)用系統(tǒng)中。(2)LCD1602的管腳功能如下(如圖5-3所示):圖5-3 LCD1602的管腳圖第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0是液晶顯示器對比度調(diào)整端,在接正電源時對比度最弱,接地電源時對比度是最高(對比度過高時就會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器來調(diào)整對比度)。第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。第6腳:E(或EN)端是使能(enable)端,高電平1時讀取信息,負(fù)跳變時執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:

35、空腳或背燈電源。15腳為背光正極,16腳為背光負(fù)極。5.1.4雙運算放大器TL082CP(1)芯片介紹運算放大器,英文描述 Operation Amplifier(OA),是應(yīng)用非常廣泛的一類線性集成電路,其種類繁多。在運用方面,不僅僅可以把微弱信號放大,還可以作為反相器、電壓比較器、電壓跟隨器、加法器、積分器、微分器等等,所以他被稱為運算放大器。(2)雙運算放大器TL082CP管腳功能如下:第1腳:運放A輸出端;第2腳:運放A負(fù)輸入端;第3腳:運放A正輸入端;第4腳:負(fù)電源電壓;第5腳:運放B正輸入端;第6腳:運放B負(fù)輸入端;第7腳:運放B輸入端;第8腳:正電源電壓。5.2 單元電路設(shè)計5.

36、2.1供電電路的設(shè)計作為函數(shù)信號發(fā)生器,需要電源輸入,大多情況下,沒有+/-12V的直流電源,本課題,又沒有要求需要制作電源模塊。因此設(shè)計兩種供電方式:(1)通過單片機的下載口進行供電。單片機下載口要求輸入+/-5V的電源,給單片機供電,此供電,能夠滿足運行單片機,下載程序,驅(qū)動LCD1602液晶顯示屏,但是無法使TL082CP運算放大芯片工作。(2)通過外部供電(如圖5-4所示)。設(shè)計了+/-12V直流電源輸入端口,使TL082CP運算放大芯片能夠正常工作,然后通過L7805CV穩(wěn)壓芯片,輸出+/-5V的電壓供AT89S52單片機使用。這樣設(shè)計的好處是:降低制作成本、電路復(fù)雜程度,提高制作效

37、率,更為便攜圖5-4 外部供電電路原理圖5.2.2單片機最小系統(tǒng)電路的設(shè)計(1)單片機晶振電路單片機外圍的晶振電路是通過單片機的第18(XTAL1),19(XTAL2)引腳接入,XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。對于AT89S52一般的晶振頻率可以在12MHz35MHz之間選擇,這時電容C可以對應(yīng)的選擇10pF30pF。對于本設(shè)計的電容C用30pF,晶振選用12MHz。晶振電路解法圖3-1,一條引腳接在XTAL1,另一條接在XTAL2。(2)單片機的復(fù)位電路RST:復(fù)位輸入。晶振工作時,RST腳將持續(xù)2個機器周期高電平將使單片機復(fù)位。

38、計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。為了防止程序執(zhí)行過程中失步或運行紊亂,此處我們采用了上電復(fù)位及手動復(fù)位電路,(3)/VPP:為訪問外部程序存儲器控制信號。要使外部程序存儲器能從0000H到FFFFH讀取指令,必須接GND。接VCC,才能執(zhí)行內(nèi)部程序指令。在flash編程的同時,也接收5伏的VPP電壓。(4)ALE/:地址鎖存控制信號ALE訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳()也用作于編程輸入脈沖。在一般情況下,ALE 以晶振六分之一

39、的固定的頻率來輸出脈沖,可以用作外部定時器或時鐘使用。但是,特別強調(diào),每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖都將會跳過。如果有需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE僅在執(zhí)行MOVX或MOVC指令時才有效。否則,ALE 將被微弱的拉高。這個ALE 使標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。圖5-5 單片機最小系統(tǒng)電路設(shè)計原理圖5.2.3主控電路設(shè)計AT89S52單處機內(nèi)部設(shè)置兩個16位可編程的定時器/計數(shù)器T0和T1,它們具有計數(shù)器方式和定時器方式的兩種工作方式以及4種工作模式。在波形發(fā)生器中,將其作為定

40、時器來使用,用它來準(zhǔn)確地確定波形的兩個采樣點輸出之間的延遲時間。模式1采用的是16位計數(shù)器,當(dāng)T0或T1被允許計數(shù)后,便從初值開始加計數(shù),當(dāng)最高位產(chǎn)生溢出時,便向CPU請求中斷。中斷系統(tǒng)是使處理器具有對外界異步事件的處理能力而設(shè)置的。當(dāng)中央處理器CPU正在處理某件事的時候外界發(fā)生了緊急事件,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個緊急事件。在波形發(fā)生器中,只用到片內(nèi)定時器計數(shù)器溢出時產(chǎn)生的中斷請求,即在AT89S52輸出一個波形采樣點信號后,接著便啟動定時器,在定時器未產(chǎn)生中斷之前,AT89S52等待,直到定時器計時結(jié)束,此時產(chǎn)生中斷請求,AT89S52響應(yīng)中斷,接著輸出下一個采樣點信號,如此

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

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

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

44、K5”號鍵作用是停止輸出信號。圖5-8 按鍵接口電路原理圖5.2.7時鐘電路AT89S52單片機有兩個引腳(XTAL1,XTAL2)用于外接石英晶體和微調(diào)電容,從而構(gòu)成時鐘電路,其電路圖如圖3.5所示。電容C1、C2對振蕩頻率有穩(wěn)定作用,其容量的選擇為30pf,振蕩器選擇頻率為12MHz的石英晶體。由于頻率較大時,三角波、正弦波、鋸齒波中每一點的延時時間為幾微秒,故延時時間還要加上指令時間才能獲得較大的頻率波形。圖5-9 時鐘電路原理圖5.2.8 LCD1602液晶顯示屏電路通過液晶1602顯示輸出的波形類型、頻率,其電路圖如下:如上圖所示,1602的八位數(shù)據(jù)端接單片機的P2口,其三個使能端R

45、S、RW、E分別接單片機的P1.0P1.2。通過軟件控制液晶屏可以顯示波形的種類以及波形的頻率。圖5-10 LCD1602液晶顯示屏電路原理圖6 軟件設(shè)計部分6.1 軟件部分設(shè)計方案AT89S52單片機系列的編程語言常用的有兩種,一種是匯編語言,一種是C語言。匯編語言,是一種功能很強的程序設(shè)計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。匯編語言直接同計算機的底層軟件甚至硬件進行交互,它具有如下一些優(yōu)點:(1)能夠直接地訪問與硬件相關(guān)的存儲器或I/O端口;(2)能夠不受編譯器的限制,而對生成的二進制代碼進行完全的控制;(3)能夠?qū)σ恍╆P(guān)鍵的代碼進行更準(zhǔn)確的控制,及時避免因線程共同訪問

46、或者硬件設(shè)備共享引起的死鎖;(4)能夠根據(jù)特定的應(yīng)用對代碼做出最佳的優(yōu)化,從而提高運行速度;(5)能夠最大限度地發(fā)揮硬件的功能。同時,匯編語言也是一種層次非常低的語言。它僅僅高于直接手工編寫二進制的機器指令碼,因此不可避免地存在著缺點:(1)編寫的代碼不易于理解,不便于維護;(2)容易產(chǎn)生bug,難于調(diào)試;(3)只能針對特定的體系結(jié)構(gòu)和處理器來進行優(yōu)化;(4)開發(fā)效率低,所用時間長且過程單調(diào)。C語言,是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。所以,它既可以作為工作系統(tǒng)設(shè)計語言來編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。因此,它的

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

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

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

50、目標(biāo)程序的源文件構(gòu)成“組”。開發(fā)工具選項可以對應(yīng)目標(biāo),組或單個文件。 uVision4可以為片外存儲器產(chǎn)生必要的連接選項:確定起始地址和規(guī)模。6.2.3編輯器和調(diào)試器 (1)源代碼編輯器 uVision4編輯器包含了所有用戶熟悉的基本特性。彩色語法顯像和文件辯識都對C源代碼進行了優(yōu)化。用戶可以在編輯器內(nèi)調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使用戶更快速地檢查和修改程序。 (2)調(diào)試函數(shù)語言 在uVision4中,用戶可以編寫或使用類似C的數(shù)語言進行調(diào)試。 內(nèi)部函數(shù):如printf, memset, rand及其它功能的函數(shù)。 信號函數(shù):模擬產(chǎn)生CPU的模擬信號和脈沖信號(simulate an

51、alog and digital inputs to CPU)。 用戶函數(shù):擴展指令范圍,合并重復(fù)動作。6.2.4仿真軟件Proteus介紹(1)軟件介紹Proteus是目前世界上非常著名的EDA工具,從原理圖、代碼調(diào)試、單片機與外圍電路協(xié)同仿真,一鍵切換PCB的設(shè)計,真正的實現(xiàn)了從概念到產(chǎn)品完整的設(shè)計。是世界上唯一將電路的仿真軟件、PCB的設(shè)計軟件及虛擬模型的仿真軟件三者合一的設(shè)計平臺。(2)仿真功能介紹在Proteus中繪制好原理圖以后,便可調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可在Proteus的原理圖上,看到模擬的實物運行過程和狀態(tài)。Proteus是單片機課堂教學(xué)的先進助手。畢業(yè)設(shè)計

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

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

54、節(jié);停止輸出信號等功能。軟件調(diào)通后,通過編程器下載到AT89S52芯片中,然后插到系統(tǒng)中即可獨立完成所有的控制。開始初始化有按鍵按下?K2按下K3按下K4按下waveform+waveform=1waveform=2waveform=3輸出三角波液晶顯示Triangle wave輸出方波液晶顯示Square wave輸出正弦波液晶顯示Sine wave增加輸出信號頻率減小輸出信號頻率液晶屏f增加液晶屏f減小K5按下停止輸出信號NOYES軟件的流程圖如下:圖6-1系統(tǒng)程序流程圖6.4 軟件部分主要模塊設(shè)計6.4.1三種波形產(chǎn)生程序void triangle_out()/三角波輸出 DAdata=

55、triangle_tabwavecount+;if(wavecount>64) wavecount=0;DA_S1=0; /打開8位輸入寄存器_nop_(); _nop_();/給個空語句,讓數(shù)據(jù)有時間輸入到寄存器去,如果不給,會直接到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主程序v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論