基于單片機控制的多波形信號發生器設計與實現論文_第1頁
基于單片機控制的多波形信號發生器設計與實現論文_第2頁
基于單片機控制的多波形信號發生器設計與實現論文_第3頁
基于單片機控制的多波形信號發生器設計與實現論文_第4頁
基于單片機控制的多波形信號發生器設計與實現論文_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、報告題目:多波形信號發生器設計與實現 指導教員對畢業設計報告的評語: 指導教員: 日期: 年 月 日 室級答辯評語及成績: 答辯組負責人: 日期: 年 月 日 專業系意見: 專業系領導: 日期: 年 月 日 院級答辯評語及成績 答辯組負責人: 日期: 年 月 日 摘 要 本系統是基于 at89c52 單片機的數字式低頻信號發生器。采用 at89c52 單片機作為控制核心,外圍采用數字/模擬轉換電路 (dac0832) 、穩壓電路(mc1403) 、運放電路(lm324) 、按鍵和八位數 碼管等。通過按鍵控制可產生方波、三角波、正弦波等,同時用數碼管 指示其對應的頻率。其設計簡單、性能優良,可用

2、于多種需要低頻信號 源的場所,具有一定的實用性。 關鍵詞:單片機;信號發生器;d/a 轉換 abstract the system is a digital signal generator based on single chip computer. at89c52 is used as a control microcontroller core. the system is composed by digital/analog conversion(dac0832), regulator circuit(mc1403), imply circuit (lm324) ,button and

3、 nixie tube .it can generate the square, triangle and sine wave, with nixie tube . the system can be used for a signal source in the low-frequency signal source. it is very practical. keyword:the single chip computer; the signal generator; d/ a conversion 目 錄 1.緒論 .5 1.1 信號發生器現狀 .5 1.2 單片機在低頻信號發生器中的

4、應用 .5 2.系統設計 .7 2.1 系統方案的比較 .7 2.2 控制芯片的選擇 .8 3.硬件電路的設計 .8 3.1 基本原理: .8 3.2 單片機的介紹及資源分配: .10 3.3 各部分電路原理.14 4.軟件設計 .20 4.1 主程序流程圖 .20 4.2 子程序流程圖.21 5.測試結論 .25 5.1 軟件仿真結果 .25 5.2 硬件測試結果.27 致謝 .28 參考文獻 .29 附錄 1 電路原理圖 .30 附錄 2 程序清單.31 附錄 3 proteus 仿真系統簡介. .35 多波形信號發生器設計與實現 1.緒論 1.1 信號發生器現狀 波形發生器亦稱函數發生器

5、,作為實驗用信號源,是現今各種電子 電路實驗設計應用中必不可少的儀器設備之一。目前,市場上常見的波 形發生器多為純硬件的搭接而成,且波形種類有限,多為鋸齒、正弦、 方波、三角等波形。 信號發生器作為一種常見的應用電子儀器設備,傳統的可以完全由 硬件電路搭接而成,如采用 555 振蕩電路發生正弦波、三角波和方波的 電路便是可取的路徑之一,不用依靠單片機。但是這種電路存在波形質 量差,控制難,可調范圍小,電路復雜和體積大等缺點。在科學研究和 生產實踐中,如工業過程控制,生物醫學,地震模擬機械振動等領域常 常要用到低頻信號源。而由硬件電路構成的低頻信號其性能難以令人滿 意,而且由于低頻信號源所需的

6、rc 很大;大電阻,大電容在制作上有 困難,參數的精度亦難以保證;體積大,漏電,損耗顯著更是其致命的 弱點。一旦工作需求功能有增加,則電路復雜程度會大大增加。 1.2 單片機在低頻信號發生器中的應用 當今是科學技術及儀器設備高度智能化飛速發展的信息社會,電子 技術的進步,給人們帶來了根本性的轉變。現代電子領域中,單片機的 應用正在不斷的走向深入,這必將導致傳統控制與檢測技術的日益革新。 單片機構成的儀器具有高可靠性、高性能價格比,在智能儀表系統和辦 公自動化等諸多領域得以極為廣泛的應用,并走入家庭,從洗衣機、微 波爐到音響汽車,處處可見其應用。因此,單片機技術開發和應用水平 已逐步成為一個國家

7、工業發展水平的標志之一。 一塊單片機芯片就是一臺計算機。由于單片機的這種特殊的結構形 式,在某些應用領域中,它承擔了大中型計算機和通用微型計算機無法 完成的一些工作。使其具有很多顯著的優點和特點,因此在各個領域中 都得到了迅猛的發展。單片機的特點歸納起來有以下幾個方面。 (1)具有優異的性能價格比 單片機盡可能地把應用所需的存儲器,各種功能的 i/o 接口集成在 一塊芯片內,因而其性能很高,而價格卻相對較低廉,即性能價格比很高。 (2)集成度高、體積小、可靠性高 單片機把各種功能部件集成在一塊芯片上,因而集成度高,均為大 規模或超大規模集成電路。又內部采用總線結構,減少了芯片之間的連 線,這大

