單片機課程設(shè)計智能信號發(fā)生器設(shè)計_第1頁
單片機課程設(shè)計智能信號發(fā)生器設(shè)計_第2頁
單片機課程設(shè)計智能信號發(fā)生器設(shè)計_第3頁
單片機課程設(shè)計智能信號發(fā)生器設(shè)計_第4頁
單片機課程設(shè)計智能信號發(fā)生器設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、東 北 石 油 大 學(xué) 課 程 設(shè) 計 課 程 單片機課程設(shè)計 題 目 智能信號發(fā)生器 院 系 電氣信息工程學(xué)院測控系 專業(yè)班級 測控 08-02 學(xué)生姓名 學(xué)生學(xué)號 指導(dǎo)教師 智能信號發(fā)生器1 2012 年 3 月 30 日智能信號發(fā)生器1東北石油大學(xué)課程設(shè)計任務(wù)書課程 單片機課程設(shè)計 題目 智能信號發(fā)生器 專業(yè) 測控技術(shù)與儀器 姓名 單培杰 學(xué)號 080601240229 一、任務(wù)一、任務(wù) 設(shè)計一款基于 at89c51 單片機智能信號發(fā)生器,實現(xiàn)三角波,方波,鋸齒波的輸出。二、設(shè)計要求二、設(shè)計要求1 通過按鍵控制可產(chǎn)生方波、鋸齒波、三角波、正弦波。2 寫出詳細的設(shè)計報告。3 給出全部電路和

2、源程序。三、參考資料三、參考資料1 吳杰.基于 isp 技術(shù)的電子公告牌系統(tǒng)j.科技資訊 2008.no.14:83-87.2 楊恢先,黃輝先.單片機原理及應(yīng)用m.人民郵電出版社,2006.3 李川,汪秋蒙.isp 技術(shù)的原理及實現(xiàn)方法j.科技資訊.2007,35 期:93-94.4 萬光毅.單片機實驗與實踐教程m.北京航空航天大學(xué)出版社.2005.1.5 張毅剛.單片機原理及應(yīng)用m.高等教育出版社.2003:160-190.6 曾一江.單片機微機原理與接口技術(shù)m.科學(xué)出版社,2006.7 王新強.基于 at89s52 的智能信號發(fā)生器j.河南機電高等??茖W(xué)校學(xué)報,2006,14(3):37-

3、39.8 philips .74hc595 .datasheet.philips semiconductors .2003 jun 259 馬忠梅.單片機的 c 語言應(yīng)用程序設(shè)計m.北京:北京航空航天大學(xué)出版社.200610 康華光,陳大欽.電子技術(shù)基礎(chǔ)m.高等教育出版社,1998.完成期限 2012.3.19 至 2012.3.30 指導(dǎo)教師 段志偉 專業(yè)負責人 曹廣華 2012 年 3 月 16 日智能信號發(fā)生器2目錄目錄第 1 章 緒論.31.1 對信號發(fā)生器的認識 .31.2 本次設(shè)計的信號發(fā)生器的簡介 .31.3 本設(shè)計任務(wù) .4第 2 章 總體方案論證與設(shè)計.52.1 系統(tǒng)方案的比

4、較 .52.2 控制芯片的選擇 .52.3 總體硬件組成框圖 .5第 3 章 系統(tǒng)硬件設(shè)計.73.1 單片機的介紹 .73.2 各部分電路原理 .93.3 鍵盤電路原理 .11第 4 章 系統(tǒng)的軟件設(shè)計.134.1 主程序設(shè)計 .134.2 子程序流程圖 .14第 5 章 系統(tǒng)調(diào)試與測試結(jié)果分析.185.1 系統(tǒng)調(diào)試 .185.2 測試結(jié)果 .18結(jié) 論.21參考文獻.22附錄 1 程序.23附錄 2 仿真效果圖.24智能信號發(fā)生器3 第 1 章 緒論在現(xiàn)代電子學(xué)的各個領(lǐng)域中,常常需要高精度和頻率方便可調(diào)的信號發(fā)生器,信號發(fā)生器在電路實驗和設(shè)備檢測中具有十分廣泛的用途,目前廣泛使用的是一些標準

