單片機課程設計波形發生器報告_第1頁
單片機課程設計波形發生器報告_第2頁
單片機課程設計波形發生器報告_第3頁
單片機課程設計波形發生器報告_第4頁
單片機課程設計波形發生器報告_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目錄第一章概述2第二章設計任務3第三章硬件設計33.1系統主體構造 33.2硬件元件概述 33.3硬件連接 93.4硬件參數簡介 10第四章軟件設計104.1鋸齒波程序設計 114.2三角波程序設計 124.3正弦波程序設計 13第五章系統功能描述和功能15第六章設計心得16第七章參考文獻16附錄16程序設計20單片機課程設計第一章概述課程設計是一項重要的實踐性教育環節 ,是學生在完成本專業所有課程學習后必須接受的一項結合本專業方向的、系統的、綜合的工程訓練。在教師指導下,運用工程的方法,通過一個較復雜課題的設計練習,可使學生通過綜合的系統設計,熟悉設計過程、設計要求、完成的工作內容和具體的設

2、計方法,掌握必須提交的各項工程文件。課程設計的基本目的是: 培養理論聯系實際的設計思想, 訓練綜合運用電路設計和有關先修課程的理論, 結合生產實際分析和解決工程實際問題的能力,鞏固,加深和擴展有關電子類方面的知識。課程設計的主要任務是運用所學微控制器技術、 微機原理等方面的知識,設計出一臺以 AT89C51 為核心的單片機數據采集、通訊或測控系統,完成信息的采集、處理、輸出及人機接口電路等部分的軟、硬件設計。多功能波形發生器設計課題需要充分靈活運用編程語言所提供的各種指令語句, 巧妙利用軟硬件實現以上所要求的功能, 在程序邏輯設計上也要求正確, 合理的對項目進行分解分塊, 合理的邏輯設計可以起

3、到事半功倍的效果, 是整個項目當中最富有創新性和挑戰性的部分。2單片機課程設計第二章設計任務本次設計要求采用單片機和DAC 設計波形發生器,具體要求如下:( 1)利用單片機和 DAC0832 產生三角波、正弦波等波形。( 2)完成 DAC 與運放的連接,輸出可供示波器顯示。( 3)用按鍵改變波型的種類,同時顯示波形的代號,波形的幅值與頻率。第三章硬件設計3.1 系統主體構造芯片方面選用 AT89C51 與 DAC0832 為主要芯片,根據要求采用鍵盤選擇產生的波形的類型, 所以基本電路有鍵盤電路, 數模轉換電路。整體框架圖如下所示:鋸齒波單0832 D/A 轉片三角波機運放示波器正弦波3.2

4、硬件元件概述3單片機課程設計本次設計所采用的硬件資源主要有:3.2.1 AT89C51 單片機其引腳圖如圖所示。U119XTAL1P0.0/AD03938P0.1/AD137P0.2/AD21836XTAL2P0.3/AD335P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD7P2.0/A82122P2.1/A923P2.2/A102924PSENP2.3/A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A151P1.0P3.0/RXD10211P1.1P3.1/TXD312P1.2P3.2/INT0413P1

5、.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C51PROGRAM=Text3.HEX圖 3.1 AT89C51 引腳圖芯片的引腳描述如下:1、主電源引腳 VCC 和 VSSVCC (40 腳)接 +5V 電壓;VSS (20 腳)接地。2、外接晶體引腳XTAL1 和 XTAL2XTAL1 (19 腳)接外部晶體的一個引腳。在單片機內部,它是一個反相放大器的輸入端, 這個放大器構成了片內振蕩器。當采用外部振蕩器時,對 HMOS 單片機,此引腳應接地;對CHMOS 單片機,此引腳作為驅動端。XTAL2

6、 (18 腳)接外晶體的另一端。在單片機內部,接至上述振蕩4單片機課程設計器的反相放大器的輸出端。采用外部振蕩器時,對HMOS 單片機,該引腳接外部振蕩器的信號, 即把外部振蕩器的信號直接接到內部時鐘發生器的輸入端;對XHMOS ,此引腳應懸浮。3、控制或與其它電源復用引腳RST/VPD、ALE/PROG 、 PSEN 和EA/VPP RST/VPD(9 腳)當振蕩器運行時,在此腳上出現兩個機器周期的高電平將使單片機復位。推薦在此引腳與 VSS 引腳之間連接一個約8.2k 的下拉電阻,與 VCC 引腳之間連接一個約 10F的電容,以保證可靠地復位。VCC 掉電期間,此引腳可接上備用電源, 以保