8、大提高了單片機的可靠性與抗干擾能力。同時,其體積小,對 于強磁場環境易于采取屏蔽措施,適合于在惡劣環境下工作。 (3)控制功能強 單片機體積雖小,但“五臟俱全” ,它非常適用于專門的控制用途。 為了滿足工業控制要求,一般單片機的指令系統中有極豐富的轉移指令, i/o 口的邏輯操作指令以及位操作指令。其邏輯控制功能及運行速度均 高于同一檔次的微機。 (4)低電壓、低功耗 單片機大量用于攜帶式產品和家用消費類產品,低電壓和低功耗尤 為重要。目前,許多單片機已可在 2.2v 電壓下運行,有的已能在 1.2v 或 0.9v 下工作,功耗降至 a 級,一粒鈕扣電池就可長期使用。 利用單片機采用程序設計方

9、法來產生低頻信號,其下限頻率很低。 具有線路相對簡單,結構緊湊,價格低廉,頻率穩定度高,抗干擾能力 強,用途廣泛等優點,并且能夠對波形進行細微調整,改良波形,使其 滿足系統的要求。只要對電路稍加修改,調整程序,即可完成功能升級。 這里介紹一種采用 at89c52 單片機和一片 dac0832 數模轉換器做成 的數字式低頻信號發生器,它的特點是價格低、性能高,在低頻范圍穩 定性好、操作方便、體積小、耗電少等。 信號發生器與其它相比還具有如下優點:較分立元件信號發生器 而言,具有頻率高,工作穩定,容易調試等特性;較專用 dds 芯片的 信號發生器而言,具有結構簡單,成本低等特性。 2.系統設計 2

10、.1 系統方案的比較 方案一:采用函數信號發生器 icl8038 集成模擬芯片,(如圖 2-1) 它是一種可以同時產生方波、三角波、正弦波的專用集成電路。但是這 種模塊產生的波形都不是純凈的波形,會寄生一些高次諧波分量,采用 其他的措施雖可濾除一些,但不能完全濾除掉。 方案二:采用分立元件實現非穩態的多諧振振蕩器,然后根據需要 加入積分電路等構成正弦、矩形、三角等波形發生器。這種信號發生器 輸出頻率范圍窄,而且電路參數設定較繁瑣,其頻率大小的測量往往需 要通過硬件電路的切換來實現,操作不方便。 方案三:采用單片機和 dac0832 數模轉換器生成波形,由于是軟件 濾波,所以不會有寄生的高次諧波

11、分量,生成的波形比較純凈。它的特 點是價格低、性能高,在低頻范圍內穩定性好、操作方便、體積小、耗 電少。 經比較,方案三既可滿足畢業設計的基本要求又能充分發揮其優勢, 電路簡單,易控制,性價比較高,所以采用該方案。 2.2 控制芯片的選擇 圖 2-1 方案一方框圖 d/a 鍵 盤單片機 icl8038 運算電路 顯 示 d/a 輸出 方案一:at89c52 單片機是一種高性能 8 位單片微型計算機。它把 構成計算機的中央處理器 cpu、存儲器、寄存器、i/o 接口制作在一塊 集成電路芯片中,從而構成較為完整的計算機。 方案二:c8051f005 單片機是完全集成的混合信號系統級芯片,具 有與

12、at80c52 兼容的微控制器的內核,與 mcs-51 指令集完全兼容。除 了具有標準 at80c52 的數字外設部件之外,片內還集成了數據采集和控 制系統中常用的模擬部件和其他數字外設及功能部件。 方案選擇:方案二中 c8051f005 芯片系統內部結構復雜,不易控制, 芯片成本高,對于本系統而言利用率低,at89c52 芯片比較常用,簡單 易控制,成本低,性能穩定故采用方案一。 3.硬件電路的設計 3.1 基本原理 系統框圖如圖 3-1 所示。 圖 3-1 低頻信號發生器系統框圖 低頻信號發生器系統主要由 cpu、d/a 轉換電路、基準電壓電路、 電流/電壓轉換電路、按鍵和波形指示電路、電