5、產(chǎn)品,雖然功能齊全、性能指標較高,但是價格較貴,而且許多功能用不上。而隨著單片機技術(shù)的迅速發(fā)展,其以集成度高、處理功能強、可靠性好等優(yōu)點,在各個領(lǐng)域得到越來與廣泛的應(yīng)用,因而利用單片機實現(xiàn)的信號發(fā)生器,結(jié)構(gòu)簡單,實用性強。1.1 信號發(fā)生器的簡介 信號發(fā)生器是一種能產(chǎn)生標準信號的電子儀器資料來源:畢業(yè)設(shè)計(論文)網(wǎng) 是工業(yè)生產(chǎn)和電工、電子實驗中經(jīng)常使用的電子儀器之一。信號發(fā)生器種類較多,性能各有差別,但它們都可以產(chǎn)生不同頻率的正弦波、調(diào)幅波調(diào)頻波信號,以及各種頻率的方波、三角波、鋸齒波和正負脈沖波信號等。利用信號發(fā)生器輸出的信號,可以對元器件的性能及參數(shù)進行測量,還可以對電工和電子產(chǎn)品整進行指

6、數(shù)驗證、參數(shù)調(diào)整及性能鑒定。在多數(shù)電路傳遞網(wǎng)絡(luò)中、電容與電感組合電路, 、電容與電阻組合電路及信號調(diào)制器的頻率、相位的檢測中都可以得到廣泛的應(yīng)用。信號發(fā)生器按其頻率的高低,可分為:超低頻信號發(fā)生器,低頻信號發(fā)生器,高頻信號發(fā)生器,超高頻信號發(fā)生器,微波信號發(fā)生器;按產(chǎn)生波形的不同,可分為:正弦波信號發(fā)生器,脈沖波函數(shù)波信號發(fā)生器,任意波信號發(fā)生器; 按調(diào)制方式的不同,可分為:調(diào)頻信號發(fā)生器(fm) 、調(diào)幅信號發(fā)生器(am) ,調(diào)相信號發(fā)生器(pm) ,脈沖調(diào)制信號發(fā)生器;此外,還可以產(chǎn)生兩種或多種波形信號發(fā)生器。單片機智能信號發(fā)生器目前可直接數(shù)字合成(dds) ,能夠產(chǎn)生任意波形的信號,精度高

7、,可程控,便于與其他設(shè)備接口構(gòu)成各種系統(tǒng)。還有基于 usb2.0的虛擬波形信號發(fā)生器,也可產(chǎn)生任意波形。本次設(shè)計設(shè)計的是一個可產(chǎn)生正弦波、方波、鋸齒波及三角波的智能信號發(fā)生器。智能信號發(fā)生器可廣泛應(yīng)用于電子信息、機械、交通、地質(zhì)、航天航空等專業(yè),在教學(xué)、科研、生產(chǎn)、工程等諸多領(lǐng)域應(yīng)用非常廣泛。1.2 本次設(shè)計的信號發(fā)生器的簡介智能信號發(fā)生器4本次設(shè)計以單片機為核心配以一定的外圍電路和軟件,實現(xiàn)智能波的產(chǎn)生和輸出,從總體上來看設(shè)計任務(wù)可以分為硬件設(shè)計和軟件設(shè)計,這兩者互相結(jié)合,不可分離。從時間上來看,硬件設(shè)計的絕大部分工作量在最初階段,到后期往往還要作一些修改。軟件設(shè)計任務(wù)貫穿始終,到中后期基本

8、上都是軟件設(shè)計任務(wù)。硬件設(shè)計部分包括:1. 單片機的存儲器擴展和接口擴展設(shè)計。2. 單片機外部模塊設(shè)計,包括鍵盤模塊、d/a 轉(zhuǎn)換模塊、信號放大模塊和濾波模塊設(shè)計。軟件部分設(shè)計 單片機主程序包括初始化和鍵入值的判定,其他都是軟件子程序如 d/a 轉(zhuǎn)換、智能波的產(chǎn)生函數(shù)及輸出函數(shù) 。1.3 本設(shè)計任務(wù)本系統(tǒng)是基于 at89s52 單片機的數(shù)字式低頻信號發(fā)生器。采用 at89s52 單片機作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(dac0832) 、運放電路(ne4558) 、按鍵和 led 顯示燈電路等。通過按鍵控制可產(chǎn)生方波、鋸齒波、三角波、正弦波等,同時用 led 顯示燈指示對應(yīng)的波形。其設(shè)

