基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計和實現(xiàn)(畢業(yè)論文)_第1頁
基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計和實現(xiàn)(畢業(yè)論文)_第2頁
基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計和實現(xiàn)(畢業(yè)論文)_第3頁
基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計和實現(xiàn)(畢業(yè)論文)_第4頁
基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計和實現(xiàn)(畢業(yè)論文)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)設(shè)計本科畢業(yè)設(shè)計( (論文論文) ) 題題目:基于單片機(jī)的函數(shù)發(fā)目:基于單片機(jī)的函數(shù)發(fā) 生器的設(shè)計和實現(xiàn)生器的設(shè)計和實現(xiàn) 學(xué)學(xué)院:院: 信息工程學(xué)院信息工程學(xué)院 專專業(yè):業(yè): 學(xué)學(xué)號:號: 學(xué)生姓名:學(xué)生姓名: 指導(dǎo)教師:指導(dǎo)教師: 二二一一年一一年 五五 月月 八八 日日 基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計和實現(xiàn)基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計和實現(xiàn) xxx 摘 要 函數(shù)發(fā)生器是一種用于產(chǎn)生標(biāo)準(zhǔn)信號的電子儀器,它廣泛用于工業(yè)生產(chǎn)、科研和國防等 各個領(lǐng)域中,所以論文選題具有一定的實用意義。 本文在介紹了函數(shù)發(fā)生器的基本概念及原理的基礎(chǔ)上,核心采用at89c52單片機(jī),完成 了簡易的dds函數(shù)發(fā)生

2、器的硬件設(shè)計和軟件編程,并通過調(diào)試實現(xiàn)了其功能和主要技術(shù)指標(biāo)。 在系統(tǒng)的硬件部分,設(shè)計了由單片機(jī)最小系統(tǒng)為核心、通過接口設(shè)計,擴(kuò)展了dac轉(zhuǎn)換 模塊、按鍵和led顯示模塊。其中,采用兩片dac0832實現(xiàn)了全數(shù)字化的頻率合成器(簡稱dds)。 系統(tǒng)的軟件設(shè)計是在keil uvision4的集成開發(fā)環(huán)境下,采用c語言完成了應(yīng)用系統(tǒng)軟件編程, 包括主程序、產(chǎn)生四種常用信號的程序、按鍵功能和顯示子程序等電腦模塊;模塊化的編程 使得程序具有可讀性和易于維護(hù)的特點(diǎn)。 最后,作者用protel 99se設(shè)計并制作了函數(shù)發(fā)生器的印制電路板pcb;并完成了樣機(jī)的 制作和調(diào)試。在實驗室里,進(jìn)行了測試,結(jié)果表明系

3、統(tǒng)達(dá)到設(shè)計要求。 關(guān)鍵詞:信號發(fā)生器,at89c52,keilc51 mcu-based function signal generator design abstract the function generator is one kind uses in producing the standard signal electronic instrumentation, it widely uses in the industrial production, the scientific research and the national defense and so on each dom

4、ain, therefore the paper selected topic has certain practical significance. this article lay between the shao function generator the basic concept and in the principle foundation, used at89c52 monolithic integrated circuit is the core, has completed the simple dds function generator hardware design

5、and the software programming, and has realized its function and the major technique target through the debugging. in systems hardware part, has designed by the monolithic integrated circuit smallest system for the core, through the connection design, expanded the dac transformation module, the press

6、ed key and the led display module. and, used two piece of dac0832 to realize entire digitized frequency synthesizer (i.e. dds). systems software design is under the keil uvision4 integrated development environment, used the c language to complete the application system software programming, includin

7、g the master routine, had four kind of commonly used computer modules and so on signal procedures, pressed key function and demonstration subroutine; the modular programming enables the procedure to have the characteristic which the readability and easy to maintain. finally, the author designed and

8、has manufactured function generator print circuit wafer pcb with protel 99se; and has completed prototypes manufacture and the debugging. in the laboratory, has carried on the test, finally indicated that the system achieves the design requirements. key words:signal generating device, 89c52,keilc51

9、目錄 前言.1 第 1 章 函數(shù)發(fā)生器系統(tǒng)設(shè)計.2 1.1 設(shè)計方案的比較.2 1.2 系統(tǒng)模塊設(shè)計.2 1.2.1 控制模塊.2 1.2.2 按鍵及其顯示模塊:.3 1.2.3 波形產(chǎn)生模塊.3 1.2.4 d/a 轉(zhuǎn)換.3 1.3 系統(tǒng)總體框圖.3 1.4 理論分析.3 1.4.1 電路的理論計算.3 1.4.2 波形產(chǎn)生相關(guān)理論.6 第 2 章 系統(tǒng)硬件電路的設(shè)計.8 2.1 單片機(jī)的接口電路.8 2.2 幅度控制模塊.10 2.2.1 單片機(jī)與 dac0832 的接口.10 2.2.2 dac0832 與運(yùn)放的連接.10 第 3 章 系統(tǒng)軟件設(shè)計.13 3.1 系統(tǒng)軟件設(shè)計方案.13