7、證內部 RAM 的數據不丟失。當 VCC 主電源下掉到低于規定的電平, 而 VPD 在其規定的電壓范圍( 5±0.5V)內, VPD 就向內部 RAM 提供備用電源。 ALE/PROG(30 腳):當訪問外部存貯器時, ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節。即使不訪問外部存儲器, ALE 端仍以不變的頻率周期性地出現正脈沖信號,此頻率為振蕩器頻率的1/6。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是,每當訪問外部數據存儲器時,將跳過一個ALE 脈沖。 ALE端可以驅動(吸收或輸出電流)8 個 LS 型的 TTL 輸入電路。對于 EPROM 單片機(如 8

8、751),在 EPROM 編程期間,此引腳用于輸入編程脈沖( PROG)。 PSEN(29 腳):此腳的輸出是外部程序存儲器的讀選通信號。在從外部程序存儲器取指令(或常數)期間,每個機器周期兩次PSEN5單片機課程設計有效。但在此期間,每當訪問外部數據存儲器時, 這兩次有效的 PSEN 信號將不出現。 PSEN 同樣可以驅動 (吸收或輸出) 8 個 LS 型的 TTL 輸入。 EA/VPP (引腳):當 EA 端保持高電平時,訪問內部程序存儲器,但在 PC(程序計數器)值超過 0FFFH(對 851/8751/80C51)或 1FFFH(對 8052)時,將自動轉向執行外部程序存儲器內的程序。

9、 當 EA 保持低電平時,則只訪問外部程序存儲器, 不管是否有內部程序存儲器。對于常用的 8031 來說,無內部程序存儲器,所以 EA 腳必須常接地,這樣才能只選擇外部程序存儲器。對于 EPROM 型的單片機(如 8751),在 EPROM 編程期間,此引腳也用于施加 21V 的編程電源( VPP)。4、輸入 /輸出( I/O)引腳 P0、P1、P2、P3(共 32 根) P0 口(39 腳至 32 腳):是雙向 8 位三態 I/O 口,在外接存儲器時,與地址總線的低 8 位及數據總線復用, 能以吸收電流的方式驅動 8 個LS 型的 TTL 負載。 P1 口( 1 腳至 8 腳):是準雙向 8

10、 位 I/O 口。由于這種接口輸出沒有高阻狀態, 輸入也不能鎖存, 故不是真正的雙向 I/O 口。P1 口能驅動(吸收或輸出電流) 4 個 LS 型的 TTL 負載。對 8052、8032,P1.0引腳的第二功能為T2 定時 /計數器的外部輸入, P1.1 引腳的第二功能為 T2EX 捕捉、重裝觸發,即 T2 的外部控制端。對 EPROM 編程和程序驗證時,它接收低 8 位地址。P2 口( 21 腳至 28 腳):是準雙向 8 位 I/O 口。在訪問外部存儲器6單片機課程設計時,它可以作為擴展電路高 8 位地址總線送出高 8 位地址。在對 EPROM 編程和程序驗證期間,它接收高 8 位地址。

11、 P2 可以驅動(吸收或輸出電流) 4 個 LS 型的 TTL 負載。P3 口(10 腳至 17 腳):是準雙向 8 位 I/O 口,在 MCS-51 中,這 8個引腳還用于專門功能,是復用雙功能口。P3 能驅動(吸收或輸出電流) 4 個 LS 型的 TTL 負載。作為第一功能使用時,就作為普通I/O 口用,功能和操作方法與P1口相同。作為第二功能使用時,各引腳的定義如表所示。值得強調的是, P3 口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。第二功能描述如下:P3.0 10 RXD(串行輸入口)P3.1 11 TXD(串行輸出口)P3.2 12 INT0(外部中斷 0)P3.3

12、13 INT1(外部中斷 1)P3.4 14 T0(定時器 0 外部輸入)P3.5 15 T1(定時器 1 外部輸入)P3.6 16 WR(外部數據存儲器寫脈沖)P3.7 17 RD(外部數據存儲器讀脈沖)3.2.2D/A 轉換 0832 芯片7單片機課程設計DAC0832 是采樣頻率為八位的D/A 轉換芯片,集成電路內有兩級輸入寄存器。 DAC0832 輸出的是電流,一般要求輸出是電壓,所以還必須經過一個外接的運算放大器轉換成電壓。其芯片引腳圖如圖所示,DAC0832 引腳圖引腳功能如下:D0D7:數字信號輸入端。ILE :輸入寄存器允許,高電平有效。CS:片選信號,低電平有效。WR1 :寫

