畢業(yè)設(shè)計----基于單片機的信號發(fā)生器設(shè)計_第1頁
已閱讀1頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計</b></p><p>  課題名稱: 單片機的信號發(fā)生器設(shè)計 </p><p>  設(shè)計時間: 2009.10-2010.3 </p><p>  系 部: 電子信息工程系

2、 </p><p>  班 級: 0501 電子信息 </p><p>  姓 名: </p><p>  指導(dǎo)教師: </p><p><b> 

3、 總目錄</b></p><p><b>  第一部分 任務(wù)書</b></p><p><b>  第二部分 開題報告</b></p><p>  第三部分 畢業(yè)設(shè)計報告</p><p>  第 一 部 分</p><p><b>  任</

4、b></p><p><b>  務(wù)</b></p><p><b>  書</b></p><p><b>  XX</b></p><p><b>  畢業(yè)設(shè)計任務(wù)書</b></p><p>  第 二 部 分&

5、lt;/p><p><b>  開</b></p><p><b>  題</b></p><p><b>  報</b></p><p><b>  告</b></p><p>  XX 電子信息工程系 2009屆</p>

6、<p>  畢業(yè)設(shè)計(論文)開題報告書</p><p><b>  目 錄</b></p><p>  緒 論 …………………………………………………………………………1</p><p>  1.1 單片機的概述 ……………………………………………………………………1</p><p>  1.2 信號發(fā)

7、生器分類 …………………………………………………………………1</p><p>  1.3 信號發(fā)生器的用途及發(fā)展趨勢 …………………………………………………1</p><p>  1.4 研究內(nèi)容 …………………………………………………………………………2</p><p>  方案的設(shè)計與選擇 ……………………………………………………………3</p>

8、<p>  2.1 方案比較 …………………………………………………………………………3</p><p>  2.2 設(shè)計原理 …………………………………………………………………………3</p><p>  2.3 設(shè)計思想 …………………………………………………………………………4</p><p>  2.4 設(shè)計功能 …………………………………………

9、………………………………4</p><p>  第三章 主要器件介紹 …………………………………………………………………5</p><p>  3.1 AT89C51簡介 ……………………………………………………………………5</p><p>  3.1.1 主要特性 ……………………………………………………………………5</p><p>

10、  3.1.2 管腳說明 ……………………………………………………………………6</p><p>  3.2 8155 簡介 ………………………………………………………………………7</p><p>  3.3 DAC0832 簡介……………………………………………………………………8</p><p>  3.3.1 工作原理 ………………………………………………

11、……………………8</p><p>  3.3.2 引腳圖及其功能 ……………………………………………………………9</p><p>  3.4 數(shù)碼管顯示原理 …………………………………………………………………9</p><p>  3.5 數(shù)碼管字形編碼…………………………………………………………………10</p><p>  第四章

12、硬件設(shè)計 ……………………………………………………………………11</p><p>  4.1 硬件原理框圖 …………………………………………………………………11</p><p>  4.2 主控電路 ………………………………………………………………………11</p><p>  4.3 數(shù)模轉(zhuǎn)換電路 …………………………………………………………………12

13、</p><p>  4.4 按鍵接口電路 …………………………………………………………………13</p><p>  4.5 時鐘電路 ………………………………………………………………………13</p><p>  4.6 顯示電路 ………………………………………………………………………14</p><p>  第五章 軟件設(shè)計 …

14、…………………………………………………………………15</p><p>  5.1 程序流程圖 ……………………………………………………………………15</p><p>  5.2 波形仿真 ………………………………………………………………………17</p><p>  結(jié)束語 …………………………………………………………………………………19</p>

15、<p>  參考文獻 ………………………………………………………………………………20</p><p>  附錄一 …………………………………………………………………………………22</p><p>  附錄二 …………………………………………………………………………………32</p><p>  單片機的信號發(fā)生器設(shè)計</p><p

16、><b>  朱琴 王晶 戴平平</b></p><p><b>  摘 要</b></p><p>  本文介紹一種用AT89C51單片機構(gòu)成的波形發(fā)生器,可產(chǎn)生方波、三角波、正弦波、鋸齒波等多種波形,波形的周期可用程序改變,并可根據(jù)需要選擇單極性輸出或雙極性輸出,具有線路簡單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點。文章給出了源代碼,通過仿真測試,其

17、性能指標達到了設(shè)計要求。</p><p>  關(guān)鍵詞:單片機;DAC;信號發(fā)生器</p><p>  Design of Signal Generator Based on MCU</p><p>  Zhuqin Wangjing Daipingping</p><p><b>  、</b></p>

18、<p><b>  Abstract</b></p><p>  This paper introduces a signal generator with MCU AT89C51,which is used to generate electro-wave-forms such as squares、triangles、sines and teeth-saw. The peri

19、ods of these signals can be changed by programs of MCU AT89C51 and their outputs can be selected to be monopolar or bipolar. This paper provides the original code. And the technical parameter of the signal generator meet

20、s the request of the design after the simulation test. </p><p>  Key words:MCU;DAC;signal generator</p><p><b>  第一章 緒 論</b></p><p><b>  1.1單片機概述</b></p>