10、3.2 系統(tǒng)軟件流程圖.13 3.3 信號產(chǎn)生程序.14 3.3.1 正弦波產(chǎn)生.15 3.3.2 三角波產(chǎn)生.15 3.3.3 方波產(chǎn)生.15 3.3.4 鋸齒波的產(chǎn)生.16 第 4 章 系統(tǒng)調(diào)試與測試.17 4.1 調(diào)試.17 4.2 測試.19 結(jié)論.22 致 謝.23 參考文獻(xiàn).24 附錄.25 前言前言 函數(shù)發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的信 號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應(yīng)用。隨 著數(shù)字技術(shù)和半導(dǎo)體工業(yè)的發(fā)展,dds 芯片能集成包括高速 dac 器件在內(nèi)的部 件,其功耗降低到 mw 級(ad9851 在 3.3v 時功耗為 6

11、50mw),功能增加了,價 格便宜。因此,dds 也獲得廣泛的應(yīng)用:現(xiàn)代電子器件、通信技術(shù)、醫(yī)學(xué)成像、 無線、pcs/pcn 系統(tǒng)、雷達(dá)、衛(wèi)星通信。 本次設(shè)計的主要目標(biāo)是學(xué)習(xí)和運(yùn)用單片機(jī)的 c 語言和匯編語言,通過現(xiàn)有 多功能電子學(xué)習(xí)機(jī)部分已有器件,實現(xiàn)使用 8 位單片機(jī) at89c52 單片機(jī)和 d / a 轉(zhuǎn)換芯片 dac0832 一起實現(xiàn)正弦波,方波,三角波,鋸齒波發(fā)生這四種常見 的波形,并能接收外部鍵盤輸入,在一定范圍內(nèi)改變頻率。 函數(shù)發(fā)生器往往是由傳統(tǒng)的設(shè)計方法所組成的純物理設(shè)備使用的設(shè)備有很 多缺點(diǎn),如:大尺寸,重量較沉,移動是不夠方便,較大的信號失真,在一個 單一的波形,監(jiān)管波形

12、形狀過于僵化,無法滿足用戶的準(zhǔn)確性,可移植性,穩(wěn) 定性要求,設(shè)計出的頻率與穩(wěn)定性研究,準(zhǔn)確,波形質(zhì)量,輸出頻率范圍寬的 波形發(fā)生器,便攜性好等特點(diǎn)具有良好的市場前景,以滿足信號源要求的軍事 和民用領(lǐng)域。 第 1 章 函數(shù)發(fā)生器系統(tǒng)設(shè)計 1.1 設(shè)計方案的比較 函數(shù)發(fā)生器的設(shè)計可以用各種方案來完成?,F(xiàn)在在各種方案的設(shè)計進(jìn)行了 比較: 方案一:用差分放大電路實現(xiàn)三角波到正弦波以及集成運(yùn)放組成的電路實 現(xiàn)函數(shù)發(fā)生器。小波變換是采用了差分放大器的非線性傳輸特性曲線的傳輸特 性曲線的使用是對稱的,越窄越好線性區(qū); 三角波的幅度應(yīng)正好使晶體接近飽 和區(qū)域或者截至區(qū)域。 方案二:用二極管折線近似電路以及集成

13、運(yùn)放組成的電路實現(xiàn)函數(shù)發(fā)生器。 二極管折線近似電路實現(xiàn)三角波正弦波的變換頻率調(diào)節(jié)部分設(shè)計時,可以 先按三個頻率段給定三個電容值:1000pf、0.01f、0.1f 然后再計算電阻的 大小。手控與壓控部分線路要求更換方便。為滿足對方波前后沿時間的要求, 以及正弦波最高工作頻率(10khz)的要求,在積分器、比較器、正弦波轉(zhuǎn)換 器和輸出級中應(yīng)選用 sr 值較大的運(yùn)放(如 lf353) 。為保證正弦波有較小的失 真度,應(yīng)正確計算二極管網(wǎng)絡(luò)的電阻參數(shù),并注意調(diào)節(jié)輸出三角波的幅度和對 稱度。輸入波形中不能含有直流成分。 方案三:使用 8 位單片機(jī) at89c51 和 d / a 轉(zhuǎn)換芯片 dac0832