13、信號 1,低電平有效。XFER:傳送控制信號,低電平有效。WR2 :寫信號 2,低電平有效。IOUT1 、IOUT2 :DAC 電流輸出端。RFB:是集成在片內的外接運放的反饋電阻。VREF:基準電壓( -1010V)。8單片機課程設計VCC:是源電壓( +5+15V)。AGND :模擬地NGND :數字地,可與AGND 接在一起使用。3.3 硬件連接3.3.1數模轉換電路數模轉換電路采用的是 DAC0832 芯片。它是一種使用較多的 8 位 D/A 轉換器,其轉換時間 1us,工作電壓為 +5V 到+15V,基準電壓 -10V 到+10V 。由于其內部有兩個 8 位寄存器和一個 8 位 D/

14、A 轉換器,故可進行兩級緩沖操作, 使操作有很大的靈活性, 本設計采用單緩沖方式。DAC0832 與 AT89C51 的連接。單片機 P0 口與數模轉換器的數據口連接,為保證單片機 P0 口的驅動能力,在 P0口加上上拉電阻。3.3.2鍵盤電路鍵盤電路是控制部分。 通過 K1 控制產生方波, K2 控制產生三角波, K3 控制產生正弦波。分析 DAC0832 的輸出, U=(Vref/2n)*D ,由此公式可知,輸出波形的幅度與Vref 的大小有關,所以我們通過控制 Vref 的大小來改變波形的幅度,以簡化我們的程序。3.3.3復位電路與時鐘電路該電路采用上電復位, 利用電容充電來實現的, 即

15、上電瞬間 RST端的電位與 VCC 相同,隨著充電電流的減少, RST 的電位逐漸下降。由于頻率較大時, 三角波、正弦波、方波中每一點延時時間為幾微秒,故延時時間還要加上指令時間才能獲得較大的功率波形,該電路采用9單片機課程設計12MHZ 晶振。原理圖如下:復位電路與時鐘電路3.4 硬件參數簡介AT89C51 單片機采用12MHz 時鐘, VCC 供電電源采用 +5v,DAC0832 工作電源采用 +5v。第四章軟件設計程序是本設計中的重點。單片機的功能與它的程序有很大關系,本設計中,為實現輸出三種波形, 要使單片機定時向數模轉換器發送數據,數據的不同將實現不同的波形輸出。輸出波形原理圖如下:

16、10單片機課程設計4.1 三角波程序設計三角波有上升與下降兩條邊,所以從00H 發送到 FFH 應有相同的間隔,選擇每隔 02H 發送一次數據,即發送00H、02H、 04HFEH 、FEH04H 、02H、00H,程序原理圖如下 :TRI:JNBP1.0,N3JNBP1.2,N4LJMP TTRIN3:MOVR7,#00HLJMP TC2N4:MOVR7,#02HLJMP TC2;判斷其他鍵是否按下,從三角波轉換到其他波形TTRI: CJNE R7,#01H,TC2MOVR0,#00HK20:MOVP0,R0;將 P0 的數據送入數模轉換器MOVP2,#0FFHMOVA,P2CPLA11單片

17、機課程設計MOVR3,AL20:DECR3CJNE R3,#255,L20;通過 P2 口控制延時INCR0INCR0;R0 內容加 2CJNE R0,#254,K20;實現將 00H 不斷加 2,然后送入數模轉換器K21:MOVP0,R0;R0 的數據送入數模轉換器MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL21:DECR3CJNE R3,#255,L21DECR0DECR0;R0 內容減 2CJNE R0,#0,K21;實現將 FEH 不斷減 2,然后送入數模轉換器LJMP TRITC2:RET4.2 正弦波程序設計正弦波和三角波類似,都有上升與下降兩條邊,而且正弦波有正負

18、極之分,所以它的數據表比三角波的復雜,其數據表見程序,程序原理如下:SIN:JNBP1.0,N5JNBP1.1,N6LJMP SSINN5:MOVR7,#00HLJMP TC3N6:MOVR7,#01HLJMP TC3;判斷是否有其他鍵按下,并跳轉到其他波形SSIN: CJNE R7,#02H,TC312單片機課程設計MOVR0,#00HK30:MOVA,R0MOVDPTR,#TAB;將 TAB 的地址送入 DPTRMOVC A,A+DPTR;從 TAB 中取出數據,放入 A 中MOVP0,A;將 A 中數據送入數模轉換器INCR0MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL3