21、;<p>  隨著大規(guī)模集成電路技術(shù)的發(fā)展,中央處理器(CPU)、隨機存取存儲器(RAM)、只讀存儲器(ROM)、(I/O)接口、定時器/計數(shù)器和串行通信接口,以及其他一些計算機外圍電路等均可集成在一塊芯片上構(gòu)成單片微型計算機,簡稱為單片機。單片機具有體積小、成本低,性能穩(wěn)定、使用壽命長等特點。其最明顯的優(yōu)勢就是可以嵌入到各種儀器、設(shè)備中,這是其他計算機和網(wǎng)絡(luò)都無法做到的[9,10]。</p><p&g

22、t;  1.2信號發(fā)生器的分類</p><p>  信號發(fā)生器應(yīng)用廣泛,種類繁多,性能各異,分類也不盡一致。按照頻率范圍分類可以分為:超低頻信號發(fā)生器、低頻信號發(fā)生器、視頻信號發(fā)生器、高頻波形發(fā)生器、甚高頻波形發(fā)生器和超高頻信號發(fā)生器。按照輸出波形分類可以分為:正弦信號發(fā)生器和非正弦信號發(fā)生器,非正弦信號發(fā)生器又包括:脈沖信號發(fā)生器,函數(shù)信號發(fā)生器、掃頻信號發(fā)生器、數(shù)字序列波形發(fā)生器、圖形信號發(fā)生器、噪聲信號發(fā)生

23、器等。按照信號發(fā)生器性能指標可以分為一般信號發(fā)生器和標準信號發(fā)生器。前者指對輸出信號的頻率、幅度的準確度和穩(wěn)定度以及波形失真等要求不高的一類信號發(fā)生器。后者是指其輸出信號的頻率、幅度、調(diào)制系數(shù)等在一定范圍內(nèi)連續(xù)可調(diào),并且讀數(shù)準確、穩(wěn)定、屏蔽良好的中、高檔信號發(fā)生器。</p><p>  1.3信號發(fā)生器的用途及發(fā)展趨勢</p><p>  信號發(fā)生器是一種常用的信號源,廣泛應(yīng)用于科學(xué)研究、

24、生產(chǎn)實踐和教學(xué)實驗等領(lǐng)域。特別是在通信系統(tǒng)的科研實驗中,常常需要用到多種不同頻率和相位的信號,如正弦波、三角波、方波和鋸齒波等,因此多功能信號發(fā)生器應(yīng)用十分廣泛。在數(shù)字化時代的今天,經(jīng)典的由模擬電路組成的信號發(fā)生器已經(jīng)漸漸遠離了人們,取而代之的是電路簡潔、功能多樣、功耗低的數(shù)字電路。在以后的時間里,將會有越來越多的數(shù)字化的信號發(fā)生器運用在各種科學(xué)技術(shù)領(lǐng)域和工程實踐中,給人們的日常生活帶來更多的便利[1]。</p><

25、p><b>  1.4 研究內(nèi)容</b></p><p>  本文是做基于單片機的信號發(fā)生器的設(shè)計,將采用編程的方法來實現(xiàn)三角波、鋸齒波、矩形波、正弦波的發(fā)生。根據(jù)設(shè)計的要求,對各種波形的頻率和幅度進行程序的編寫,并將所寫程序裝入單片機的程序存儲器中。在程序運行中,當接收到來自外界的命令,需要輸出某種波形時再調(diào)用相應(yīng)的中斷服務(wù)子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運算放大器處理后

26、,從信號發(fā)生器的輸出端口輸出。</p><p>  第二章 方案的設(shè)計與選擇</p><p><b>  2.1 方案的比較</b></p><p>  方案一:采用單片函數(shù)發(fā)生器(如8038),8038可同時產(chǎn)生正弦波、方波等,而且方法簡單易行,用D/A轉(zhuǎn)換器的輸出來改變調(diào)制電壓,也可以實現(xiàn)數(shù)控調(diào)整頻率,但產(chǎn)生信號的頻率穩(wěn)定度不高。</

27、p><p>  方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達到輸出頻率覆蓋系數(shù)的要求,且電路復(fù)雜。</p><p>  方案三:采用單片機編程的方法來實現(xiàn)。該方法可以通過編程的方法來控制信號波形的頻率和幅度,而且在硬件電路不變的情況下,通過改變程序來實現(xiàn)頻率的變換。此外,由于通過編程方法產(chǎn)生的是數(shù)字信號,所以信號的精度可以

28、做的很高。</p><p>  鑒于方案一的信號頻率不夠穩(wěn)定和方案二的電路復(fù)雜,頻率覆蓋系數(shù)難以達標等缺點,所以決定采用方案三的設(shè)計方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來實現(xiàn),使得信號頻率的穩(wěn)定性和精度的準確性得以保證,而且它使用的幾種元器件都是常用的元器件,容易得到,且價格便宜,使得硬件的開銷達到最省[1,7]。</p><p><b>  2.2 設(shè)計原理</

29、b></p><p>  數(shù)字信號可以通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號,因此可通過產(chǎn)生數(shù)字信號再轉(zhuǎn)換成模擬信號的方法來獲得所需要的波形。89C51單片機本身就是一個完整的微型計算機,具有組成微型計算機的各部分部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時器/計數(shù)器以及串行通訊接口等,只要將89C51再配置鍵盤及其接口、顯示器及其接口、數(shù)模轉(zhuǎn)換及波形輸出、指示燈及其接口等四