9、計簡單、性能優(yōu)良,可用于多種需要低頻信號源的場所,具有一定的實用性。智能信號發(fā)生器5 第 2 章 總體方案論證與設(shè)計2.1 系統(tǒng)方案的比較方案一:采用函數(shù)信號發(fā)生器 icl8038 集成模擬芯片,它是一種可以同時產(chǎn)生方波、三角波、正弦波的專用集成電路。但是這種模塊產(chǎn)生的波形都不是純凈的波形,會寄生一些高次諧波分量,采用其他的措施雖可濾除一些,但不能完全濾除掉。方案二:采用分立元件實現(xiàn)非穩(wěn)態(tài)的多諧振振蕩器,然后根據(jù)需要加入積分電路等構(gòu)成正弦、矩形、三角等波形發(fā)生器。這種信號發(fā)生器輸出頻率范圍窄,而且電路參數(shù)設(shè)定較繁瑣,其頻率大小的測量往往需要通過硬件電路的切換來實現(xiàn),操作不方便。 方案三:采用單

10、片機和 dac0832 數(shù)模轉(zhuǎn)換器生成波形,由于是軟件濾波,所以不會有寄生的高次諧波分量,生成的波形比較純凈。它的特點是價格低、性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少。經(jīng)比較,方案三既可滿足課程設(shè)計的基本要求又能充分發(fā)揮其優(yōu)勢,電路簡單,易控制,性價比較高,所以采用該方案。2.2 控制芯片的選擇方案一:at89s52 單片機是一種高性能 8 位單片微型計算機。它把構(gòu)成計算機的中央處理器 cpu、存儲器、寄存器、i/o 接口制作在一塊集成電路芯片中,從而構(gòu)成較為完整的計算機。方案二:c8051f005 單片機是完全集成的混合信號系統(tǒng)級芯片,具有與at80s52 兼容的微控制器的內(nèi)

11、核,與 mcs-51 指令集完全兼容。除了具有標準at80s52 的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件。方案選擇:方案二中 c8051f005 芯片系統(tǒng)內(nèi)部結(jié)構(gòu)復(fù)雜,不易控制,芯片成本高,對于本系統(tǒng)而言利用率低,at89s52 芯片比較常用,簡單易控制,成本低,性能穩(wěn)定故采用方案一。2.3 總體硬件組成框圖智能信號發(fā)生器6圖 2-1 總體硬件組成框圖低頻信號發(fā)生器系統(tǒng)主要由 cpu、d/a 轉(zhuǎn)換電路、基準電壓電路、電流/電壓轉(zhuǎn)換電路、按鍵和波形指示電路、電源等電路組成。其工作原理為當分別按下四個按鍵中的任一個按鍵就會分別出現(xiàn)方波、鋸齒波、三

12、角波、正弦波,并且有四個發(fā)光二極管分別作為不同的波形指示燈。智能信號發(fā)生器7第 3 章 系統(tǒng)硬件設(shè)計3.1 單片機的介紹圖 3-1 at89s52 引腳圖3.1.1 管腳說明 低頻信號發(fā)生器采用 at89s52 單片機作為控制核心,其內(nèi)部組成包括:一個 8 位的微處理器 cpu 及片內(nèi)振蕩器和時鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接;片內(nèi)數(shù)據(jù)存儲器 ram 低 128 字節(jié),存放讀/寫數(shù)據(jù);高 128 字節(jié)被特殊功能寄存器占用;片內(nèi)程序存儲器 4kb rom;四個 8 位并行 i/o(輸入/輸出)接口 p3 -p0,每個口可以用作輸入,也可以用作輸出;兩個定時/計數(shù)器,每個定時/計數(shù)器都可以

13、設(shè)置成計數(shù)方式,用以對外部事件進行計數(shù),也可以設(shè)置成定時方式,并可以根據(jù)計數(shù)或定時的結(jié)果實現(xiàn)計算機控制;五個中斷源的中斷控制系統(tǒng);一個全雙工 uart(通用異步接收發(fā)送器)的串行 i/o 口。vcc:供電電壓。ea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p0534p0633p0732p2021p2122p2223p2324p2425p2526p2627p2728psen29ale/p30txd11rxd10u1at89s52vc