19、0:DECR3CJNE R3,#255,L30;K2 口控制延時CJNE R0,#255,K30LJMP SINTC3:RETTAB:DB80H,82H,84H,86H,88H,8AH,8CH,8EH,90H,92H,94H,96H,98H,9AH,9CH,9EHDB0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ABH,0ADH,0AFH,0B1H,0B2H,0B4H,0B6H,0B7H,0B9H,0BAHDB0BCH,0BDH,0BFH,0C0H,0C1H,0C3H,0C4H,0C5H,0C6H,0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEHDB0CEH

20、,0CFH,0D0H,0D1H,0D1H,0D2H,0D2H,0D3H,0D3H,0D4H,0D4H,0D4H,0D4H,0D5H,0D5H,0D5HDB0D5H,0D5H,0D5H,0D5H,0D4H,0D4H,0D4H,0D4H,0D3H,0D3H,0D2H,0D2H,0D1H,0D1H,0D0H,0CFHDB0CEH,0CEH,0CDH,0CCH,0CBH,0CAH,0C9H,0C8H,0C6H,0C5H,0C4H,0C3H,0C1H,0C0H,0BFH,0BDHDB0BCH,0BAH,0B9H,0B7H,0B6H,0B4H,0B2H,0B1H,0AFH,0ADH,0ABH,0AAH,0

21、A8H,0A6H,0A4H,0A2HDB13單片機課程設計0A0H,9EH,9CH,9AH,98H,96H,94H,92H,90H,8EH,8CH,8AH,88H,86H,84H, 82HDB80H,7DH,7BH,79H,77H,75H,73H,71H,6FH,6DH,6BH,69H,67H,65H,63H,61HDB5FH,5DH,5BH,59H,57H,55H,54H,52H,50H,4EH,4DH,4BH,49H,48H,46H,45HDB43H,42H,40H,3FH,3EH,3CH,3BH,3AH,39H,37H,36H,35H,34H,33H,32H,31HDB31H,30H,2

22、FH,2EH,2EH,2DH,2DH,2CH,2CH,2BH,2BH,2BH,2BH,2AH,2AH, 2AHDB2AH,2AH,2AH,2AH,2BH,2BH,2BH,2BH,2CH,2CH,2DH,2DH,2EH,2EH,2FH,30HDB31H,31H,32H,33H,34H,35H,36H,37H,39H,3AH,3BH,3CH,3EH,3FH,40H,42HDB43H,45H,46H,48H,49H,4BH,4DH,4EH,50H,52H,54H,55H,57H,59H,5BH,5DHDB5FH,61H,63H,65H,67H,69H,6BH,6DH,6FH,71H,73H,75H,

23、77H,79H,7BH,7DHEND第五章系統功能描述和說明DAC波形發生器采用 AT89C51單片機于 DAC0832連接,DAC0832輸出的模擬信號經過運算放大器放大, 通過示波器顯示波形。 本發生器可以實現對輸出波形類型,幅值的人工控制。通過 AT89C51的 P0 口引出的三個個按鍵選擇相應的輸出波形:鋸齒波,三角波,正弦波通過轉動電位器的旋鈕,改變輸出波形的幅值。通過 P1 口輸出三個波形的序號啟動系統后,程序會等待用戶按鍵選擇波形,用戶可以通過與 P1.0,P1.1, P1.2 三引腳相連的按鍵, 依次選擇輸出方波, 三角波和正弦波。 在輸出波形的同時,LED 上會顯示相應的波形

24、代號,通過旋轉 RV1 電位器旋鈕, 改變波形幅值。14單片機課程設計第六章設計心得這兩周,在老師的指導下和同學合作之下最終成功地完成了此次設計,通過本次課程設計,我們有了很多收獲,同時也發現了一些問題。通過本次課程設計, 使我對單片機的應用有了深刻的了解,讓我對單片機編程和和使用單片機解決實際問題的能力有了很大的提高。另外,本次設計小組成員各有分工又緊密聯系,每個人都注重分享、討論,培養了團隊意識。同時,通過本次課程設計也讓我發現了一些問題。例如,對單片機基礎知識掌握的不好,是我在本次設計中多次出現問題; 其次是對單片機的仿真缺乏了解。總之,通過這次課程設計使我對單片機語言的理解和掌握上有了

