單片機技術課程設計說明書智能信號發(fā)生器_第1頁
單片機技術課程設計說明書智能信號發(fā)生器_第2頁
單片機技術課程設計說明書智能信號發(fā)生器_第3頁
單片機技術課程設計說明書智能信號發(fā)生器_第4頁
單片機技術課程設計說明書智能信號發(fā)生器_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機技術課程設計說明書智能信號發(fā)生器專業(yè)電氣工程及自動化學生姓名周建班級bmz電氣081學號0861402115指導教師周云龍完成日期2011年 6月 9 日目 錄緒論第一章 系統(tǒng)設計1.1 系統(tǒng)方案1.2 控制芯片的選擇第二章 系統(tǒng)硬件設計2.1 基本原理2.2 單片機介紹及資源分配2.2.1 單片機的介紹2.2.2 資源分配2.3 各部分電路原理2.3.1 dac0832芯片原理2.3.2 ne4558工作原理2.3.3 鍵盤電路原理2.3.4 led顯示電路原理第三章 系統(tǒng)軟件設計3.1主程序流程圖3.2子程序流程圖第四章 測試結果第五章 結論參考文獻附錄a電路原理圖附錄b 程序清單緒

2、論波形發(fā)生器亦稱函數(shù)發(fā)生器,作為實驗用信號源,是現(xiàn)今各種電子電路實驗設計應用中必不可少的儀器設備之一。目前,市場上常見的波形發(fā)生器多為純硬件的搭接而成,且波形種類有限,多為鋸齒、正弦、方波、三角等波形。這里介紹一種采用at89s52單片機和一片dac0832數(shù)模轉換器做成的數(shù)字式低頻信號發(fā)生器,它的特點是價格低、性能高,在低頻范圍穩(wěn)定性好、操作方便、體積小、耗電少等。信號發(fā)生器與其它相比還具有如下優(yōu)點:較分立元件信號發(fā)生器而言,具有頻率高,工作穩(wěn)定,容易調試等特性;較專用dds芯片的信號發(fā)生器而言,具有結構簡單,成本低等特性。第一章 系統(tǒng)設計1.1 系統(tǒng)方案 采用單片機和dac0832數(shù)模轉換

3、器生成波形,由于是軟件濾波,所以不會有寄生的高次諧波分量,生成的波形比較純凈。它的特點是價格低、性能高,在低頻范圍內穩(wěn)定性好、操作方便、體積小、耗電少。可充分發(fā)揮其優(yōu)勢,電路簡單,易控制,性價比較高,所以采用該方案。1.2 控制芯片的選擇at89s52單片機是一種高性能8位單片微型計算機。它把構成計算機的中央處理器cpu、存儲器、寄存器、i/o接口制作在一塊集成電路芯片中,從而構成較為完整的計算機。第二章 系統(tǒng)硬件設計2.1 基本原理系統(tǒng)框圖如圖2.1所示波形指示按鍵單片機數(shù)模轉換電流、電壓轉換輸出電源圖2.1低頻信號發(fā)生器系統(tǒng)框圖低頻信號發(fā)生器系統(tǒng)主要由cpu、d/a轉換電路、基準電壓電路、

4、電流/電壓轉換電路、按鍵和波形指示電路、電源等電路組成。其工作原理為當分別按下四個按鍵中的任一個按鍵就會分別出現(xiàn)方波、鋸齒波、三角波、正弦波,并且有四個發(fā)光二極管分別作為不同的波形指示燈。2.2 單片機介紹及資源分配2.2.1 單片機的介紹(1)at89s52的引腳圖如圖2.2所示圖2.2 at89s52引腳圖(2)管腳說明 低頻信號發(fā)生器采用at89s52單片機作為控制核心,其內部組成包括:一個8位的微處理器cpu及片內振蕩器和時鐘產生電路,但石英晶體和微調電容需要外接;片內數(shù)據(jù)存儲器ram低128字節(jié),存放讀/寫數(shù)據(jù);高128字節(jié)被特殊功能寄存器占用;片內程序存儲器4kb rom;四個8位