14、 一起實現(xiàn)正 弦波,方波,三角波,鋸齒波發(fā)生這四種常見的波形,并能接收外部鍵盤輸入, 在一定范圍內(nèi)改變頻率。 可行性分析: 以上三個方案,兩個方案和方案的一個三角波 - 正弦波的一部分的原則,雖然 不一樣,但他們的共同點(diǎn)是要考慮建立波形轉(zhuǎn)換電路。該方案包括三個應(yīng)用程 序使用微控制器具有更高的可靠性。系統(tǒng)擴(kuò)展,系統(tǒng)配置的靈活性。輕松創(chuàng)建 各種規(guī)模的應(yīng)用,以及應(yīng)用程序有一個更高的軟件和硬件的利用率??删幊虇?芯片,硬件的功能描述完全可以實現(xiàn)在軟件,設(shè)計時間短,成本低,可靠性高。 綜上我們選擇了第三個設(shè)計。 1.2 系統(tǒng)模塊設(shè)計 該函數(shù)發(fā)生器有以下幾部分組成:(1)控制模塊(2)按鍵及其顯示模塊 (

15、3)d/a 轉(zhuǎn)換模塊三部分組成。 1.2.1 控制模塊: 單片機(jī) at89c52 作為系統(tǒng)的主控核心芯片。 單片機(jī)具有體積小,使用靈活 的,易于人機(jī)對話和良好的數(shù)據(jù)處理,單芯片低功耗和低成本的優(yōu)勢。單片機(jī) 作為控制來實現(xiàn)比使用 fpga 的方便。基于綜合成本效益,所以選擇該芯片。 1.2.2 按鍵及其顯示模塊: 為了提高單片機(jī)的資源利用率和運(yùn)行的效率,按鍵顯示部分我們直接使用 zlg7289 擴(kuò)展鍵盤,鍵盤與單片機(jī)連接。 zlg7289 促進(jìn)微控制器芯片之間的通 信,以及由 zlg7289 自動掃描鍵盤,你可以去抖動,足以改善微控制器的效率。 1.2.3 波形產(chǎn)生模塊 使用單片機(jī)定時器設(shè)置定時

16、時間,每半個周期對 i/o 端口取反一次,以至 實現(xiàn)頻率輸出。這些方案,雖然在高頻段誤差比較大,但編程簡單,易于控制, 權(quán)衡上述利弊,我們選擇該方案。 1.2.4 d/a 轉(zhuǎn)換 采用 2 片 dac0832,由其中一片的輸出電壓作為另一芯片的參考電壓,這 樣就可以方便的控制最大輸出電壓。 1.3 系統(tǒng)總體框圖 系統(tǒng)是用單片機(jī) at89c52 和 8 位 d/a 轉(zhuǎn)換芯片 dac0832 以及 zlg7289 鍵盤 和顯示共同實現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的產(chǎn)生和顯示 相互切換的功能。見系統(tǒng)原理框圖如圖 1-1 圖 1-1 系統(tǒng)總體框圖 1.4 理論分析 1.4.1 電路的理論計

17、算 由圖 2-3 可知到 u5 的輸出將作為兩個 dac0832 的基準(zhǔn)電壓。 假設(shè)運(yùn)放 u6 的輸入為;兩個 dac0832 的內(nèi)部的電阻為。設(shè) u5 的輸入電壓 1 v 1 r 為;兩個 dac0832 的內(nèi)部的電阻為。下面進(jìn)行討論計算: 2 v 2 r (1) u6 為一個反相比例器: 1281 11 1281 , out out urv uv rrr (2) u5 也為一個反相比例器: 2262 22 2262 , out out urv uv rrr 這是 u4 的輸入為,記為 v 12 (u+u) outout 由于,這時 u4 實際上為一個反向跟隨器,即: 2514 rr 312

18、outoutout uvuu 所以: 28262826 31212 1212 () out rrrr uvvvv rrrr 2本設(shè)計中的運(yùn)放的連接的第二部分如圖 2-3 如圖 2-4 中的 u2 輸入中的為圖 2-3 中 u4 的輸出。 out3 u 對于本運(yùn)放組成的電路分析采用疊加法: 設(shè) u2 的輸出為。 out4 u 當(dāng)電源全部接地時,有如下:12 此時的運(yùn)放實際為一個反相比例器: 111161212 ()/()rrrrr 右左 113 3 113141 149 out rr uu rrruu rr 9113 1out3 1411314 () uu () r rr rrrr 當(dāng)-12v