13、源等電路組成。 其工作原理為當分別按下四個按鍵中的任一個按鍵就會分別出現方 波、鋸齒波、三角波、正弦波,并且有四個發光二極管分別作為不同的 波形指示燈。 3.2 單片機的介紹及資源分配 3.2.1 單片機的介紹 (1)最小單片機系統 at89c52 的引腳圖如圖 3-2 所示 圖3-2 at89c52引腳圖 管腳說明 低頻信號發生器采用 at89c52 單片機作為控制核心,其內部組成包 括:一個 8 位的微處理器 cpu 及片內振蕩器和時鐘產生電路,但石英晶 體和微調電容需要外接;片內數據存儲器 ram 低 128 字節,存放讀/寫 數據;高 128 字節被特殊功能寄存器占用;片內程序存儲器

14、4kb rom; 四個 8 位并行 i/o(輸入/輸出)接口 p3 -p0,每個口可以用作輸入, 也可以用作輸出;兩個定時/計數器,每個定時/計數器都可以設置成計 數方式,用以對外部事件進行計數,也可以設置成定時方式,并可以根 據計數或定時的結果實現計算機控制;五個中斷源的中斷控制系統;一 個全雙工 uart(通用異步接收發送器)的串行 i/o 口。 vcc:供電電壓。 gnd:接地。 rst:復位輸入。當振蕩器復位器件時,要保持 rst 腳兩個機器周 期的高電平時間。 ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖 存地址的地位字節。在 flash 編程期間,此引腳用于輸

15、入編程脈沖。在 平時,ale 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率 的 1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意 的是:每當用作外部數據存儲器時,將跳過一個 ale 脈沖。如想禁止 ale 的輸出可在 sfr8eh 地址上置 0。此時, ale 只有在執行 movx,movc 指令是 ale 才起作用。另外,該引腳被略微拉高。如果微處 理器在外部執行狀態 ale 禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期 間,每個機器周期兩次/psen 有效。但在訪問外部數據存儲器時,這兩 次有效的/psen 信號將不出現。 /ea/

16、vpp:當/ea 保持低電平時,則在此期間外部程序存儲器 (0000h-ffffh) ,不管是否有內部程序存儲器。注意加密方式 1 時, /ea 將內部鎖定為 reset;當/ea 端保持高電平時,此間內部程序存儲器。 在 flash 編程期間,此引腳也用于施加 12v 編程電源(vpp) 。 xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 89s52 單片機外部有 32 個端口可供用戶使用,其功能如下: 表 3-1 89c52 并行 i/o 接口 p0 口:p0 口為一個 8 位漏級開路雙向 i/o 口,每腳可吸收 8ttl 門 電流。當 p1

17、 口的管腳第一次寫 1 時,被定義為高阻輸入。p0 能夠用于 外部程序數據存儲器,它可以被定義為數據/地址的第八位。在 fiash 第一功能第二功能端口引腳 位置 符號 功能符號功能 p039-32p0.0-p0.7 通用 i/0 口 ad0-ad7 地址數據總線 p11-8p1.0-p1.7 通用 i/0 口 p221-28p2.0-p2.7 通用 i/0 口 a8-a15 地址總線(高位) 10p3.0rxd 串行通信發送口 11p3.1txd 串行通信接收口 12p3.2int0 外部中斷 0 13p3.3int1 外部中斷 1 14p3.4t0 計數器 0 輸入端口 15p3.5t1

18、計數器 1 輸入端口 16p3.6wr 外部存儲器寫功能 p3 17p3.7 通用 i/0 口 rd 外部存儲器讀功能 編程時,p0 口作為原碼輸入口,當 fiash 進行校驗時,p0 輸出原碼, 此時 p0 外部必須被拉高。 p1 口:p1 口是一個內部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩 沖器能接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內部上拉為高, 可用作輸入,p1 口被外部下拉為低電平時,將輸出電流,這是由于內部 上拉的緣故。在 flash 編程和校驗時,p1 口作為第八位地址接收。 p2 口:p2 口為一個內部上拉電阻的 8 位雙向 i/o 口,p2 口緩

19、沖器 可接收,輸出 4 個 ttl 門電流,當 p2 口被寫“1”時,其管腳被內部上 拉電阻拉高,且作為輸入。并因此作為輸入時,p2 口的管腳被外部拉低, 將輸出電流。這是由于內部上拉的緣故。p2 口當用于外部程序存儲器或 16 位地址外部數據存儲器進行存取時,p2 口輸出地址的高八位。在給 出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器 進行讀寫時,p2 口輸出其特殊功能寄存器的內容。p2 口在 flash 編程 和校驗時接收高八位地址信號和控制信號。 p3 口:p3 口管腳是 8 個帶內部上拉電阻的雙向 i/o 口,可接收輸 出 4 個 ttl 門電流。當 p3 口寫入“1

20、”后,它們被內部上拉為高電平, 并用作輸入。作為輸入,由于外部下拉為低電平,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(外部數據存儲器寫選通) p3.7 /rd(外部數據存儲器讀選通) p3 口同時為閃爍編程和編程校驗接收一些控制信號。 at89c52 的晶振及其連接方法