30、部分,即可構(gòu)成所需的波形發(fā)生器,其信號發(fā)生器構(gòu)成原理框圖如圖2.1所示[2]。</p><p>  圖2.1 信號發(fā)生器原理框圖</p><p>  89C51是整個波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號,并從鍵盤接收數(shù)據(jù),進行各種功能的轉(zhuǎn)換和信號幅度的調(diào)節(jié)。當數(shù)字信號經(jīng)過接口電路到達轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號也就是所需要的輸出波形。</p>&l

31、t;p><b>  2.3 設(shè)計思想</b></p><p> ?。?)利用單片機產(chǎn)生方波、正弦波、三角波和鋸齒波等信號波形,信號的頻率和幅度可變。</p><p> ?。?)將一個周期的信號分離成256個點(按X軸等分),每兩點之間的時間間隔為T,用單片機的定時器產(chǎn)生,其表示式為:T=T/256。</p><p>  如果單片機的晶振為

32、12MHz,采用定時器方式0,則定時器的初值為:</p><p>  X=213—T/Tmec (2.1)</p><p><b>  定時時間常數(shù)為:</b></p><p>  TL =(8192—T)/MOD256

33、 (2.2)</p><p>  TH = (8192—T)/256 (2.3)</p><p>  MOD32表示除32取余數(shù)</p><p> ?。?)正弦波的模擬信號是D/A轉(zhuǎn)換器的模擬量輸出,其計算公式為:</p><p>  Y=(

34、A/2sint)+A/2 (其中A=VREF) (2.4)</p><p>  t=NT (N=1~256) (2.5)</p><p>  那么對應(yīng)著存放在計算機里的這一點的數(shù)據(jù)為: </p><p>  (2.6)

35、(4)一個周期被分離成256個點,對應(yīng)的四種波形的256個數(shù)據(jù)存放在以TAB1--TAB4為起始地址的存儲器中。</p><p><b>  2.4 設(shè)計功能</b></p><p> ?。?)本方案利用8155擴展8個獨立式按鍵,6個LED顯示器。其中“S0”號鍵代表方波輸出,“S1”號鍵代表正弦波輸出,“S2”號鍵代表三角波輸出,“S3” 號鍵代表鋸齒波輸出。&l

36、t;/p><p> ?。?)“S4”號鍵為10Hz的頻率信號,“S5”號鍵為100Hz的頻率信號,“S6”號鍵為500Hz的頻率信號,“S7”號鍵為1KHz的頻率信號,6個LED顯示器輸出信號的頻率值,選用共陽極LED。</p><p>  (3)利用兩片DAC0832實現(xiàn)幅度可調(diào)的信號源,(其中一片用來調(diào)節(jié)幅度,另外一片用來實現(xiàn)信號源的輸出)。</p><p>  (

37、4)頻率范圍:10~1000Hz。</p><p> ?。?)輸出波形幅度為0~5V。</p><p>  第三章 主要器件介紹</p><p>  3.1 AT89C51簡介</p><p>  在設(shè)計中,AT89C51用于產(chǎn)生波形的數(shù)字信號,并控制信號的頻率和幅度。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—F

38、alsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。其引腳圖如圖3.1所示:</p>

39、;<p>  圖3.1 AT89C51引腳圖</p><p>  3.1.1 主要特性</p><p>  ? 8031 CPU與MCS-51 兼容</p><p>  ? 4K字節(jié)可編程FLASH存儲器(壽命:1000寫/擦循環(huán))</p><p>  ? 全靜態(tài)工作:0Hz-24KHz</p><p>

40、;  ? 三級程序存儲器保密鎖定</p><p>  ? 128*8位內(nèi)部RAM</p><p>  ? 32條可編程I/O線</p><p>  ? 兩個16位定時器/計數(shù)器? 6個中斷源</p><p><b>  ? 可編程串行通道</b></p><p>  ? 低功耗的閑置和掉電模式&l

41、t;/p><p>  ? 片內(nèi)振蕩器和時鐘電路</p><p>  3.1.2 管腳說明</p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8個TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出

42、原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩

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

44、/p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL),這是由于上拉的緣故。</p><p>  RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  ALE/PR

45、OG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果

46、微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。</p><p>  EA/VPP:當EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,EA將內(nèi)部鎖定為RE

47、SET,當EA</p><p>  端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。</p><p><b>  VCC:供電電壓。</b&

48、gt;</p><p><b>  GND:接地。</b></p><p>  3.2 8155芯片簡介</p><p>  8155是通用的可編程并行接口芯片,在設(shè)計中用做鍵盤、顯示器的擴充。其引腳圖如圖3.2所示:</p><p>  圖3.2 8155引腳圖</p><p>  RST:復(fù)

49、位信號輸入端,高電平有效。復(fù)位后,3個I/O口均為輸入方式。</p><p>  AD0~AD7:三態(tài)的地址/數(shù)據(jù)總線。與單片機的低8位地址/數(shù)據(jù)總線(P0口)相連。單片機與8155之間的地址、數(shù)據(jù)、命令與狀態(tài)信息都是通過這個總線口傳送的。</p><p> ?。鹤x選通信號,控制對8155的讀操作,低電平有效。</p><p> ?。簩戇x通信號,控制對8155的寫操