14、crst智能信號發(fā)生器8gnd:接地。rst:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持 rst 腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 flash 編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個 ale 脈沖。如想禁止 ale 的輸出可在 sfr8eh 地址上置 0。此時, ale 只有在執(zhí)行 movx,movc 指令是 ale 才起作用。另外,該引腳被略微拉高。

15、如果微處理器在外部執(zhí)行狀態(tài) ale 禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen 信號將不出現(xiàn)。/ea/vpp:當/ea 保持低電平時,則在此期間外部程序存儲器(0000h-ffffh) ,不管是否有內(nèi)部程序存儲器。注意加密方式 1 時,/ea 將內(nèi)部鎖定為reset;當/ea 端保持高電平時,此間內(nèi)部程序存儲器。在 flash 編程期間,此引腳也用于施加 12v 編程電源(vpp) 。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出

16、。p0 口:p0 口為一個 8 位漏級開路雙向 i/o 口,每腳可吸收 8ttl 門電流。當 p1 口的管腳第一次寫 1 時,被定義為高阻輸入。p0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在 fiash 編程時,p0 口作為原碼輸入口,當 fiash 進行校驗時,p0 輸出原碼,此時 p0 外部必須被拉高。p1 口:p1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash 編程和校驗時,p1 口

17、作為第八位地址接收。p2 口:p2 口為一個內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可接收,輸出 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 編程和校驗時接收高八位地址信號和控制信號。p3 口:p3 口管腳是 8 個帶內(nèi)部上拉

18、電阻的雙向 i/o 口,可接收輸出 4 個ttl 門電流。當 p3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。智能信號發(fā)生器9作為輸入,由于外部下拉為低電平,p3 口將輸出電流(ill)這是由于上拉的緣故。p3 口也可作為 at89c51 的一些特殊功能口,如下所示: 口管腳 備選功能p3.0 rxd(串行輸入通道)p3.1 txd(串行輸出通道)p3.2 /int0(外中斷 0)p3.3 /int1(外中斷 1)p3.4 t0(定時器 0 外部輸入)p3.5 t1(定時器 1 外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)3.1.2 at

19、89s52 的晶振及其連接方法cpu 工作時都必須有一個時鐘脈沖。有兩種方式可以向 89s52 提供時鐘脈沖:一是外部時鐘方式,即使用外部電路向 89s52 提供時鐘脈沖,見圖 2.3(a);二是內(nèi)部時鐘方式,即使用晶振由 89s52 內(nèi)部電路產(chǎn)生時鐘脈沖。一般常用第二種方法,其電路見圖 3-2。89s52xtal xtal189s52xtal2xtal1懸空外部時鐘信號c1c2j(a)外部時鐘方式(b)內(nèi)部時鐘方式圖 3-2 89s52 的時鐘脈沖j 一般為石英晶體,其頻率由系統(tǒng)需要和器件決定,在頻率穩(wěn)定度要求不高時也可以使用陶瓷濾波器。一般來說,使用石英晶體時,c1=c2=30pf。使用陶

20、瓷濾波器時,c1=c2=47pf。3.2 各部分電路原理智能信號發(fā)生器103.2.1dac0832 芯片原理管腳功能介紹(如圖 3-3 所示)圖 3-3 dac0832 管腳圖di7di0:8 位的數(shù)據(jù)輸入端,di7 為最高位。ile:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。/cs:選片信號輸入線(選通數(shù)據(jù)鎖存器) ,低電平有效。/wr1:數(shù)據(jù)鎖存器寫選選通輸入線,負脈沖有效,由 ile、/cs、/wr1 的邏輯組合產(chǎn)生/le1,當/le1 為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變化,/le1 的負跳變時將輸入數(shù)據(jù)鎖存。/xfer:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負脈沖有效。/wr2:da

21、c 寄存器選通輸入線,負脈沖有效,由/wr2、/xfer 的邏輯組合產(chǎn)生/le2,當/le2 為高電平時,dac 寄存器的輸出隨寄存器的輸入而變化,/le2 的負跳變時將數(shù)據(jù)鎖存器的內(nèi)容打入 dac 寄存器并開始 d/a 轉(zhuǎn)換。iout1:模擬電流輸出端 1,當 dac 寄存器中數(shù)據(jù)全為 1 時,輸出電流最大,當 dac 寄存器中數(shù)據(jù)全為 0 時,輸出電流為 0。iout2:模擬電流輸出端 2, iout2 與 iout1 的和為一個常數(shù),即iout1iout2常數(shù)。rfb:反饋電阻引出端,dac0832 內(nèi)部已經(jīng)有反饋電阻,所以 rfb 端可以直接接到外部運算放大器的輸出端,這樣相當于將一個