19、和接地時: out3 u 2161312 ()/ /rrrr 右 2 - 21112-2 139 u -12 uu r rrr rr 左 92 2 1321112 u12 rr rrrr 左 當(dāng) 12v 和接地時: out3 u 3111312 3 - 31612-3 139 93 3 1331112 ()/ / u +12 uu u12 rrrr r rrr rr rr rrrr 左 右 左 所以綜上所述:為,三者之和。 out4 u 1 u 2 u 3 u 即: out4123 uu +u +u 91139932 out4out33 141131413211133111212 911393

20、2 out3 1411314132113111212 () uu12u12 () () u12 () r rrrrrr rrrrrrrrrrrr r rrrrr rrrrrrrrrrr 左左 左左 () 下面對的結(jié)果作一些輔助說明: out4 u 特例:當(dāng)時 23 rr 9113 out41out3 1411314 () uuu () r rr rrrr 以下進(jìn)行代入數(shù)據(jù)的具體的分析: 于是對于將圖 2-3 與圖 2-4 及連在一起時,波形輸出與調(diào)節(jié)部分的理論計算 dac 轉(zhuǎn)換部分電路圖如圖所示 當(dāng)單片機(jī)分別向 dac0832(1)和 dac0832(2)輸入數(shù)據(jù)和時 1 d 2 d 0222

21、 u =-dvr=-12 d /256 011021 u =-dvr=-ud /256 031010231 u =-r /ru -ur /r 其中,代入以上各式,得 13 r =r =10k 2 r =20k (1-1) 0021 u =u(d /128-1)/2 或著: 1002 d =128 (u /u +1) 由(1-1)式可知,當(dāng)在 0255 之間變化時,可在之間 1 d 0 u 02 u 2 02 u 2 變化,即輸出信號的峰峰值可由控制。 02 u 該電路由 102 電位器串接 2 個 1 電阻實現(xiàn)調(diào)節(jié)直流偏移,電位器觸頭在最 右端和最左端時,電位器輸出的電壓分別為-5v 和+5v

22、,電位器的電壓與 通過 一個加法器后,實現(xiàn)直流偏移的調(diào)節(jié)。 1.4.2 波形產(chǎn)生相關(guān)理論 dac0832 是 8 位的 d/a 轉(zhuǎn)換器件,其工作電壓是 05v,當(dāng)輸入 00 數(shù)字量 的時候,輸出為 0v 電壓;當(dāng)輸入 80 數(shù)字量的時候,輸出為 2.5v 電壓;當(dāng)輸入 ff 數(shù)字量的時候,輸出為 5v 電壓。單片機(jī)的 i/o 輸出均為+5 v 的 ttl 電平, 因此產(chǎn)生的正弦波幅值為+2.5 v。將一個周期內(nèi)的正弦波形等分為 256 份,那 么第 1 點(diǎn)的角度為 0,對應(yīng)的正弦值為 2.5sin0;第 2 點(diǎn)的角度為 360 /256,對應(yīng)的正弦值為 2.5sin (360/256 ) ,如

23、此計算下去,將這些 模擬量正弦值都轉(zhuǎn)換為單極性方式下的數(shù)字量,得到一張按照點(diǎn)號順序排列的 正弦波波形數(shù)據(jù)表。而每次送到 74ls373 的八位數(shù)字量是根據(jù)查正弦波形數(shù)據(jù) 表格而得到。 其實在計算正弦波形數(shù)據(jù)的時候,并不需要算出整個 02 區(qū)間的每一個 值,而只需計算出 0 中的值就行,其他區(qū)間的值都可以通過對 0 2 1 2 1 中的值取不同的變換。比如 的值可以和 0 值一一對應(yīng),而 2 1 2 1 2 的值可以對 0 區(qū)間的值取反得到。計算值可以用 c 語言編程得到。 幅度公式為 y=2.51+sin() (n=0,1,264)n 64 90 相應(yīng)的 y 值數(shù)字化后的遞增量 =0.0196

24、 255 5 那么每一個點(diǎn)相對于起一個點(diǎn)的遞增率為 a= (y2 當(dāng)前的點(diǎn), 12yy y1 為前一個點(diǎn)) 所以每一個點(diǎn)的數(shù)字量與遞增率 a 成一一對應(yīng)關(guān)系。 第 2 章 系統(tǒng)硬件電路的設(shè)計 2.1 單片機(jī)的接口電路 zlg7289 的接口電路圖如圖 2-1 所示。 zlg7289a 應(yīng)連接共陰式數(shù)碼管應(yīng)用中無需用到的數(shù)碼管和鍵盤可以不連接 省去數(shù)碼管和對數(shù)碼管設(shè)置消隱屬性均不會影響鍵盤的使用如果不用鍵盤則典 型電路中連接到鍵盤的8 只10k 電阻和8 只100k 下拉電阻均可以省去如果使用 了鍵盤則電路中的8 只10k 電阻和8 只100k 下拉電阻均不得省略除非不接數(shù)碼 管否則串入dp 及