21、 cpu 工作時都必須有一個時鐘脈沖。有兩種方式可以向 89s52 提供 時鐘脈沖:一是外部時鐘方式,即使用外部電路向 89s52 提供始終脈沖, 見圖 3-3-(a);二是內部時鐘方式,即使用晶振由 89s52 內部電路產生 時鐘脈沖。一般常用第二種方法,其電路見圖 3-3-(b)。 圖 3-3 89c52 的時鐘脈沖 圖 33 中:j 一般為石英晶體,其頻率由系統需要和器件決定,在 頻率穩定度要求不高時也可以使用陶瓷濾波器。 c1、c2:使用石英晶體時,c1=c2=30(10)pf 使用陶瓷濾波器時,c1=c2=40(10)pf at89c52 的復位 使 cpu 開始工作的方法就是給 c

22、pu 一個復位信號,cpu 收到復位信 號后將內部特殊功能寄存器設置為規定值,并將程序計數器設置為 “0000h” 。復位信號結束后,cpu 從程序存儲器“0000h”處開始執行程 序。89s52 為高電平復位,一般有 3 種復位方法。 上電復位。接通電源時 手動復位。設置一個復位按鈕,當操作者按下按鈕時產生一個 復位信號。 自動復位。設計一個復位電路,當系統滿足某一條件時自動產 生一個復位信號。 圖 3-4 為最簡單的上電復位和手動復位方法。 89c52 xtal2 xtal1 89c52 xtal2 xtal1 圖 3-4 89c52 的復位電路 關于 cpu 的復位電路應當注意,在調試單

23、片機程序時有兩種工作方 式。一是仿真器方式,主要用于調試程序。此時程序的執行由仿真器控 制,復位電路不起作用,系統時鐘也經常設置為仿真器產生,此時用戶 的晶振也不起作用。二是用戶方式,即脫離仿真器的實際工作方式,用 戶的時鐘振蕩電路和復位電路都必須正常工作。因此,如果系統復位電 路或晶振電路有故障,就會出現仿真器方式工作正常,而用戶方式不工 作的現象,這是許多初學者常遇到的問題。 芯片擦除 整個 perom 陣列和三個鎖定位的電擦除可通過正確的控制信號組合, 并保持 ale 管腳處于低電平 10ms 來完成。在芯片擦操作中,代碼陣列 全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被

24、執 行。 此外,at89c52 設有穩態邏輯,可以在低到零頻率的條件下靜態邏 輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu 停止工作。但 ram,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保 存 ram 的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬 件復位為止。 89c52 3.2.2 資源分配 軟、硬件設計是設計中不可缺少的,為了滿足功能和指標的要求, 資源分配如下 1.晶振采用 12mhz; 2.內存分配 p1 口的 p1.0-p1.3 分別與四個按鍵連接,分別控制鋸齒波、三角波、 正弦波和方波,p1.4-p1.7 與四個發光二極管相連,按鍵一對應發光二極

25、管一,依次類推,發光二極管四對應按鍵四,實現輸出一個波形對應亮 一個燈。 p0 口與 dac0832 的 di0-di7 數據輸入端相連。 p2 口用來控制 dac0832 的輸入寄存器選擇信號 cs、輸入寄存器寫 選通信號 wr1 及 dac 寄存器寫選通信號 wr2 和數據傳送信號 xfer。 3.3 各部分電路原理 (a)dac0832 芯片原理 管腳功能介紹(如圖 3-5 所示) 圖 3-5 dac0832 管腳圖 (1) di7di0:8 位的數據輸入端,di7為最高位。 (2) iout1:模擬電流輸出端 1,當 dac 寄存器中數據全為 1 時,輸出電 流最大,當 dac 寄存器

26、中數據全為 0 時,輸出電流為 0。 (3) iout2:模擬電流輸出端 2, iout2與 iout1的和為一個常數,即 iout1iout2常數。 (4) rfb:反饋電阻引出端,dac0832 內部已經有反饋電阻,所以 rfb端 可以直接接到外部運算放大器的輸出端,這樣相當于將一個反饋電阻接 在運算放大器的輸出端和輸入端之間。 (5) vref:參考電壓輸入端,此端可接一個正電壓,也可接一個負電壓, 它決定 0 至 255 的數字量轉化出來的模擬量電壓值的幅度,vref范圍為 (+10-10)v。vref端與 d/a 內部 t 形電阻網絡相連。 (6) vcc:芯片供電電壓,范圍為(+5

27、 15)v。 (7) agnd:模擬量地,即模擬電路接地端。 (8) dgnd:數字量地。 當 wr2 和 xfer 同時有效時,8 位 dac 寄存器端為高電平“1” ,此時 dac 寄存器的輸出端 q 跟隨輸入端 d 也就是輸入寄存器 q 端的電平變化; 反之,當端為低電平“0”時,第一級 8 位輸入寄存器 q 端的狀態則鎖 存到第二級 8 位 dac 寄存器中,以便第三級 8 位 dac 轉換器進行 d/a 轉 換。 一般情況下為了簡化接口電路,可以把 wr2 和 xfer 直接接地,使 第二級 8 位 dac 寄存器的輸入端到輸出端直通,只有第一級 8 位輸入寄 存器置成可選通、可鎖存