22、反饋電阻接在運算放大器的輸出端和輸入端之間。vref:參考電壓輸入端,此端可接一個正電壓,也可接一個負電壓,它決定 0 至 255 的數(shù)字量轉(zhuǎn)化出來的模擬量電壓值的幅度,vref 范圍為(+10-10)v。vref 端與 d/a 內(nèi)部 t 形電阻網(wǎng)絡(luò)相連。vcc:芯片供電電壓,范圍為(+5+15)v。agnd:模擬量地,即模擬電路接地端。vcc20iout111lsbdi07iout212di16di25rfb9di34di416vref8di515di614msbdi713ile19wr218cs1wr12xfer17u2dac0832智能信號發(fā)生器11dgnd:數(shù)字量地。dac0832 的

23、輸出是電流,使用運算放大器可以將其電流輸出線性地轉(zhuǎn)換成電壓輸出。根據(jù)運算放大器和 dac0832 的連接方法,運算放大器的輸出可以分為單極性和雙極性兩種。這里我采用雙極性方式(如圖 3-4 所示) 。vcc20iout111lsbdi07iout212di16di25rfb9di34di416vref8di515di614msbdi713ile19wr218cs1wr12xfer17u2dac083232184u3ane4558567u3bne4558vccr77.5kr515kr615kvcc圖 3-4 dac0832 雙極性電壓輸出電路3.3 鍵盤電路原理在單片機應(yīng)用系統(tǒng)中為了控制系統(tǒng)的工

24、作狀態(tài),以及向系統(tǒng)輸入數(shù)據(jù),應(yīng)用系統(tǒng)應(yīng)設(shè)有按鍵或鍵盤,實現(xiàn)簡單的人機會話。鍵盤是一組按鍵的組合,鍵通常是一種常開型按鈕開關(guān),平時鍵的兩個出點處于斷開狀態(tài),按下鍵時他們才閉合。從鍵盤的結(jié)構(gòu)來分類,鍵盤可以分為獨立式和矩陣式兩類,每一類按其識別方法又都可以分為編碼和未編碼鍵盤兩種。鍵盤上閉合鍵的識別由專門的硬件譯碼器實現(xiàn)并產(chǎn)生編號或鍵值的稱為編碼鍵盤,由軟件識別的稱未編碼鍵盤。在由單片機組成的測控系統(tǒng)及智能化儀器中,用得較多的是未編碼鍵盤,我這里也使用未編碼鍵盤。矩陣式未編碼鍵盤結(jié)構(gòu)的工作原理 如圖 3-5 所示是 4*4 的鍵盤接口,它是矩陣式的結(jié)構(gòu)。圖中鍵盤的行線(x0x3)與列線(y0y3)

25、的交叉處通過一個按鍵來聯(lián)通,行線通過電阻接+5v,當鍵盤上沒有鍵閉合時所有的行線和列線都斷開,則行線都呈高電平。當鍵盤上某一個鍵閉合時,則該鍵所對應(yīng)的行線和列線被短路。如果 x0、x1、x2、x3、都為高電平,則 y0 這一列上沒有鍵合。如果讀出的行線狀態(tài)不全為高電平,則為低電平的行線和 y0 相交的鍵處于閉合狀態(tài)。如果 y0 這一列上沒有鍵合,接著使列線 y1 為低電平,其余列線為高電平,用同樣方法檢查 y1 這一列上有無鍵閉合。依此類推,最后使列線 y3 為低電平,其余的列線為高電平,檢查 y3 這一列上是否有鍵閉合。這智能信號發(fā)生器12種逐行逐列地檢查鍵盤狀態(tài)的過程稱為對鍵盤的一次掃描。