25、sa-sg 連線的8 只電阻均不能省去實際應(yīng)用中8 只下拉電阻和 8 只鍵盤連接位選線dig0-dig7 的8 只電阻位選電阻應(yīng)遵從一定的比例關(guān)系下 拉電阻應(yīng)大于位選電阻的5 倍而小于其50 倍典型值為10 倍下拉電阻的取值范 圍是10k-100k 位選電阻的取值范圍是1k-10k 在不影響顯示的前提下下拉電阻 應(yīng)盡可能的取較小的值這樣可以提高鍵盤部分的抗干擾能力因為采用循環(huán)掃描 的工作方式如果采用普通的數(shù)碼管亮度有可能不夠采用高亮或超高亮的型號可 以解決這個問題數(shù)碼管的尺寸也不宜選的過大一般字符高度不超過1 英寸如使 用大型的數(shù)碼管應(yīng)使用適當(dāng)?shù)尿?qū)動電路zlg7289a 需要一外接晶體振蕩電路

26、供系 統(tǒng)工作其典型值分別為f=16mhz c=15p如果芯片無法正常工作請首先檢查此振蕩 電路在印刷電路板布線時所有元件尤其是振蕩電路的元件應(yīng)盡量靠近zlg7289a 并盡量使電路聯(lián)線最短zlg7289a 的reset 復(fù)位端在一般應(yīng)用情況下可以直接和 vcc 相連在需要較高可靠性的情況下可以連接一外部復(fù)位電路或直接由mcu 控 制在上電或reset 端由低電平變?yōu)楦唠娖絲lg7289a 大約要經(jīng)過18-25ms 的時間 才會進(jìn)入正常工作狀態(tài)上電后所有的顯示均為空所有顯示位的顯示屬性均為顯 示及不閃爍當(dāng)有鍵按下時key 引腳輸出低電平此時如果接收到讀鍵盤指令。 zlg7289a 將輸出所按下鍵

27、的代碼鍵盤代碼的定義中代碼以10 進(jìn)制表示如 果在沒有按鍵的情況下收到讀鍵盤指令zlg7289a 將輸出0ffh 255程序中盡可能 地減少cpu 對zlg7289a 的訪問次數(shù)可以使得程序更有效率因為芯片直接驅(qū)動 led 數(shù)碼管顯示電流較大且為動態(tài)掃描方式故如果該部分電路電源連線較細(xì)較 長可能會引入較大的電源噪聲干擾在電源的正負(fù)極并入一47u 到220u的電容可 以提高電路抗干擾的能力注意如果有2 個鍵同時按下. zlg7289a只會給其中一個關(guān)鍵的代碼需要兩個或超過2鍵同時按下的場合應(yīng) 用,使zlg7289a不太合適。 本設(shè)計中7289與單片機(jī)的連接方式如下表2-1 表 2-1 7289

28、與單片機(jī)的連接方式 單 片 機(jī) zlg7289 p1.0notcs p1.1clk p1.2dio p1.3notkey 圖 2-1 單片機(jī)與 zlg7289 連接電路 2.2 幅度控制模塊 2.2.1 單片機(jī)與 dac0832 的接口 由于 d/a 一個轉(zhuǎn)換器與微控制器相連,微控制器是在數(shù)據(jù)總線上發(fā)送的時 間為使用模擬數(shù)字轉(zhuǎn)換,數(shù)字?jǐn)?shù)據(jù)和指令命令的輸出是短暫的,與 dac 和微控 制器,微控制器需要,所以在數(shù)據(jù)寄存器保持電腦的 dac 轉(zhuǎn)換輸出數(shù)據(jù)。目前 生產(chǎn)的 dac 芯片分為兩類,有數(shù)據(jù)寄存器芯片組,不需要額外的電路,就可以 與微型計算機(jī)接口直接。另一個沒有數(shù)據(jù)寄存器,數(shù)據(jù)輸入與輸出信號