28、的單緩沖輸入方式。 特殊情況下可采用雙緩 沖輸入方式,即把兩個寄存器都分別接成受控方式 制作低頻信號發生器有許多方案:主要有單緩沖方式,雙緩沖方式 和直通方式。 單緩沖方式具有適用于只有一路模擬信號輸出或幾路模擬信號非同 步輸出的情形的優點,但是電路線路連接比較簡單。而雙緩沖方式適用 于在需要同時輸出幾路模擬信號的場合,每一路模擬量輸出需一片 dac0832 芯片,構成多個 dac0832 同步輸出電路,程序簡單化,但是電 路線路連接比較復雜。根據以上分析,我們的課題選擇了單緩沖方式使 用方便,程序簡單,易操作。 工作原理 dac0832 主要由 8 位輸入寄存器、8 位 dac 寄存器、8

29、位 d/a 轉換 器以及輸入控制電路四部分組成。8 位輸入寄存器用于存放主機送來的 數字量,使輸入數字量得到緩沖和鎖存,由加以控制;8 位 dac 寄存器 用于存放待轉換的數字量,由加以控制;8 位 d/a 轉換器輸出與數字量 成正比的模擬電流;由與門、非與門組成的輸入控制電路來控制 2 個寄 存器的選通或鎖存狀態。 dac0832 與反相比例放大器相連,實現電流到電壓的轉換,因此輸 出模擬信號的極性與參考電壓的極性相反,數字量與模擬量的轉換關系 為 vout1=-vref(數字碼/256) 若 d/a 轉換器輸出為雙極性,如圖 3-6 所示。 圖 3-6 d/a 轉換器雙極性輸出電路 圖 3

30、-7 中,運算放大器 a2的作用是把運算放大器 a1的單向輸出電 壓轉換成雙向輸出電壓。其原理是將 a2的輸入端 通過電阻 r1與參考 電壓 vref相連,vref經 r1向 a2提供一個偏流 i1,其電流方向與 i2相反, 因此運算放大器 a2的輸入電流為 i1、i2之代數和。則 d/a 轉換器的總輸 出電壓為: vout2= -(r3/r2) vout1+(r3/r1) vref 設 r1=r3=2r r2=r,則 iout1 iout2 vfb da c0832 u1 5 6 7 b 10 9 8 c r2=r r1=2r r3=2r r vout2 vref=(字字 字-128)/12

31、8 +5v vout1 i1 i2 vout2= -(2vout1+vref) dac0832 主要是用于波形的數據的傳送,是本題目電路中的主要芯 片。 dac0832 電路原理圖(如圖 3-7 所示) 圖 3-7 dac0832 電路原理圖 (b) lm324 工作原理 (管腳功能如圖 3-8 所示) 圖 3-8 lm324 管腳圖 lm324 時四運放集成電路 ,它采用 14 腳雙烈直插塑料封袋,外形 如圖 1 所示。他的內部包含四組形式完全相同的運算放大器,除電源共 用外,四組運放相互獨立。每一組運算放大器可用圖中所示的符號來表 示,它有 5 個引出腳,其中“+” 、 “-”為兩個信號輸

32、入端, “v+” 、 “v- ”為正、負電源端, “out”為輸出端。兩個信號輸入端中, “-”為反相 輸入端,表示運放輸出端 out 的信號與該輸入端的為相反;“+”為同 相輸入端,表示運放輸出端 out 的信號與輸入端的相位相同。lm324 的 引腳排列見圖 9。 由于 lm324 四運放電路具有電源電壓范圍寬,靜態功耗小,可但電 源使用,價格低廉等優點,因此被廣泛應用在各種電路中。 在此項目中用了 lm324 的三組運放,分別置于第一級輸出,第一、 二級之間,第二級輸出。 (c)mc1403 工作原理 (管腳功能如圖 3-9 所示) 圖 3-9 mc1403 管腳圖 mc1403 是低壓