26、cpu 對鍵盤掃描可以采取程序控制的隨機方式,cpu 空閑時掃描鍵盤;也可以采取定時控制方式,每隔一定時間,cpu 對鍵盤掃描一次,cpu 可隨時響應(yīng)鍵盤輸入請求;還可以采用中斷方式,當鍵盤上有鍵閉合時,向 cpu 請求中斷,cpu 響應(yīng)鍵盤輸入中斷,對鍵盤掃描,以識別哪一個鍵處于閉合狀態(tài),并對鍵輸入信息作出相應(yīng)處理。cpu 對鍵盤上閉合鍵的鍵號確定,可以根據(jù)行線和列線的狀態(tài)計算求得,也可以根據(jù)行線和列線狀態(tài)查表求得。x3x2x1x0y0y1y2y3 12840 139 5 1 14 10 6 2 15 11 7 3+5v圖 3-5 4*4 矩陣式未編碼鍵盤結(jié)構(gòu)圖根據(jù)我設(shè)計的電路特點,只需要用

27、到 4 個按鈕來選擇波形,實現(xiàn)的功能也比較簡單,所以我采用獨立式未編碼鍵盤結(jié)構(gòu)。鍵盤原理圖如圖 3-6 所示。圖 3-6 鍵盤原理圖s1sw-pbs2sw-pbs3sw-pbs4sw-pbr 41kr 31kr 21kr 11kvc c智能信號發(fā)生器13第 4 章 系統(tǒng)的軟件設(shè)計軟件設(shè)計上,根據(jù)功能分了幾個模塊編程。模塊主要有:主程序模塊、鋸齒波模塊、三角波模塊、正弦波模塊、方波模塊、延時子程序模塊等。顯示波形模塊是利用 dac0832 的 8 位特點,把波形的數(shù)據(jù)以 8 位數(shù)據(jù)的形勢送進 cpu 中,只要一按鍵就能顯示波形。4.1 主程序設(shè)計其主程序流程如圖 4-1 所示。 開始key1 按

28、下了嗎?輸出鋸齒波輸出三角波輸出正弦波輸出方波key2 按下了嗎?key3 按下了嗎?key4 按下了嗎?yyyynnnn圖 4-1 主程序流程圖本軟件設(shè)計過程中主要實現(xiàn)利用按鍵來控制不同波形的輸出,當按鍵 1 按下時,函數(shù)發(fā)生器就輸出鋸齒波;當按鍵 2 按下時,函數(shù)發(fā)生器就輸出三角波;智能信號發(fā)生器14當按鍵 3 按下時,函數(shù)發(fā)生器就輸出正弦波;當按鍵 4 按下時,函數(shù)發(fā)生器就輸出方波。通過按鍵可以以任意循環(huán)方式輸出不同波形。4.2 子程序流程圖 a=00ha 送到 0832 輸出a=a+1開始a=ffh?yn圖 4-2 鋸齒波流程圖鋸齒波產(chǎn)生將 00h 送入寄存器 a 中,dac0832

29、輸出 a 中的內(nèi)容,當 a 中的內(nèi)容等于 ffh 返回開始,當 a 中的內(nèi)容不為 ffh 時,a 中的內(nèi)容累加,從而輸出波形。開始a=00ha 送到 0832 輸出a=a+1a=00h?a=a-1a 送到 0832 輸出a=00h?nyyn智能信號發(fā)生器15圖 4-3 三角波流程圖三角波產(chǎn)生通過 a 中數(shù)值的加一遞升,當 a 中的內(nèi)容加到為 0 時, a 中的內(nèi)容減一遞減,從而循環(huán)產(chǎn)生三角波。三角波產(chǎn)生子程序如下:trian :mov a ,#00h mov dptr,#7fffhup: movx dptr,a inc a jnz up down: dec a movx dptr,a jnz

30、down ret正弦波程序流程圖如圖 4-4 所示 開始a=00ha=129?dptr1=dptr1+1a=正弦函數(shù)表數(shù)據(jù)a 送到 0832 輸出yn圖 4-4 正弦波程序流程圖正弦波波形設(shè)計通過查表指令得出。其產(chǎn)生子程序如下:sine: mov dptr1,#sintab mov dptr,#7fffh loop: clr a movc a,a+dptr1 cjne a,#129,loop1智能信號發(fā)生器16 retloop1: movx dptr,a inc dptr1 ajmp loopsintab:db 128,132,137,141,146,150,154,159,163,167 d

31、b 171,176,180,184,188,191,195,199,203,206 db 210,213,216,219,222,225,228,231,233,236 db 238,240,242,244,246,247,249,250,251,252 db 253,254,254,255,255,255,255,255,254,254 db 253,252,251,250,249,247,246,244,242,240 db 238,236,233,231,228,225,222,219,216,213 db 210,206,203,198,195,192,188,184,180,176