50、作,低電平有效。</p><p> ?。浩x信號線,低電平有效。</p><p>  IO/:8155的RAM存儲器或I/O口選擇線。當IO/=0時,則選擇8155的片內(nèi)RAM,AD0~AD7上地址為8155中RAM單元的地址(00H~FFH),</p><p>  當IO/=1時,選擇8155的I/O口,AD0~AD7上的地址為8155 I/O口的地址。</

51、p><p>  ALE:地址鎖存信號。8155內(nèi)部設(shè)有地址鎖存器,在ALE的下降沿將鎖存單片機P0口輸出的低8位地址信息及,IO/的狀態(tài)都鎖存到8155內(nèi)部鎖存器。因此,P0口輸出的低8位地址信號不需外接鎖存器。</p><p>  PA0~PA7:8位通用I/O口,其輸入、輸出的流向可由程序控制。</p><p>  PB0~PB7:8位通用I/O口,功能同A口。&l

52、t;/p><p>  PC0~PC5:有兩個作用,既可作為通用的I/O口,也可作為PA口和PB口的控制信號線,這些可通過程序控制。</p><p>  TIMER IN:定時/計數(shù)器脈沖輸入端。</p><p>  TIMER OUT:定時/計數(shù)器輸出端。</p><p>  VCC:+5V電源。</p><p>  3.

53、3 DAC0832簡介</p><p>  3.3.1 工作原理</p><p>  在設(shè)計中,DAC0832主要用來將數(shù)字信號轉(zhuǎn)換成模擬信號。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部分組成。8位輸入寄存器用于存放主機送來的數(shù)字量,使輸入數(shù)字量得到緩沖和鎖存,由加以控制,8位DAC寄存器用于存放待轉(zhuǎn)換的數(shù)字量,并加以控制。8位D/A轉(zhuǎn)換器輸

54、出與數(shù)字量成正比的模擬電流,由與門、與非門組成的輸入控制電路來控制2個寄存器的選通或鎖存狀態(tài)。其原理框圖如圖3.3所示。</p><p>  圖3.3 DAC0832原理框圖</p><p>  當WR2和XFER同時有效時,8位DAC寄存器端為高電平“1”,此時DAC寄存器的輸出端Q跟隨輸入端D也就是輸入寄存器Q端的電平變化,反之,當端為低電平“0”時,第一級8位輸入寄存器Q端的狀態(tài)則

55、鎖存到第二級8位DAC寄存器中,以便第三級8位DAC轉(zhuǎn)換器進行D/A轉(zhuǎn)換。</p><p>  3.3.2 引腳圖及其功能</p><p>  各引腳分布如圖3.4所示。引腳功能如下:</p><p>  (1) DI7~DI0 :8位的數(shù)據(jù)輸入端,DI7為最高位。</p><p>  (2) IOUT1 :模擬電流輸出端1,當DAC寄存器中

56、數(shù)據(jù)全為1時,輸出電流最大,當 DAC寄存器中數(shù)據(jù)全為0時,輸出電流為0。</p><p>  (3) IOUT2 :模擬電流輸出端2, IOUT2與IOUT1的和為一個常數(shù),即IOUT1+IOUT2=常數(shù)。</p><p>  (4) RFB:反饋電阻引出端,DAC0832內(nèi)部已經(jīng)有反饋電阻,所以RFB端可以直接接到外部運算放大器的輸出端,這樣相當于將一個反饋電阻接在運算放大器的輸出端和

57、輸入端之間。</p><p>  (5) VREF :參考電壓輸入端,此端可接一個正電壓,也可接一個負電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來的模擬量電壓值的</p><p>  圖3.4 DAC0832引腳圖</p><p>  幅度,VREF范圍為(+10~-10)V。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。</p><p>  (6)

58、Vcc :芯片供電電壓,范圍為(+5~ 15)V。</p><p>  (7) AGND :模擬量地,即模擬電路接地端。</p><p>  (8) DGND :數(shù)字量地。</p><p>  3.4 數(shù)碼管顯示原理</p><p>  共陽極數(shù)碼管的8個發(fā)光二極管的陽極(二極管正端)連接在一起,通常,公共陽極接高電平(一般接電源),其它管腳

59、接段驅(qū)動電路輸出端。當某段驅(qū)動電路的輸出端為低電平時,則該端所連接的字段導(dǎo)通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。</p><p>  共陰極數(shù)碼管的8個發(fā)光二極管的陰極(二極管負端)連接在一起,通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動電路輸出端,當某段驅(qū)動電路的輸出端為高電平時,則該端所

60、連接的字段導(dǎo)通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。其結(jié)構(gòu)如圖3.5所示。</p><p> ?。╝) 外型結(jié)構(gòu) (b) 共陰極 (c)共陽極</p><p>  圖3.5 數(shù)碼管結(jié)構(gòu)圖</p><p&