5、并行i/o(輸入/輸出)接口p3 -p0,每個口可以用作輸入,也可以用作輸出;兩個定時/計數(shù)器,每個定時/計數(shù)器都可以設置成計數(shù)方式,用以對外部事件進行計數(shù),也可以設置成定時方式,并可以根據(jù)計數(shù)或定時的結果實現(xiàn)計算機控制;五個中斷源的中斷控制系統(tǒng);一個全雙工uart(通用異步接收發(fā)送器)的串行i/o口。vcc:供電電壓。gnd:接地。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為

6、振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內部程序存儲器。注意加密方式

7、1時,/ea將內部鎖定為reset;當/ea端保持高電平時,此間內部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。89s52 單片機外部有32個端口可供用戶使用,其功能如下:表2.1 89s52并行i/o接口端口引腳位置第一功能第二功能 符號 功能符號功能p039-32p0.0-p0.7通用i/0口ad0-ad7地址數(shù)據(jù)總線p11-8p1.0-p1.7通用i/0口p221-28p2.0-p2.7通用i/0口a8-a15地址總線(高位)p310p3.0通用i/0口rxd串行通

8、信發(fā)送口11p3.1txd串行通信接收口12p3.2int0外部中斷013p3.3int1外部中斷114p3.4t0計數(shù)器0輸入端口15p3.5t1計數(shù)器1輸入端口16p3.6wr外部存儲器寫功能17p3.7rd外部存儲器讀功能p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4t

9、tl門電流。p1口管腳寫入1后,被內部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。p2口:p2口為一個內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器

10、的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,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

11、 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)(3)at89s52的晶振及其連接方法 cpu工作時都必須有一個時鐘脈沖。有兩種方式可以向89s52提供時鐘脈沖:一是外部時鐘方式,即使用外部電路向89s52提供時鐘脈沖,見圖2.3(a);二是內部時鐘方式,即使用晶振由89s52內部電路產生時鐘脈沖。一般常用第二種方法,其電路見圖2.3(b)。89s52xtal2xtal189s52xtal2xtal1懸空外部時鐘信號c1c2j(a)外部時鐘方式(b)內部時鐘方式圖2.3 89s52的時鐘脈沖j一般為石英晶體,其頻率由系統(tǒng)需要和器件決定,在頻率穩(wěn)定度要求不高時也可以使用陶

12、瓷濾波器。一般來說,使用石英晶體時,c1=c2=30pf。使用陶瓷濾波器時,c1=c2=47pf。(4)at89s52的復位 復位是單片機的初始化操作,其主要的作用是把pc初始化為0000h,使單片機從0000h單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或操作失誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需要按復位鍵以重新啟動。除使pc歸零外,復位操作還對其他一些專用寄存器有影響,它們的復位狀態(tài)如表2.2所示。表2.2 復位后的內部寄存器狀態(tài)寄存器復位狀態(tài)寄存器復位狀態(tài) pc 0000h tmod00hacc00htcon00hb00hth000hpsw00htl000hsp

13、07hth100hdptr0000htl100hp0-p30ffhscon00hip(xxx00000)sbuf(xxxxxxxx)ie(0xx00000)pcon(0xxx0000)另外,復位操作還對單片機的個別引腳有影響,例如會把ale和/psen變成無效狀態(tài),即使ale=0,/psen=1.rst變成低電平后,退出復位狀態(tài),cpu從初始狀態(tài)開始工作。89s52復位操作有3種方式:上電復位、上電按鈕復位和系統(tǒng)復位。上電復位電路如圖2.4所示。對于cmos型單片機因rst引腳的內部有一個拉低電阻,故電阻r可不接。單片機在上電瞬間,rc電路充電,rst引腳端出現(xiàn)正脈沖,只要rst端保持兩個機器

14、周期以上的高電平,就能使單片機有效地復位。當晶體振蕩頻率為12mhz時,rc的典型值為c=10uf,r=8.2k歐姆。簡單復位電路中,干擾信號易串入復位端,可能會引起內部某些寄存器錯誤復位,這時可在rst引腳上接一去耦電容。通常因為系統(tǒng)運行等的需要,常常需要人工按鈕復位,復位電路如圖2.5所示,其中r2>>r1,只需將一個常開按鈕開關并聯(lián)于上電復位電路,按下開關一定時間就能使rst引腳端為高電平,從而使單片機復位。rst 89s52rst 89s52+5vcr+5vr1r2c圖2.4 上電復位電路 圖2.5 上電按鈕復位電路2.2.2 資源分配晶振采用12mhz。p1口的p1.0-

