久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15610|回復: 1
收起左側

基于單片機的多種波形發生器設計論文

[復制鏈接]
ID:339208 發表于 2018-5-27 17:43 | 顯示全部樓層 |閱讀模式
目錄

1前言
2硬件電路設計
2.1主要芯片介紹
2.1.1單片機AT89C52
2.1.2 DAC0832數模轉換器
2.1.3其他器件
2.2硬件連接圖
2.2.1主控電路
2.2.2 獨立式鍵盤
2.2.3數模轉換電路
2.2.4驅動電路
2.3總電路圖
3 程序設計
3.1主流程圖的設計
3.2 子程序的設計
3.2.1鋸齒波的產生
3.2.2三角波的產生
3.2.3梯形波的產生
3.2.4正弦波的產生
3.2.5主程序
4應用軟件
4.1 Proteus
4.2 KeilC51
5調試與仿真結果
6總結
參考文獻



1前言

在電子工程、通信工程、自動控制、遙測控制、測量儀器、儀表和計算機等技術領域,經常需要用到各種各樣的信號波形發生器。隨著集成電路的迅速發展,用集成電路可很方便地構成各種信號波形發生器。用集成電路實現的信號波形發生器與其它信號波形發生器相比,其波形質量、幅度和頻率穩定性等性能指標,都有了很大的提高。

    波形發生器是能夠產生大量的標準信號和用戶定義信號,并保證高精度、高穩定性、可 重復性和易操作性的電子儀器。函數波形發生器具有連續的相位變換、和頻率穩定性等優點,不僅可以模擬各種復雜信號,還可對頻率、幅值、相移、波形進行動態、及時的控制,并能夠與其它儀器進行通訊,組成自動測試系統,因此被廣泛用于自動控制系統、震動激勵、通訊和儀器儀表領域。

2硬件電路設計

   本方案是基于AT89C52與DAC0832的單緩沖方式接口電路來設計。單緩沖式接口電路具有過程簡單,容易實現。由于本設計運用匯編的編程語言,導致用獨立式鍵盤來實現簡單控制。本方案所產生的信號頻率穩定性高,精確度高。而且在硬件方面它所選的元器件比較常見。其主要流程圖和模塊如圖1所示。

圖1軟硬件結合設計框圖

2.1主要芯片介紹

2.1.1單片機AT89C52

   AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,



片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業中有著廣泛的應用。

   AT89C52為8位通用微處理器,采用工業標準的C51內核,在內部功能及管腳排布上與通用的8xc52相同,其主要用于會聚調整時的功能控制。功能包括對會聚主IC 內部寄存器、數據RAM及外部接口等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。圖2為AD89C52單片機的管腳圖。

圖2 AT89C52管腳圖

其各管腳功能為:

    P0口:P0口是一組8位漏極開路型雙向I/O 口,也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash 編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。

    P1口:P1是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51 不同之處是,P1.0 和P1.1還可分別作為定時/計數器2 的外部計數輸入(P1.0/T2)和輸入。   

    P2口:P2 是一個帶有內部上拉電阻的8 位雙向I/O 口,P2的輸出緩沖級



可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數據存儲器時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器(如執行MOVX @RI 指令)時,P2口輸出P2鎖存器的內容。Flash 編程或校驗時,P2亦接收高位地址和一些控制信號。

    P3口:P3口是一組帶有內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流個TTL邏輯)4門電路。對P3口寫入“1”時,它們被內部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能。P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。

RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。

    ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區中的8EH 單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOV指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE 禁止位無效。

    PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。

    EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。如EA端為高電平(接Vcc端),CPU則執行內部程序存儲器中的指令。Flash 存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。

    XTAL1:振蕩器反相放大器的及內部時鐘發生器的輸入端。

    XTAL2:振蕩器反相放大器的輸出端。

2.1.2 DAC0832數模轉換器

    DAC0832是8分辨率的D/A轉換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉換控制容易等優點,在單片機應用系統中得到廣泛的應用。D/A轉換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換電路及轉換控制電路構成。圖3為其芯片管腳圖。

圖3 DAC0832管腳圖