32、db 172,167,163,159,155,150,146,141,137,133 db 128,124,119,115,111,106,102,97,93,89,85 db 81,77,73,69,65,61,57,54,50,47,43,40,37 db 34,31,28,25,23,20,18,16,14,12,10,9,7 db 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6 db 7,9,10,12,14,16,18,20,23,25,28,30,33,36 db 40,43,46,50,53,57,60,64,68,72,76,80,84 db 88,93,9

33、7,101,106,110,114,119,123,128,129方波程序流程圖如圖 4-5 所示 開始a=00ha 送到 0832 輸出延時a=ffha 送到 0832 輸出延時智能信號發(fā)生器17圖 4-5 方波程序流程圖方波產(chǎn)生是當 a 中的內(nèi)容為 0 時,輸出對應(yīng)模擬量,然后延時,當 a 中的內(nèi)容為 0ffh 時,同樣輸出對應(yīng)模擬量,再延時,從而得到方波。方波產(chǎn)生子程序如下:squn:mov dptr,#7fffh mov a ,#0ffh movx dptr,a lcall delay mov a ,#00hmovx dptr,a lcall delay ret 延時子程序如下:del

34、ay: mov r7,#10hdly0: mov r6,#0edh nopdly1: djnz r6,dly1 djnz r7,dly0 ret方波的上限和下限的延時時間為:7mss=1+(1+1+2237+2)16+1=7648us智能信號發(fā)生器18第 5 章 系統(tǒng)調(diào)試與測試結(jié)果分析5.1 系統(tǒng)調(diào)試根據(jù)系統(tǒng)設(shè)計方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于在系統(tǒng)設(shè)計中采用模塊設(shè)計法,所以方便對各電路模塊功能進行逐級測試:led 驅(qū)動模塊的調(diào)試,數(shù)據(jù)存儲模塊的調(diào)試,pc 機通信模塊的調(diào)試等,最后將各模塊組合后進行整體測試。5.1.1 硬件調(diào)試對各個模塊的功能進行調(diào)試,主

35、要調(diào)試各模塊能否實現(xiàn)指定的功能。5.1.2 軟件調(diào)試軟件調(diào)試采用單片機仿真器 wave6000l 及微機,將編好的程序進行調(diào)試,主要是檢查語法錯誤。5.1.3 硬件軟件聯(lián)調(diào)試將調(diào)試好的硬件和軟件進行聯(lián)調(diào),主要調(diào)試系統(tǒng)的實現(xiàn)功能。5.2 測試結(jié)果在對系統(tǒng)進行波形仿真時可以在虛擬示波器上觀察到鋸齒波、三角波、正弦波和方波的波形。其中鋸齒波、三角波以及正弦波的輸出誤差較大,方波波形較為理想。這一方面與電路設(shè)置的參數(shù)有關(guān),另一方面也與使用的仿真軟件有關(guān)。對于上述問題的解決辦法是:改變仿真電路的參數(shù)或著換用版本較高的仿真軟件。當然一般產(chǎn)生這種情況的原因多由于電路的參數(shù)設(shè)計不合理所制。當按鍵 1 撥下時,

36、波形為鋸齒波,同時指示燈 1 發(fā)光。仿真圖如圖 5-1 所示。智能信號發(fā)生器19圖 5-1 鋸齒波仿真圖當按鍵 2 撥下時,波形為三角波,同時指示燈 2 發(fā)光。仿真圖如圖 5-2 所示。圖 5-2 三角波仿真圖當按鍵 3 撥下時,波形為正弦波,同時指示燈 3 發(fā)光。仿真圖如圖 5-3 所示。圖 5-3 正弦波仿真圖當按鍵 4 撥下時,波行為方波,同時指示燈 4 發(fā)光。仿真圖如圖 5-4 所示。智能信號發(fā)生器20圖 5-4 方波仿真圖智能信號發(fā)生器21結(jié) 論基于單片機的智能信號發(fā)生器設(shè)計,該課題的設(shè)計目的是充分運用大學(xué)期間所學(xué)的專業(yè)知識,考察現(xiàn)在正在使用的信號發(fā)生器的基本功能,完成一個基本的實際