15、p1.3分別與四個按鍵連接,分別控制鋸齒波、三角波、正弦波和方波,p1.4-p1.7與四個發(fā)光二極管相連,按鍵一對應發(fā)光二極管一,依次類推,發(fā)光二極管四對應按鍵四,實現(xiàn)輸出一個波形對應亮一個燈。p0口與dac0832的d0-d7數(shù)據(jù)輸入端相連。p2口用來控制dac0832的輸入寄存器選擇信號/cs和數(shù)據(jù)傳送信號/xfer。2.3 各部分電路原理2.3.1 dac0832芯片原理管腳功能介紹(如圖2.6所示)圖2.6 dac0832管腳圖di7di0:8位的數(shù)據(jù)輸入端,di7為最高位。ile:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。/cs:選片信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效。/wr1:

16、數(shù)據(jù)鎖存器寫選選通輸入線,負脈沖有效,由ile、/cs、/wr1的邏輯組合產生/le1,當/le1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變化,/le1的負跳變時將輸入數(shù)據(jù)鎖存。/xfer:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負脈沖有效。/wr2:dac寄存器選通輸入線,負脈沖有效,由/wr2、/xfer的邏輯組合產生/le2,當/le2為高電平時,dac寄存器的輸出隨寄存器的輸入而變化,/le2的負跳變時將數(shù)據(jù)鎖存器的內容打入dac寄存器并開始d/a轉換。iout1:模擬電流輸出端1,當dac寄存器中數(shù)據(jù)全為1時,輸出電流最大,當 dac寄存器中數(shù)據(jù)全為0時,輸出電流為0。iout2:模擬電流

17、輸出端2, iout2與iout1的和為一個常數(shù),即iout1iout2常數(shù)。rfb:反饋電阻引出端,dac0832內部已經(jīng)有反饋電阻,所以 rfb端可以直接接到外部運算放大器的輸出端,這樣相當于將一個反饋電阻接在運算放大器的輸出端和輸入端之間。vref:參考電壓輸入端,此端可接一個正電壓,也可接一個負電壓,它決定0至255的數(shù)字量轉化出來的模擬量電壓值的幅度,vref范圍為(+10-10)v。vref端與d/a內部t形電阻網(wǎng)絡相連。vcc:芯片供電電壓,范圍為(+5+15)v。agnd:模擬量地,即模擬電路接地端。dgnd:數(shù)字量地。 當wr2和xfer同時有效時,8位dac寄存器端為高電平

18、“1”,此時dac寄存器的輸出端q跟隨輸入端d也就是輸入寄存器q端的電平變化;反之,當端為低電平“0”時,第一級8位輸入寄存器q端的狀態(tài)則鎖存到第二級8位dac寄存器中,以便第三級8位dac轉換器進行d/a轉換。一般情況下為了簡化接口電路,可以把wr2和xfer直接接地,使第二級8位dac寄存器的輸入端到輸出端直通,只有第一級8位輸入寄存器置成可選通、可鎖存的單緩沖輸入方式。 特殊情況下可采用雙緩沖輸入方式,即把兩個寄存器都分別接成受控方式。制作低頻信號發(fā)生器有許多方案:主要有單緩沖方式,雙緩沖方式和直通方式。單緩沖方式具有適用于只有一路模擬信號輸出或幾路模擬信號非同步輸出的情形的優(yōu)點,但是電

