單片機課程設計——波形發(fā)生器_第1頁
單片機課程設計——波形發(fā)生器_第2頁
單片機課程設計——波形發(fā)生器_第3頁
單片機課程設計——波形發(fā)生器_第4頁
單片機課程設計——波形發(fā)生器_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.單片機課程設計報告電子科學系指導老師:胡玨班級: 10電信班姓名:卓桂成 游龍 謝禮杰學號:100703157 100703144 1007031 目錄1總體設計及需求分析1.1實驗要求:實驗目的1.2 設計思路2 硬件電路設計及描述2.1 主要硬件介紹2.1.1 單片機STC90c512.1.2 DAC08322.2 電路介紹2.2.1 電源電路2.2.2 D/A電路2.2.3顯示電路2.2.4 時鐘電路2.2.5 復位電路2.2.6 最終電路3軟件設計流程及描述3.1 程序流程3.2 程序1總體設計及需求分析1.1實驗要求:實驗目的. 設計一款能夠產生3種以上波形的波形發(fā)生器;. 設計波

2、形選擇按鈕;LED或LCD顯示波形代號(如 1為正弦波,2為方波);能夠同時輸出兩種波形能夠記錄一段時間的波形1.2 設計思路開關電源復位時鐘MCS-51系列芯片LED顯示 D/A運放開始開啟顯示設置D/A地址,#7FFFH(DPTR)P1.0=0?P1.1=0?P1.2=0?P1.3=0?結束調用方波調用鋸齒波調用三角波調用梯形波是是是是否否否否 2 硬件電路設計及描述2.1 主要硬件介紹2.1.1 單片機89C51AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、

3、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如下圖所示:圖3.4 AT89C51引腳圖AT89C51管腳說明:VCC:供電電壓。 GND:接地。 P0口:P0口為一個

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

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

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

7、ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。2.1.2 DAC0832AC0832是8位分

8、辨率D/A轉換集成芯片,與處理器完全兼容,具有價格低廉,接口簡單,轉換控制容易等優(yōu)點,在單片機應用系統(tǒng)中得到廣泛的應用。 D/A轉換器由八位輸入鎖存器、八位DAC寄存器、八位D/A轉換電路以及轉換電路構成。 DAC0832輸出是電流型的,但實際應用中往往需要電壓輸出信號,所以還必須一個外接的運算放大器轉換稱電壓。其引腳如下圖1所示:圖1:DAC0832引腳圖 D0D7:八位數(shù)據輸入線 ILE:數(shù)據鎖存允許控制信號輸入線,高電平有效 CS: 片選信號輸入線,低電平有效 WR1:輸入寄存器的寫選通信號,低電平有效 XFER:數(shù)據傳送控制信號輸入線,低電平有效 WR2:DAC寄存器寫選通輸入線,低電

9、平有效 IOUT1:電流輸出線。當輸入全為1時IOUT1最大 IOUT2:電流輸出線。其值與OUT1之和為一常數(shù) RFB:反饋信號輸入線,芯片內部有反饋電阻 Vcc:電源輸入線(+5+15V) Vref: 基準電壓輸入線(-10+10V) AGND: 模擬地,模擬信號和基準電源的查考地 DGND:數(shù)字地,兩種地線在基準電源共處比較好根據對DAC0832的數(shù)據鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式,可用軟件指令控制這5個控制端:ILE、CS、WR1、WR2、XFER。 直通工作方式:5個控制端均有效,直接D/A轉換 單緩沖工作方式:5

10、個控制端一次選通,即兩個輸入寄存器中任意一個處于直通方式,另一個工作于受控方式 雙緩沖工作方式:5個控制端分二次選通。即兩個鎖存器都處于受控狀態(tài)本次設計我們讓DAC0832工作于單緩沖器方式,它的ILE接+5V。/CS和/XFER相連后由8051的P2.7控制,/WR1和/WR2相連后由8051的/WR控制DAC0832的地址為7FFFH,工作于單緩沖器方式,執(zhí)行一次對DAC0832的寫入操作即可完成一次D/A轉換。2.2 電路介紹2.2.1 電源電路通過數(shù)據線和usb接口,計算機向電路供電,Usb原理圖如下:2.2.2 D/A電路2.2.3顯示電路輸出波形同時相應led燈的相應p1口輸出低電