25、很大的進步,以前所了解的單片機語言僅限于一些片面的知識,課本上的內容如果不拿來實踐一下的話很快就會忘記,通過這次編程,將這些零零碎碎的知識匯集起來,編寫出了一個完整的系統, 并且對單片機語言的應用能力有了極大的提高,對于硬件接口的問題也有了深刻的了解。雖然不是最好的方案,但真實地得到鍛煉。第七章參考文獻新編單片機原理及應用 汪貴平 李登峰 龔賢武 雷旭 編著 機械工業出版社15單片機課程設計附錄硬件電路連接圖波形發生器硬件設計圖16單片機課程設計DAC0832的接線方式17單片機課程設計靜態顯示模塊系統仿真效果圖鋸齒波波仿真圖18單片機課程設計三角波仿真圖正弦波仿真19單片機課程設計程序設計O

26、RG0000HLJMP MAINORG0100HMAIN: JNBP1.0,D1;判斷 K1JNBP1.1,D2;判斷 K2JNBP1.2,D3;判斷 K3LJMP MAIN;子程序跳轉D1:MOVR7,#00HLCALLSTW;跳轉到鋸齒波波子程序LJMPMAIND2:MOVR7,#01HLCALLTRI;跳轉到三角波子程序LJMPMAIND3:MOVR7,#02HLCALLSIN;跳轉到正弦波子程序LJMPMAIN;鋸齒波子程序STW:JNBP1.1,N1JNBP1.2,N2LJMP SSTWN1:MOVR7,#01HLJMP TC1N2:MOVR7,#02HLJMP TC1;判斷其他鍵是

27、否按下,從鋸齒波波轉換到其他波形SSTW: CJNE R7,#00H,TC1MOVR0,#00HMOV P1,#1FHK00:MOVP0,R0;將 P0 的數據送入數模轉換器CPLAMOVR3,AL00:DECR3CJNE R3,#255,L00INCR020單片機課程設計INCR0;R0 內容加 2CJNE R0,#254,K00;實現將 00H 不斷加 2,然后送入數模轉換器LJMP STWTC1: RET;三角波子程序TRI:JNBP1.0,N3JNBP1.2,N4LJMP TTRIN3:MOVR7,#00HLJMP TC2N4:MOVR7,#02HLJMP TC2;判斷其他鍵是否按下,

28、從三角波轉換到其他波形TTRI: CJNE R7,#01H,TC2MOVR0,#00HMOV P1,#2FHK20:MOVP0,R0; 將 P0 的數據送入數模轉換器MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL20:DECR3CJNE R3,#255,L20;通過 P2 口控制延時INCR0INCR0;R0 內容加 2CJNE R0,#254,K20;實現將 00H 不斷加 2,然后送入數模轉換器K21:MOVP0,R0;R0 的數據送入數模轉換器MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL21:DECR3CJNE R3,#255,L21DECR0DECR0;R

29、0 內容減 2CJNE R0,#0,K21 ;實現將 FEH 不斷減 2,然后送入數模轉換器21單片機課程設計LJMP TRITC2:RET;正弦波產生子程序SIN:JNBP1.0,N5JNBP1.1,N6LJMP SSINN5:MOVR7,#00HLJMP TC3N6:MOVR7,#01HLJMP TC3;判斷是否有其他鍵按下,以從正弦波跳轉到其他波形SSIN: CJNE R7,#02H,TC3MOVR0,#00HMOV P1,#3FHK30:MOVA,R0MOVDPTR,#TAB;將 TAB 的地址送入 DPTRMOVC A,A+DPTR;從 TAB 中取出數據,放入 A 中MOVP0,A;將 A 中數據送入數模轉換器INCR0MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL30:DECR3CJNE R3,#255,L30;K2 口控制延時CJNE R0,#255,K30LJMP SINTC3:RETTAB:DB80H,82H,84H,86H,88H,8AH,8CH,8EH,90H,92H,94H,96H,98H,9AH,9CH,9EHDB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ABH,0ADH,0AFH,0B1H, 0B2H,0B4H, 0B6H,0B7H,0B9H,0BAHDB0BCH,0BDH,0BFH,0

溫馨提示

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

評論

0/150

提交評論