61、gt;  3.5 數(shù)碼管字形編碼</p><p>  要使數(shù)碼管顯示出相應(yīng)的數(shù)字或字符必須使得數(shù)據(jù)口輸出相應(yīng)的字形編碼。對照圖3.5(a),字型碼各位定義如下:</p><p>  數(shù)據(jù)線DB0與a字段對應(yīng),DB1字段與b字段對應(yīng)……,依此類推。如使用共陽極數(shù)碼管,數(shù)據(jù)為0表示對應(yīng)字段亮,數(shù)據(jù)為1表示對應(yīng)字段暗;如使用共陰極數(shù)碼管,數(shù)據(jù)為0表示對應(yīng)字段暗,數(shù)據(jù)為1表示對應(yīng)字段亮。數(shù)碼管字形

62、編碼如表3.1所示[8]。</p><p>  表3.1 數(shù)碼管字型編碼表</p><p><b>  第四章 硬件設(shè)計</b></p><p>  4.1 硬件原理框圖</p><p>  硬件原理方框圖如圖4.1所示。</p><p>  圖4.1 硬件原理框圖</p>&l

63、t;p><b>  4.2 主控電路</b></p><p>  AT89C51單處機內(nèi)部設(shè)置兩個16位可編程的定時器/計數(shù)器T0和T1,它們具有計數(shù)器方式和定時器方式兩種工作方式及4種工作模式。在波形發(fā)生器中,將其作定時器使用,用它來精確地確定波形的兩個采樣點輸出之間的延遲時間。模式1采用的是16位計數(shù)器,當T0或T1被允許計數(shù)后,從初值開始加計數(shù),最高位產(chǎn)生溢出時向CPU請求中斷。

64、</p><p>  中斷系統(tǒng)是使處理器具有對外界異步事件的處理能力而設(shè)置的。當中央處理器CPU正在處理某件事的時候外界發(fā)生了緊急事件,要求CPU暫停當前的工作,轉(zhuǎn)而去處理這個緊急事件。在波形發(fā)生器中,只用到片內(nèi)定時器/計數(shù)器溢出時產(chǎn)生的中斷請求,即是在AT89C51輸出一個波形采樣點信號后,接著啟動定時器,在定時器未產(chǎn)生中斷之前,AT89C51等待,直到定時器計時結(jié)束,產(chǎn)生中斷請求,AT89C51響應(yīng)中斷,接著

65、輸出下一個采樣點信號,如此循環(huán)產(chǎn)生所需要的信號波形[6]。</p><p>  如圖4.2所示,AT89C51從P0口接收來自鍵盤的信號,并通過P2口輸出一些控制信號,將其輸入到8155的信號控制端,用于控制其信號的輸入、輸出。如果有鍵按下,則在讀控制端會產(chǎn)生一個讀信號,使單片機讀入信號。如果有信號輸出,則在寫控制端產(chǎn)生一個寫信號,并將所要輸出的信號通過8155的PB口輸出,并在數(shù)碼管上顯示出來。</p&g

66、t;<p>  圖4.2 主控電路圖</p><p>  4.3 數(shù)/模轉(zhuǎn)換電路</p><p>  由于單片機產(chǎn)生的是數(shù)字信號,要想得到所需要的波形,就要把數(shù)字信號轉(zhuǎn)換成模擬信號,所以該文選用價格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部分組成。但實際上

67、,DAC0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對分辨率為單位增減,是準模擬量的輸出。DAC0832是電流型輸出,在應(yīng)用時外接運放使之成為電壓型輸出。</p><p>  由圖4.3可知,DAC0832的片選地址為7FFFH,當P25有效時,若P0口向其送的數(shù)據(jù)為00H, 則U1 的輸出電壓為0V;若P0口向其送的數(shù)據(jù)為0FFH時, 則U1的輸出電壓為-5V. 故當U1 輸出電壓為0V時,由公式

68、 得:Vout = - 5V.當輸出電壓為- 5V時,可得:Vout = +5V,所以輸出波形的電壓變化范圍為- 5V~+ 5V. 故可推得,當P0所送數(shù)據(jù)為80H時,Vout為0V[4]。</p><p>  圖4.3 數(shù)模轉(zhuǎn)換電路</p><p>  4.4 按鍵接口電路</p><p>  圖4.4為鍵盤接口電路的原理圖,圖中鍵盤和

69、8155的PA口相連,AT89C51的P0口和8155的D0口相連,AT89C51不斷的掃描鍵盤,看是否有鍵按下,如有,則根據(jù)相應(yīng)按鍵作出反應(yīng)。其中“S0”號鍵代表方波輸出,“S1”號鍵代表正弦波輸出,“S2”號鍵代表三角波輸出。 “S3”號鍵代表鋸齒波輸出,“S4”號鍵為10Hz的頻率信號,“S5”號鍵為100Hz的頻率信號,“S6”號鍵為500Hz的頻率信號,“S7”號鍵為1KHz的頻率信號[3]。</p><p

70、>  圖4.4 按鍵接口</p><p><b>  4.5 時鐘電路</b></p><p>  8051單片機有兩個引腳(XTAL1,XTAL2)用于外接石英晶體和微調(diào)電容,從而構(gòu)成時鐘電路,其電路圖如圖4.5所示。</p><p>  電容C1、C2對振蕩頻率有穩(wěn)定作用,其容量的選擇為30pf,振蕩器選擇頻率為12MHz的石英晶體