各個管腳功能如下:

    D0~D7:8位數據輸入線,TTL電平,有效時間應大于90ns(否則鎖存器的數據會出錯)

    ILE:數據鎖存允許控制信號輸入線,高電平有效;   

    CS:片選信號輸入線(選通數據鎖存器),低電平有效;  

    WR1:數據鎖存器寫選通輸入線,負脈沖(脈寬應大于500ns)有效。由ILE、CS、WR1的邏輯組合產生LE1,當LE1為高電平時,數據鎖存器狀態隨輸入數據線變換,LE1的負跳變時將輸入數據鎖存;   

    XFER:數據傳輸控制信號輸入線,低電平有效,負脈沖(脈寬應大于500ns)有效;   

    WR2:DAC寄存器選通輸入線,負脈沖(脈寬應大于500ns)有效。由WR2、XFER 的邏輯組合產生LE2,當LE2為高電平時,DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負跳變時將數據鎖存器的內容打入DAC寄存器并開始D/A轉換。   

   IOUT1:電流輸出端1,其值隨DAC寄存器的內容線性變化;  

   IOUT2:電流輸出端2,其值與IOUT1值之和為一常數;   

   Rfb:反饋信號輸入線,改變Rfb端外接電阻值可調整轉換滿量程精度;   

   Vcc:電源輸入端,Vcc的范圍為+5V~+15V;   

   VREF:基準電壓輸入線,VREF的范圍為-10V~+10V;  

   AGND:模擬信號地  

   DGND:數字信號地

2.1.3其他器件

   本次設計中,不僅僅用到了AT89C52單片機和DAC0832數模轉換芯片,還用到了74HC138譯碼器和74HC573鎖存器。

   74HC138 作用原理于高性能的存貯譯碼或要求傳輸延遲時間短的數據傳輸系統,在高性能存貯器系統中,用這種譯碼器可以提高譯碼系統的效率。

   74HC573數據鎖存器。主要用于數碼管、按鍵等等的控制。

             

          圖4 74HC138                              圖5  74HC573

2.2硬件連接圖

2.2.1主控電路

中斷系統是使處理器具有對外界異步事件的處理能力而設置的。當中央處理器CPU正在處理某件事的時候外界發生了緊急事件,要求CPU暫停當前的工作,轉而去處理這個緊急事件。在波形發生器中,只用到片內定時器/計數器溢出時產生的中斷請求,即是在AT89C52輸出一個波形采樣點信號后,接著啟動定時器,在定時器未產生中斷之前,AT89C52等待,直到定時器計時結束,產生中斷請求,AT89C52響應中斷,接著輸出下一個采樣點信號,如此循環產生所需要的信號波形。如圖所示2.1,AT89C52所在電路中的工作情況。

    本此課設中,AT89C52單片機的P1口接獨立式按鍵電路,P2口部分接譯碼器,P0口接鎖存器。主控電路圖如圖6所示

圖6 主控電路

2.2.2 獨立式鍵盤

    獨立式鍵盤中,各按鍵相互獨立,每個按鍵各接一根輸入線,每根輸入線上的按鍵工作狀態不會影響其它輸入線上的工作狀態。因此,通過檢測輸入線的電平狀態就可以很容易的判斷按鍵是否被按下了。獨立式鍵盤電路配置靈活,軟件結構簡單。但每個按鍵需占用一根輸入線,在按鍵數量較多時,輸入口浪費大,電路結構顯得很繁雜,故此種鍵盤適用于按鍵較少或操作速度較高的場合。如圖7所示。

按鍵與AT89C52的P1口連接。 KEY1是監測是否輸出鋸齒波按鍵;KEY2是監測是否輸出三角波按鍵;KEY3監測是否輸出梯形波按鍵;KEY4監測是否輸出正弦波按鍵;KEY5是調頻按鍵。

圖7 獨立式鍵盤電路圖

2.2.3數模轉換電路

DAC0832是8分辨率的D/A轉換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉換控制容易等優點,在單片機應用系統中得到廣泛的應用。D/A轉換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換電路及轉換控制電路構成。

    由于AT89C51所產生的是數字信號,所以通過DAC0832把數字信號轉換成模擬信號。DAC0832輸出的模擬量是電流,為了轉換成電壓,所以在它后面接入一個運放器。如圖8。