11、平,使顯示電路導通。 2.2.4 時鐘電路單片機的時鐘信號通常用兩種電路形式得到:內部振蕩和外部振蕩方式。時鐘部分電路圖在單片機80c51引腳XTAL1和XTAL2外接晶體振蕩器或陶瓷諧振蕩器,構成了內部振蕩方式。由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自積振蕩,并產生振蕩時鐘脈沖。單片機的時序單位振蕩周期:晶振的振蕩周期,又稱時鐘周期,為最小的時序單位。狀態(tài)周期:振蕩頻率經單片機內的二分頻器分頻后提供給片內CPU的時鐘周期。因此一個狀態(tài)周期包含2個振蕩周期。機器周期:1個機器周期由6個狀態(tài)周期12個振蕩周期組成,是計算機執(zhí)行一種基本操作的時間單位。指令周期:執(zhí)行一條指令所

12、需的時間。一個指令周期由1-4個機器周期組成,依據指令不同而不同.2.2.5 復位電路當MCS-5l系列單片機的復位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,根據應用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關復位。上電復位要求接通電源后,自動實現(xiàn)復位操作。上電或開關復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關復位的操作。圖3.4 復位電路單片機的復位操作使單

13、片機進入初始化狀態(tài),其中包括使程序計數(shù)器PC0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機冷啟動后,片內RAM為隨機值,運行中的復位操作不改變片內RAM區(qū)中的內容,21個特殊功能寄存器復位后的狀態(tài)為確定值統(tǒng)復位是任何微機系統(tǒng)執(zhí)行的第一步,使整個控制芯片回到默認的硬件狀態(tài)下。51單片機的復位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機即進入芯片內部復位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內部的程序代碼,若為低電平便會執(zhí)行外部程序。51單片機在系統(tǒng)復位時,將其內部的一些重要寄

14、存器設置為特定的值,至于內部RAM內部的數(shù)據則不變。2.2.6 最終電路3軟件設計流程及描述3.1 程序流程3.2 程序 ORG 0000H LJMP MAIN ORG 0100H ;主程序地址MAIN: JNB P1.0,P10 JNB P1.1,P11 JNB P1.2,P12 JNB P1.3,P13 LJMP MAIN ;哪個鍵按下,顯示哪個波形P10: MOV R7,#00H ;方波波形,R7為特征碼,放00,表示方波 LCALL SQU ;調用方波波形函數(shù) LJMP MAIN ;調用完返回主程序循環(huán)P11: MOV R7,#01H ;01表示鋸齒波 LCALL SAW LJMP M

15、AINP12: MOV R7,#02H ;02表示三角波 LCALL TRI LJMP MAINP13: MOV R7,#03H ;03表示方波 LCALL SIN LJMP MAINSQU: JNB P1.1,N1 ;方波函數(shù),如果有其他鍵按下退出程序 JNB P1.2,N2 JNB P1.3,N3 LJMP SSQU ;沒有鍵按下,到SSQU函數(shù)產生方波N1: MOV R7,#01H ;哪個鍵按下就在R7中記下特征碼 LJMP TC0N2: MOV R7,#02H LJMP TC0N3: MOV R7,#03H LJMP TC0SSQU: CJNE R7,#00H,TC0 ;R7不為0退出

16、 SETB P1.5 SETB P1.6 SETB P1.7 CLR P1.4 ;p1.0輸出一個低電位 led亮 MOV R0,#00H ;R0中放00 K00: MOV P0,#0FFH MOV P2,#0FFH MOV A,P2 ;變數(shù)值,P2越大,波形周期越小 CPL A MOV R3,AL00: DEC R3 CJNE R3,#255,L00 ;這個循環(huán)改變周期 INC R0 INC R0 CJNE R0,#254,K00 ;高電平波循環(huán)127次 MOV R0,#00HK01: ;MOV A,#00H ;低電平,跟高電平差不多 ;MOVX DPTR,A MOV P0,#00H MOV