29、線改變 狀態(tài),它是沒有直接關(guān)系的微型計算機(jī)接口芯片,并行接口必須微型計算機(jī)接 口。 dac0832 是一個 20 引腳雙列直插式 cmos 器件,它有兩個內(nèi)部數(shù)據(jù)寄存器, 完成 8 位電流 d / a 轉(zhuǎn)換。它不需要額外的電路。因此,單片機(jī)與 dac0832 連 接,如圖 2-2 圖 2-2 單片機(jī)與 dac0832 連接方式 2.2.2 dac0832 與運(yùn)放的連接 1. 在本設(shè)計中的與運(yùn)放的連接方式第一部分如圖 2-3 圖 2-3 運(yùn)放的連接方式第一部分 圖上的運(yùn)算放大器實現(xiàn)三個功能 2-3 分為:u6 的反向作為控制比例,u5 的 是一個反向比例控制,但是,作為一個加法器 u4 的,其理

30、論分析計算,見第二 章第四巡回計算。輸出實際上是 uout3 與 uout2 和 uout1。 2.該運(yùn)算放大器的設(shè)計連接第二部分,如圖 2-4 圖 2-4 運(yùn)放的連接方式第二部分 該電路由調(diào)整直流偏移在最正確和最左邊,電位器輸出電壓為-5v 和+5 v 時,通過一個加法器的電壓電位器,實現(xiàn)了潛在的聯(lián)系 1021 2 串聯(lián)電阻電位器 直流偏移調(diào)整。 2.分析了電路性能 用于調(diào)節(jié) dac0832 的基準(zhǔn)電壓為 12v,因此峰值可以調(diào)整到最大為 12v,12v 的電源放大器,它沒有達(dá)到飽和。 通過電位器和兩個 1 直流偏移調(diào)整阻力。當(dāng)電位器滑塊位于極右和極左, 輸出電壓為-5v 和+5 v 電源,

31、電位器,通過一個直流電壓和輸出電壓偏移加法 器來實現(xiàn)監(jiān)管。 該 dac0832 非線性,輸出信號的幅度有一定的誤差。 我們可以從上面的計算,峰值波形產(chǎn)生電路和直流偏移調(diào)節(jié)范圍達(dá)到并超 過了要求的問題的范圍。 第 3 章 系統(tǒng)軟件設(shè)計 3.1 系統(tǒng)軟件設(shè)計方案 51 系列單片機(jī)的編程語言常用的有兩種匯編語言類型,一種是 c 語言。 匯編語言,是一種編程語言的強(qiáng)大功能,而且所有的電腦硬件功能,可以 直接控制硬件的語言。匯編語言與計算機(jī)的底層軟件或硬件,以直接互動,它 具有以下優(yōu)點(diǎn):(1)直接訪問硬件相關(guān)的存儲器或 i / o 端口, (2)編譯器不 能限制生成完整的二進(jìn)制代碼控制;(3)關(guān)鍵代碼可

32、以更精確地控制,避免常 見的線程或硬件設(shè)備共享訪問僵局造成的;(4)根據(jù)對代碼做了最好的優(yōu)化提 高速度的具體應(yīng)用; (5)最大限度地提高硬件的能力。同時還應(yīng)認(rèn)識到,匯編 語言是一個非常低層次的語言,它只是比直接在機(jī)器指令的二進(jìn)制代碼編寫手 冊高,因此不可避免地存在一些缺點(diǎn):(1)編寫代碼是非常困難的,不好維護(hù); (2)容易出現(xiàn)錯誤,難以調(diào)試;(3)只對特定的處理器體系結(jié)構(gòu)優(yōu)化和(4) 開發(fā)的效率非常低,長期和單調(diào)。 c 語言,是一種計算機(jī)編程語言。它具有一個高層次的語言,但也有匯編 語言的特點(diǎn)。它可以作為一個工作系統(tǒng)的設(shè)計語言,文字系統(tǒng)也可以作為應(yīng)用 程序使用的應(yīng)用程序語言,文字不依賴于計算機(jī)

33、硬件的應(yīng)用程序。因此,它的 應(yīng)用范圍廣泛,不僅在軟件開發(fā),以及研究各種需要使用 c 語言,具體應(yīng)用, 如微控制器和嵌入式系統(tǒng)的開發(fā)。它具有以下優(yōu)點(diǎn):(1)簡單,緊湊,靈活, 方便;(2)運(yùn)算符豐富;(3)豐富的數(shù)據(jù)結(jié)構(gòu);(4)c 是一個結(jié)構(gòu)化的語言, (5)c 的語法是沒有嚴(yán)格限制,程序設(shè)計自由度大, (6)c 語言允許直接訪問 物理地址,可以直接在硬件上運(yùn)行;(7)生成高質(zhì)量的目標(biāo)代碼,程序執(zhí)行效 率高;(8)c 語言的應(yīng)用和便攜式大。 匯編語言代碼的機(jī)器可讀的,但不是很強(qiáng)烈而復(fù)雜的過程,更是難以閱讀, 和 c 語言,發(fā)電效率在大多數(shù)情況下其機(jī)器代碼生成和匯編語言相當(dāng),但可讀 性和可移植性效