33、基準芯片。一般用作 8 到 12bit 的 d/a 芯片的基準電 壓等一些需要基本精準的基準電壓的場合。 輸出電壓:2.5v+/-25mv 輸入電壓范圍:4.5vto40v 輸出電流:10ma 因為輸出是固定的,所以電路很簡單。就是 vin 接電源輸入,gnd 接地,vout 加一個 0.1uf 到 1uf 的電容就可以了。vout 一般用于 8 到 12bit 的 d/a 芯片的基準電壓。 在此項目里 mc1403 起到了穩壓的作用,它基準了 dac0832 的 8 腳 需要的 2.5v。使其 dac0832 能夠正常工作。 4.軟件設計 單片機技術比較成熟,開發過程可利用的資源和工具豐富,

34、最大的 優點是價格便宜,成本低。調試軟件采用 keil51.keiluvison 是眾多單 片機應用開發軟件中優秀軟件之一,界面友好,易寫易操作。在調試程 序中,軟件仿真 protues 功能也很強,軟件調通,再通過編程器下載到 at89s52 中,然后插到系統中即可獨立完成所有的控制。 軟件設計上,根據功能分了幾個模塊編程。模塊主要有:主程序模 塊、三角波模塊、正弦波模塊、方波模塊、延時子程序模塊等。 顯示波形模塊是利用 dac0832 的 8 位特點,把波形的數據以 8 位數 據的形勢送進 cpu 中,只要一按鍵就能顯示波形。 4.1 主程序流程圖 如圖 4-1 所示。 y n y n y

35、 圖 4-1 主程序流程圖 本軟件設計過程中主要實現利用按鍵來控制不同波形的輸出,當按 鍵 1 第一次按下時,函數發生器就輸出方波;當按鍵 1 第二次按下時, 函數發生器就輸出三角波;當按鍵 1 第三次按下時,函數發生器就輸出 正弦波。通過按鍵可以以任意循環方式輸出不同波形。按鍵 2 與按鍵 3 開開 始始 key1 第一次按下第一次按下 key1key1 第二次按下第二次按下 key1key1 第三次按下第三次按下 輸出方波輸出方波 輸出三角波輸出三角波 輸出正弦波輸出正弦波 分別是波形頻率的調節按鈕。按鍵 4 是控制數碼管顯示當前波形頻率的 控制按鈕。 4.2 子程序流程圖 1 方波程序流

36、程圖 如圖 4-2 所示。 圖 4-2 方波流程圖 方波產生首先將 dac0832 口地址至為 4000h,當 a 中的內容為 0 時, 輸出對應模擬量,然后延時,當 a 中的內容為 0ffh 時,同樣輸出對應 模擬量,再延時,從而得到方波。 2 三角波程序流程圖 如圖 4-3 所示。 4-3 三角波流程圖 三角波產生首先將 dac0832 口地址至為 4000h,通過 a 中數值的加 一遞升,當 a 中的內容為 0 時,與 0ffh 相比,相等時 a 中的內容減一 遞減,從而循環產生三角波。 3 正弦波程序流程圖 如圖 4-4 所示。 圖 4-4 正弦波流程圖 正弦波波形設計通過查表指令得出

37、。 4 延時子程序流程圖 如圖 4-5 所示。 圖 4-5 延時程序流程圖 延時程序如下: dely: mov r7,#10h dly0: mov r6,#0edh nop dly1: djnz r6,dly1 djnz r7,dly0 ret 方波的上限和下限的延時時間為:7ms s=1+(1+1+2237+2)16+1=7648s 5.測試結論 在確定編程思路以后將各部分的程序及各子程序編好,使用 keil 進 行編譯,根據提示的錯誤對程序進行修改。除了語法差錯和邏輯差錯外, 當確認程序沒問題時,通過直接加載到 protues 軟件電路中進行仿真。 5.1 仿真波形 1 當按鍵 1 第一次

38、按下時,波形為方波。仿真圖如圖 5-1 所示。 圖 5-1 方波仿真圖 2 當按鍵 1 第二次撥下時,波形為三角波。仿真圖如圖 5-2 所示。 圖 5-2 三角波仿真圖 3 當按鍵 1 第三次按下時,波形為正弦波。仿真圖如圖 5-3 所示。 圖 5-3 正弦波仿真圖 4 當按鍵 2 或按鍵 3 按下時,即本信號發生器的頻率調節按鍵按下時, 可以對頻率進行上調和下調,以便實現各頻率波形的輸出。 5 當按鍵 5 長按時,本信號發生器數碼管會顯示當前輸出波形的頻率, 以便使用者知曉輸出頻率。如圖 5-4 所示。 圖 5-4 數碼管顯示圖 5.2 波形分析 在對系統進行波形仿真時可以在虛擬示波器上觀察