17、 P2,#0FFH MOV A,P2 CPL A MOV R3,AL01: DEC R3 CJNE R3,#255,L01 INC R0 INC R0 CJNE R0,#254,K01 LJMP SQU ;顯示完一個波形,回到方波函數(shù)開始,判斷有無其他按鍵TC0: RET ;返回主函數(shù) SAW: JNB P1.0,N4 JNB P1.2,N5 JNB P1.3,N6 LJMP SSAWN4: MOV R7,#00H LJMP TC1N5: MOV R7,#02H LJMP TC1N6: MOV R7,#03H LJMP TC1SSAW: CJNE R7,#01H,TC1 SETB P1.4 S

18、ETB P1.6 SETB P1.7 CLR P1.5 MOV R0,#0FFH K10: MOV P0,R0 MOV P2,#0FFH MOV A,P2 CPL A MOV R3,AL10: DEC R3 CJNE R3,#255,L10 INC R0 CJNE R0,#255,K10 LJMP SAWTC1: RETTRI: JNB P1.0,N7 JNB P1.1,N8 JNB P1.3,N9 LJMP TTRIN7: MOV R7,#00H LJMP TC2N8: MOV R7,#01H LJMP TC2N9: MOV R7,#03H LJMP TC2TTRI: CJNE R7,#02

19、H,TC2 SETB P1.4 SETB P1.5 SETB P1.7 CLR P1.6 MOV R0,#00H K20: MOV P0,R0 MOV P2,#0FFH MOV A,P2 CPL A MOV R3,AL20: DEC R3 CJNE R3,#255,L20 INC R0 INC R0 CJNE R0,#254,K20K21: MOV P0,R0 MOV P2,#0FFH MOV A,P2 CPL A MOV R3,AL21: DEC R3 CJNE R3,#255,L21 DEC R0 DEC R0 CJNE R0,#0,K21 LJMP TRITC2: RETSIN: JNB

20、 P1.0,N10 ;正弦波,是通過存儲在代碼區(qū)的一個數(shù)組來顯示值的 JNB P1.1,N11 JNB P1.2,N12 LJMP SSINN10: MOV R7,#00H LJMP TC3N11: MOV R7,#01H LJMP TC3N12: MOV R7,#02H LJMP TC3SSIN: CJNE R7,#03H,TC3 SETB P1.4 SETB P1.5 SETB P1.6 CLR P1.7 MOV R0,#00H K30: MOV A,R0 MOV DPTR,#TAB ;數(shù)組的地址 MOVC A,A+DPTR ;把第R0個數(shù)放到A中 MOV P0,A INC R0 ;RO加

21、1 MOV P2,#0FFH ;周期 MOV A,P2 CPL A MOV R3,AL30: DEC R3 CJNE R3,#255,L30 CJNE R0,#255,K30 LJMP SINTC3: RETTAB: DB 80H,82H,84H,86H,88H,8AH,8CH,8EH,90H,92H,94H,96H,98H,9AH,9CH,9EH DB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ABH,0ADH,0AFH,0B1H,0B2H,0B4H,0B6H,0B7H,0B9H,0BAH DB 0BCH,0BDH,0BFH,0C0H,0C1H,0C3H,0C4H,0C5H,0C6H,0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEH DB 0CEH,0CFH,0D0H,0D1H,0D1H,0D2H,0D2H,0D3H,0D3H,0D4H,0D4H,0D4H,0D4H,0D5H,0D5H,0D5H DB 0D5H,0D5H,0D5H,0D5H,0D4H,0D4H,0D4H,0D4H,0D3H,0D3H,0D2H,0D2H,0D1H,0D1H,0D0H,0CFH DB 0CEH,0CEH,0CDH,0CCH,0CBH,0CAH,0C9H,0C8H,0C6H,0

溫馨提示

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

最新文檔

評論

0/150

提交評論