圖 8 數模轉換電路圖

2.2.4驅動電路

    74HC138作用原理于高性能的存貯譯碼或要求傳輸延遲時間短的數據傳輸系統,在 高性能存貯器系統中,用這種譯碼器可以提高譯碼系統的效率。

    74HC573數據鎖存器。主要用于數碼管、按鍵等等的控制。如圖9所示,74HC138加74HC573的工作電路。

圖9 74HC138和74HC573的工作電路。

2.3總電路圖

    多種波形發生器的總電路圖如圖10所示

圖11 總電路圖

3 程序設計

3.1主流程圖的設計

主程序的流程圖如圖12所示,開始時判斷是否調頻,然后判斷是否調用鋸齒波程序,然后判斷是否調用三角波程序,然后判斷是否調用梯形波程序,然后判斷是否調用正弦波程序,最后在循環回到判斷是否調頻。

圖12 軟件主程序流程圖

3.2 子程序的設計

3.2.1鋸齒波的產生

    鋸齒波的實現過程是首先定義一個初值然后進行加法操作,加的步數的多少則根據要求的頻率來進行。然后加到某個數之后就再重新設置為初值,再重復執行剛剛的操作,如此循環下去。子程序如下:

  ST:MOV A,#00H           ;設置初值

LOOP:MOVX @DPTR,A         ;把數據送到端口轉換

     ADD A,R6             ;通過步長改變數據,上升波形

     CJNE A,#00H,LOOP     ;A值是否到最高點

                DJNZ R5,LOOP

      SJMP LOP

3.2.2三角波的產生

    三角波的實現是設置一個初值,當加到某個值的時候,執行減一操作,減到初值時,再加一。子程序如下:

TRIANGLE:MOV A,#00H           ;設置初值

   LOOP3:MOVX @DPTR,A         ;把數據送到端口轉換

         ADD A,R6             ;通過步長改變數據上升波形

         CJNE A,#00H,LOOP3    ;A值是否到最高點

         DEC A                ;減少步長改變數據下降波形

   LOOP2:MOVX @DPTR,A         ;把數據送到端口轉換

         DEC A                ;減少步長改變數據下降波形

         CJNE A,#00H,LOOP2    ;A值是否到最低點   

                    DJNZ R5,LOOP3       ;波形周期

         SJMP LOP             ;返回檢測開關

3.2.3梯形波的產生

梯形波的實現是設置一個初值,然后進行加一,當加到某個數時延時,之后減一,減到初值時在返回到之前的操作,繼續加一、延時、減一。梯形波產生的子程序如下:

TXING:MOV A,#00H             ;設置初值

LOOP4:MOVX @DPTR,A           ;把數據送到端口轉換

      ADD A,R6               ;增加步長改變數據上升波形

      CJNE A,#00H,LOOP4      ;A值是否到最高點

      SUBB A,R6              ;下降波形做準備

      DEC A

      MOV R7,0EEH            ;循環次數

LOP2:MOVX @DPTR,A           ;進行延時

      DJNZ R7,LOP2

LOOP1:MOVX @DPTR,A           ;把數據送到端口轉換

      SUBB A,R6

      DEC A

      CJNE A,#00H,LOOP1      ;是否到最低點

      MOV R7,0EEH            ;循環次數

   LOP1:MOVX @DPTR,A         ;把數據送到端口轉換

        DJNZ R7,LOP1         ;進行延時

        SJMP LOP             ;返回檢測開關

3.2.4正弦波的產生

    正弦波的實現比較麻煩,需要查表,每查一次表,輸出一個數值,之后查下一個數值繼續輸出,當一個波形的256個數值全部輸出之后,從頭開始繼續輸出。正弦波產生的子程序如下:

SINE:MOV A,#00H              ;設置初值