71、。由于頻率較大時,三角波、正弦波、鋸齒波中每一點的延時時間為幾微秒,故延時時間還要加上指令時間才能獲得較大的頻率波形[9]。</p><p>  圖4.5 時鐘電路</p><p><b>  4.6 顯示電路</b></p><p>  顯示電路是用來顯示波形信號的頻率,使得整個系統(tǒng)更加合理,從經(jīng)濟的角度出發(fā),所以顯示器件采用LED數(shù)碼管顯

72、示器。而且LED數(shù)碼管是采用共陽極接法,當主控端口輸出一個低電平后,與其相對應(yīng)的數(shù)碼管即變亮,顯示所需數(shù)據(jù)。其器件模型如圖4.6所示。</p><p>  圖4.6 LED顯示電路</p><p><b>  第五章 軟件設(shè)計</b></p><p><b>  5.1 程序流程圖</b></p><

73、p>  本文中子程序的調(diào)用是通過按鍵的選擇來實現(xiàn),在取得按鍵相應(yīng)的鍵值后,啟動計時器和相應(yīng)的中斷服務(wù)程序,再直接查詢程序中預(yù)先設(shè)置的數(shù)據(jù)值,通過轉(zhuǎn)換輸出相應(yīng)的電壓,從而形成所需的各種波形。</p><p>  主程序的流程圖如圖5.1所示,在程序開始運行之后,首先是對8155進行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時間常數(shù),并通過顯示器顯示出來,不符則返回。在中斷結(jié)束后,還要來判斷波形是否符

74、合,如符合,則顯示其頻率,不符則返回,重新判斷。</p><p>  圖5.1 主程序流程圖</p><p>  圖5.2為各波形子程序的流程圖。如圖所示,在中斷服務(wù)子程序開始后,通過判斷來確定各種波形的輸出,當判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛?,如此反?fù)。如果選擇的是方波,則用查表的方法求出相應(yīng)的數(shù)據(jù),并通過D/A轉(zhuǎn)換</p><p>  器將數(shù)據(jù)轉(zhuǎn)換成

75、模擬信號,形成所需波形信號。</p><p>  圖5.2 子程序流程圖</p><p><b>  5.2 波形仿真</b></p><p>  通過前面的軟、硬件設(shè)計,整個電路的設(shè)計已基本完成,下面將進行正弦波、方波、三角波、鋸齒波等波形的仿真與測試。本文中波形信號的仿真是以Proteus 6.5這一款軟件為平臺,裝入波形發(fā)生程序,驗證硬

76、件電路和程序的正確性。</p><p>  5.2.1 正弦波的仿真</p><p>  如圖5.3所示,此波形為幅度為5V,頻率為500HZ的正弦波,是通過查表轉(zhuǎn)換的方法來實現(xiàn)的。而要實現(xiàn)其他如10HZ、100HZ、1KHZ等頻率的波形,則需要調(diào)用延時子程序,改變波形發(fā)生的時間常數(shù)。</p><p>  圖5.3 正弦波仿真圖</p><p&

77、gt;  5.2.2 三角波的仿真</p><p>  如圖5.4所示,此波形為幅度為5V,頻率為500HZ的正弦波,是通過查表轉(zhuǎn)換的方法來實現(xiàn)的。通過調(diào)用延時子程序,改變波形發(fā)生的時間常數(shù),實現(xiàn)10HZ、100HZ、1KHZ等頻率的波形。</p><p>  圖5.4 三角波仿真圖</p><p>  5.2.3 鋸齒波的仿真</p><p&

78、gt;  如圖5.5所示,此波形為幅度為5V,頻率為500HZ的鋸齒波,是通過查表轉(zhuǎn)換的方法來實現(xiàn)的。而要實現(xiàn)其他如10HZ、100HZ、1KHZ等頻率的波形,則需要調(diào)用延時子程序,改變波形發(fā)生的時間常數(shù)。</p><p>  圖5.5 鋸齒波仿真圖</p><p>  5.2.4 方波的仿真</p><p>  如圖5.6所示,此波形為幅度為5V,頻率為500H

79、Z的方波,是通過查表轉(zhuǎn)換的方法來實現(xiàn)的。通過調(diào)用延時子程序,改變波形發(fā)生的時間常數(shù),實現(xiàn)10HZ、100HZ、1KHZ等頻率的波形。</p><p>  圖5.6 方波仿真圖</p><p><b>  結(jié)束語</b></p><p>  這種基于單片機的信號發(fā)生器已經(jīng)展示出很好的性能,而且有著很高的性價比。此外,它產(chǎn)生的波形與模擬電路的波形

80、相比,波形有著更好的平滑性,其周期性也更加穩(wěn)定。已經(jīng)越來越多的應(yīng)用到各種電子設(shè)備當中,給人們的日常生活帶來了方便。</p><p>  在論文中簡單介紹了它的用途和發(fā)展趨勢,根據(jù)它的一些基本知識,按照自己的想法設(shè)計了一類低頻信號發(fā)生器,具體包括了設(shè)計方案以及相關(guān)參數(shù)的選取和計算,根據(jù)工作基本原理加入了一些相關(guān)的輔助電路,并編寫了相關(guān)的應(yīng)用程序。有些指標還有待于進一步提高。例如,在精度及其它功能的擴展上還有較大的潛

