




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Institute of Technology. East China Jiaotong University 畢 業 設 計(論 文) Graduation Design (Thesis)題 目 基于單片機的函數信號發生器設計 畢業論文(設計)原創性聲明本人所呈交的畢業論文(設計)是我在導師的指導下進行的研究工作及取得的研究成果。據我所知,除文中已經注明引用的內容外,本論文(設計)不包含其他個人已經發表或撰寫過的研究成果。對本論文(設計)的研究做出重要貢獻的個人和集體,均已在文中作了明確說明并表示謝意。 作者簽名: 日期: 畢業論文(設計)授權使用說明本論文(設計)作者完全了解*學院有關保留
2、、使用畢業論文(設計)的規定,學校有權保留論文(設計)并向相關部門送交論文(設計)的電子版和紙質版。有權將論文(設計)用于非贏利目的的少量復制并允許論文(設計)進入學校圖書館被查閱。學??梢怨颊撐模ㄔO計)的全部或部分內容。保密的論文(設計)在解密后適用本規定。 作者簽名: 指導教師簽名: 日期: 日期: 注 意 事 項1.設計(論文)的內容包括:1)封面(按教務處制定的標準封面格式制作)2)原創性聲明3)中文摘要(300字左右)、關鍵詞4)外文摘要、關鍵詞 5)目次頁(附件不統一編入)6)論文主體部分:引言(或緒論)、正文、結論7)參考文獻8)致謝9)附錄(對論文支持必要時)2.論文字數要求
3、:理工類設計(論文)正文字數不少于1萬字(不包括圖紙、程序清單等),文科類論文正文字數不少于1.2萬字。3.附件包括:任務書、開題報告、外文譯文、譯文原文(復印件)。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體及大小符合要求,無錯別字,不準請他人代寫2)工程設計類題目的圖紙,要求部分用尺規繪制,部分用計算機繪制,所有圖紙應符合國家技術標準規范。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準用徒手畫3)畢業論文須用A4單面打印,論文50頁以上的雙面打印4)圖表應繪制于無格子的頁面上5)軟件工程類課題應有程序清單,并提供電子文檔5.裝訂順序1)設計(論文)2)附件:按照
4、任務書、開題報告、外文譯文、譯文原文(復印件)次序裝訂3)其它目錄摘 要I第1章 緒 論11.1 本課題研究背景11.2 函數發生器分類21.3 研究內容3第2章 整體設計方案42.1 方案的提出和整論42.2 設計原理5第3章 硬件設計74.1 硬件整體設計74.2 復位電路84.3 時鐘電路84.4 鍵盤電路94.5 D/A轉換模塊11114.6 顯示電路設計13第4章 軟件設計144.1 設計構思144.2 主程序流程圖144.3 波形產生子程序184.4 中斷服務子程序204.5 按鍵掃描子程序214.6 顯示子程序22第5章 仿真驗證235.1 整體設計235.2 功能實現235.3
5、 本章小結26結論27參考文獻29摘 要 信號發生器是學習、科研領域中一種十分常用的信號源,廣泛地應用于電子電路、自動控制系統和教學實驗等領域。目前使用的信號發生器大部分是函數信號發生器,且特殊波形發生器的價格昂貴。為此,為節省成本,本文利用80C51單片機構成信號發生器,可產生三角波、方波、正弦波等多種特殊波形,波形的頻率可用程序控制改變。 本次設計利用80C51設計一個函數信號發生器,詳細說明了其實現過程。本系統使用匯編語言編寫,用80C51單片機來實現各模塊功能,使用PROTEUS進行仿真。本文描述使用匯編語言和PROTEUS仿真實現函數信號發生器的基本功能,實現了方波、三角波、正弦波、
6、鋸齒波,頻率可調為10HZ、100HZ、500HZ、1000HZ。本文給出了源程序、各模塊的連接圖以及仿真圖,并做出了詳細的分析。經測試該設計方案線路優化,結構緊湊,性能優越,滿足設計要求。關鍵詞:信號發生器;80C51;PROTEUS;頻率可調;單片機AbstractSignal generators are learning, research in the field of a very common source, widely used in the field of electronic circuits, automatic control system and teaching
7、 experiments. Most of the current signal generator is a function of the signal generator, and the price is expensive special waveform generator. For this reason, in order to save costs, we use 80C51 microcontroller constitute signal generator can generate triangle wave, square wave, sine wave and ot
8、her special frequency can be controlled by changing the waveform. The design uses 80C51 design a function generator, a detailed description of its implementation process. The system is written in assembly language, using 80C51 microcontroller to achieve the function of each module, using the PROTEUS
9、 simulation.This paper describes the use of assembly language and PROTEUS simulation function of the basic functions of the signal generator to achieve a square wave, triangle wave, sine, sawtooth, adjustable frequency is 10HZ, 100HZ, 500HZ, 1000HZ. In this paper, the source, connection diagram and
10、simulation diagram of each module, and make a detailed analysis. . The line has been tested and optimized design, compact structure, superior performance to meet the design requirements.Key words: Signal generator; 80C51; PROTEUS; adjustable frequency; MCU第1章 緒 論1.1 本課題研究背景 隨著電子測量及其他部門對各類信號發生器的廣泛需求及
11、電子技術的迅速發展,促使信號發生器種類增多,性能提高。尤其隨著70年代微處理器的出現,更促使信號發生器向著自動化、智能化方向發展。現在,許多信號發生器帶有微處理器,因而具備了自校、自檢、自動故障診斷和自動波形形成和修正等功能,可以和控制計算機及其他測量儀器一起方便的構成自動測試系統。當前信號發生器總的趨勢是向著寬頻率覆蓋、低功耗、高頻率精度、多功能、自動化和智能化方向發展。在科學研究、工程教育及生產實踐中,如工業過程控制、教學實驗、機械振動試驗、動態分析、材料試驗、生物醫學等領域,常常需要用到低頻信號發生器。而在我們日常生活中,以及一些科學研究中,鋸齒波和正弦波、矩形波信號是常用的基本測試信號
12、。譬如在示波器、電視機等儀器中,為了使電子按照一定規律運動,以利用熒光屏顯示圖像,常用到鋸齒波產生器作為時基電路。信號發生器作為一種通用的電子儀器,在生產、科研、測控、通訊等領域都得到了廣泛的應用。 但市面上能看到的儀器在頻率精度、帶寬、波形種類及程控方面都已不能滿足許多方面實際應用的需求。加之各類功能的半導體集成芯片的快速生產,都使我們研制一種低功耗、寬頻帶,能產生多種波形并具有程控等低頻的信號發生器成為可能1。單片機是指一個集成在一塊芯片上的完整計算機系統。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部總線系統,目前大部分還會具有
13、外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網絡、復雜的輸入輸出系統集成在一塊芯片上。單片機是所有微處理機中性價比最高的一種,隨著種類的不斷全面,功能不斷完善,其應用領域也迅速擴大。單片機在智能儀表、實時控制、機電一體化、辦公機械、家用電器等方面都有相當的應用領域。當前,8位單片機主要用于工業控制,如溫度、壓力、流量、計量和機械加工的測量和控制場合;高效能的16位單片機(如MCS-96、MK-68200)可用在更復雜的計算機網絡??梢哉f,微機測控技術的應用已滲透到國民經濟的各個部門,微機測控技術的應用是產品提高檔次和推陳出新的有效途徑2
14、。便攜式和智能化越來越成為儀器的基本要求,對傳統儀器的數字化,智能化,集成化也就明顯得尤為重要。平時常用信號源產生正弦波,方波,三角波等常見波形作為待測系統的輸入,測試系統的性能。單在某些場合,我們需要特殊波形對系統進行測試,這是傳統的模擬信號發生器和數字信號發生器很難勝任的。利用單片機的強大功能,設計合適的人機交互界面,使用戶能夠通過手動的設定,設置所需波形。1.2 函數發生器分類函數發生器應用廣泛,種類繁多,性能各異,分類也不盡一致。函數發生器亦稱信號發生器,主要作為實驗用信號源,是現今各種電子電路實驗設計應用中必不可少的儀器設備之一。按照頻率范圍分類可以分為:超低頻信號發生器、低頻信號發
15、生器、視頻信號發生器、高頻波形發生器、甚高頻波形發生器和超高頻信號發生器。按照輸出波形分類可以分為:正弦信號發生器和非正弦信號發生器,非正弦信號發生器又包括:脈沖信號發生器,函數信號發生器、掃頻信號發生器、數字序列波形發生器、圖形信號發生器、噪聲信號發生器等。按照信號發生器性能指標可以分為一般信號發生器和標準信號發生器。前者指對輸出信號的頻率、幅度的準確度和穩定度以及波形失真等要求不高的一類信號發生器。后者是指其輸出信號的頻率、幅度、調制系數等在一定范圍內連續可調,并且讀數準確、穩定、屏蔽良好的中、高檔信號發生器3。函數發生器作為一種常見的應用電子儀器設備,傳統的一般可以完全由硬件電路搭接而成
16、,如采用555振蕩電路發生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機。但是這種電路存在波形質量差,控制難,可調范圍小,電路復雜和體積大等缺點。在科學研究和生產實踐中,如工業過程控制,生物醫學,地震模擬機械振動等領域常常要用到低頻信號源。而由硬件電路構成的低頻信號其性能難以令人滿意,而且由于低頻信號源所需的RC要很大。大電阻,大電容在制作上有困難,參數的精度亦難以保證。體積大,漏電,損耗顯著更是其致命的弱點。一旦工作需求功能有增加,則電路復雜程度會大大增加。利用單片機采用程序設計方法來產生低頻信號,其頻率底線很低。具有線路相對簡單,結構緊湊,價格低廉,頻率穩定度高,抗干擾能力強
17、,用途廣泛等優點,并且能夠對波形進行細微調整,改良波形,使其滿足系統的要求。只要對電路稍加修改,調整程序,即可完成功能升級。1.3 研究內容本次設計是基于80C51單片機信號發生器設計,信號發生器可以產生方波、三角波、正弦波、3種波形,通過D/A轉換器DAC0832將數字信號轉換成模擬信號,濾波放大,最終由示波器顯示出來,能產10HZ、100HZ、500HZ、1000HZ的波形。在程序運行中,當接收到來自外界的命令,需要輸出某種波形時再調用相應的中斷服務子程序和波形發生程序,經電路的數/模轉換器和運算放大器處理后,從信號發生器的輸出端口輸出4。 第2章 整體設計方案2.1 方案的提出和整論常用
18、的函數信號發生器的實現方法有如下幾種:1.采用分立元件實現信號的輸出,主要是通過模擬電路實現正弦信號的輸出,在通過各種積分微分電路實現各種不同波形的輸出。但是這種方法頻率和幅值的調整比較困難,而且模擬電路受外部因素的影響較大,輸出的波形難以控制。2.采用集成信號發生芯片MAX038輸出各種波形,并通過外接電阻值改變實現對幅值和頻率的調整。這種方法實現起來比較容易,但是頻率和幅值的調節比較困難5。圖2-1 基于MAX038的信號發生器原理圖3.采用DAC0832通過查表得方式輸出需要的波形,通過單片機定時向DAC轉化器發送轉換數據,實現不同的幅值和頻率的輸出。這種方法能夠實現各種需要的波形的輸出
19、,成本也不高,只是在擴展外設的時候浪費了大量的接口,以后的系統擴展可能會有影響6。 4.采用DDS頻率合成器,能輸出各種波形,而且能夠輕松調節幅值和頻率。DDS同DSP(數字信號處理)一樣,是一項關鍵的數字化技術。DDS是直接數字式頻率合成器(Direct Digital Synthesizer)的英文縮寫。與傳統的頻率合成器相比,DDS具有低成本、低功耗、高分辨率和快速轉換時間等優點,廣泛使用在電信與電子儀器領域,是實現設備全數字化的一個關鍵技術。一塊DDS芯片中主要包括頻率控制寄存器、高速相位累加器和正弦計算器三個部分。頻率控制寄存器可以串行或并行的方式裝載并寄存用戶輸入的頻率控制碼;而相
20、位累加器根據DDS頻率控制碼在每個時鐘周期內進行相位累加,得到一個相位值;正弦計算器則對該相位值計算數字化正弦波幅度(芯片一般通過查表得到)。DDS芯片輸出的一般是數字化的正弦波,因此還需經過高速D/A轉換器和低通濾波器才能得到一個可用的模擬頻率信號7。圖2-2 DDS的原理框圖鑒于方案一的信號頻率不夠穩定和方案二的電路復雜,頻率覆蓋系數難以達標等缺點,所以決定采用方案三的設計方法。它不僅采用軟硬件結合,軟件控制硬件的方法來實現,使得信號頻率的穩定性和精度的準確性得以保證,而且它使用的幾種元器件都是常用元器件,容易得到,且價格便宜,使得硬件開銷達最省8。2.2 設計原理 數字信號可以通過數/模
21、轉換器轉換成模擬信號,因此可通過產生數字信號再轉換成模擬信號的方法來獲得所需要的波形。89C51單片機本身就是一個完整的微型計算機,具有組成微型計算機的各部分部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時器/計數器以及串行通訊接口等,只要將89C51再配置鍵盤及其接口、顯示器及其接口、數模轉換及波形輸出、指示燈及其接口等四部分,即可構成所需的波形發生器,其信號發生器構成原理框圖如圖2-3所示9。圖2-2 整體設計方案80C51是整個波形發生器的核心部分,通過程序的編寫和執行,產生各種各樣的信號,并從鍵盤接收數據,進行各種功能的轉換和信號幅度的調節。當數字信
22、號經過接口電路到達轉換電路,將其轉換成模擬信號也就是所需要輸出波形10。第3章 硬件設計硬件原理硬件電路設計決定一個系統功能,是設計基礎所在,而一般設計目標:可靠,簡潔,高效,優化,好硬件電路可給程序編寫帶來極大優勢,同時使可以很好提高該信號設計精度和靈敏度,使整個系統工作協調有序。以80C51單片機芯片作為核心處理器,編程實現各種不同類型信號,最后通過DA轉換輸出11。4.1 硬件整體設計由頻率控制模塊、幅度控制模塊、鍵盤模塊和液晶顯示模塊組成整個系統。用單片機控制鍵盤和液晶顯示,液晶屏顯示四個參數:頻率、幅值、類型和不同頻率范圍中頻率的步進。用單片機控制兩個數字電位器中的抽頭位置來實現改變
23、輸出的頻率和幅度的大小,運用數字電位器X9C103和ICL8038共同設計的函數信號發生器。該電路能夠產生穩定的正弦波信號、三角波信號、頻率與占比可調節的矩形波信號,其輸出頻率能在1Hz-IMHz范圍內連續調整,達到調試簡單、性能穩定、使用方便等優點。其工作系統框圖如下圖4-1所示。4-1 整體硬件電路4.2 復位電路無論哪種類型的單片機,這些器件總要涉及到單片機的復位電路以及復位電路的設計。、單片機上電復位電路設計好與壞,將直接影響整個微機控制系統工作可靠性與穩定性。很多用戶在設計完單片機控制系統,實驗室可能調試成功后,但是在現場卻出現“死機”和“程序跑飛”等現象產生,導致這些最主要原因可能
24、是復位電路設計不當造成,因此設計一個很好復位電路對于單片機控制系統運行來說非常重要。復位電路連接有三種連接方式,列舉一種,如圖4-2所示:4-2 復位電路設計4.3 時鐘電路單片機的時鐘信號通常用兩種電路形式得到:內部振蕩和外部振蕩方式。在引腳XTAL1 和XTAL2 外接晶體振蕩器,構成了內部振蕩方式。由于單片機內部有一個高增益的反相放大器,當外接晶振后,就構成了自激振蕩,并產生振動時鐘脈沖。晶振通常選用6MHZ、12MHZ、24MHZ。本設計中時鐘電路圖如圖4-3,選擇了12MHZ和晶振分別接引腳XTAL1 和XTAL2,電容C1,C2 均選擇為30pF,對振蕩器的頻率有穩定作用,當頻率較
25、大時,正弦波、方波、三角波及鋸齒波中每一點的延時時間為幾微妙,故延時時間還加上指令時間才能獲得較大的頻率波形12。4-3 時鐘電路設計4.4 鍵盤電路 通常單片機外部擴展鍵盤的方式有獨立式鍵盤,矩陣鍵盤以及專門的鍵盤電路。獨立式鍵盤就是一個I/O口擴展一個開關,這種方式程序編寫比較容易,只需要檢測單片機I/O某一時刻是否為低電平就能檢測出其的按鍵輸入情況,而且按鍵和I/O口一一對應,所以能夠輕松識別按鍵的值,如圖4-3所示為獨立按鍵接口電路。本設計中采用的是3個獨立的功能按鍵。S1用來切換現在產生的波形。當沒有按下S1時信號發生器產生方波信號。第一次按下S1時,將切換成三角波信號。第二次按下S
26、1時,將切換產生正弦波信號。第三次按下S1時,又產生方波信號。這樣一直循環。S2用來調節輸出的函數信號的頻率。當沒有按下S2時,產生的函數信號最高。當按下S2時,波形頻率降低,同時還要對應向LED顯示緩沖區給定一個頻率值提供當前頻率顯示所需要的數據。S2按7次一個循環。當第7次按下時恢復到最高頻率輸出。S3用來啟動對輸出的函數信號電壓值測量。當S3沒有按下時,單片機只向DAC0832送波形數據表和顯示當前波形的頻率。按下S3后,單片機除了向DAC0832送波形數據表外,還要每隔一小段時間對讀取ADC0809轉換電壓值,并且換算出來,送給LED顯示當前電壓。此時不再顯示當前波形頻率13。4-4
27、獨立式鍵盤 矩陣鍵盤相比獨立式鍵盤其擴充的量大大增加,例如常見的4*4矩陣鍵盤占用的I/O口為4+4=8個,當需要擴充為20鍵輸入時只需要4+5=9個I/O口,而采用獨立式鍵盤的時候要分別用掉16個I/O口和20個I/O口,由于單片機的I/O口數量有限,很難將大量的I/O口用于,顯然矩陣鍵盤能夠大大的減少系統I/O口的使用,矩陣鍵盤的缺點是編寫程序比較麻煩,需要上拉電阻系統的連線和元器件都增加。當采用行掃描方式讀取鍵值時,需要4個上拉電阻,提供需要的高電平,當采用線反轉法式需要采用8個上拉電阻,顯然整個電路的接線都將變得更加復雜。矩陣式按鍵鍵盤中,分為行線和列線兩種,行線和列線與矩陣按鍵開關的
28、兩端相連接,其中行線是連接到5V電源上。當沒有按鍵按下時,行線會處于高電平狀態;當有按鍵動作時,行線和列線將導通。這是矩陣式按鍵來識別按鍵是否按下的關鍵策略14。4-5 矩陣式鍵盤4.5 D/A轉換模塊 DAC0832轉換器簡介DAC0832是雙列直插式8位D/A轉換器。能完成數字量輸入到模擬量(電流)輸出的轉換。其主要參數如下:分辨率為8位,轉換時間為1s,滿量程誤差為1LSB,參考電壓為(+10-10)V,供電電源為(+5+15)V,邏輯電平輸入與TTL兼容。從圖3.7中可見,在DAC0832中有兩級鎖存器,第一級鎖存器稱為輸入寄存器,它的允許鎖存信號為ILE,第二級鎖存器稱為DAC寄存器
29、,它的鎖存信號也稱為通道控制信號XFER。圖4-6 DAC0832引腳圖圖4-6中,當ILE為高電平,片選信號CS 和寫信號WR1為低電平時,輸入寄存器控制信號為1,這種情況下,輸入寄存器的輸出隨輸入而變化。此后,當WR1由低電平變高時,控制信號成為低電平,此時,數據被鎖存到輸入寄存器中,這樣輸入寄存器的輸出端不再隨外部數據DB的變化而變化。對第二級鎖存來說,傳送控制信號XFER 和寫信號WR2同時為低電平時,二級鎖存控制信號為高電平,8位的DAC寄存器的輸出隨輸入而變化,此后,當WR2由低電平變高時,控制信號變為低電平,于是將輸入寄存器的信息鎖存到DAC寄存器中。 DAC0832各引腳編號及
30、其作用: 1.1號CS引腳:片選信號輸入線,低電平有效; 2.2號WR1引腳:為輸入寄存器的寫選通信號; 3.3號AGND引腳:模擬地,模擬信號和基準電源的參考地; 4.4-7,13-16號D0-D7引腳:數據輸入線,TLL電平; 5.8號V ref引腳:基準電壓輸入(-10V+10V); 6.9號RFB引腳:反饋信號輸入線,芯片內部有反饋電阻; 7.10號DGND引腳:數字地; 8.11號IOUT1引腳:電流輸出線,當輸入全為1時,IOUT1最大; 9.12號IOUT2引腳:電流輸出線,其值與IOUT1為一常數; 10.17號XFRE引腳:數據傳送控制信號輸入線,低電平有效; 11.18號W
31、R2引腳:為DAC寄存器寫選通輸入線; 12.19號ILE引腳:數據鎖存允許控制信號輸入線,高電平有效; 32.0號V cc引腳:電源輸入線(+5V+15V)Vref。本次設計選擇的D/A轉化器是DAC0832,是一款8分辨率的D/A轉換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉換控制容易等優點,在單片機應用系統中得到廣泛的應用。D/A轉換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換電路及轉換控制電路構成。AT89C51單片機控制兩片DAC0832的原理如圖4-7所示。4-7 單片機控制DAC0832的D/A轉換15。本文選用價格低廉、接口簡單、轉換控制容易并
32、具有8位分辨率的數模轉換器。DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉換器以及輸入控制電路四部分組成。但實際上,DAC0832輸出的電量也不是真正能連續可調,而是以其絕對分辨率為單位增減,是準模擬量的輸出。DAC0832是電流型輸出,在應用時外接運放使之成為電壓型輸出。4.6 顯示電路設計顯示電路是用來顯示波形信號的頻率,使得整個系統更加合理,從經濟的角度出發,所以顯示器件采用LED數碼管顯示器。而且LED數碼管是采用共陽極接法,當主控端口輸出一個低電平后,與其相對應的數碼管即變亮,顯示所需數據。 本次設計要求對輸出波形的頻率,幅值和波形進行輸出,所以要
33、擴展顯示模塊,常用的顯示模塊LCD有7端數碼管,LCD1602和12864等液晶顯示屏。為了降低設計的成本和擴展的難度,本次設計選擇使用7段數碼管。LED顯示器工作方式有兩種:靜態顯示方式和動態顯示方式。靜態顯示的特點是每個數碼管的段選必須接一個8位數據線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優點是占用CPU時間少,顯示便于監測和控制。缺點是硬件電路比較復雜,成本較高。 動態顯示的特點是將所有位數碼管的段選線并聯在一起,由位選線控制是哪一位數碼管有效。選亮數碼管采用動態掃描顯示。所謂動態掃描顯示即輪流向各位數碼管送出字形碼和相應的位選,利用
34、發光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。動態顯示的亮度比靜態顯示要差一些,所以在選擇限流電阻時應略小于靜態顯示電路中的16。圖4-8 顯示器第4章 軟件設計4.1 設計構思 幅度控制:由于D/A數模轉換器輸出的最大幅度可以用其基準電壓來控制,所以控制第二片D/A數模轉換器輸出給第一片D/A數模轉換器的電壓值就可控制信號幅度。因此,送入第二片的值是幾個固定的值。由于DAC0832內部具有鎖存器,所以只需向第二片D/A送值一次,直到下一次改變信號幅度。 頻率控制:單片機內部數據只有0、1之分,所產生的信號也都是離散信號。為了能夠讓單片機輸出所需的數字信號,我們采用對信
35、號采樣、量化的方法來實現由單片機產生所需信號。在本設計中,對信號的四分之一周期采樣19個幅度值,通過反復查表來輸出幅度值,而整個信號是通過正查表和逆向查表來實現的。采樣的點越密,信號失真度也就越小。兩次采樣點的輸出時間間隔是由定時、計數器來控制的,因此,通過控制不同的計數初值就可以控制整個信號的頻率。計數時間=信號周期/72。計數次數=計數時間/機器周期。對應的,計數初值=65536計數次數。單片機只能產生離散頻率的信號,所以所得到的信號頻率不是連續的,而是離散的頻率點。由于這部分計算位數較多,不適合用單片機編程來計算計數初值,所以本設計中將各頻率的計數初值算出,讓單片機按控制命令來查表控制頻
36、率。正弦波和三角波的頻率控制方法都與上述方法相同,而方波的頻率控制是半周期計數,經過半周期只需改變輸出為最大或最小電平即可17。4.2 主程序流程圖主程序的流程圖如圖4-1所示,在程序開始運行之后,首先是對程序進行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時間常數,并通過顯示器顯示出來,不符則返回。在中斷結束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。本文中子程序的調用是通過按鍵的選擇來實現,在取得按鍵相應的鍵值后,啟動計時器和相應的中斷服務程序,再直接查詢程序中預先設置的數據值,通過轉換輸出相應的電壓,從而形成所需的各種波形。在程序開始運行之后,首先是對
37、8255A進行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時間常數,并通過顯示器顯示。4-1 主程序設計下面說明主程序流程圖的程序實現: 1.開始:ORG 0000H 程序開始執行,首先覺得跳轉到主程序AJM MAIN ORG 000BH 定時器0中斷入口地址,跳轉到中斷服務程序LJMP TCOORG 0030H2.8255A初始化:MOV DPTR,#7F00H 指向8155命令字端口地址MOV A,#06H 設置A口為輸入,B口、C口為輸出MOVX DPTR,A 送命令字3.判定信號頻率:MOV DPTR,#7F01H 指向A口地址MOVX A,DPTR 讀入A口的開關數據JNB
38、ACC.4,K10H 判斷是否“4”號鍵,若是則轉輸出10Hz信號JNB ACC.5,K100H 判斷是否“5”號鍵,若是則轉輸出100Hz信號JNB ACC.6,K500H 判斷是否“6”號鍵,若是則轉輸出500Hz信號JNB ACC.7,K1K 判斷是否“7”號鍵,若是則轉輸出1KHz信號AJMP MAIN 無鍵按下則返回等待4.根據頻率值置新的時間常數,以10HZ為例:K10H:MOV 30H,#00H 顯示10HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 調顯示子程序MOV TMOD,#
39、00HMOV TL0,#15HMOV TH0,#9EHAJMP PD5.顯示頻率值,以10HZ為例K10H:MOV 30H,#00H 顯示10HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 調顯示子程序6.顯示子程序:LED1: MOV R3,#06H 設置6個LED顯示MOV R2,#01H 選通第一位LED數據MOV R1,#30H 送顯示緩沖區首址GN1:MOV DPTR,#7F03H 指向C口地址MOV A,R2 位選通數據送AMOVX DPTR,A 位選通數據送C口RL A 選通下一位M
40、OV R2,A 位選通數據送R2中保存 MOV A, R1 取鍵值MOV DPTR,#TAB 送LED顯示軟件譯碼表首址MOVC A,A+DPTR 查表求出鍵值顯示的段碼MOV DPTR,#7F02H 指向B口地址MOV DPTR,A 段碼送顯示LCALL LOOP1 調延時子程序INC R1 指向下一位顯示緩沖區地址DJNZ R3,GN1 循環顯示6個LEDRET7.中斷設置開中斷:GN: SETB TR0 啟動定時器SETB ET0 開定時器0中斷SETB EA 開總中斷8.判定波形:PD:JNB ACC.0,KE0 判斷是否“0”號鍵按下,若是則轉方波輸出JNB ACC.1,KE1 判斷
41、是否“1”號鍵按下,若是則轉正弦方波輸出JNB ACC.2,KE2 判斷是否“2”號鍵按下,若是則轉三角波輸出JNB ACC.3,KE3 判斷是否“3”號鍵按下,若是則轉鋸4.3 波形產生子程序圖4-2為各波形子程序的流程圖。如圖所示,在中斷服務子程序開始后,通過判斷來確定各種波形的輸出,當判斷選擇的不是方波后,則轉向對正弦波的判斷,如此反復。如果選擇的是方波,則用查表的方法求出相應的數據,并通過D/A轉換器將數據轉換成模擬信號,形成所需波形信號18。4-2 波形產生子程序設計下面說明子程序流程圖的實現:1.中斷服務程序開始:LJMP TCO 絕對跳轉到中斷服務程序2.判斷是否方波及處理方法:
42、TCO:CJNE R7,#00H,TC1 判斷是否是方波,不是則跳轉MOV DPTR,#TAB1 送方波數據表首址MOV A,R6 發送數據寄存器MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC A MOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL13.判斷是夠是正弦波及處理方法:TC1:CJNE R7,#01H,TC2 發送正弦波程序MOV DPTR,#TAB2 送正弦波數據表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH
43、 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL14.判斷是否是三角波及處理方法:TC2:CJNE R7,#02H,QL1 發送三角波程序MOV DPTR,#TAB3 送三角波數據表首址MOV A,R6MOVC A,A+DPTR MOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00H AJMP QL14.4 中斷服務子程序
44、中斷服務子程序是產生波形必不可少的程序,其程序流程圖如下4-3所示,方波波形的實現較為簡單,只需開始的時候設置一個初值然后直接輸出這個值就行了,每次輸出的時間根據延時來定,我們把波形分為了256個點,輸出半個波形后,然后再對其置零,同樣輸出個數據一段時間,但是此時的時間一定要等于前面那段時間。這樣才是一個方波,如果兩個時間不相同,那就相當于一個脈沖波了。方波的幅值大小可以不用考慮,這些可由外部的運算放大器來放大。三角波的產生:初始化后,單片機先從00H開始輸出,經過規定的演示后家2H,再進過同樣的時間再加2H,這樣累加到FFH,一共累加了128次。到FFH后在減二,一直減到00H,這樣也是12
45、8次,同樣滿足可一個波形取點256次的要求。這樣把所得到的信號輸送給8255,這樣就可以從輸出端得到一個連續的三角波。因為其輸出端有運算放大器,可以實現對波形信號的放大。4-3 中斷子程序設計4.5 按鍵掃描子程序本次設計由于要求對幅值和頻率進行控制,所以要求用相關的按鍵輸入,前面已經介紹了各種按鍵的優缺點,最后選擇了獨立式鍵盤,分別為+-頻率,+-幅值,模式選擇5位,共占用5個IP口,選擇P2口的高5位作為按鍵輸入。程序中的模式選擇是通過MODE位輸入,通過設定一個模式標志位,當執行一次模式位按鍵程序,標志位自動+1,并指向其所指定的波形。幅值選擇通過按鍵AMPL+和AMPL-輸入,當執行了
46、幅值子程序的時候,系統通過改變X9511抽頭的位置,改變其Vw的輸出電壓,通過VREF改變輸出電壓的幅值。頻率的選擇則是通過FREQ+和FREQ-進行選擇的,當執行頻率調節子程序的時候,通過改變定時的初值實現的,當使用12M晶振時候,正弦表位256位時,理想中最大的頻率可以達到4KHz,當頻率為10Hz的時候,計數初值為390。由于系統采用的最低的初值時間為100,所以最高只能產生20Hz的頻率19。4-4 按鍵掃描子程序設計4.6 顯示子程序顯示部分采用動態輸出的方式,通過控制兩個鎖存器來控制實現單個I/O分時控制輸出輸出數碼管的段選(字形的選擇)和位選(位權的選擇)。如圖3-5-2通常的數
47、碼管動態顯示程序都要進行延時,然后靠人眼的余光實現數據的輸出,當延時時間太小的時候會出現數碼閃爍甚至亂碼,當延時時間設定的太大的時候,有可能出現輸出斷續的可能,通常需延時5ms,6位數據顯示就是30ms,而按鍵的消抖時間不過10ms,所以時間片輪法的話會大大影響電路的正常工作,甚至不能檢測出按鍵輸入,或則按鍵輸入的時候出現顯示斷續的情況,所以本才設計采用了中斷顯示的方法,利用定時器進行延時,設定好定時器的初值,在固定的延時時間上溢出,然后調用顯示子程序顯示當前的輸出情況,由于定時器中斷程序 執行一次只能顯示一位數據,所以要設定一個全局變量的顯示緩沖區和全局變量的位選標志。4-5 顯示子程序設計
48、第5章 仿真驗證5.1 整體設計Protues仿真軟件完成函數信號發生器仿真,本設計仿真環境如圖5-1所示。圖5-1 基于protues的函數信號發生器仿真5.2 功能實現 三種波形的仿真波形圖如下:在仿真環境下,運行仿真軟件,按要求操作鍵盤會出現如下波形圖,各個波形的仿真圖不同的頻率。 當“S0”鍵按下事將產生方波,鍵“S4” “S7”決定正弦波的頻率,“S4”號鍵為10Hz的頻率信號,“S5”號鍵為100Hz的頻率信號,“S6”號鍵為500Hz的頻率信號,“S7”號鍵為1KHz的頻率信號。 圖5-3、圖5-4、圖5-5為頻率為10Hz、100Hz、500Hz的正弦波,1000Hz的正弦波在
49、文中不畫出來。圖5-2 波形顯示圖5-3 10Hz正弦波 圖5-4 100Hz正弦波 圖5-5 500Hz正弦波 圖5-6、圖5-7、圖5-8為頻率為10Hz、100Hz、500Hz的三角波,1000Hz的正弦波在文中不畫出來。當“S0”鍵按下將產生三角波,鍵“S4”“S7”決定方波的頻率,“S4”號鍵為10Hz的頻率信號,“S5”號鍵為100Hz的頻率信號,“S6”號鍵為500Hz的頻率信號,“S7”號鍵為1KHz的頻率信號。 圖5-6 三角波 圖5-7 三角波 圖5-8 三角波 圖5-9、圖5-10、圖5-11為頻率為10Hz、100Hz、500Hz的方波,1000Hz的正弦波在文中不畫出
50、來。當“S0”鍵按下將產生方波,鍵“S4”“S7”決定方波的頻率,“S4”號鍵為10Hz的頻率信號,“S5”號鍵為100Hz的頻率信號,“S6”號鍵為500Hz的頻率信號,“S7”號鍵為1KHz的頻率信號。 圖5-9 方波 圖5-10 方波 圖5-11 方波5.3 本章小結基于單片機的函數信號發生器的設計與仿真已全部完成,所設計的函數信號發生器有一定的實用價值和經濟價值。能按預期的效果通過按鍵實現波形切換且波形標準美觀,頻率穩定可調。并且在數碼管上顯示出波形的頻率。在函數信號發生器系統的4個模塊中,最重要的是主控模塊,其它還有顯示模塊,按鍵模塊,信號輸出模塊。各模塊完成后,將它們組合成完整的函
51、數信號發生器系統。結論 本次畢業設計我所涉及的題目是多功能函數信號發生器,由于是基于單片機的波形發生器,所以我才用了查表輸出的方法,經過D/A轉化輸出需要的波形,并通過低通濾波是其輸出的波形能比較的平滑。通過兩個月的畢業設計,進一步的加深了我對專業課的理解和認識,畢業設計是我在大學四年的最后一堂課,也是對我大學四年所學的知識的一個最好的評估。開始設計方案,總感覺自己還是有許多的東西弄不太清楚,于是就請教同學。有一些開始的時候由于沒有經驗,不知如何下手,所以就去圖書管找了一些書看,盡管有許多的設經驗。經過自己分析各方案之后,決定用查表的方法來做。這樣可以降低一些硬件設計的難度,初次設計應切合自己的水平。 回顧起此次單片機課程設計,我仍感慨頗多,從選題到定稿,從理論到實踐,在好幾個星期的日子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州亞歐交通職業學院《文化地理學》2023-2024學年第二學期期末試卷
- 浙江中醫藥大學濱江學院《應用文體翻譯》2023-2024學年第二學期期末試卷
- 2025至2031年中國擺動導纜架行業投資前景及策略咨詢研究報告
- 中南林業科技大學《閱讀教學中的文本解讀》2023-2024學年第二學期期末試卷
- 2025至2031年中國女裝棉拉架低腰內褲行業投資前景及策略咨詢研究報告
- 2025至2031年中國冷拉模具行業投資前景及策略咨詢研究報告
- 06【初中】【帶班育人方略】依托Z型發展模式育“三感”攀登者
- 2025至2030年中國鉤型拉緊把手數據監測研究報告
- 照明配電改造施工方案
- 2025至2030年中國紙機托輥數據監測研究報告
- 湖北省2025屆高三(4月)調研模擬考試英語試題及答案
- 血液制品規范輸注
- 2025年征信業務合規培訓
- 2025項目部與供應商安全生產物資供應合同
- 暖通空調面試題及答案
- 防造假培訓課件教案模板
- 冷庫項目工程施工組織設計方案
- 2025年上半年浙江金華義烏市勞動人事爭議仲裁院招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 護理文書如何規范書寫
- 2025年上半年中國十五冶金建設集團限公司公開招聘中高端人才易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年河北省石家莊市一中、唐山一中等“五個一”名校高三全真模擬(最后一卷)生物試題試卷含解析
評論
0/150
提交評論