19、路線路連接比較簡單。而雙緩沖方式適用于在需要同時輸出幾路模擬信號的場合,每一路模擬量輸出需一片dac0832芯片,構成多個dac0832同步輸出電路,程序簡單化,但是電路線路連接比較復雜。根據(jù)以上分析,我選擇了單緩沖方式使用方便,程序簡單,易操作。這里我采用dac0832與單片機89s52的典型的單緩沖方式接口電路。ile接高電平,/wr1和/wr2相連后接89s52的/wr,/cs和/xfer相連后接89s52的地址高位,這樣就同時片選了dac0832的數(shù)據(jù)鎖存器和dac寄存器,89s52對dac0832執(zhí)行一次寫操作就把一個數(shù)據(jù)寫入數(shù)據(jù)鎖存器的同時也直接寫入到了dac寄存器,模擬量輸出隨之

20、變化。dac0832的輸出是電流,使用運算放大器可以將其電流輸出線性地轉換成電壓輸出。根據(jù)運算放大器和dac0832的連接方法,運算放大器的輸出可以分為單極性和雙極性兩種。如圖2.7所示。圖2.7 dac0832雙極性電壓輸出電路2.3.2 ne4558工作原理 圖2.8 ne4558引腳圖 圖2.9 ne4558運放引腳圖4558 是一片雙運放,帶內部補償電路。極好的通道分離特性允許在單運放應用中使用雙運放器件,從而提供了最高的封裝密度。他的內部包含兩組形式完全相同的運算放大器,除電源共用外,兩組運放相互獨立。每一組運算放大器可用圖2.9所示的符號來表示,它有5個引出腳,其中“+”、“-”為

21、兩個信號輸入端,“v+”、“v-”為正、負電源端,“out”為輸出端。兩個信號輸入端中,“-”為反相輸入端,表示運放輸出端out的信號與該輸入端的為相反;“+”為同相輸入端,表示運放輸出端out的信號與輸入端的相位相同。aout:放大信號輸出(1)。 ain-:反相信號輸入(1)。ain+:同相信號輸入(1)。 gnd:接地。 bin+:同相信號輸入(2)。 bin-:反相信號輸入(2)。 bout2:放大信號輸出(2)。 vcc:電源。4558特性有很多,2mhz單位增益帶寬保證,ne4558 的電源電壓為 ±18v,具備短路保護功能,無需頻率補償,無閂鎖效應,寬廣的共模和差動電壓

22、范圍,低功耗。因此被廣泛運用在各種電路中。2.3.3 鍵盤電路原理在單片機應用系統(tǒng)中為了控制系統(tǒng)的工作狀態(tài),以及向系統(tǒng)輸入數(shù)據(jù),應用系統(tǒng)應設有按鍵或鍵盤,實現(xiàn)簡單的人機會話。鍵盤是一組按鍵的組合,鍵通常是一種常開型按鈕開關,平時鍵的兩個出點處于斷開狀態(tài),按下鍵時他們才閉合。從鍵盤的結構來分類,鍵盤可以分為獨立式和矩陣式兩類,每一類按其識別方法又都可以分為編碼和未編碼鍵盤兩種。鍵盤上閉合鍵的識別由專門的硬件譯碼器實現(xiàn)并產生編號或鍵值的稱為編碼鍵盤,由軟件識別的稱未編碼鍵盤。在由單片機組成的測控系統(tǒng)及智能化儀器中,用得較多的是未編碼鍵盤,我這里也使用未編碼鍵盤。未編碼鍵盤又分為獨立式鍵盤跟矩陣式鍵

23、盤。(1)獨立式未編碼鍵盤結構的工作原理及接口 在單片機應用系統(tǒng)中常常需要簡單的幾個鍵完成數(shù)據(jù)、命令的輸入,此時可采用獨立式鍵盤的結構。其接口如圖2.10所示。此接口電路的工作原理很簡單,無鍵按下時,各輸入線為高電平;有鍵按下時,相應的輸入線為低電平,cpu查詢此輸入口的狀態(tài)就可知是哪個鍵閉合。采用一鍵一線的方法,當按鍵的數(shù)目增加時,將增加輸入口的數(shù)量,為了減少占用輸入線數(shù),可采用矩陣式結構的鍵盤。+5v圖2.10 獨立式未編碼鍵盤(2)矩陣式未編碼鍵盤結構的工作原理 如圖2.11所示是4*4的鍵盤接口,它是矩陣式的結構。圖中鍵盤的行線(x0x3)與列線(y0y3)的交叉處通過一個按鍵來聯(lián)通,