37、系統(tǒng)的設(shè)計全過程。關(guān)鍵是這個實際系統(tǒng)設(shè)計的過程,在整個過程中我可以充分發(fā)揮單片機知識。特別是這個信號發(fā)生器的設(shè)計中涉及到一個典型的控制過程。通過單片機控制一個模數(shù)轉(zhuǎn)換器 dac0832 產(chǎn)生所需要的電流,然后使用運算放大器 ne4558 可以將其電流輸出線性地轉(zhuǎn)換成電壓輸出,通過程序的控制,可以產(chǎn)生一系列有規(guī)律的波形。這樣一個信號發(fā)生裝置在控制領(lǐng)域有相當廣泛的應(yīng)用范圍。此設(shè)計方案硬件較為簡單,主要是由單片機跟 dac08322 個芯片構(gòu)成,連線也較簡便。鍵盤電路用的獨立未編碼結(jié)構(gòu),一個鍵控制一個波形。顯示電路主要是由發(fā)光二極管構(gòu)成,利用發(fā)光二極管的導(dǎo)通即發(fā)光的特性來顯示是哪個波形的輸出,簡單易

38、懂。軟件程序方面較為復(fù)雜一點,此方案主要是靠程序的控制,主要由 4 個波形產(chǎn)生的子程序加上有承上啟下作用的主程序構(gòu)成,程序思路還是比較清晰。其中正弦波的程序較為繁瑣,因為是通過查表指令產(chǎn)生的,所以要列出個含有較多字符的表格。當然還是存在不足的地方,比如不能實現(xiàn)頻率與幅度的可調(diào),顯示電路跟鍵盤電路有待進一步改進。智能信號發(fā)生器22參考文獻1 吳杰.基于 isp 技術(shù)的電子公告牌系統(tǒng)j.科技資訊 2008.no.14:83-87.2 楊恢先,黃輝先.單片機原理及應(yīng)用m.人民郵電出版社,2006.3 李川,汪秋蒙.isp 技術(shù)的原理及實現(xiàn)方法j.科技資訊.2007,35 期:93-94.4 萬光毅.

39、單片機實驗與實踐教程m.北京航空航天大學(xué)出版社.2005.1.5 張毅剛.單片機原理及應(yīng)用m.高等教育出版社.2003:160-190.6 曾一江.單片機微機原理與接口技術(shù)m.科學(xué)出版社,2006.7 王新強.基于 at89s52 的智能信號發(fā)生器j.河南機電高等??茖W(xué)校學(xué)報,2006,14(3):37-39.8 馬忠梅.單片機的 c 語言應(yīng)用程序設(shè)計m.北京:北京航空航天大學(xué)出版社.20069 康華光,陳大欽.電子技術(shù)基礎(chǔ)m.高等教育出版社,1998.10周潤景.基于 proteus 的電路與單片機仿真系統(tǒng)設(shè)計與仿真m.北京航空航天大學(xué)出版社. 2005.智能信號發(fā)生器23附錄 1 程序ke

40、y1 bit p1.0key2 bit p1.1key3 bit p1.2key4 bit p1.3;按鍵 key1:鋸齒波 按鍵 key2:三角波 按鍵 key3: 正弦波 ;按鍵 key4: 方波; org 0000h ljmp main org 0030hmain:mov sp,#50hscan_key1:mov a,p1 anl a,#0fh cjne a,#0eh,scan_key2 ljmp b1scan_key2:mov a,p1 anl a,#0fh cjne a,#0dh,scan_key3 ljmp b2scan_key3:mov a,p1 anl a,#0fh cjne

41、a,#0bh,scan_key4 ljmp b3scan_key4:mov a,p1 anl a,#0fh cjne a,#07h,scan_key1 ljmp b4;利用 dac0832 產(chǎn)生鋸齒波;b1:clr p1.4 setb p1.5 setb p1.6 setb p1.7santoo:mov a ,#00h mov dptr,#7fffhlloop:movx dptr,a inc a cjne a,#0ffh,lloop ljmp scan_key1;利用 dac0832 產(chǎn)生三角波;b2: clr p1.5 setb p1.4 setb p1.6 setb p1.7trian:mov a ,#00h mov dptr,#7fffhup: movx dptr,a inc a jnz up down: dec a movx dptr,a jnz down ljmp scan_key2;利用 dac0832 產(chǎn)生正弦波;在表格里取數(shù)送到指定地址b3: clr p1.6 setb p1.4 setb p1.5 setb p1.7sine: mov dptr,#7

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論