版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 基于單片機的函數(shù)發(fā)生器的設(shè)計 學生:aaa,電子信息學院 指導老師:aaa,aa大學【摘要】:本文介紹一種用at89c51單片機構(gòu)成的波形發(fā)生器,可產(chǎn)生方波、三角波、正弦波、鋸齒波等多種波形,波形的周期可用程序改變,并可根據(jù)需要選擇單極性輸出或雙極性輸出,具有線路簡單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點。文章給出了源代碼,通過仿真測試,其性能指標達到了設(shè)計要求。【關(guān)鍵詞】:單片機;dac;函數(shù)發(fā)生器 design of function generator based on mcu student:,school of electronics and information engneering te
2、acher: , universityabstractthis paper introduces a at89c51 single chip waveform generator,can produce square wave,triangle wave,sine wave,sawtooth wave and other wave,waveform cycle can be used to change procedures,and in accordance with the need to select the output unipolar or bipolar output,has s
3、imple circuit,compact structure,superior performance characteristics.the article gives the source code,through simulation test,performance indexs have reached the design requirements.【key words】:single chip microcomputer;dac;function generator. 基于單片機的函數(shù)發(fā)生器的設(shè)計第一章 緒論1.1單片機概述單片機是指一個集成在一塊芯片上的完整計算機系統(tǒng)。盡管他
4、的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:cpu、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設(shè)備。而現(xiàn)在最強大的單片機系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機也被稱為微控制器(microcontroller),由芯片內(nèi)僅有cpu的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和cpu集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復雜的而對體積要求嚴格的控制設(shè)備當中。單片機是70年代中期發(fā)展起來的一種大規(guī)模集成電路芯片,是cpu、ram、rom、i/o接口和中斷系統(tǒng)集
5、成于同一硅片的器件。單片機用于控制有利于實現(xiàn)系統(tǒng)控制的最小化和單片化,簡化一些專用接口電路,如編程計數(shù)器、鎖相環(huán)(pll)、模擬開關(guān)、a/d和d/a變換器、電壓比較器等組成的專用控制處理功能的單板式微系統(tǒng)。單片機是所有微處理機中性價比最高的一種,隨著種類的不斷全面,功能不斷完善,其應用領(lǐng)域也迅速擴大。單片機在智能儀表、實時控制、機電一體化、辦公機械、家用電器等方面都有相當?shù)膽妙I(lǐng)域。當前,8位單片機主要用于工業(yè)控制,如溫度、壓力、流量、計量和機械加工的測量和控制場合;高效能的16位單片機(如mcs-96、mk-68200)可用在更復雜的計算機網(wǎng)絡(luò)??梢哉f,微機測控技術(shù)的應用已滲透到國民經(jīng)濟的各
6、個部門,微機測控技術(shù)的應用是產(chǎn)品提高檔次和推陳出新的有效途徑。1.2函數(shù)發(fā)生器的分類函數(shù)發(fā)生器應用廣泛,種類繁多,性能各異,分類也不盡一致。函數(shù)發(fā)生器亦稱信號發(fā)生器,主要作為實驗用信號源,是現(xiàn)今各種電子電路實驗設(shè)計應用中必不可少的儀器設(shè)備之一。按照頻率范圍分類可以分為:超低頻信號發(fā)生器、低頻信號發(fā)生器、視頻信號發(fā)生器、高頻波形發(fā)生器、甚高頻波形發(fā)生器和超高頻信號發(fā)生器。按照輸出波形分類可以分為:正弦信號發(fā)生器和非正弦信號發(fā)生器,非正弦信號發(fā)生器又包括:脈沖信號發(fā)生器,函數(shù)信號發(fā)生器、掃頻信號發(fā)生器、數(shù)字序列波形發(fā)生器、圖形信號發(fā)生器、噪聲信號發(fā)生器等。按照信號發(fā)生器性能指標可以分為一般信號發(fā)生
7、器和標準信號發(fā)生器。前者指對輸出信號的頻率、幅度的準確度和穩(wěn)定度以及波形失真等要求不高的一類信號發(fā)生器。后者是指其輸出信號的頻率、幅度、調(diào)制系數(shù)等在一定范圍內(nèi)連續(xù)可調(diào),并且讀數(shù)準確、穩(wěn)定、屏蔽良好的中、高檔信號發(fā)生器。函數(shù)發(fā)生器作為一種常見的應用電子儀器設(shè)備,傳統(tǒng)的一般可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復雜和體積大等缺點。在科學研究和生產(chǎn)實踐中,如工業(yè)過程控制,生物醫(yī)學,地震模擬機械振動等領(lǐng)域常常要用到低頻信號源。而由硬件電路構(gòu)成的低頻信號其性能難以令人滿意,而且
8、由于低頻信號源所需的rc要很大。大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證。體積大,漏電,損耗顯著更是其致命的弱點。一旦工作需求功能有增加,則電路復雜程度會大大增加。利用單片機采用程序設(shè)計方法來產(chǎn)生低頻信號,其頻率底線很低。具有線路相對簡單,結(jié)構(gòu)緊湊,價格低廉,頻率穩(wěn)定度高,抗干擾能力強,用途廣泛等優(yōu)點,并且能夠?qū)Σㄐ芜M行細微調(diào)整,改良波形,使其滿足系統(tǒng)的要求。只要對電路稍加修改,調(diào)整程序,即可完成功能升級。1.3 研究內(nèi)容本文是做基于單片機的信號發(fā)生器的設(shè)計,將采用編程的方法來實現(xiàn)三角波、鋸齒波、矩形波、正弦波的發(fā)生。根據(jù)設(shè)計的要求,對各種波形的頻率和幅度進行程序的編寫,并將所寫程序
9、裝入單片機的程序存儲器中。在程序運行中,當接收到來自外界的命令,需要輸出某種波形時再調(diào)用相應的中斷服務子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運算放大器處理后,從信號發(fā)生器的輸出端口輸出。 第二章 方案的設(shè)計與選擇2.1 方案的比較方案一:采用單片函數(shù)發(fā)生器(如8038),8038可同時產(chǎn)生正弦波、方波等,而且方法簡單易行,用d/a轉(zhuǎn)換器的輸出來改變調(diào)制電壓,也可以實現(xiàn)數(shù)控調(diào)整頻率,但產(chǎn)生信號的頻率穩(wěn)定度不高。方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(vco)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達到輸出頻率覆蓋系數(shù)的要求,且電路復雜。方案三:采用單片機編程的方法
10、來實現(xiàn)。該方法可以通過編程的方法來控制信號波形的頻率和幅度,而且在硬件電路不變的情況下,通過改變程序來實現(xiàn)頻率的變換。此外,由于通過編程方法產(chǎn)生的是數(shù)字信號,所以信號的精度可以做的很高。鑒于方案一的信號頻率不夠穩(wěn)定和方案二的電路復雜,頻率覆蓋系數(shù)難以達標等缺點,所以決定采用方案三的設(shè)計方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來實現(xiàn),使得信號頻率的穩(wěn)定性和精度的準確性得以保證,而且它使用的幾種元器件都是常用的元器件,容易得到,且價格便宜,使得硬件的開銷達到最省。2.2 設(shè)計原理數(shù)字信號可以通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號,因此可通過產(chǎn)生數(shù)字信號再轉(zhuǎn)換成模擬信號的方法來獲得所需要的波形。89c
11、51單片機本身就是一個完整的微型計算機,具有組成微型計算機的各部分部件:中央處理器cpu、隨機存取存儲器ram、只讀存儲器rom、i/o接口電路、定時器/計數(shù)器以及串行通訊接口等,只要將89c51再配置鍵盤及其接口、顯示器及其接口、數(shù)模轉(zhuǎn)換及波形輸出、指示燈及其接口等四部分,即可構(gòu)成所需的波形發(fā)生器,其信號發(fā)生器構(gòu)成原理框圖如圖2.1所示。 輸出89c51單片機濾波放大d/a轉(zhuǎn)換器接口電路圖2.1 信號發(fā)生器原理框圖89c51是整個波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號,并從鍵盤接收數(shù)據(jù),進行各種功能的轉(zhuǎn)換和信號幅度的調(diào)節(jié)。當數(shù)字信號經(jīng)過接口電路到達轉(zhuǎn)換電路,將其轉(zhuǎn)換成
12、模擬信號也就是所需要的輸出波形。2.3 設(shè)計思想(1)利用單片機產(chǎn)生方波、正弦波、三角波和鋸齒波等信號波形,信號的頻率和幅度可變。(2)將一個周期的信號分離成256個點(按x軸等分),每兩點之間的時間間隔為t,用單片機的定時器產(chǎn)生,其表示式為:t=t/256。如果單片機的晶振為12mhz,采用定時器方式0,則定時器的初值為: x=213t/tmec (2.1) 定時時間常數(shù)為: tl =(8192t)/mod256 (2.2)th=(8192t)/256 (2.3)mod32表示除32取余數(shù)(3)正弦波的模擬信號是d/a轉(zhuǎn)換器的模擬量輸出,其計算公式為: y=(a/2sint)+a/2 (其中
13、a=vref) (2.4) t=nt (n=1256) (2.5)那么對應著存放在計算機里的這一點的數(shù)據(jù)為: (2.6) (4)一個周期被分離成256個點,對應的四種波形的256個數(shù)據(jù)存放在以tab1-tab4為起始地址的存儲器中。2.4 設(shè)計功能(1)本方案利用8155擴展8個獨立式按鍵,6個led顯示器。其中“s0”號鍵代表方波輸出,“s1”號鍵代表正弦波輸出,“s2”號鍵代表三角波輸出,“s3” 號鍵代表鋸齒波輸出。(2)“s4”號鍵為10hz的頻率信號,“s5”號鍵為100hz的頻率信號,“s6”號鍵為500hz的頻率信號,“s7”號鍵為1khz的頻率信號,6個led顯示器輸出信號的頻
14、率值,選用共陽極led。(3)利用兩片dac0832實現(xiàn)幅度可調(diào)的信號源,(其中一片用來調(diào)節(jié)幅度,另外一片用來實現(xiàn)信號源的輸出)。(4)頻率范圍:101000hz。(5)輸出波形幅度為05v。第三章 主要器件介紹3.1 at89c51簡介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機。at89c2051是一種帶2k字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用atmel高密度非
15、易失存儲器制造技術(shù)制造,與工業(yè)標準的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡版本。at89c單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。3.1.1 主要特性與mcs-51 兼容 4k字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0hz-24hz三級程序存儲器鎖定128*8位內(nèi)部ram32可編程i/o線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路3.1.2 管腳說明vcc:供電電
16、壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻
17、的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。
18、作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:口管腳 備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)p3口同時為閃爍編程和編程校驗接收一些控制信號。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存
19、允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信
20、號將不出現(xiàn)。/ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3.2 8255簡介8255是intel公司生產(chǎn)的可編程并行i/o接口芯片,有3個8位并行i/o口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機
21、與多種外設(shè)連接時的中間接口電路。8255作為主機與外設(shè)的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設(shè)連接的接口a、b、c口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與cpu連接部分、與外設(shè)連接部 分、控制部分。3.3 dac0832簡介dac0832是8分辨率的d/a轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個da芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應用系統(tǒng)中得到廣泛的應用。d/a轉(zhuǎn)換器由8位輸入鎖存器、8位dac寄存器、8位d/a轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。3.3.1 特性介紹* 分辨率為8
22、位;* 電流穩(wěn)定時間1us;* 可單緩沖、雙緩沖或直接數(shù)字輸入;* 只需在滿量程下調(diào)整其線性度;* 單一電源供電(+5v+15v);* 低功耗,200mw。3.3.2 管腳介紹* d0d7:8位數(shù)據(jù)輸入線,ttl電平,有效時間應大于90ns(否則鎖存器的數(shù)據(jù)會出錯);* ile:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;* cs:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;* wr1:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應大于500ns)有效。由ile、cs、wr1的邏輯組合產(chǎn)生le1,當le1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,le1的負跳變時將輸入數(shù)據(jù)鎖存;* xfer:數(shù)據(jù)傳輸控
23、制信號輸入線,低電平有效,負脈沖(脈寬應大于500ns)有效;* wr2:dac寄存器選通輸入線,負脈沖(脈寬應大于500ns)有效。由wr1、xfer的邏輯組合產(chǎn)生le2,當le2為高電平時,dac寄存器的輸出隨寄存器的輸入而變化,le2的負跳變時將數(shù)據(jù)鎖存器的內(nèi)容打入dac寄存器并開始d/a轉(zhuǎn)換。* iout1:電流輸出端1,其值隨dac寄存器的內(nèi)容線性變化;* iout2:電流輸出端2,其值與iout1值之和為一常數(shù);* rfb:反饋信號輸入線,改變rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;* vcc:電源輸入端,vcc的范圍為+5v+15v;* vref:基準電壓輸入線,vref的范圍為
24、-10v+10v;* agnd:模擬信號地* dgnd:數(shù)字信號地3.4 數(shù)碼管顯示原理我們最常用的是七段式和八段式led數(shù)碼,八段比七段多了一個小數(shù)點,其他的基本相同。所謂的八段是指數(shù)碼管里有八個小led發(fā)光二極管,通過控制不同的led的亮滅來顯示出不同的字形。數(shù)碼管又分為共陰極和共陽極兩種類型,其實共陰極就是將八個led的陰極連在一起。讓其接地,這樣給任何一個led得另一端高電平,它便能點亮。二共陽極就是將八個led的陽極連在一起。其原理圖如下。 引腳圖 共陰極 共陽極 其中引腳圖的兩個com端連在一起,是公共端,而共陰數(shù)碼管要將其接地,共陽極將其接正5v電源。一個八段數(shù)碼管成為一位,多個
25、數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,它們的段選線(即a,b,c,d,e,f,g,dp)連在一起,而各自的公共端稱為位選線。顯示時,都從段選線送入字符編碼,而選中哪個位選線,那個數(shù)碼管便會被點亮。數(shù)碼管的八段,對應一個字節(jié)的八位,a對應最低位,dp對應最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0x3f:共陽數(shù)碼管的字符編碼為11000000,即0xc0??梢钥闯鰞蓚€編碼的各位正好相反。如下圖第四章 硬件設(shè)計4.1 硬件原理框圖硬件原理方框圖如圖3.1所示。 圖4.1 硬件原理框圖4.2 主控電路at89c51單處機內(nèi)部設(shè)置兩個16位可編程的定時器/計數(shù)器t
26、0和t1,它們具有計數(shù)器方式和定時器方式兩種工作方式及4種工作模式。在波形發(fā)生器中,將其作定時器使用,用它來精確地確定波形的兩個采樣點輸出之間的延遲時間。模式1采用的是16位計數(shù)器,當t0或t1被允許計數(shù)后,從初值開始加計數(shù),最高位產(chǎn)生溢出時向cpu請求中斷。中斷系統(tǒng)是使處理器具有對外界異步事件的處理能力而設(shè)置的。當中央處理器cpu正在處理某件事的時候外界發(fā)生了緊急事件,要求cpu暫停當前的工作,轉(zhuǎn)而去處理這個緊急事件。在波形發(fā)生器中,只用到片內(nèi)定時器計數(shù)器溢出時產(chǎn)生的中斷請求,即是在at89c51輸出一個波形采樣點信號后,接著啟動定時器,在定時器未產(chǎn)生中斷之前,at89c51等待,直到定時器
27、計時結(jié)束,產(chǎn)生中斷請求,at89c51響應中斷,接著輸出下一個采樣點信號,如此循環(huán)產(chǎn)生所需要的信號波形6。如圖4.2所示,at89c51從p0口接收來自鍵盤的信號,并通過p2口輸出一些控制信號,將其輸入到8155的信號控制端,用于控制其信號的輸入、輸出。如果有鍵按下,則在讀控制端會產(chǎn)生一個讀信號,使單片機讀入信號。如果有信號輸出,則在寫控制端產(chǎn)生一個寫信號,并將所要輸出的信號通過8155的pb口輸出,并在數(shù)碼管上顯示出來。 圖4.2 主控電路圖4.3 數(shù)/模轉(zhuǎn)換電路at89c51單片機控制兩片dac0832的原理圖輸出基準電壓at89c51單片機dac0832dac0832因為at89c51單
28、片機自身便有一個64k的程序存儲器,所以不用擴展外加程序存儲器。由單片機編程即可由單片機輸出所需要信號的數(shù)字量,再由d/a轉(zhuǎn)換器將數(shù)字量轉(zhuǎn)化為模擬電流輸出,通過運放轉(zhuǎn)化為模擬電壓輸出。d/a數(shù)模轉(zhuǎn)換器的最大輸出電壓是由其輸入的基準電壓來控制的,所以只要能控制d/a的基準電壓便可以控制輸出幅度,實現(xiàn)幅度可調(diào)。所以設(shè)計用兩片dac0832來輸出信號,第一片d/a用來輸出信號,第二片d/a用來控制第一片d/a的基準點壓。其中用p0口作為兩片d/a的數(shù)據(jù)總線,p2口的p2.0和p2.1口用來控制兩片d/a的選通。該文選用價格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器。dac0832。da
29、c0832主要由8位輸入寄存器、8位dac寄存器、8位d/a轉(zhuǎn)換器以及輸入控制電路四部分組成。但實際上,dac0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對分辨率為單位增減,是準模擬量的輸出。dac0832是電流型輸出,在應用時外接運放使之成為電壓型輸出。由圖4.3可知,dac0832的片選地址為7fffh,當p25有效時,若p0口向其送的數(shù)據(jù)為00h, 則u1 的輸出電壓為0v;若p0口向其送的數(shù)據(jù)為0ffh時, 則u1的輸出電壓為-5v. 故當u1 輸出電壓為0v時,由公式 得:vout = - 5v.當輸出電壓為- 5v時,可得:vout = +5v,所以輸出波形的電壓變化范圍為-
30、 5v+ 5v. 故可推得,當p0所送數(shù)據(jù)為80h時,vout為0v4。 圖4.3 數(shù)模轉(zhuǎn)換電路4.4 按鍵接口電路由于本設(shè)計要求控制波形的幅度和頻率,所需按鍵較多,所以設(shè)計選用p1口來擴展44鍵盤。本設(shè)計中要求用數(shù)碼管顯示輸出信號的幅度和頻率等信息,而這些信息在信號輸出的時候是不需要時刻改變的,所以設(shè)計中選用靜態(tài)數(shù)碼管顯示,由單片機的串行通信口輸出顯示數(shù)據(jù)。這樣可以節(jié)省單片機的端口來做其它的用途,給予了裝置可優(yōu)化性。圖4.4為鍵盤接口電路的原理圖,圖中鍵盤和8155的pa口相連,at89c51的p0口和8155的d0口相連,at89c51不斷的掃描鍵盤,看是否有鍵按下,如有,則根據(jù)相應按鍵作
31、出反應。其中“s0”號鍵代表方波輸出,“s1”號鍵代表正弦波輸出,“s2”號鍵代表三角波輸出。 “s3”號鍵代表鋸齒波輸出,“s4”號鍵為10hz的頻率信號,“s5”號鍵為100hz的頻率信號,“s6”號鍵為500hz的頻率信號,“s7”號鍵為1khz的頻率信號3。 圖4.4 按鍵接口4.5 時鐘電路時鐘電路可以簡單定義如下:1.就是產(chǎn)生象時鐘一樣準確的振蕩電路。2.任何工作都按時間順序,用于產(chǎn)生這個時間的電路就是時鐘電路,時鐘電路一般由晶體振蕩器、晶震控制芯片和電容組成。 圖4.5 時鐘電路8051單片機有兩個引腳(xtal1,xtal2)用于外接石英晶體和微調(diào)電容,從而構(gòu)成時鐘電路,其電路
32、圖如圖4.5所示。電容c1、c2對振蕩頻率有穩(wěn)定作用,其容量的選擇為30pf,振蕩器選擇頻率為12mhz的石英晶體。由于頻率較大時,三角波、正弦波、鋸齒波中每一點的延時時間為幾微秒,故延時時間還要加上指令時間才能獲得較大的頻率波形9。4.6 顯示電路顯示電路是用來顯示波形信號的頻率,使得整個系統(tǒng)更加合理,從經(jīng)濟的角度出發(fā),所以顯示器件采用led數(shù)碼管顯示器。而且led數(shù)碼管是采用共陽極接法,當主控端口輸出一個低電平后,與其相對應的數(shù)碼管即變亮,顯示所需數(shù)據(jù)。其器件模型如圖4.6所示。圖4.6 led顯示電路第五章 軟件設(shè)計5.1 設(shè)計構(gòu)思1幅度控制由于d/a數(shù)模轉(zhuǎn)換器輸出的最大幅度可以用其基準
33、電壓來控制,所以控制第二片d/a數(shù)模轉(zhuǎn)換器輸出給第一片d/a數(shù)模轉(zhuǎn)換器的電壓值就可控制信號幅度。因此,送入第二片的值是幾個固定的值。由于dac0832內(nèi)部具有鎖存器,所以只需向第二片d/a送值一次,直到下一次改變信號幅度。2頻率控制單片機內(nèi)部數(shù)據(jù)只有0、1之分,所產(chǎn)生的信號也都是離散信號。為了能夠讓單片機輸出所需的數(shù)字信號,我們采用對信號采樣、量化的方法來實現(xiàn)由單片機產(chǎn)生所需信號。在本設(shè)計中,對信號的四分之一周期采樣19個幅度值,通過反復查表來輸出幅度值,而整個信號是通過正查表和逆向查表來實現(xiàn)的。采樣的點越密,信號失真度也就越小。兩次采樣點的輸出時間間隔是由定時、計數(shù)器來控制的,因此,通過控制
34、不同的計數(shù)初值就可以控制整個信號的頻率。計數(shù)時間=信號周期/72。計數(shù)次數(shù)=計數(shù)時間/機器周期。對應的,計數(shù)初值=65536計數(shù)次數(shù)。單片機只能產(chǎn)生離散頻率的信號,所以所得到的信號頻率不是連續(xù)的,而是離散的頻率點。由于這部分計算位數(shù)較多,不適合用單片機編程來計算計數(shù)初值,所以本設(shè)計中將各頻率的計數(shù)初值算出,讓單片機按控制命令來查表控制頻率。正弦波和三角波的頻率控制方法都與上述方法相同,而方波的頻率控制是半周期計數(shù),經(jīng)過半周期只需改變輸出為最大或最小電平即可。5.2 程序流程圖本文中子程序的調(diào)用是通過按鍵的選擇來實現(xiàn),在取得按鍵相應的鍵值后,啟動計時器和相應的中斷服務程序,再直接查詢程序中預先設(shè)
35、置的數(shù)據(jù)值,通過轉(zhuǎn)換輸出相應的電壓,從而形成所需的各種波形。主程序的流程圖如圖5.1所示,在程序開始運行之后,首先是對8155進行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時間常數(shù),并通過顯示器顯示出來,不符則返回。在中斷結(jié)束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。 圖5.1 主程序流程圖下面說明主程序流程圖的程序?qū)崿F(xiàn):1. 開始:org 0000h 程序開始執(zhí)行,首先覺得跳轉(zhuǎn)到主程序ajm main org 000bh 定時器0中斷入口地址,跳轉(zhuǎn)到中斷服務程序ljmp tcoorg 0030h2.5255a初始化:mov dptr,#7f00h 指向
36、8155命令字端口地址mov a,#06h 設(shè)置a口為輸入,b口、c口為輸出movx dptr,a 送命令字3.判定信號頻率:mov dptr,#7f01h 指向a口地址movx a,dptr 讀入a口的開關(guān)數(shù)據(jù)jnb acc.4,k10h 判斷是否“4”號鍵,若是則轉(zhuǎn)輸出10hz信號jnb acc.5,k100h 判斷是否“5”號鍵,若是則轉(zhuǎn)輸出100hz信號jnb acc.6,k500h 判斷是否“6”號鍵,若是則轉(zhuǎn)輸出500hz信號jnb acc.7,k1k 判斷是否“7”號鍵,若是則轉(zhuǎn)輸出1khz信號ajmp main 無鍵按下則返回等待4.根據(jù)頻率值置新的時間常數(shù),以10hz為例k1
37、0h:mov 30h,#00h 顯示10hzmov 31h,#00hmov 32h,#00hmov 33h,#00hmov 34h,#01hmov 35h,#00hlcall led1 調(diào)顯示子程序mov tmod,#00hmov tl0,#15hmov th0,#9ehajmp pd5.顯示頻率值,以10hz為例k10h:mov 30h,#00h 顯示10hzmov 31h,#00hmov 32h,#00hmov 33h,#00hmov 34h,#01hmov 35h,#00hlcall led1 調(diào)顯示子程序6.顯示子程序:led1: mov r3,#06h 設(shè)置6個led顯示mov r2
38、,#01h 選通第一位led數(shù)據(jù)mov r1,#30h 送顯示緩沖區(qū)首址gn1:mov dptr,#7f03h 指向c口地址mov a,r2 位選通數(shù)據(jù)送amovx dptr,a 位選通數(shù)據(jù)送c口rl a 選通下一位mov r2,a 位選通數(shù)據(jù)送r2中保存 mov a, r1 取鍵值mov dptr,#tab 送led顯示軟件譯碼表首址movc a,a+dptr 查表求出鍵值顯示的段碼mov dptr,#7f02h 指向b口地址mov dptr,a 段碼送顯示lcall loop1 調(diào)延時子程序inc r1 指向下一位顯示緩沖區(qū)地址djnz r3,gn1 循環(huán)顯示6個ledret7.中斷設(shè)置開
39、中斷:gn: setb tr0 啟動定時器setb et0 開定時器0中斷setb ea 開總中斷8.判定波形:pd:jnb acc.0,ke0 判斷是否“0”號鍵按下,若是則轉(zhuǎn)方波輸出jnb acc.1,ke1 判斷是否“1”號鍵按下,若是則轉(zhuǎn)正弦方波輸出jnb acc.2,ke2 判斷是否“2”號鍵按下,若是則轉(zhuǎn)三角波輸出jnb acc.3,ke3 判斷是否“3”號鍵按下,若是則轉(zhuǎn)鋸齒波輸出ljmp pd 無鍵按下則返回等待圖5.2為各波形子程序的流程圖。如圖所示,在中斷服務子程序開始后,通過判斷來確定各種波形的輸出,當判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛?,如此反復。如果選擇的是方波
40、,則用查表的方法求出相應的數(shù)據(jù),并通過d/a轉(zhuǎn)換器將數(shù)據(jù)轉(zhuǎn)換成模擬信號,形成所需波形信號。圖5.2 子程序流程圖下面說明子程序流程圖的實現(xiàn):1. 中斷服務程序開始:ljmp tco 絕對跳轉(zhuǎn)到中斷服務程序2. 判斷是否方波及處理方法:tco:cjne r7,#00h,tc1 判斷是否是方波,不是則跳轉(zhuǎn)mov dptr,#tab1 送方波數(shù)據(jù)表首址mov a,r6 發(fā)送數(shù)據(jù)寄存器movc a,a+dptrmov dptr,#0afffh 指向dac0832(2)movx dptr,a dac0832(2)輸出mov a,r6inc a mov r6,acjne a,#32,ql1mov r6,#
41、00hajmp ql13. 判斷是夠是正弦波及處理方法:tc1:cjne r7,#01h,tc2 發(fā)送正弦波程序mov dptr,#tab2 送正弦波數(shù)據(jù)表首址mov a,r6movc a, a+dptrmov dptr,#0afffh 指向dac0832(2)movx dptr,a dac0832(2)輸出mov a,r6inc amov r6,acjne a,#32,ql1mov r6,#00hajmp ql14. 判斷是否是三角波及處理方法:tc2:cjne r7,#02h,ql1 發(fā)送三角波程序mov dptr,#tab3 送三角波數(shù)據(jù)表首址mov a,r6movc a,a+dptr
42、mov dptr,#0afffh 指向dac0832(2)movx dptr,a dac0832(2)輸出mov a,r6inc amov r6,acjne a,#32,ql1mov r6,#00hajmp ql15. 判斷是否是鋸齒波及處理方法:tc3:cjne r7,#03h,ql1 發(fā)送鋸齒波程序mov dptr,#tab4 送鋸齒波數(shù)據(jù)表首址mov a,r6movc a, a+dptrmov dptr,#0afffh 指向dac0832(2)movx dptr,a dac0832(2)輸出mov a,r6inc amov r6,acjne a,#32,ql1mov r6,#00h5.3
43、 波形圖四種波形的仿真波形圖如下:在仿真環(huán)境下,運行仿真軟件,按要求操作鍵盤會出現(xiàn)如下波形圖,各個波形的仿真圖右四種不同的頻率。 圖5.3 方波圖如圖5.3方波圖,橫坐標為時間軸每小格表示1.33ms,縱坐標為幅值軸每小格為1.00mv。當“so”鍵按下事將產(chǎn)生方波,鍵“s4” “s7”決定方波的頻率,“s4”號鍵為10hz的頻率信號,“s5”號鍵為100hz的頻率信號,“s6”號鍵為500hz的頻率信號,“s7”號鍵為1khz的頻率信號。 圖5.4 正弦波圖如圖5.4正弦波圖,橫坐標為時間軸每小格表示1.33ms縱坐標為幅值軸每小格為1.00mv。當“s1”鍵按下是將產(chǎn)生正弦波,鍵“s4”
44、“s7”決定方波的頻率,“s4”號鍵為10hz的頻率信號,“s5”號鍵為100hz的頻率信號,“s6”號鍵為500hz的頻率信號,“s7”號鍵為1khz的頻率信號。 圖5.5 三角波如圖5.5三角波圖,橫坐標為時間軸每小格表示1.33ms縱坐標為幅值軸每小格為1.00mv。當“s2”鍵按下是將產(chǎn)生正弦波,鍵“s4” “s7”決定方波的頻率,“s4”號鍵為10hz的頻率信號,“s5”號鍵為100hz的頻率信號,“s6”號鍵為500hz的頻率信號,“s7”號鍵為1khz的頻率信號。 圖5.6 鋸齒波如圖5.6鋸齒圖,橫坐標為時間軸每小格表示1.33ms縱坐標為幅值軸每小格為1.00mv。當“s3”
45、鍵按下是將產(chǎn)生正弦波,鍵“s4” “s7”決定方波的頻率,“s4”號鍵為10hz的頻率信號,“s5”號鍵為100hz的頻率信號,“s6”號鍵為500hz的頻率信號,“s7”號鍵為1khz的頻率信號。波形分析:在將電路和實物連接的情況下再將程序下載至單片機中進行實電路的測試時,波形與實際要求存在一些誤差,這些誤差的來源主要是由于電路的具體參數(shù)選擇不好以及程序的延時所造成的。但基本上是符合設(shè)計要求的。致謝課程設(shè)計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應用中空前
46、活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術(shù)是十分重要的?;仡櫰鸫舜螁纹瑱C課程設(shè)計,我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在好幾個星期的日子里,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到
47、過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對單片機匯編語言掌握得不好這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在徐愛鈞老師的辛勤指導下,終于游刃而解。同時,在徐愛鈞老師那里我學得到很多實用的知識,在次我表示感謝!同時,對給過我?guī)椭乃型瑢W和各位指導老師再次表示忠心的感謝!參考文獻1 徐愛鈞,智能化測量控制儀表原理與設(shè)計,北京航空航天大學出版社,20042 徐愛鈞,keil cx51 v7.0單片機高級語言編程與u vision2應用實踐,電子工業(yè)出版社,2004.3 劉樂善.微型計算機接口技術(shù)及應用m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中國熱帶農(nóng)業(yè)科學院香料飲料研究所第一批公開招聘8人(第1號海南)高頻重點提升(共500題)附帶答案詳解
- 2025中國建筑第二工程局限公司北京分公司招聘10人高頻重點提升(共500題)附帶答案詳解
- 2025中國華錄集團限公司總部應屆高校畢業(yè)生招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國人壽內(nèi)蒙古分公司春季校園招聘114人高頻重點提升(共500題)附帶答案詳解
- 2025中儲糧油脂限公司招聘高頻重點提升(共500題)附帶答案詳解
- 2025下半年重慶酉陽自治縣教育事業(yè)單位招聘125人歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年深圳事業(yè)單位(職員)歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年山東煙臺市福山區(qū)事業(yè)單位招聘本科及以上學歷畢業(yè)生入伍15人高頻重點提升(共500題)附帶答案詳解
- 2025下半年四川省阿壩州事業(yè)單位招聘433人歷年高頻重點提升(共500題)附帶答案詳解
- 2025上海市陽光社區(qū)青少年事務中心招聘27名青年社工歷年高頻重點提升(共500題)附帶答案詳解
- 不動產(chǎn)抵押登記手續(xù)
- 公安機關(guān)執(zhí)法執(zhí)勤規(guī)范用語
- 無人機技術(shù)在消防救援中的作用與局限
- 超越指標:存量時代降本增效的利器
- 一年級道德與法治無紙筆期末檢測質(zhì)量分析
- 形式邏輯期末考試含答案
- 自媒體賬號運營的用戶畫像分析技巧
- 醫(yī)院門窗工程施工方案與施工方法
- 短視頻實習運營助理
- 2024年中化石油福建有限公司招聘筆試參考題庫含答案解析
- 對加快推進新型工業(yè)化的認識及思考
評論
0/150
提交評論