24、行線通過電阻接+5v,當鍵盤上沒有鍵閉合時所有的行線和列線都斷開,則行線都呈高電平。當鍵盤上某一個鍵閉合時,則該鍵所對應的行線和列線被短路。例如:6號鍵被按下閉合時,行線x1和列線y2被短路,此時x1的電平由y2的電位所決定。如果把行線接到單片機的輸入口,列線接到單片機的輸出口,則在單片機的控制下,先使列線y0為低電平,其余三根列線y1、y2、y3都為高電平,讀行線狀態(tài)。如果x0、x1、x2、x3、都為高電平,則y0這一列上沒有鍵合。如果讀出的行線狀態(tài)不全為高電平,則為低電平的行線和y0相交的鍵處于閉合狀態(tài)。如果y0這一列上沒有鍵合,接著使列線y1為低電平,其余列線為高電平,用同樣方法檢查y1

25、這一列上有無鍵閉合。依此類推,最后使列線y3為低電平,其余的列線為高電平,檢查y3這一列上是否有鍵閉合。這種逐行逐列地檢查鍵盤狀態(tài)的過程稱為對鍵盤的一次掃描。cpu對鍵盤掃描可以采取程序控制的隨機方式,cpu空閑時掃描鍵盤;也可以采取定時控制方式,每隔一定時間,cpu對鍵盤掃描一次,cpu可隨時響應鍵盤輸入請求;還可以采用中斷方式,當鍵盤上有鍵閉合時,向cpu請求中斷,cpu響應鍵盤輸入中斷,對鍵盤掃描,以識別哪一個鍵處于閉合狀態(tài),并對鍵輸入信息作出相應處理。cpu對鍵盤上閉合鍵的鍵號確定,可以根據(jù)行線和列線的狀態(tài)計算求得,也可以根據(jù)行線和列線狀態(tài)查表求得。x3x2x1x0y0y1y2y3 1

26、2840 139 5 1 14 10 6 2 15 11 7 3+5v圖2.11 4*4矩陣式未編碼鍵盤結構圖根據(jù)我設計的電路特點,只需要用到4個按鈕來選擇波形,實現(xiàn)的功能也比較簡單,所以我采用獨立式未編碼鍵盤結構。鍵盤原理圖如圖2.12所示。圖2.12 鍵盤原理圖2.3.4 led顯示電路原理在這里使用的是發(fā)光二極管,發(fā)光二極管通常用砷化鎵、磷化鎵等所制成的。當這種管子通以電流時將發(fā)出光來,這是由于電子與空穴直接復合而放出的能量的結果。當pn結處加以一個適當?shù)恼妷簳r,此管即導通,也就會發(fā)光。這樣我們就能知道我們所需要了解的信息,在此設計中發(fā)光二極管通過軟件的控制顯示波形種類。led電路圖如

27、圖2.13所示。圖2.13 led電路圖4個led的負極分別接p1.4p1.7,當p1口高4位任意一個為低電平時,其對應的led就會導通,從而發(fā)光,通過程序的控制可以設計波形類型的顯示。第三章 系統(tǒng)軟件設計軟件設計上,根據(jù)功能分了幾個模塊編程。模塊主要有:主程序模塊、鋸齒波模塊、三角波模塊、正弦波模塊、方波模塊、延時子程序模塊等。顯示波形模塊是利用dac0832的8位特點,把波形的數(shù)據(jù)以8位數(shù)據(jù)的形勢送進cpu中,只要一按鍵就能顯示波形。3.1主程序流程圖如圖3.1所示開始key1按下了嗎?輸出鋸齒波輸出三角波輸出正弦波輸出方波key2按下了嗎?key3按下了嗎?key4按下了嗎?yyyynn

