前言:本站為你精心整理了畢業(yè)單片機設(shè)計范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
單片機是實現(xiàn)各種控制策略和算法的載體。由臺灣凌陽公司生產(chǎn)的SPCE系列單片機,因其功耗低,超小型,低成本,功能完整,非常適用于便攜式儀表和就地式顯示控制儀表,在國內(nèi)越來越受到用戶的重視和廣泛的應(yīng)用。SPCE061A單片機功能強大,其片內(nèi)含有八路十位A/D轉(zhuǎn)換器和兩路D/A轉(zhuǎn)換器,該波形發(fā)生器運用單片機技術(shù),通過巧妙的軟件設(shè)計和簡易的硬件電路,產(chǎn)生數(shù)字式的正弦波、方波、斜波等幅值可調(diào)的信號。信號頻率,可通過鍵盤輸入,并顯示。與現(xiàn)有各類型波形發(fā)生器比較而言,產(chǎn)生的數(shù)字信號干擾小,輸出穩(wěn)定,可靠性高,特別是操作簡單方便,人機界面友好,成本低,非常適合于物理實驗室教學(xué)與實驗使用。
SPCE061A單片機概述
SPCE061A是繼u\''''nSP系列產(chǎn)品SPCE500A等之后凌陽科技推出的又一個16位結(jié)構(gòu)的微控制器。目前有兩種封裝形式:84引腳的PLCC84封裝和80引腳的LQFP80貼片封裝。主要性能如下:
16位m’nSP微處理器;
工作電壓:VDD為2.4~3.6V(cpu),VDDH為2.4~5.5V(I/O);
CPU時鐘:32768Hz~49.152MHz;
內(nèi)置2K字SRAM、內(nèi)置32KFLASH;
可編程音頻處理;
32位通用可編程輸入/輸出端口;
32768Hz實時時鐘,鎖相環(huán)PLL振蕩器提供系統(tǒng)時鐘信號;
2個16位可編程定時器/計數(shù)器(可自動預(yù)置初始計數(shù)值);
2個10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;
7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道語音模-數(shù)轉(zhuǎn)換器;
聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器自動增益控制(AGC)功能;
系統(tǒng)處于備用狀態(tài)下(時鐘處于停止狀態(tài))耗電小于2mA@3.6V;
具備觸鍵喚醒的功能;
14個中斷源:定時器A/B,2個外部時鐘源輸入,時基,鍵喚醒等;
使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù);
具備異步、同步串行設(shè)備接口;
具有低電壓復(fù)位(LVR)功能和低電壓監(jiān)測(LVD)功能;
內(nèi)置在線仿真電路接口ICE(In-CircuitEmulator);
具有保密能力;
具有WatchDog功能(由具體型號決定)
一、方案設(shè)計與論證
方案一:
本方案直接采用凌陽SPCE061A作為波形發(fā)生器。波形的具體產(chǎn)生是通過兩路DAC來產(chǎn)生,凌陽SPCE061A在這方面的設(shè)計為我們提供了極大的方便,用它實現(xiàn)的好處在于,外圍電路極其簡單,另外在DAC的編程方面又提供及其便利的編程環(huán)境。外圍電路的設(shè)計包括三大部分,第一是鍵盤控制電路的設(shè)計,這里采用4*4鍵盤,由IOA的低八位進行控制,把鍵盤上的行和列分別接在IOA0~IOA3和IOA4~IOA7上,采用外部中斷二來中斷所顯示波形,以便進入下一波形的編輯和輸出,在波形輸出的同時利用外部中斷一來實現(xiàn)同步的頻率調(diào)節(jié)。第二是顯示電路的設(shè)計,這里為了在波形輸出依然有顯示,由于單片機的局限性這里采用通常的動態(tài)LED顯示行不通,因為波形輸出時要求CPU不停地為其服務(wù)而沒有空閑來為LED進行不停更新,解決方案是采用帶數(shù)據(jù)緩存器和驅(qū)動的LCD來提供顯示,這樣只占用八個I/O口即可完成設(shè)計要求,也可放棄適時顯示功能采用LED顯示,這里將提供兩種顯示方案。第三是濾波和電壓轉(zhuǎn)換電路的設(shè)計,濾波采用低通濾波器,濾除DAC轉(zhuǎn)換過程中形成的高頻小鋸齒波。另外由于凌陽SPCE061A單片機DAC輸出為電流輸出,為滿足達到5V的電壓輸出,外接OP07運算放大器進行放大,加1千歐姆電阻進行電流信號到電壓信號的轉(zhuǎn)換。本設(shè)計的特點是全面采用數(shù)字電路方案,因而工作穩(wěn)定可靠。利用單片機控制管理,使頻率設(shè)置和占空比調(diào)整等操作可用鍵盤輸入,十分方便。
方案二:
本設(shè)計方案采用功能很強的大規(guī)模數(shù)字頻率合成器MC145151和多波形寬頻率范圍信號發(fā)生器MAX038等新器件產(chǎn)生波形和頻率,控制與管理電路部分使用SPCE061A單片機以及鍵盤顯示電路。MAX038是一個精密高頻波形產(chǎn)生器。它能產(chǎn)生頻率高達20MHz的正弦波、三角波、方波等脈沖信號,其壓控振蕩器的頻率分粗調(diào)和細調(diào)兩層控制。在本電路中,用于粗調(diào)的控制電壓(電流)由一個12位的DAC產(chǎn)生,使輸出頻率近似等于N倍基準頻率。而細調(diào)電壓則由數(shù)字鎖相電路MC145151和環(huán)路濾波器MAX427產(chǎn)生,由鎖相反饋環(huán)將頻率fo=Nfr鎖定。這種方案的優(yōu)點是頻率合成器工作更可靠,鎖定更迅速。另外MAX038還包括占空比調(diào)整電路、波形同步電路、相位檢測電路、波形切換開關(guān)和電壓基準源等電路,所需外部元件少,使用很方便。控制和管理電路由SPCE061A單片機及外圍電路組成。其主要用于對鍵盤輸入的波形和頻率選擇等數(shù)據(jù)進行譯碼,計算出相應(yīng)的控制參數(shù),控制頻率合成器輸出正確的信號,并將其頻率和波形參數(shù)用LED顯示出來。對于小型通用信號產(chǎn)生器而言,這是一個比較理想的設(shè)計方案。
方案比較:
第一種方案設(shè)計外圍電路簡單,能夠滿足電子大賽設(shè)計的要求,這里考慮到短時間內(nèi)設(shè)計既要成型,采用第一種方案。第二種方案的設(shè)計比較完善,由于用到專門的波形發(fā)生芯片,產(chǎn)生的波形比較完美,但外圍電路復(fù)雜,適合于作波形發(fā)生器的產(chǎn)品設(shè)計方案。
二、系統(tǒng)硬件電路設(shè)計
2.1電路方框圖及說明
圖1整體框圖
2.2各部分電路設(shè)計
2.2.1濾波、放大及其電流到電壓的轉(zhuǎn)換電路
電路本系統(tǒng)采用二階壓控電壓源低通濾波器,如圖2所示。它由兩節(jié)RC濾波器和同向放大電路組成。其中同相放大實際上就是所謂的壓控電壓源,它的電壓增益就是低通濾波器的通帶電壓增益,即:A0=Avf=1+Rf/R1
圖2濾波電路
傳遞函數(shù)由圖電路可知,運放同相端輸入電壓為:
(1)而Vp(s)與Va(s)的關(guān)系為:Vp(s)=Va(s)/(1+sRC)(2)對于節(jié)點A,由節(jié)點電流法可得Vi(s)/R-Va(s)/R-[Va(s)-V0(s)]sC-Va(s)/R-Vp(s)/R=0(3)將式(1)、(2)和(3)連立求解,可得電路的傳遞函數(shù)為A(s)=V0(s)/Vi(s)=Avf/[1+(3-Avf)sRC+sRC*sRC](4)式(4)為二階低通濾波器傳遞函數(shù)的表達式。其中1/RC為特征頻率,而1/(3-Avf)為等效品質(zhì)因數(shù)。截止頻率為1/RC。通過設(shè)置R、C可調(diào)節(jié)帶通到我們需要的范圍。另外調(diào)節(jié)Rf可調(diào)節(jié)幅度到我們需要的范圍。
2.2.2鍵盤控制電路電路
在單片機中所需按鍵較少,多采用獨立式鍵盤。此種鍵盤結(jié)構(gòu)簡單,每只按鍵接單片機的一條I/O線,通過查詢即可示別出每只按鍵的狀態(tài)來。但由于本系統(tǒng)按鍵較多,在這里采用矩陣式排列鍵盤,如圖3所示,這樣可以合理應(yīng)用硬件資源,把16只按鍵排列成4*4矩陣形式,用一個8位I/O口控制,如圖所示。把鍵盤上的行和列分別接在IOA0~IOA3和IOA4~IOA7
圖3
按鍵控制電路上。先置IOA0~IOA3為帶數(shù)據(jù)緩存器的高電平輸出,置IOA4~IOA7為帶下拉電阻的輸管腳,此時若有鍵按下,取IOA4~IOA7的數(shù)據(jù)將得到一個值,把此值保存下來,再置IOA4~IOA7為帶數(shù)據(jù)反相器的高電平輸出,置IOA0~IOA3為帶下拉電阻的輸入管腳,此時若鍵仍沒彈起,取IOA0~IOA3的數(shù)據(jù)將得到另一個值,把這兩個值組合就可得知是哪個鍵按下了,再通過查表得到鍵值。
2.2.3顯示電路電路
為了給廣大單片機愛好者提供方便,在顯示電路的設(shè)計方面提供兩種方案,第一種是采用四個LCD進行適時顯示,這是比較理想的方案,但由于LCD成本較高,這里還提供另一種方案,用六個LED進行顯示,這種方案的缺點是不能適時顯示,但也能滿足一般設(shè)計要求。第一種方案采用四個LCD進行動態(tài)顯示,輪流顯示波形和頻率,直接用SPCE061A驅(qū)動液晶顯示器,要占用較多的I/O口,這里采用ICM7211M來驅(qū)動,這樣不僅節(jié)省I/O口而且減化了編程。用數(shù)字代表各種波形,顯示波形的粗調(diào)頻率。用IOA9—IOA10口作為位選控制,IOA8口作為ICM7211M的片選信號,IOA11—IOA14作為數(shù)據(jù)線。數(shù)據(jù)線和位選線直接接凌陽SPCE061A單片機的I/O口即可,
圖4LCD顯示電路
第二種方案采用六個共陰極數(shù)碼管LED進行動態(tài)顯示波形和頻率,直接用SPCE061A直接驅(qū)動LED,兩位提供波形顯示,四位提供頻率顯示。用IOB8—IOB13口作為位選控制,IOA8—IOA14口傳輸要顯示的數(shù)據(jù),數(shù)據(jù)線和位選線直接接凌陽SPCE061A單片機的I/O口即可,因為I/O口輸出電流很小不會對LED造成損壞,它的電壓值卻足以驅(qū)動LED,這不像別的單片機還要外接驅(qū)動電路和電阻,采用凌陽SPCE061A單片機大大減化了設(shè)計過程和硬件電路。硬件電路如圖5所示。
圖5LED顯示電路
2.2.4語音播報電路的設(shè)計電路
凌陽的SPCE061A是16位單片機,具有DSP功能,有很強的信息處理能力,最高時鐘可達到49M,具備運算速度高的優(yōu)勢等等,這為語音的播放、錄放、合成及辨識提供了條件。另外SPCE061A單片機具有32k閃存,事先把所需要的語音信號錄制好,整個語音信號經(jīng)凌陽SACM_S480壓縮算法壓縮只占有13.2K存儲空間,對凌陽SPCE061A單片機的存儲系統(tǒng)來說綽綽有余。凌陽SPCE061A單片機自帶雙通道DAC音頻輸出,DAC1、DAC2轉(zhuǎn)換輸出的模擬量電流信號分別通過AUD1和AUD2管腳輸出,DAC輸出為電流型輸出,經(jīng)LM396音頻放大,即可驅(qū)動喇叭放音,放大電路如圖6(只列出了DAC1,DAC2類似)。在DAC1、DAC2后面接一個簡單的音頻放大電路和喇叭就能實現(xiàn)語音播報功能,這為單片機的音頻設(shè)計提供了極大方便,音頻的具體功能主要通過程序來實現(xiàn)。
圖6音頻放大電路
三、軟件設(shè)計
3.1主程序流程圖
由于使用凌陽SPCE061A使外圍電路變得異常簡單,整個波形發(fā)生器的主體任務(wù)落到了程序編寫上。整個系統(tǒng)的軟件設(shè)計方案如圖7,采用外部中斷二來中斷所顯示波形,以便進入下一波形的編輯和輸出,在波形輸出的同時利用外部中斷一來實現(xiàn)同步的頻率調(diào)節(jié)。波形的具體產(chǎn)生是通過兩路DAC來產(chǎn)生,之所以采用這種方式,是因為凌陽SPCE061A在這方面的設(shè)計為我們提供了極大的方便,在DAC的編程方面又提供了及其便利的編程環(huán)境。用函數(shù)來產(chǎn)生波形是大多數(shù)設(shè)計者喜之不舍得設(shè)計方案,但在具體設(shè)計方面,因為函數(shù)在單片機的運算過程中占據(jù)了太多的時鐘周期,這就給我們追求高頻波形一個瓶頸,要怎樣解決這個問題呢?這里我采用查表來實現(xiàn),根據(jù)理論凌陽SPCE061A單片機可達到一百兆的要求,這就能充分滿足題目設(shè)計要求了,然而,由于函數(shù)產(chǎn)生波形極其方便,凌陽SPCE061A單片機有提供了大量函數(shù)庫,在設(shè)計過程中我在低頻部分依然采用函數(shù)設(shè)計。另外,波形頻率隨CPU的頻率而變法,凌陽SPCE061A單片機的32768的實時時鐘經(jīng)過PLL倍頻電路產(chǎn)生系統(tǒng)時鐘頻率(Fosc),F(xiàn)osc再經(jīng)過分頻得到CPU時鐘頻率(CPUCLK)可通過對P_SystemClock(寫)($7013H)單元編程來控制,這就為我們設(shè)計提供了豐富的CPU時鐘選擇。默認的Fosc、CPUCLK分別為24.576MHz和Fosc/8。我們可以通過對P_SystemClock單元編程完成對系統(tǒng)時鐘和CPU時鐘頻率的定義,改變設(shè)置將可提供多種頻率選擇。在本設(shè)計中,波形編輯的第一部就是進行CPU頻率選擇,選擇最高頻和最低頻作為粗調(diào),在用鍵盤和中斷進行微調(diào),以便達到所需的頻率及其幅值。下面將對各部分編程作詳細說明。
圖7整體流程圖
3.2分塊程序流程
按鍵控制部份
在鍵掃描的過程中,先置IOA0~IOA3為帶數(shù)據(jù)緩存器的高電平輸出,置IOA4~IOA7為帶下拉電阻的輸入管腳,此時若有鍵按下,取IOA4~IOA7的數(shù)據(jù)將得到一個值,把此值保存下來,再置IOA4~IOA7為帶數(shù)據(jù)反相器的高電平輸出,置IOA0~IOA3為帶下拉電阻的輸入管腳,此時若鍵仍沒彈起,取IOA0~IOA3的數(shù)據(jù)將得到另一個值,把這兩個值組合就可得知是哪個鍵按下了,再通過查表得到鍵值,跳轉(zhuǎn)至相應(yīng)程序段,執(zhí)行輸出相應(yīng)波形或者編輯波形,從而達到控制波形的目的。整體按鍵過程如圖8所示。
圖8按鍵控制流程圖
正弦波形的形成
在設(shè)計之初,我一直都在嘗試使用函數(shù)來計算輸出波形,使用這種方法,在示波器上得到了很好的波形,但是在CPU時鐘頻率沒調(diào)至最高的情況下,所得到的頻率只是多少毫赫茲到幾十赫茲之間,基本上沒有實用價值。要達到更高的頻率,就得另辟蹊徑了。分析一下為什么頻率上不去,主要原因在于,使用單片機進行正弦函數(shù)的運算時占去了不少時間,如果去掉這一計算過程波形的頻率應(yīng)該大有提高,另外就是CPU時鐘頻率沒有調(diào)至最高,以及DAC轉(zhuǎn)換過
圖9正弦波形查表形成流程圖
程需要時間。為了達到更高的頻率,首先就要免去單片機的計算負擔(dān),我使用的解決方法是人為計算出要輸出的點,然后建一個表通過查表來進行輸出,這樣主要工作任務(wù)就落到了建表的過程中。這樣做的好處在于,查表所耗費的時鐘周期相同,這樣輸出的點與點之間的距離就相等了,輸出的波形行將更趨于完美,當然更讓我們感到的高興的是它輸出波形的頻率將近達到了100K赫茲,能夠滿足我們設(shè)計的擴展要求了。為了實現(xiàn)頻率的調(diào)整,我在一個正弦波周期里建了兩百個點,如果我們隔一個取點的話,且在CPU時鐘頻率不改變的情形下,正弦波頻率將相對于前面的頻率提高將近一倍。這樣我們就得到了解決頻率調(diào)整的方法,首先進行CPU時鐘頻率選擇,再調(diào)整一個正弦函數(shù)一個周期輸出的點數(shù),幅度的調(diào)節(jié)是通過初始幅度設(shè)置再通過外部放大電路來調(diào)節(jié),設(shè)計程序流程圖如圖所示。另外,由于函數(shù)產(chǎn)生波形及其方便,凌陽SPCE061A單片機又提供了大量函數(shù)庫,在設(shè)計過程中我在低頻部分依然采用函數(shù)設(shè)計,因為這更有利于數(shù)字幅度和頻率的調(diào)節(jié)。設(shè)計程序流程圖如圖9和10所示。
圖10正弦函數(shù)計算形成波形流程圖
三角波、鋸齒波的形成
三角波、鋸齒波形成的原理同正弦波形成的原理大致相同,在這里將不做作詳細介紹,其流程圖如圖11所示。
圖11三角波查表形成流程圖
方波的形成和實現(xiàn)
方波是我們最常用的一種波形,并且常常作為一種標準信號應(yīng)用在各個領(lǐng)域,凌陽SPCE061A提供了一種很好的方波發(fā)生機制,就是APWM調(diào)制,通過寫入P_TimerA_Ctrl($700BH)單元的第6~9位,可選擇設(shè)置APWM輸出波形的脈寬占空比;同理,寫入P_TimerB_Ctrl($700DH)單元的第6~9位,便可選擇設(shè)置BPWM輸出波形的脈寬占空比。我們可以將IOB8設(shè)置成同相輸出端口,通過設(shè)置P_TimerA_Ctrl(寫)($700BH)的第0~5位來選擇TimerA的時鐘源(時鐘源A、B)。設(shè)置該單元的第6~9位(如圖12所示),TimerA將輸出不同頻率的脈寬調(diào)制信號,即對脈寬占空比輸出APWM進行控制。這里為了得到最標準的波形采用這種方式來實現(xiàn)標準方波。如圖12所示就是我們進行APWM調(diào)制的原理圖。
圖12APWMO信號時序圖
在某些應(yīng)用領(lǐng)域由于各種干擾和響應(yīng)的存在,實際電路往往存在各種信號缺陷和瞬變信號,為了滿足各種需要我們還設(shè)計了有頻率突變的方波,如圖11所示。具體設(shè)計方案是采用不停的輸出和停止輸出某一幅度的值,在一個序列周期我們總共提供八位可變數(shù)值,因為在數(shù)據(jù)傳輸過程中一般是八位為一幀進行傳輸。通過鍵盤的編輯可以達到我們的需求。
圖13有頻率突變的方波
顯示和播報
時間和路程的顯示采用動態(tài)顯示,顯示子程序流程圖如圖14,語音播報采用凌陽SACM_S480語音播報,流程圖如圖15。
圖14顯示子程序流程圖
圖15語音播報流程圖
其它
在按鍵控制的第6到第12個按鍵,都是用來改變和編輯波形參數(shù)的,這就為整個系統(tǒng)能輸出各種波形提供了可能性,以及增加了它的實用性。另外還用外部中斷一來進行同步調(diào)試,我們可在中斷里寫入各種參數(shù),就可達到我們所要求的波形及其實現(xiàn)參數(shù)變化的目的。
四、系統(tǒng)測試及整機指標
五、總結(jié)
(1)能產(chǎn)生正弦波、方波、三角波、鋸齒波幾種周期性波形,并且可通過調(diào)節(jié)變形成其它相關(guān)波形。
(2)用鍵盤輸入編輯可生成正弦波由基波及其諧波線性組合的波形,以及各次諧波單獨的波形。
(3)輸出波形的頻率范圍為100mHz~100kHz;可以通過鍵盤輸入粗調(diào)頻率,通過外部中斷一可同步調(diào)節(jié)頻率,具有在低頻部分調(diào)節(jié)步進小,在高頻部分大的特點。
(4)輸出波形幅度范圍為0~5V(峰-峰值),可通過可變電阻任意調(diào)整調(diào)整。
(5)具有顯示輸出波形的類型、及其粗調(diào)頻率和幅度的功能。
(6)具備語音提示波形和粗調(diào)頻率的功能。整個系統(tǒng)其性能指標均達到了要求,還增添了其它特色。通過此次設(shè)計,讓我感到了凌陽SPCE061A十六位單片機的方便性和靈活性,通過對凌陽SPCE061A單片機的使用,可以使編程技能快速提高,并且認識到很多新的算法和設(shè)計思想。
畢業(yè)答辯總結(jié) 畢業(yè)鑒定 畢業(yè) 畢業(yè)實踐論文 畢業(yè)設(shè)計 畢業(yè)格式 畢業(yè)設(shè)計答辯 畢業(yè)論文設(shè)計 畢業(yè)思想總結(jié) 畢業(yè)五年計劃 紀律教育問題 新時代教育價值觀