81、力可以挖掘,這些都有待于我們通過對電路的改進和對元器件的最佳選擇來進一步完善。而且由于本人所學(xué)知識有限,很多知識點的學(xué)習(xí)不夠深刻,我會在以后的學(xué)習(xí)中更加踏實、認真的學(xué)好各個知識點。</p><p><b>  參考文獻</b></p><p>  [1] 程全.基于AT89C52實現(xiàn)的多種波形發(fā)生器的設(shè)計[J].周口師范學(xué)院學(xué)報,2005.22(5):57~58.&l

82、t;/p><p>  [2] 周明德.微型計算機系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2002.341~364.</p><p>  [3] 劉樂善.微型計算機接口技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2001.258~264.</p><p>  [4] 童詩白.模擬電路技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2000.171~202.</p>

83、;<p>  [5] 杜華.任意波形發(fā)生器及應(yīng)用[J].國外電子測量技術(shù),2005.1:38~40.</p><p>  [6] 張友德.單片微型機原理、應(yīng)用與實踐[M].上海:復(fù)旦大學(xué)出版社,2004.40~44. </p><p>  [7] 程朗.基于8051單片機的雙通道波形發(fā)生器的設(shè)計與實現(xiàn)[J].計算機工程與應(yīng)用,2004.8:100~103.</p>

84、<p>  [8] 張永瑞.電子測量技術(shù)基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2006.61~101.</p><p>  [9] 李葉紫. MCS-51單片機應(yīng)用教程[M].北京:清華大學(xué)出版社,2004.232~238.</p><p>  [10] 蔡美琴.MCS-51系列單片機系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,1988.56~289.</p>

85、<p><b>  致 謝</b></p><p>  本文的研究工作是在***老師指導(dǎo)、幫助和督促下完成的。XX老師在該領(lǐng)域有敏銳的感知力以及對其應(yīng)用價值的洞察力給我留下了深刻的印象。在攻讀學(xué)士學(xué)位四年的學(xué)習(xí)期間,導(dǎo)師勇于探索、敢于創(chuàng)新的科研精神激勵我不斷努力進取,在今后的人生旅途上取得成功的寶貴的精神財富。</p><p>  同時,在學(xué)習(xí)期間導(dǎo)師為

86、我提供了良好的研究環(huán)境和實踐條件,并對一些創(chuàng)新性的工作給予了大量的指導(dǎo)與支持。在本文完成之際,謹向為我傾注了大量心血的導(dǎo)師及幫助過我的老師和同學(xué)表示最誠摯的感謝和深深的敬意!</p><p><b>  附錄一</b></p><p><b>  源程序:</b></p><p>  ORG 0000H</p>

87、;<p><b>  AJM MAIN</b></p><p>  ORG 000BH</p><p><b>  LJMP TC0</b></p><p>  ORG 0030H</p><p>  MAIN:MOV DPTR,#9FFFH 指

88、向DAC0832(1)</p><p>  MOV A,70H</p><p>  MOVX @DPTR,A DAC0832(1)輸出</p><p>  MOV DPTR,#7F00H 指向8155命令字端口地址</p><p>  MOV

89、 A,#06H 設(shè)置A口為輸入,B口、C口為輸出</p><p>  MOVX @DPTR,A 送命令字</p><p>  MOV DPTR,#7F01H 指向A口地址</p><p>  MOVX A,

90、@DPTR 讀入A口的開關(guān)數(shù)據(jù)</p><p>  JNB ACC.4,K10H 判斷是否“4”號鍵,若是則轉(zhuǎn)輸出10Hz信號</p><p>  JNB ACC.5,K100H 判斷是否“5”號鍵,若是則轉(zhuǎn)輸出100Hz信號</p&

91、gt;<p>  JNB ACC.6,K500H 判斷是否“6”號鍵,若是則轉(zhuǎn)輸出500Hz信號</p><p>  JNB ACC.7,K1K 判斷是否“7”號鍵,若是則轉(zhuǎn)輸出1KHz信號</p><p>  AJMP MAIN</p><p>

92、  LED1: MOV R3,#06H 設(shè)置6個LED顯示</p><p>  MOV R2,#01H 選通第一位LED數(shù)據(jù)</p><p>  MOV R1,#30H 送顯示緩沖區(qū)首址</p><p>  G

93、N1:MOV DPTR,#7F03H 指向C口地址</p><p>  MOV A,R2 位選通數(shù)據(jù)送A</p><p>  MOVX @DPTR,A 位選通數(shù)據(jù)送C口</p><p>  RL A

94、 選通下一位</p><p>  MOV R2,A 位選通數(shù)據(jù)送R2中保存</p><p>  MOV A, @R1 取鍵值</p><p>  MOV DPTR,#TAB

95、 送LED顯示軟件譯碼表首址</p><p>  MOVC A,@A+DPTR 查表求出鍵值顯示的段碼</p><p>  MOV DPTR,#7F02H 指向B口地址</p><p>  MOV @DPTR,A

96、 段碼送顯示</p><p>  LCALL LOOP1 調(diào)延時子程序</p><p>  INC R1 指向下一位顯示緩沖區(qū)地址</p><p>  DJNZ R3,GN1