34、率得多比匯編語言,但 c 還可以嵌入?yún)R編語言的時候,以解決 編碼問題。對于為中型和大型軟件開發(fā)周期用 c 語言編寫的開發(fā)周期通常比匯 編語言更小。 c 語言以上的優(yōu)點(diǎn),函數(shù)發(fā)生器的系統(tǒng)軟件設(shè)計的 c 編程語言的 一部分。 3.2 系統(tǒng)軟件流程圖 系統(tǒng)軟件是由若干子程序構(gòu)成,包括主程序、顯示子程序、各模式子程序 等等。主程序的流程圖如圖 3-1 所示 圖 3-1 主程序流程圖 2.鍵盤輸入的流程圖如圖 3-2 圖 3-2 鍵盤輸入流程圖 3.3 信號產(chǎn)生程序 本設(shè)計將各種波形的數(shù)據(jù)固定在單片機(jī)的程序存儲器里,通過改變這些數(shù) 據(jù)的輸出速度來改變信號的頻率,然后通過改變 d/a 轉(zhuǎn)換器的參考點(diǎn)要來改

35、變 信號的峰峰值,電路較為簡單,成本較低。 3.3.1 正弦波產(chǎn)生 首先在單片機(jī)的存儲器中存入正弦波的點(diǎn)數(shù),通過輸出的兩點(diǎn)間的延時來 實現(xiàn)調(diào)頻的功能。我們通過兩個機(jī)器周期的語句作為調(diào)頻的最小時間單位,通 過循環(huán)次數(shù)來控制時間,假設(shè)波形點(diǎn)數(shù)為 n,輸入頻率為 f,每個頻段的最小分 辨率為 x。 3.3.2 三角波產(chǎn)生 1產(chǎn)生三角波的原理 設(shè)個自變量 i 讓它不斷地自加 1,直到加到 255 時,t=i ,對 t 進(jìn)行不斷地自 減一直到減到 t=0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生三角波。 2程序流程圖見圖 3-3 圖 3-3 程序流程圖 3.3.3 方波產(chǎn)生 1產(chǎn)生方波的原理 設(shè)個自變量 i=0

36、 使之延時一段時間,再另 i=255 時在延時與 i=0 相同的時間, 然后在重復(fù)上述過程。 假設(shè)延時為 t。 2.方波程序流程圖見圖 3-4 圖 3-4 方波程序流程圖 3.3.4 鋸齒波的產(chǎn)生 1產(chǎn)生鋸齒波的原理 鋸齒波中的斜線用一個個小臺階來逼近,在一個周期內(nèi)從最小值開始逐步遞增, 當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺階間隔很小時,波形基本上近 似于直線。適當(dāng)選擇循環(huán)的時間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原 理與方波類似,只是高低兩個延時的常數(shù)不同,所以用延時法,來產(chǎn)生鋸齒波, 設(shè)個自變量 i 讓它不斷地自加 1,直到加到 255,dac0832 可以又自動歸 0,然 后再不

37、斷地重復(fù)上述過程進(jìn)而產(chǎn)生鋸齒波。 2程序流程圖見圖 3-5 圖 3-5 鋸齒波程序流程圖 第 4 章 系統(tǒng)調(diào)試與測試 4.1 調(diào)試 簡單系統(tǒng)硬件的調(diào)試通常采用載入簡單的測試程序并運(yùn)行,使用數(shù)字表或 示波器觀察;對有些硬件例如顯示器、鍵盤等可直接編入程序觀察程序執(zhí)行狀 態(tài)。 1.上電復(fù)位后用示波器觀察晶振或 ale 是否有波形輸出。如有表明單片機(jī) 已激活。 2.按鍵的調(diào)試 對于新給定的一個 zlg7289 及鍵盤是,我們應(yīng)當(dāng)首先確定每個按鍵的鍵值,只 有當(dāng)我們確定鍵之后,才可以對我們所要設(shè)置的按鍵的功能通過真正做到使軟 硬件相結(jié)合在一起,實現(xiàn)我們的目標(biāo)功能,真是我們可以利用系統(tǒng)的顯示部分 也即就