LOOP7:MOV R7,A                ;保存當前的數據

      MOV DPTR,#SIN           ;讀取表的地址

      MOVC A,@A+DPTR          ;讀取表中的數據

      MOV DPTR,#7FFH          ;D/A0832的端口地址

      MOVX @DPTR,A            ;進行數據轉換

      MOV A,R7                ;恢復當前數據

      INC A                   ;為讀取表的下一個值做準備

      CJNE A,#00H,LOOP7       ;是否讀完表的數據

      SJMP START              ;返回檢測開關

   FM:MOV R6,#04H             ;改變調頻/調幅

      MOV R5,#02H  

      SJMP START              ;返回檢測開關

;--------以下是通過正弦的值所建立的一個表

SIN:   DB  80H, 83H, 86H, 89H, 8DH, 90H, 93H, 96H

       DB  99H, 9CH, 9FH,0A2H,0A5H,0A8H,0ABH,0AEH

       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,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, 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, 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, 4EH

   DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H

   DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H

3.2.5主程序

    主程序的代碼如下:

      ORG 0000H              ;程序開始

      MOV SP,#60H            ;設置堆棧

      MOV DPTR,#7FFH         ;0832的地址

  LOP:MOV P1,#0FFH

      MOV A,P1

      JNB P1.5,FM            ;是否需要調頻

      MOV R6,#01H            ;設置步長

      MOV R5,#01H  

START:JNB P1.0,ST            ;輸出鋸齒波程序

      JNB P1.1,TRIANGLE      ;輸出三角波程序

      JNB P1.2,TXING         ;輸出梯形波程序

      JNB P1.3,SINE          ;輸出正弦波程序

      SJMP LOP               ;循環檢測

4應用軟件

    本次課程設計中,我們用到了Protues7.8對其電路圖進行繪制和仿真,還用到了Keil C51對程序進行譯碼和編譯。下面對這兩個軟件進行簡單的介紹。

4.1 Proteus

   Protues軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。

    Protues軟件具有其它EDA工具軟件的功能。它能夠完成原理布圖、PCB自動或人工布線和SPICE電路仿真的功能。同時Protues具有革命性的特點:

  • 互動的電路仿真。用戶甚至可以實時采用諸如RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
  • 仿真處理器及其外圍電路。可以仿真51系列、AVR、PIC、ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統配置的虛擬邏輯分析儀、示波器等,Protues建立了完備的電子設計開發環境。

Protues提供了4大功能模塊:

(1)智能原理圖設計(ISIS

豐富的器件庫:超過27000種元器件,可方便地創建新元件;智能的器件搜索:通過模糊搜索可以快速定位所需要的器件;智能化的連線功能:自動連線功能使連接導線簡單快捷,大大縮短繪圖時間;支持總線結構:使用總線器件和總線布線使電路設計簡明清晰;可輸出高質量圖紙:通過個性化設置,可以生成印刷質量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。

(2)完善的電路仿真功能(Prospice

ProSPICE混合仿真:基于工業標準SPICE3F5,實現數字/模擬電路的混合仿真;超過27000個仿真器件:可以通過內部原型或使用廠家的SPICE文件自行設計仿真器件,Labcenter也在不斷地發布新的仿真器件,還可導入第三方發布的仿真器件; 多樣的激勵源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數信號、單頻FM、數字時鐘和碼流,還支持文件形式的信號輸入; 豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發生器、直流電壓/電流表、交流電壓/電流表、數字圖案發生器、頻率計/計數器、邏輯探頭、虛擬終端、SPI調試器、I2C調試器等; 生動的仿真顯示:用色點顯示引腳的數字電平,導線以不同顏色表示其對地電壓大小,結合動態器件(如電機、顯示器件、按鈕)的使用可以使仿真更加直觀、生動; 高級圖形仿真功能(ASF):基于圖標的分析可以精確分析電路的多項指標,包括工作點、瞬態特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進行一致性分析。

(3)獨特的單片機協同仿真功能(VSM

支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級還在繼續增加,如即將支持CORTEX、DSP處理器;支持通用外設模型:如字符LCD模塊、圖形LCD模塊、LED點陣、LED七段顯示模塊、鍵盤/按鍵、直流/步進/伺服電機、RS232虛擬終端、電子溫度計等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過PC機串口和外部電路實現雙向異步串行通信; 實時仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。編譯及調試:支持單片機匯編語言的編輯/編譯/源碼級仿真,內帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環境(如IAR、Keil和Hitech)結合,進行高級語言的源碼級仿真和調試。

(4)實用的PCB設計平臺

原理圖到PCB的快速通道:原理圖設計完成后,一鍵便可進入ARES的PCB設計環境,實現從概念到產品的完整設計;先進的自動布局/布線功能:支持器件的自動/人工布局;支持無網格自動布線或人工布線;支持引腳交換/門交換功能使PCB設計更為合理; 完整的PCB設計功能:最多可設計16個銅箔層,2個絲印層,4個機械層(含板邊),靈活的布線策略供用戶設置,自動設計規則檢查,3D可視化預覽;多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導入或導出,便利與其它PCB設計工具的互轉(如protel)和PCB板的設計和加工。

4.2 KeilC51

    Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。

    Keil C51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。

    C51工具包的整體結構,uVision與Ishell分別是C51 for Windows和for Dos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。

Keil具有具有很多優點:

(1)Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。

(2)與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用C來開發,體會更加深刻。 Keil C51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。

5調試與仿真結果

    本次的設計主要應用了protues和keilC51軟件進行系統設計和仿真,經過仿真后,結果較好,示波器可以正確的輸出鋸齒波、三角波、梯形波、正弦波。

    沒有按鍵按下時,波形圖如圖13所示

圖13 沒有按鍵按下時波形圖

當按下K1按鍵時,產生鋸齒波,如圖14所示

圖14 按下K1鍵產生鋸齒波

當按下K2按鍵時,產生三角波,15如圖所示

圖15 按下K2鍵時產生三角波

當按下按鍵K3時,產生梯形波,如圖16所示

圖16 按下K3產生梯形波

當按下K4按鍵時,產生正弦波,如圖17所示

圖17 按下K4產生正弦波

按下K5按鍵的時候采樣頻率會發生變化。

6總結

經過近兩周的單片機課程設計,終于完成了我們組的波形發生器的設計,基本達到了設計要求,從心底里來說,還是很高興的。但還是有很多需要反思的問題。

在本次設計的過程中,雖然讓我長進了很多。對于單片機設計,其中硬件電路是比較簡單的,主要是解決程序設計的問題,而程序設計它反映了我們解決問題的思維邏輯和創新能力。因此在整個設計過程中大部分時間是用在程序上面的。

要設計一個成功的電路,必須要有耐心,要有堅持的毅力。完成這次設計后,我在書本理論知識的基礎上又有了更深層次的理解。我發現,在我們所使用的書籍上有些知識在實際應用中其實并不是十分理想,各種參數都需要自己去調整。這就要求我們更加注重實踐環節。



完整的Word格式文檔51黑下載地址:
基于單片機的多波形信號發生器設計.docx (368.93 KB, 下載次數: 84)


回復

使用道具 舉報

ID:771950 發表于 2020-6-7 17:26 | 顯示全部樓層
求資源
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线观看一区 | 久久三级av| 日本一区二区三区四区 | 中文字幕欧美一区二区 | 国产精品国产a级 | 亚洲精品免费视频 | 亚洲精品久久久9婷婷中文字幕 | 欧美日韩一二三区 | 久久精品中文字幕 | 精品欧美乱码久久久久久1区2区 | 欧美一区日韩一区 | 一区二区三区亚洲 | 九九热最新地址 | 日韩精品一区二区三区中文字幕 | 欧美一区二区二区 | 久久成 | 久久久av一区 | 日韩精品免费在线观看 | 欧美日韩国产一区 | 亚洲喷水| 国产线视频精品免费观看视频 | 精品av久久久久电影 | 一级片aaa | 日本精品裸体写真集在线观看 | 激情毛片| 一区二区三区四区在线播放 | 黄色av网站在线观看 | 99精品网 | 中文字幕亚洲视频 | 91精品国产综合久久久久久丝袜 | 青青久久久 | 男人天堂手机在线视频 | 国产一区二区三区在线 | 91精品久久久 | 欧美一级片黄色 | 国产精品久久久久久久午夜片 | 网址黄| 成人免费av | 欧美美女被c | www.4hu影院| 九九亚洲 |