28、nn圖3.1主程序流程圖本軟件設計過程中主要實現(xiàn)利用按鍵來控制不同波形的輸出,當按鍵1按下時,函數(shù)發(fā)生器就輸出鋸齒波;當按鍵2按下時,函數(shù)發(fā)生器就輸出三角波;當按鍵3按下時,函數(shù)發(fā)生器就輸出正弦波;當按鍵4按下時,函數(shù)發(fā)生器就輸出方波。通過按鍵可以以任意循環(huán)方式輸出不同波形。3.2子程序流程圖鋸齒波流程圖如圖3.2所示。a=00ha送到0832輸出a=a+1開始a=ffh?yn圖3.2 鋸齒波流程圖鋸齒波產生將00h送入寄存器a中,dac0832輸出a中的內容,當a中的內容等于ffh返回開始,當a中的內容不為ffh時,a中的內容累加,從而輸出波形。鋸齒波產生子程序如下:santoo: mov

29、a ,#00h mov dptr,#7fffhlloop: movx dptr,a inc a ; cjne a,ffh,lloop ret三角波流程圖如圖3.3所示開始a=00ha送到0832輸出a=a+1a=00h?a=a-1a送到0832輸出a=00h?nyyn圖3.3 三角波流程圖三角波產生通過a中數(shù)值的加一遞升,當a中的內容加到為0時, a中的內容減一遞減,從而循環(huán)產生三角波。三角波產生子程序如下:trian :mov a ,#00h mov dptr,#7fffhup:    movx dptr,a    

30、60;    inc a          jnz up down:  dec a         movx dptr,a         jnz down ret正弦波程序流程圖如圖3.4所示開始a=00ha=129?dptr1=dptr1+1a=正弦函數(shù)表數(shù)據(jù)a送到0832輸出yn圖3.4 正弦波程序流程圖正弦波波

31、形設計通過查表指令得出。其產生子程序如下:sine: mov dptr1,#sintab mov dptr,#7fffh loop: clr a movc a,a+dptr1 cjne a,#129,loop1 retloop1: movx dptr,a inc dptr1 ajmp loopsintab:db 128,132,137,141,146,150,154,159,163,167 db 171,176,180,184,188,191,195,199,203,206 db 210,213,216,219,222,225,228,231,233,236 db 238,240,242,24

32、4,246,247,249,250,251,252 db 253,254,254,255,255,255,255,255,254,254 db 253,252,251,250,249,247,246,244,242,240 db 238,236,233,231,228,225,222,219,216,213 db 210,206,203,198,195,192,188,184,180,176 db 172,167,163,159,155,150,146,141,137,133 db 128,124,119,115,111,106,102,97,93,89,85 db 81,77,73,69,6

33、5,61,57,54,50,47,43,40,37 db 34,31,28,25,23,20,18,16,14,12,10,9,7 db 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6 db 7,9,10,12,14,16,18,20,23,25,28,30,33,36 db 40,43,46,50,53,57,60,64,68,72,76,80,84 db 88,93,97,101,106,110,114,119,123,128,129方波程序流程圖如圖3.5所示開始a=00ha送到0832輸出延時a=ffha送到0832輸出延時圖3.5 方波程序流程圖方波產生是當a中的

34、內容為0時,輸出對應模擬量,然后延時,當a中的內容為0ffh時,同樣輸出對應模擬量,再延時,從而得到方波。方波產生子程序如下:squn:mov dptr,#7fffh mov a ,#0ffh movx dptr,a lcall delay mov a ,#00hmovx dptr,a lcall delay ret 延時子程序如下:delay: mov r7,#10hdly0: mov r6,#0edh nopdly1: djnz r6,dly1 djnz r7,dly0 ret方波的上限和下限的延時時間為:7mss=1+(1+1+2×237+2)×16+1=7648us

35、第四章 測試結果在確定編程思路以后將各部分的程序及各子程序編好,使用keil進行編譯,根據(jù)提示的錯誤對程序進行修改。除了語法差錯和邏輯差錯外,當確認程序沒問題時,通過直接加載到protues軟件電路中進行仿真。當按鍵1撥下時,波形為鋸齒波,同時指示燈1發(fā)光。仿真圖如圖4.1所示。 圖4.1 鋸齒波仿真圖當按鍵2撥下時,波形為三角波,同時指示燈2發(fā)光。仿真圖如圖4.2所示。圖4.2 三角波仿真圖當按鍵3撥下時,波形為正弦波,同時指示燈3發(fā)光。仿真圖如圖4.3所示。圖4.3 正弦波仿真圖當按鍵4撥下時,波行為方波,同時指示燈4發(fā)光。仿真圖如圖4.4所示。圖4.4 方波仿真圖在對系統(tǒng)進行波形仿真時可