97、 循環(huán)顯示6個LED</p><p><b>  RET</b></p><p>  LOOP1:MOV R4,#08H 延時子程序</p><p>  LOOP:MOV R5,#0A0H</p><p>  DJNZ R5,$</p>&

98、lt;p>  DJNZ R4,LOOP</p><p><b>  RET</b></p><p>  K10H:MOV 30H,#00H 顯示10Hz</p><p>  MOV 31H,#00H</p><p>  MOV 32H,#00H</p>&l

99、t;p>  MOV 33H,#00H</p><p>  MOV 34H,#01H</p><p>  MOV 35H,#00H</p><p>  LCALL LED1 調(diào)顯示子程序</p><p>  MOV TMOD,#00H</p><p>

100、  MOV TL0,#15H</p><p>  MOV TH0,#9EH</p><p><b>  AJMP PD</b></p><p>  K100H:MOV 30H,#00H 顯示100Hz</p><p>  MOV 31H,#00H</p><p

101、>  MOV 32H,#00H</p><p>  MOV 33H,#01H</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p>  LCALL LED1 調(diào)顯示子程序</p><p>  MOV

102、 TMOD,#00H</p><p>  MOV TL0,#08H</p><p>  MOV TH0,#0F6H</p><p><b>  AJMP PD</b></p><p>  K500H:MOV 30H,#00H 顯示500Hz</p><p>  

103、MOV 31H,#00H</p><p>  MOV 32H,#00H</p><p>  MOV 33H,#05H</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p>  LCALL LED1 調(diào)顯示子

104、程序</p><p>  MOV TMOD,#00H</p><p>  MOV TL0,#01H</p><p>  MOV TH0,#0FEH</p><p><b>  AJMP PD</b></p><p>  K1K:MOV 30H,#00H 顯示

105、1KHz</p><p>  MOV 31H,#00H</p><p>  MOV 32H,#01H</p><p>  MOV 33H,#00H</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p>  LCALL LED1

106、 調(diào)顯示子程序</p><p>  MOV TMOD,#00H</p><p>  MOV TL0,#01H</p><p>  MOV TH0,#0FFH</p><p>  PD:JNB ACC.0,KE0 判斷是否“0”號鍵按下,若是則轉(zhuǎn)方波輸出</p&

107、gt;<p>  JNB ACC.1,KE1 判斷是否“1”號鍵按下,若是則轉(zhuǎn)正弦方波輸出</p><p>  JNB ACC.2,KE2 判斷是否“2”號鍵按下,若是則轉(zhuǎn)三角波輸出</p><p>  JNB ACC.3,KE3 判斷是否“3”號鍵按下,若是則轉(zhuǎn)

108、鋸齒波輸出</p><p><b>  LJMP PD</b></p><p>  KE0:MOV R7,#00H</p><p>  LCALL LED1 調(diào)顯示子程序</p><p>  MOV R6,#00H</p><p><b>

109、  AJMP GN</b></p><p>  KE1:MOV R7,#02H</p><p>  LCALL LED1 調(diào)顯示子程序</p><p>  MOV R6,#00H</p><p><b>  AJMP GN</b></p><

110、;p>  KE2:MOV R7,#02H</p><p>  LCALL LED1 調(diào)顯示子程序</p><p>  MOV R6,#00H</p><p>  AJMP GN </p><p>  KE3:MOV R7,#02H</

111、p><p>  LCALL LED1 調(diào)顯示子程序</p><p>  MOV R6,#00H</p><p>  GN: SETB TR0</p><p><b>  SETB ET0</b></p><p><b>  SETB EA&l

112、t;/b></p><p>  LOP1:JNB ACC.4,K10H 判斷是否“4”號鍵,若是則轉(zhuǎn)輸出10Hz信號</p><p>  JNB ACC.5,K100H 判斷是否“5”號鍵,若是則轉(zhuǎn)輸出100Hz信號</p><p>  JNB ACC.6,K500H 判斷是否

113、“6”號鍵,若是則轉(zhuǎn)輸出500Hz信號</p><p>  JNB ACC.7,K1K 判斷是否“7”號鍵,若是則轉(zhuǎn)輸出1KHz信號</p><p>  AJMP LOP1</p><p>  TC0:CJNE R7,#00H,TC1 發(fā)送方波程序</p><p>  MOV DPTR,

114、#TAB1 送方波數(shù)據(jù)表首址</p><p>  MOV A,R6 發(fā)送數(shù)據(jù)寄存器</p><p>  MOVC A,@A+DPTR</p><p>  MOV DPTR,#0AFFFH 指向DAC0832(2)</p><p>  MOVX

115、 @DPTR,A DAC0832(2)輸出</p><p><b>  MOV A,R6</b></p><p><b>  INC A </b></p><p><b>  MOV R6,A</b></p><p>  CJNE A,#

116、32,QL1</p><p>  MOV R6,#00H</p><p><b>  AJMP QL1</b></p><p>  TC1:CJNE R7,#01H,TC2 發(fā)送正弦波程序</p><p>  MOV DPTR,#TAB2 送正弦波數(shù)據(jù)表首址<

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論