39、到三角波、正弦 波和方波的波形。其中三角波以及正弦波的輸出有一定誤差,方波波形 較為理想。這一方面與電路設置的參數有關,另一方面也與使用的仿真 軟件有關。對于上述問題的解決辦法是:改變仿真電路的參數或著換用 版本較高的仿真軟件。當然一般產生這種情況的原因多由于電路的參數 設計不合理所制。但從仿真波形上可以看出輸出波形的頻率大致與程序 中的設置吻合。波形的幅度與程序設置的最大值有關,而頻率受機器周 期的控制。當仿真時,由于存在一定的系統誤差,波形效果不是很好。 致 謝 首先非常感謝學校能開設這個課題,為本人日后從事單片機及電路 設計方面的工作提供了經驗,奠定了基礎。 本次畢業設計大概持續了半年的

40、時間,現在終于到結尾了。剛拿到 這個課題時,覺得這個課題比較難。今天回過去看看,卻十分的欣慰, 因為通過我們的努力終于完成了。雖然這不是我讀大學以來第一次寫論 文,但卻是花費心血最多的一次,這是對我大學四年學習下來最好的檢 驗。經過這次畢業設計,我的能力有了很大的提高,比如操作能力、分 析問題的能力、合作精神、嚴謹的工作作風等方方面面都進步了。這期 間凝結了很多人的心血,在此我表示由衷的感謝。沒有他們的幫助,我 將無法順利完成這次設計。 我要特別感謝汪小會老師對我的悉心指導,在設計期間汪老師幫助 我收集文獻資料,理清設計思路,指導操作方法,并對我所做的課題提 出有效的改進方案。老師淵博的知識、

41、嚴謹的作風、誨人不倦的態度和 學術上精益求精的精神讓我受益終生。 學校在這方面也給我們提供了很大的支持和幫助,學校領導比較重 視,給我們安排了較多的上機次數和足夠的計算機,讓我們有盡可能多 的時間上機查找資料。對于學校和老師為我的畢業設計所提供的極大幫 助和關心,在此我致以衷心的感謝! 參考文獻 1 孫俊逸,盛秋林,張錚等.單片機原理及應用m.北京:清華大學 出版社,2001. 2 蔡美琴.mcs-51 系列單片機系統及其應用m.北京:高等教育出版 社,2000. 3 孫育才,孫華芳,王榮興.單片機原理及應用m.北京:電子工業 出版社,2003. 4 李鴻.單片機原理及應用m.湖南:湖南大學出

42、版社,2004. 5 丁元杰.單片微機原理及應用.第二版m.北京:機械工業出版社, 2001. 6 潘新民 王燕芳 編著.微型計算機控制技術. 北京:高等教育出版 社,2004. 7 馬忠梅.單片機的 c 語言應用程序設計m.北京:北京北航出版社, 2003. 8 范立南. 單片微機接口與控制技術m. 沈陽:遼寧大學出版社, 1996.69-77. 9 張友德. 單片微型機原理、應用與實踐m. 上海:復旦大學出版 社,1992.73-81. 10 李華. mcs-51 系列單片機實用接口技術m. 北京:北京航空航天 大學出版社,1993.23-31. 11 何希慶,高偉. mcs-51 單片機

43、原理、實驗、實例m. 山東:山東 大學出版社,1989.124-136. 12 張毅剛,彭喜元,姜守達. 新編 mcs-51 單片機應用設計m. 哈 爾濱:哈爾濱工業大學出版社,2003.153-168. 13 胡漢才. 單片機原理及接口技術m. 北京:清華大學出版社, 1996,6678. 14 陸子明,徐長根. 單片機設計與應用基礎教程.北京:國防工業出 版社,2005.1 15 劉守義.單片機應用技術.西安:西安電子科技大學出版社,2002. 8 附錄 1 電路原理圖 附錄 2 程序清單 key1 bit p1.0 key2 bit p1.1 key bit p1.2 key4 bit

44、p1.3 org 0000h ljmp main org 0030h main:mov sp,#50h mov dptr,#7fffh mov p2,#00h mov a,#00h movx dptr,a scan_key1:mov a,p1 anl a,#0fh cjne a,#0eh,scan_key2 ljmp b1 scan_key2:mov a,p1 anl a,#0fh cjne a,#0dh,scan_key3 ljmp b2 scan_key3:mov a,p1 anl a,#0fh cjne a,#0bh,scan_key4 ljmp b3 scan_key4:mov a,p

45、1 anl a,#0fh cjne a,#07h,scan_key1 ljmp b4 b1:clr p1.4 setb p1.5 setb p1.6 setb p1.7 lp: mov a,#00h mov dptr,#4000h movx dptr,a lp1: inc a mov p2,a cjne a,#0ffh,lp1 ljmp scan_key1 b2: clr p1.5 setb p1.4 setb p1.6 setb p1.7 up: mov a,#00h up1: inc a mov p2,a nop nop cjne a,#0f0h,up1 down:dec a mov p2