38、是系統(tǒng)的 led,我們通過假設(shè)法使出本系統(tǒng)的鍵值。一般對于設(shè)計心得 系統(tǒng)我們都可以采用這種方法,因為現(xiàn)在是人性化社會每個設(shè)計都有自己的特 色,在設(shè)計中我們的充分利用系統(tǒng)為我們所提供的一些顯而易見的東西來完成 我們所打算實現(xiàn)的功能。 對于十六個按鍵及功能介紹見表 4-1 表 4-1 按鍵及功能介紹 key 作用 k10 k21 k32 k43 k54 k65 k76 k87 k98 k109 k11 小數(shù)點(diǎn) k12 頻率設(shè)置 k13 幅度設(shè)置 k14 波形切換 k15 led 清屏 k16 確定鍵 通過仿真器對系統(tǒng)進(jìn)行調(diào)試,使用調(diào)試軟件為 keilc51,軟件版本為 vision4。系統(tǒng)上電運(yùn)行

39、后,第 1 次按下波形切換鍵 k14,再按下確認(rèn)件 k16,從示波器上觀察結(jié)果如圖 4-1 圖 4-1 正弦波波形顯示 第 2 次按下 k14 按確定 k16 后從示波器觀察圖形如圖 4-2 圖 4-2 方波波形顯示 第 3 次按下 k14 按確定 k16 后從示波器觀察圖形如圖 4-3 圖 4-3 鋸齒波波形顯示 第 3 次按下 k14 按確定 k16 后從示波器觀察圖形如圖 4-4 圖 4-4 三角波波形顯示 通過實驗可以知道本系統(tǒng)中的 k14 用于幾種波形的相互切換。 4.2 測試 1測試的方法: 在測試本系統(tǒng)時采用的是將設(shè)置的數(shù)值與示波器所測試值進(jìn)行對比,進(jìn)而可以 知道本系統(tǒng)的性能 2

40、.通過按鍵,實現(xiàn)其按鍵所對應(yīng)的功能,并觀察測試結(jié)果,對設(shè)計進(jìn)一步的進(jìn) 行校正和對實現(xiàn)功能的可靠新的確認(rèn),并記錄觀察結(jié)果。 測試數(shù)據(jù)如下(以正弦波為例) (1) 電壓峰值測試數(shù)據(jù)如表 4-2 表 4-2 電壓峰值測試數(shù)據(jù) 設(shè)定電壓(v)示波器測試電壓值(v) 相對誤差值% 2.02.031.5 4.04.020.5 6.06.050.83 8.08.040.5 (2)頻率測試數(shù)據(jù)如表 4-3 表 4-3 電壓峰值測試數(shù)據(jù) 設(shè)定頻率(hz)示波器測試電壓值(hz) 相對誤差值% 2.02.00 87.940.625 109.560.44 2019.930.35 40.039.10.45 80.07

41、9.640.45 100.0104.8 0.48 200.0 201.2 0.6 所能測得正弦波的最高頻率為 835hz。 鋸齒波和反鋸齒波的最高頻率為 1170hz 三角波測得的最高頻率為 1170hz 方波測得的最高頻率為 1250hz 3.數(shù)據(jù)分析 電壓誤差分析: 產(chǎn)生誤差的原因有:dac0832 的非線性、電壓運(yùn)算過程中四舍五入產(chǎn)生的誤差、 直流電源存在的誤差、電阻及運(yùn)放等器件存在的誤差。 頻率誤差分析: 延時計算誤差、示波器示數(shù)不穩(wěn)定。 高頻時存在較大誤差的原因是,高頻時調(diào)用延時程序的次數(shù)較少,因此計算調(diào) 用次數(shù)時產(chǎn)生的誤差較大。 頻率存在上限的原因是程序運(yùn)行的耗時以及 dac0832 在進(jìn)行 da 轉(zhuǎn)換時損耗的時 間。 綜上所述,由上述數(shù)據(jù)可以看出,函數(shù)信號發(fā)生器峰峰值和頻率的誤差還是很 低的,精度較高。 結(jié)論 結(jié)論 經(jīng)過幾個月的努力,終于完成了函數(shù)發(fā)生器的設(shè)計,總結(jié)幾個月來來的工作,主要有以 下幾個方面: (1)通過查閱大量資料使自己對函數(shù)發(fā)生器的研究現(xiàn)狀、原理、工作方式等的基本概 念及技術(shù)發(fā)展有了更好的理解。 (2)針對設(shè)計的任務(wù)和要求,確定了函數(shù)發(fā)生器的硬件和軟件設(shè)計方案。 (3)本系統(tǒng)使用了單片機(jī)作為中央控制器,直接由軟件產(chǎn)生波形信號的輸出,可通過 修改軟件,還可以輸出其它任意波形。硬件簡單,可以把電源和發(fā)生器分開來制作,減

溫馨提示

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

評論

0/150

提交評論