36、以在虛擬示波器上觀察到鋸齒波、三角波、正弦波和方波的波形。其中鋸齒波、三角波以及正弦波的輸出誤差較大,方波波形較為理想。這一方面與電路設置的參數(shù)有關,另一方面也與使用的仿真軟件有關。對于上述問題的解決辦法是:改變仿真電路的參數(shù)或著換用版本較高的仿真軟件。當然一般產生這種情況的原因多由于電路的參數(shù)設計不合理所制。當仿真時,由于存在一定的系統(tǒng)誤差,波形效果不是很好。第五章 結論基于單片機的智能信號發(fā)生器設計,該課題的設計目的是充分運用大學期間所學的專業(yè)知識,考察現(xiàn)在正在使用的信號發(fā)生器的基本功能,完成一個基本的實際系統(tǒng)的設計全過程。關鍵是這個實際系統(tǒng)設計的過程,在整個過程中我可以充分發(fā)揮單片機知識

37、。特別是這個信號發(fā)生器的設計中涉及到一個典型的控制過程。通過單片機控制一個模數(shù)轉換器dac0832產生所需要的電流,然后使用運算放大器ne4558可以將其電流輸出線性地轉換成電壓輸出,通過程序的控制,可以產生一系列有規(guī)律的波形。這樣一個信號發(fā)生裝置在控制領域有相當廣泛的應用范圍。此設計方案硬件較為簡單,主要是由單片機跟dac08322個芯片構成,連線也較簡便。鍵盤電路用的獨立未編碼結構,一個鍵控制一個波形。顯示電路主要是由發(fā)光二極管構成,利用發(fā)光二極管的導通即發(fā)光的特性來顯示是哪個波形的輸出,簡單易懂。軟件程序方面較為復雜一點,此方案主要是靠程序的控制,主要由4個波形產生的子程序加上有承上啟下

38、作用的主程序構成,程序思路還是比較清晰。其中正弦波的程序較為繁瑣,因為是通過查表指令產生的,所以要列出個含有較多字符的表格。當然還是存在不足的地方,比如不能實現(xiàn)頻率與幅度的可調,顯示電路跟鍵盤電路有待進一步改進。參考文獻1楊恢先,黃輝先.單片機原理及應用m.人民郵電出版社,2006.2曾一江.單片機微機原理與接口技術m.科學出版社,2006.3王新強.基于at89s52的智能信號發(fā)生器j.河南機電高等??茖W校學報,2006,14(3):37-39.附錄a 電路原理圖附錄b程序清單key1 bit p1.0key2 bit p1.1key3 bit p1.2key4 bit p1.3;按鍵key

39、1:鋸齒波 按鍵key2:三角波 按鍵key3: 正弦波 ;按鍵key4: 方波; org 0000h ljmp main org 0030hmain:mov sp,#50hscan_key1:mov a,p1 anl a,#0fh cjne a,#0eh,scan_key2 ljmp b1scan_key2:mov a,p1 anl a,#0fh cjne a,#0dh,scan_key3 ljmp b2scan_key3:mov a,p1 anl a,#0fh cjne a,#0bh,scan_key4 ljmp b3scan_key4:mov a,p1 anl a,#0fh cjne a

40、,#07h,scan_key1 ljmp b4;利用dac0832產生鋸齒波;b1:clr p1.4 setb p1.5 setb p1.6 setb p1.7santoo:mov a ,#00h mov dptr,#7fffhlloop:movx dptr,a inc a ; cjne a,ffh,lloop ljmp scan_key1;利用dac0832產生三角波;b2: clr p1.5 setb p1.4 setb p1.6 setb p1.7trian :mov a ,#00h mov dptr,#7fffhup:     movx dptr,a         inc a  

溫馨提示

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

最新文檔

評論

0/150

提交評論