46、,a nop nop cjne a,#00h,down ljmp scan_key2 b3: mov r1,#00h ;取表格初值 loop1:clr p1.6 setb p1.4 setb p1.5 setb p1.7 mov a,r1 mov dptr,#settab movc a,a+dptr mov dptr,#4000h movx dptr,a mov p2,a inc r1;表格加一 cjne r1,#0ffh,loop1 settab: db 80h,83h,86h,89h,8dh,90h,93h,96h db 99h,9ch,9fh,0a2h,0a5h,0a8h,0abh,0a

47、eh db 0b1h,0b4h,0b7h,0bah,0bch,0bfh,0c2h,0c5h db 0c7h,0cah,0cch,0cfh,0d1h, 0d4h,0d6h,0d8h db 0dah,0ddh,0dfh,0e1h,0e3h, 0e5h,0e7h,0e9h db 0eah,0ech,0eeh,0efh,0f1h, 0f2h,0f4h,0f5h db 0f6h,0f7h,0f8h,0f9h,0fah, 0fbh,0fch,0fdh db 0fdh,0feh,0ffh,0ffh,0ffh, 0ffh,0ffh,0ffh db 0ffh,0ffh,0ffh,0ffh,0ffh, 0ffh,

48、0feh,0fdh db 0fdh,0fch,0fbh,0fah,0f9h, 0f8h,0f7h,0f6h db 0f5h,0f4h,0f2h,0f1h,0efh, 0eeh,0ech,0eah db 0e9h,0e7h,0e5h,0e3h,0e1h, 0deh,0ddh,0dah db 0d8h,0d6h,0d4h,0d1h,0cfh, 0cch,0cah,0c7h db 0c5h,0c2h,0bfh,0bch,0bah, 0b7h,0b4h,0b1h db 0aeh,0abh,0a8h,0a5h,0a2h, 9fh, 9ch, 99h db 96h, 93h, 90h, 8dh, 89h,

49、 86h, 83h, 80h db 80h, 7ch, 79h, 78h, 72h, 6fh, 6ch, 69h db 66h, 63h, 60h, 5dh, 5ah, 57h, 55h, 51h db 4eh, 4ch, 48h, 45h, 43h, 40h, 3dh, 3ah db 38h, 35h, 33h, 30h, 2eh, 2bh, 29h, 27h db 25h, 22h, 20h, 1eh, 1ch, 1ah, 18h, 16h db 15h, 13h, 11h, 10h, 0eh, 0dh, 0bh, 0ah db 09h, 08h, 07h, 06h, 05h, 04h,

50、03h, 02h db 02h, 01h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 01h, 02h db 02h, 03h, 04h, 05h, 06h, 07h, 08h, 09h db 0ah, 0bh, 0dh, 0eh, 10h, 11h, 13h, 15h db 16h, 18h, 1ah, 1ch, 1eh, 20h, 22h, 25h db 27h, 29h, 2bh, 2eh, 30h, 33h, 35h, 38h db 3ah, 3dh, 40h, 43h, 45h, 48h, 4ch, 4

51、eh db 51h, 55h, 57h, 5ah, 5dh, 60h, 63h, 66h db 69h, 6ch, 6fh, 72h, 76h, 79h, 7ch, 80h ljmp scan_key3 b4: clr p1.7 setb p1.4 setb p1.6 setb p1.5 mov a,#0ffh mov p2,a lcall dely mov a,#00h mov p2,a lcall dely ljmp scan_key4 dely:mov r6,#10h mov r7,#0edh nop dl1:djnz r7,dl1 dl2:djnz r6,dl2 ret end 附錄

52、3 proteus 仿真系統簡介 1 proteus 仿真系統概述 proteus 軟件是英國 labcenter electronics 公司出版的 eda 工具 軟件。它不僅具有其它 eda 工具軟件的仿真功能,還能仿真單片機及外 圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內 推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于 單片機開發應用的科技工作者的青睞。 1.1 功能特點 : proteus 軟件具有其它 eda 工具軟件(例:multisim)的功能。這些 功能是: (1)原理布圖 (2)pcb 自動或人工布線 (3)spice 電路仿真 革命性的特點 : (1)互動的電路仿真 用戶甚至可以實時采用諸如 led/lcd、鍵盤、rs232 終端等動態外 設模型來對設 計進行交互仿真。 (2)仿真處理器及其外圍電路 可以仿真 51 系列、avr、pic 等常用主流單片機。還可以直接在 基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運

溫馨提示

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

評論

0/150

提交評論