基于單片機的信號發(fā)生器_第1頁
基于單片機的信號發(fā)生器_第2頁
基于單片機的信號發(fā)生器_第3頁
基于單片機的信號發(fā)生器_第4頁
基于單片機的信號發(fā)生器_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1緒論1.1單片機概述單片微型計算機(單片機)作為微型計算機的一個很重要的分支,自問世以來,以其極高的性價比,受到人們的重視和關(guān)注,因此應(yīng)用廣泛,發(fā)展迅速。相對而言,單片機體積小、重量輕、抗干擾能力強,對環(huán)境要求不高,并且價格低廉、可靠性高、靈活性好,開發(fā)較為容易。目前,在我國,單片機已經(jīng)廣泛地用于智能儀表、機電設(shè)備過程控制、自動檢測、家用電器和數(shù)據(jù)處理等各個方面。1.2AT89S52單片機AT89S52 是一種低功耗、高性能 CMOS8 位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲器。使用 Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上

2、 Flash 允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程 Flash,使得 AT89S52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52 具有以下標(biāo)準(zhǔn)功能:8k 字節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線,看門狗定時器,兩個數(shù)據(jù)指針,三個 16 位定時器/計數(shù)器,一個 6 向量 2 級中斷結(jié)構(gòu),全雙工用行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作17。掉

3、電保護方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。1.3信號發(fā)生器概述目前,市場上的信號發(fā)生器多種多樣,一般按頻帶分為以下幾種:超圖頻:頻率范圍 1MHz 以上,可達幾十兆赫茲。高頻:幾百 KHZ 到幾 MHZ0低頻:頻率范圍為幾十 HZ 到幾百 KHZ。超低頻:頻率范圍為零點幾赫茲到幾百赫茲。超高頻信號發(fā)生器,產(chǎn)生波形一般用 LC 振蕩電路。高頻、低頻和超低頻信號發(fā)生器,大多使用文氏橋振蕩電路,即 RC 振蕩電路,通過改變電容和電阻值,改變頻率。用以上原理設(shè)計的信號發(fā)生器,具輸出波形一般只有兩種,即正弦波和脈沖波,其零點不可調(diào),而且價格也比較貴

4、,一般在幾百元左右。在實際應(yīng)用中,超低頻波和高頻波一般是不用的,一般用中頻,即幾十 HZ 到幾十 KHZ。用單片機 89S52,加上一片 DAC0808,就可以做成一個簡單的信號發(fā)生器, 其頻率受單片機運行的程序的控制。 我們可以把產(chǎn)生各種波形的程序, 寫在 ROM 中,裝入本機,按用戶的選擇,運行不同的程序,產(chǎn)生不同的波形。再在 DAC0808 輸出端加上一些電壓變換電路,就完成了一個頻率、幅值、零點均可調(diào)的多功能信號發(fā)生器的設(shè)計。這樣的機器體積小,價格便宜,耗電少,頻率適中,便于攜帶。2系統(tǒng)設(shè)計方案2.1系統(tǒng)可行性分析(1)元器件的選擇及其可行性討論根據(jù)技術(shù)指標(biāo)及系統(tǒng)設(shè)計目的,經(jīng)研究芯片的

5、選擇如下:主控芯片采用 ATMEL 公司的 89S52;采用 12MHz 的晶振器為 89S52 提供時鐘信號;穩(wěn)壓塊選用 7812 與 7805 相串聯(lián),提供 12V 和 5V 電壓,7912 產(chǎn)生-12V 電壓;對于 89S52 的 P0 口的數(shù)據(jù)采用 74LS373 進行鎖存后經(jīng)過 DAC0808 進行 D/A 轉(zhuǎn)換;數(shù)碼顯示器采用高亮 8 位共陰極數(shù)碼管;8 位 D/A 轉(zhuǎn)換器采用 DAC0808;運算放大器采用 LM324。大部分的芯片及器件都可以通過網(wǎng)絡(luò)購買,所以器件的選擇完全可行。(2)設(shè)計中可能存在的問題及解決方案一一排除問題的可行性討論設(shè)計原理圖時應(yīng)著重考慮設(shè)計最終的電路板的

6、可行性。在設(shè)計時要對每一個電路模塊仔細檢查,查閱其他書籍進行校對,還要進行實物實驗,以確保設(shè)計的可實現(xiàn)性。在最后的電路板的調(diào)試階段,需要診斷模塊程序和單片機仿真機合作進行,從而克服調(diào)試程序本身的不可靠性,可方便地進行調(diào)試及錯誤診斷。以上對設(shè)計中可能遇到的較為重要的問題進行了分析并提出了解決方法,基本上可以解決。(3)經(jīng)濟上的可行性討論本設(shè)計是一個實驗系統(tǒng),芯片的選擇在前面已經(jīng)討論,從前面的討論中可見芯片大部分可在網(wǎng)上找到。因此,設(shè)計費用主要集中在購買元器件上,而大部分的元器件又不是很貴,所以經(jīng)濟上本設(shè)計完全可行。2.2系統(tǒng)需求分析2.2.1 系統(tǒng)功能要求系統(tǒng)具有 D/A 轉(zhuǎn)換功能,信號幅度放大

7、功能,8 位七段數(shù)碼顯示功能,上電自動復(fù)位功能,2X4 鍵盤輸入接口2.2.2 系統(tǒng)性能要求(1)系統(tǒng)的 D/A 轉(zhuǎn)換功能具有 8 位精度;(2)動態(tài)掃描七段數(shù)碼顯示器;(3)89S52 單片機時鐘信號為 12MHZ;(4)系統(tǒng)上電自動復(fù)位;(5)系統(tǒng)具有 8 位行列掃描鍵盤。2.3總體方案設(shè)計一個單片機主系統(tǒng)的硬件電路設(shè)計包含兩部分內(nèi)容:一是單片機系統(tǒng)擴展部分設(shè)計,它包括存儲器擴展和接口擴展。存儲器擴展指 EPROM、EEPROM 和RAM 的擴展。接口擴展是指各接口芯片以及其他功能器件的擴展。二是各功能模塊的設(shè)計,如信號檢測功能模塊、信號控制功能模塊、人機對話功能模塊、通訊功能模塊等,根據(jù)

8、系統(tǒng)功能要求配置相應(yīng)的 D/A、鍵盤、顯示器等外圍設(shè)備。本機硬件設(shè)計包括兩部分,即電源部分設(shè)計和主系統(tǒng)設(shè)計。電源設(shè)計和主系統(tǒng)框圖分別如圖 2-1,2-2 所示。圖2-1交流一直流電壓轉(zhuǎn)換圖2-2主系統(tǒng)結(jié)構(gòu)框圖3硬件設(shè)計3.1總體硬件設(shè)計單片機應(yīng)用系統(tǒng)的硬件電路設(shè)計包含兩部分內(nèi)容: 一是系統(tǒng)擴展, 即單片機內(nèi)部的功能單元(如 ROM、I/O、定時/計數(shù)器等)容量不能滿足應(yīng)用系統(tǒng)的要求時,必須在片外進行擴展,選擇適當(dāng)?shù)男酒O(shè)計適當(dāng)?shù)碾娐?。二是系統(tǒng)配置,即按照功能要求配置外圍設(shè)備如顯示器、D/A 轉(zhuǎn)換等,要設(shè)計合適的電路。系統(tǒng)的擴展和模塊設(shè)計應(yīng)遵循下列原則12:(1)盡可能選擇標(biāo)準(zhǔn)化、模塊化的典型

9、電路,提高設(shè)計的成功率和結(jié)構(gòu)的靈活性。(2)系統(tǒng)的擴展與外圍設(shè)備配置的水平應(yīng)充分滿足應(yīng)用系統(tǒng)的功能要求。(3)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。硬件結(jié)果與軟件方案會產(chǎn)生相互影響,考慮的原則是:軟件能實現(xiàn)的功能盡可能由軟件來實現(xiàn),以簡化硬件結(jié)構(gòu)。但必須注意,由軟件實現(xiàn)的硬件功能,其響應(yīng)時間要比直接用硬件響應(yīng)來的長,而且占用 CPU時間。所以,選擇軟件方案時,要考慮到這些因素12。(4)可靠性及抗干擾性設(shè)計是硬件系統(tǒng)設(shè)計不可缺少的部分,它包括芯片、器件選擇,去耦濾波等。(5)單片機外接電路較多時,必須考慮其驅(qū)動能力。驅(qū)動能力不足時,系統(tǒng)工作不可靠,解決的辦法是增加驅(qū)動能力,增設(shè)線驅(qū)動器或減少芯片

10、功耗,降低總線負載。(6)系統(tǒng)的擴展及各功能模塊的設(shè)計在滿足系統(tǒng)功能要求的基礎(chǔ)上,應(yīng)適當(dāng)留有余地,以備將來修改、擴展之需。(7)在考慮硬件總體結(jié)構(gòu)的同時要注意通用性的問題。根據(jù)以上原則,進行硬件設(shè)計。系統(tǒng)采用較為普及的 89S52 單片機作為系統(tǒng)的核心。它不但容易實現(xiàn)設(shè)計指標(biāo),而且還有較好的性價比。(1)程序存貯器89S52 內(nèi)部自帶 8K 的 ROM,512B 的 RAM,所以不需要對其擴展存儲器。(2)鍵盤接口矩陣式鍵盤適用于按鍵數(shù)量較多的場合,系統(tǒng)采用了行列式鍵盤設(shè)計即矩陣鍵盤,用 I/O 線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點上,2X4 的行列結(jié)構(gòu)可構(gòu)成 8 個鍵的鍵盤。因此,在按鍵數(shù)

11、量較多時,可以節(jié)省 I/O 線。按鍵的識別方法有兩種,一種為掃描法,另一種為線反轉(zhuǎn)法。此設(shè)計采用了行列式及與之相適應(yīng)的行列掃描法。(3)數(shù)碼管驅(qū)動本設(shè)計實現(xiàn)了 89S52 的 I/O對 2X4 鍵盤和 8 位數(shù)碼管顯示的控制。為增加對數(shù)碼管顯示器的驅(qū)動能力及穩(wěn)定性,在它與 89S52 之間設(shè)置了提高驅(qū)動能力的 74LS373。(4)D/A 轉(zhuǎn)換本設(shè)計 D/A 轉(zhuǎn)換部分采用 DAC0808 芯片,由于它不帶鎖存器,故在使用時必須加 74LS373進行數(shù)據(jù)鎖存。(5)信號變換部分對信號的變換部分采用四運放集成芯片 LM324,它采用 14 腳雙列直插塑料封裝,它的內(nèi)部包含四組形式完全相同的運算放大

12、器(6)可靠性方面在使用應(yīng)用系統(tǒng)時,可能會受到多種干擾的侵襲,直接影響到系統(tǒng)的可靠性,因此,本系統(tǒng)適當(dāng)加入去耦電容,以減少干擾,確保精度。3.2系統(tǒng)模塊設(shè)計3.2.1 電源設(shè)計穩(wěn)壓電源是單片機控制系統(tǒng)的重要組成部分,它不僅為測控系統(tǒng)提供多路電源電壓,還直接影響到系統(tǒng)的技術(shù)指標(biāo)和抗干擾性能。近年來,傳統(tǒng)的線性穩(wěn)壓電源正逐步被高有效率的開關(guān)電源所取代,特別是單片開關(guān)電源的迅速推廣應(yīng)用,為設(shè)計新型、高效、節(jié)能電源創(chuàng)造了良好的條件130本機使用三種共地電源:+12V,12V,+5V,硬件設(shè)計中采用自帶電源方式。因為本機有 89S52 單片機,還有許多邏輯芯片,這些芯片的工作電源電壓為+5V,所以電源中

13、必須有+5V 電源。另外由于 D/A 轉(zhuǎn)換器件 Vee 端需接-12V 電壓,LM324 也需要提供土 12V 電源,所以需要設(shè)計一個能產(chǎn)生土 12V,+5V 的電源。經(jīng)過綜合分析, 變壓器選用 16W/32V 變壓器 (帶三抽頭如圖 3.1 所示) , 整流用一片 RBV-406集成電橋(如圖 3.2 所示)。穩(wěn)壓部分選用三端集成 7805,7812,7912 穩(wěn)壓器件(如圖 3.3 所示)特別說明,在使用穩(wěn)壓器件時,一定要注意 79XX 系列是左邊接地,右邊輸出,中間輸入;而 78XX 系列是左邊輸入,右邊輸出,中間接地。電源部分原理圖如圖 3,4 所示圖3.4電源原理圖對于圖 3.4 有

14、幾點說明:1.7805 穩(wěn)壓塊與 7812 穩(wěn)壓塊相串聯(lián),是為了使 7805 上的功耗降低,以免功耗太大而使用散熱片。穩(wěn)壓塊的功耗按下式計算:W=IXAU=IX(UI-UO)(31)其中:I 是穩(wěn)壓片的通過電流,UI 是穩(wěn)壓片的輸入電壓,UO 是穩(wěn)壓片的輸出電壓,AU 是穩(wěn)壓片上的電壓降。由上式可以看出:穩(wěn)壓塊上的壓降 AU 越大,其功耗越大。如果 7805 直接接到整流橋輸出端,則 U1 必會大于 12V,功耗必然加大。2 .AT89S52 的功耗100mA 顯示器采用動態(tài)顯示,每一瞬間只有一個數(shù)碼管發(fā)亮,而數(shù)碼管電流 0100mA。其它芯片總電流5070mA。所以+5V 電流的總電流可 0

15、300mA,查三端集成穩(wěn)壓器說明書,可以選用 7805,其電流Im=0.5A,這樣電流可以留有一定裕量。3.大濾波電容的選擇由于變壓器副線圈的額定電壓選用 12V,那么瞬時電壓峰值為 Um=12X1.414 弋 17V 因為大電容耐壓值越高,價格越高,所以選用 1000F/25V 電容。4.整流橋的選擇雖然要求的電源電流1A,但變壓器副線圈電壓為脈動電壓,電流為脈動電流,其電流瞬時值遠遠超過 1A,尤其在電源剛接通時,為留有一定裕量,而且不損壞整流橋,選用 2A 的。由于整流橋的每個二極管都是半相導(dǎo)通,半相不導(dǎo)通,所以其反向耐壓值要求很高,為留有一定裕量,選用 50V。最后選定整流橋為 2A/

16、50V5.變壓器的選擇要求電源電壓為土12V,而穩(wěn)壓塊壓降W2V,所以變壓器副線圈電壓學(xué)土16V,因此選用32V的電源。又因電源電壓 0500mA,所以選用 16W/32V 變壓器(帶三抽頭)。6.電路中 0.1F電容的作用電路中在集成三端穩(wěn)壓器輸入端、輸出端與公共端之間,分別接有 0.1F電容,這是為了更好地改變集成三端穩(wěn)壓片的瞬態(tài)響應(yīng),防止穩(wěn)壓塊自激振蕩,保證正常工作。3.2.2 顯示器接口設(shè)計一、LED 顯示器的結(jié)構(gòu)與原理LED 發(fā)光器件一般常用的有兩類:數(shù)碼管和點陣。常用的數(shù)碼管一般為 8 字型數(shù)碼管,分為A、B、C、D、E、F、G、DP 八段,其中 DP 為小數(shù)點。數(shù)碼管常用的有 1

17、0 根管腳,每一段有一個管腳, 另外兩根管腳為一個數(shù)碼管的公共端。 從尺寸上分, LED 數(shù)碼管的種類很多, 常用的有 0.3、0.5、0.8、1.0、1.2、1.5、1.8、2.3、3.0、4.0、5.0 等。一般小于 1.0 的為單管芯,1.21.5為雙管芯,1.8 以上的為 3 個以上管芯,因而它們的供電電壓要求不同,一般每個管芯的壓降為2.1V 左右。通常,0.8 以下采用 5V 供電,1.02.3 采用 12V 供電,3.0 以上的選擇更高電壓供電。從電路上分,數(shù)碼管又可分為共陰極和共陽極兩種。結(jié)構(gòu)分別如圖 3.5,3.6 所示icomab109876bc*edcomcdp表3.1字

18、段碼表顯示字符共陰極字段碼共陽極字段碼顯示字符共陰極字段碼共陽極字段碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8.FFH00HA77H88H火”00FFHB7CH83H、LED 數(shù)碼管顯示器的譯碼方式1.硬件譯碼方式abcdefs*comcomcomcom圖3.5共陰極圖3.6共陽極圖3.7管腳圖其中:圖 3.7 為管腳圖,ag 管腳輸入不同的字段碼,可顯示不同的數(shù)子或子

19、符(其子形碼見表 3-1)o可見共陰極和共陽極的字段碼互為反碼圖3.8硬件譯碼硬件譯碼方式是指利用專門的硬件電路來實現(xiàn)顯示字符到字段碼的轉(zhuǎn)換, 這樣的硬件電路有很多,比如 MOTOTOLA 公司生產(chǎn)的 MC14495 芯片就是其中的一種,MC14495 是共陰極一位十六進制數(shù)一字段碼轉(zhuǎn)換芯片,能夠輸出用四位二進制表示形式的一位十六進制數(shù)的七位字段碼(不帶小數(shù)點)。它的內(nèi)部結(jié)構(gòu)如圖 3-8 所示。2.軟件譯碼方式軟件譯碼方式就是通過編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼。三、LED 數(shù)碼管的顯示方式1 .LED 靜態(tài)顯示所謂靜態(tài)顯示方式, 就是當(dāng)顯示器顯示某一個字符時, 相應(yīng)的

20、發(fā)光二極管包定地導(dǎo)通或截止。靜態(tài)顯示時,較小的電流能得到較高的亮度。這是由于顯示器的各位相互獨立,而且各位的顯示字符一經(jīng)確定,相應(yīng)鎖存器的輸出將維持不變,直到顯示另一個字符為止(如圖 3.9 所示)。當(dāng)顯示器位數(shù)很少(僅一、二位)時,采用靜態(tài)顯示方式是合適的。當(dāng)位數(shù)較多時,用靜態(tài)顯示所需的 I/O太多,占用太多的硬件資源。故在位數(shù)較多時往往采用動態(tài)顯示方式。碼字碼譯和段ROMROM啊LED 靜態(tài)顯示時,其公共端直接接地(共陰極)或接電源(共陽極),各段2 .LED 動態(tài)顯示方式LED 動態(tài)顯示是將所有的數(shù)碼管的段選線并接在一起, 用一個 I/O控制,公共端不是直接接地(共陰極)或電源(共陽極)

21、,而是通過相應(yīng)的 I/O 口線控制。如圖 3.10 所示1/0J-J7?一JJjlJiBii-D3-D2-D1-D0J=LJ=L 3BLr-mjCf圖3.19系統(tǒng)鍵盤實現(xiàn)倆1 15 51 1in nJ J5 5i i3)VREFD0D1D2D3八4八3八2八1R2222vREF24Ri0(3例如第一行第一列有鍵按下,那么行掃描讀入的狀態(tài)為 00001110,列掃描讀入的狀態(tài)為 11100000,最后鍵值 Z=11101110=EEH,然后轉(zhuǎn)去執(zhí)行相應(yīng)的服務(wù)程序。3.2.5D/A 轉(zhuǎn)換設(shè)計一、D/A 轉(zhuǎn)換器的原理以倒 T 形電阻網(wǎng)絡(luò) D/A 轉(zhuǎn)換器為例,介紹 D/A 轉(zhuǎn)換器的原理。倒 T 形電阻

22、網(wǎng)絡(luò) D/A 轉(zhuǎn)換器結(jié)構(gòu)如圖 3.20 所示。圖3.20倒T形電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器圖中 S0S3 為模擬開關(guān),由輸入數(shù)碼 Di 控制,當(dāng) Di=1 時,Si 接運算放大器反相輸入端(虛地),電流 Ii 流入求和電路;當(dāng) Di=0 時,Si 將電阻 2R 接地。所以,無論Si 處于何種位置,與 Si 相連的 2R 電阻均接“地”(地或虛地)流過各開關(guān)支路(從右到左)的電流分別為 I/2、I/4、I/8、I/16總電流:$82RI4I4電it#it#關(guān)WillINC11u16GND215-VEE3141O413D7512D6611D5710D489.RfV3輸出電壓:VoiRf苧Di21(34)R

23、24i0Rn1將輸入數(shù)字量擴展到 n 位,則有:iRfL綽 Di2iR2ni0可簡寫為:VoKnBn(35)n1其中Kn手,Bn=Di2iR2ni0二、DAC0808 簡介DAC0808 是八位電流輸出型 D/A 轉(zhuǎn)換器件, 由 4 腳輸出轉(zhuǎn)換電流,其簡化電路圖及引腳結(jié)構(gòu)如圖 3.21 所示。 VREF 為參考電源, VEE 負電壓供電; D0 是高數(shù)據(jù)位(MSB),D7 才是地數(shù)據(jù)位(LSB)。DAC0808 的電源極性:VCC=+5V,VEE=-15V,VREF=+15V。D0D7 是數(shù)據(jù)輸入端,I。是電流輸出端,COMP 是接電容進行補償。在單片機應(yīng)用系統(tǒng)中通常需要的是電壓信號,電流信號

24、與電壓信號之間的轉(zhuǎn)換可由運算放大器實現(xiàn)。DAC0808 不帶鎖存器,所以在使用時必須加一個 74LS373 進行數(shù)據(jù)鎖存-v1ECOMPVCC-VREF+VREFD1-D2D0-D3圖3.21DAC0808簡化電路框圖和管腳排列、D/A 轉(zhuǎn)換系統(tǒng)的實現(xiàn)根據(jù)DAC0808 的特性設(shè)計出本系統(tǒng)的D/A轉(zhuǎn)換電路如圖3.22 所示+1卬AJU4A所以輸出電壓:旭4tiP PQ Q1 1A AI I1 1KUAMKUAMPLSPLSW W招POffiPOffiM MPLTM1PLTM15口ZA耳至DD1D D2 2由D D5 5B1 12 21 19 91 11 10 0E EL LE E_3_37At

25、昭h的MM M時-1-04一邳圖3.22系統(tǒng)D/A實現(xiàn)工作原理:本系統(tǒng)由VREF提供參考電壓,相應(yīng)參考電流為I=VREF/R1。電容 C4 提供補償,OUT輸出電流,經(jīng)過 LM324 運算放大器轉(zhuǎn)換成電壓。VREF12VRfR1=5KVoRfVREF28R17Dii02i127一 D2i。8i乙(36)VFF4MJI32V VH HE EF F- -1 1C CD DM MF F歸C5KR2R23.2.6 電壓變換、LM324 簡介LM324 是四運放集成電路,它采用 14 腳雙列直插塑料封裝。它的內(nèi)部包含四組形式完全相同的運算放大器,除電源共用外,四組運放相互獨立。每一組運算放大器可用圖3.

26、23 所示的符號來表示,它有 5 個引出腳,其中“+”、“-”為兩個信號輸入端,“V+”、名為正、負電源端,“Vo”為輸出端。兩個信號輸入端中,Vi-(-)為反相輸入端,表示運放輸出端 Vo 的信號與該輸入端的位相反;Vi+(+)為同相輸入端,表示運放輸出端 Vo 的信號與該輸入端的相位相同9。LM324 的引腳排列如圖 3.24 所示。圖 3.24LM324引腳結(jié)構(gòu)圖圖3.23LM324運算放大器由于 LM324 是四運放集成電路,具有電源電壓范圍寬,靜態(tài)功耗小,可單電源使用,價格低廉等優(yōu)點,因此被廣泛應(yīng)用在各種電路中。二、原理圖電壓變換原理圖如圖 3.25 所示VKTF4-12VVKTF4

27、-12V圖3.25系統(tǒng)信號變換4軟件設(shè)計4.1軟件功能設(shè)計4.1.1 系統(tǒng)初始化程序設(shè)計復(fù)位程序完成如下工作:1 .顯示 2 秒的 PPP.HELLO 初始界面;2 .初始頻率設(shè)置為 983HZ;3 .將頻率值轉(zhuǎn)換成定時器的初值;4 .置定時器 0 工作于方式 1,即 16 位定時器方式,送入定時器 0 定時初值,啟動定時器 0 工作;5 .顯示初始頻率和產(chǎn)生波形的類型;6 .轉(zhuǎn)鍵盤掃描程序。系統(tǒng)的初始化流程如圖 4.1 所示。金而值顯示字符延時Z Z秒顯示初始城率轉(zhuǎn)鞋盤掃描圖4.1初始化流程圖4.1.2 鍵盤掃描及處理程序設(shè)計這部分程序包括如下幾部分:1 .鍵盤掃描程序 judge;2 .先

28、對 P1 置數(shù),行掃描;3 .判斷是否有鍵按下;4 .延時 10ms,軟件去干擾;5 .確認(rèn)按鍵按下 X=P1,保存行掃描時有鍵按下時狀態(tài);6 .列掃描;7 .保存列掃描時有鍵按下時狀態(tài);8 .取出鍵值;9 .執(zhí)行相應(yīng)鍵值程序。下面分別介紹其功能及設(shè)計思想。1.鍵盤掃描程序單片機系統(tǒng)中,鍵盤掃描是 CPU 工作的一個主要內(nèi)容之一。CPU 忙于各項工作任務(wù)時,如何兼顧鍵盤掃描。既保證不失時機的響應(yīng)鍵盤操作,又不過多占用 CPU 時間。因此,要根據(jù)應(yīng)用系統(tǒng)中的 CPU 的忙、閑情況,選擇好鍵盤的工作方式。在單片機應(yīng)用系統(tǒng)設(shè)計中,為了節(jié)省硬件,通常采用非編碼鍵盤,在這種鍵盤結(jié)構(gòu)中,單片機對它的控制有

29、三種方式:程序控制掃描方式;定時掃描工作方式;中斷工作方式60(1)程序控制掃描方式這種方式就是只有當(dāng)單片機空閑時,才調(diào)用鍵盤掃描子程序,響應(yīng)鍵盤的輸入請求。(2)定時掃描方式這種方式就是每隔一定的時間對鍵盤掃描一次。通常是利用單片機內(nèi)部定時器產(chǎn)生 10ms 的定時中斷,CPU 響應(yīng)定時器溢出中斷請求,對鍵盤進行掃描,以響應(yīng)鍵盤輸入請求。(3)中斷工作方式為進一步提高 CPU 效率, 可以采用中斷掃描工作方式。 即在鍵盤有健按下時, 才執(zhí)行鍵盤掃描,執(zhí)行該鍵功能程序。本系統(tǒng)采用程序控制掃描工作方式。在該設(shè)計中的鍵盤的行列線連接于89S52 的 P1 口上。鍵盤掃描程序自復(fù)位后就開始工作,時刻監(jiān)

30、視鍵盤,有無鍵按下。在監(jiān)視鍵盤過程中,允許定時器 T0 中斷,即同時動態(tài)顯示數(shù)據(jù)和輸出波形。一旦有鍵按下,先延時 10ms,去除鍵的抖動,然后關(guān)中斷,不允許定時器T0 發(fā)生中斷。其框圖如圖 4.2 所示:圖4.2鍵盤掃描對應(yīng)鍵盤如圖 4.3 所示圖4.3鍵盤實現(xiàn)鍵盤采用矩陣式鍵盤(如圖 4-3 所示),由軟件產(chǎn)生相應(yīng)編碼,再根據(jù)相應(yīng)編碼調(diào)用相應(yīng)的子程序。編碼產(chǎn)生原理:P1 口低四位表示行,高四位表示列。鍵盤所在的行和所在的列用 0 表示,其它的行和列用 1 表示。如第一行第一列GW 編碼值為(11101110)2=0 xee,第二行第三列 ZKBJ 編碼值為(10111101)2=0 xbd。

31、表4.1鍵盤處理程序鍵值對應(yīng)處理程序0 x7dkey1 鍵選擇發(fā)波類型(1 為正弦波,2 為三角波,3 為方波)0 xeekey2 個位頻率調(diào)整(GW)0 xdeKey3 十位頻率調(diào)整(SW)0 xbeKey4 百位頻率調(diào)整(BW)0 x7eKey5 千位頻率調(diào)整(QW)0 xedKey6 萬位頻率調(diào)整(WW)n-BXXXXX *-00_iiinI1 13 3u u1 15 5Ifr-B*r-B*HWCDffCDffl l犯n naNTTaNTTFU/DFU/DP3P3J J6TI_6TI_P P3 3而F F喀1 10 xddKey7 占空比增大調(diào)整(ZKBZ)0 xbdKey8 占空比減小

32、調(diào)整(ZKBJ)鍵盤掃描源程序如下:voidjudge(void)(unsignedcharX,Y,Z;P1=0 xff;P1=0 x0f;if(P1!=0 x0f)(delay10ms();if(P1!=0 x0f)(X=P1;P1=0 xf0;Y=P1;Z=X|Y;switch(Z)(/先對 P1 置數(shù)行掃描/判斷是否有鍵按下/延時,軟件去干擾/確認(rèn)按鍵按下 X=P1;/保存行掃描時有鍵按下時狀態(tài)/列掃描/保存列掃描時有鍵按下時狀態(tài)/取出鍵值/判斷鍵值(那一個鍵按下)case0 x7d:key1();break;case0 xee:key2();break;/對鍵值賦值case0 xde:

33、key3();break;case0 xbe:key4();break;case0 x7e:key5();break;case0 xed:key6();break;case0 xdd:key7();break;case0 xbd:key8();break;)4.1.3 中斷服務(wù)程序設(shè)計采用定時器 T0 定時中斷,根據(jù)不同的 choice 值,產(chǎn)生不同的波形。其中方波的占空比可以通過 K 變量來控制。定時器的初值可以這樣計算:f=100000*ww+1000*qw+100*bw+10*sw+gw;t=1000000/f;th=-t/256;/定時器高八位值tl=-t%256;/定時器低八位值vo

34、idtime0_int(void)interrupt1(TR0=0;if(wave_choice=1)elseif(wave_choice=2)/中斷服務(wù)程序P0=to_sinb;b+;)P0=0 x00;(if(c=128)(P0=c;)else(P0=255-c;)c+;)elseif(wave_choice=3)(k=zk*256/100;d+;if(d=k)(elseP0=0 xff;)elseif(wave_choice=4)(if(e=255)(P0=255-e;)else(P0=0;)e+;)TH0=th;TL0=tl;TR0=1;4.1.4 正弦波發(fā)生程序設(shè)計DAC0808 是

35、 8 位的 D/A 轉(zhuǎn)換器件,其工作電壓是 05V,當(dāng)輸入 00 數(shù)字量的時候,輸出為 0V電壓;當(dāng)輸入 80 數(shù)字量的時候,輸出為 2.5V 電壓;當(dāng)輸入 FF 數(shù)字量的時候,輸出為 5V 電壓。單片機的 I/O 輸出均為+5V 的 TTL 電平,因此產(chǎn)生的正弦波幅值為+2.5V。將一個周期內(nèi)的正弦波形等分為 256份,那么第 1 點的角度為 0,對應(yīng)的正弦值為 2.5sin0-第 2 點的角度為 3600/256,對應(yīng)的正弦值為2.5sin(360/256),如此計算下去, 將這些模擬量正弦值都轉(zhuǎn)換為單極性方式下的數(shù)字量,得到一張按照點號順序排列的正弦波波形數(shù)據(jù)表格11。而每次送到 74L

36、S373 的八位數(shù)字量是根據(jù)查正弦波形數(shù)據(jù)表格而得到。其實在計算正弦波形數(shù)據(jù)的時候,并不需要算出整個 02 九區(qū)間的每一個值,而只需計算出 01 九中的值就行,其他區(qū)間的值都可以通過對 01冗中的22值取不同的變換。比如n n九的值可以和 0 一工冗值一一對應(yīng),而九一 2 九的值可22以對 0冗區(qū)間的值取反得到。計算值可以用 C 語言編程得到。幅度公式為 Y=2.51+sin(90N)(N=0,1,264)64相應(yīng)的 Y 值數(shù)字化后的遞增量 6=-0.0196255Y2Y1那么每一個點相對于起一個點的遞增率為 A=(Y2 當(dāng)前的點,Y1為前一個點)所以每一個點的數(shù)字量與遞增率 A 成一一對應(yīng)關(guān)

37、系。數(shù)字量化 C 程序:#includemain()(intn,i=0,j,k;floaty=0,a=3.1415926,b=0,c=2.5000,d=0;for(n=0;n=64;n+)(y=2.5*sin(a*n/128)+2.5;b=y;/b,y 為當(dāng)前幅度值d=b-c;/d 為遞增率j=d/0.0196;/j 為數(shù)字遞增率,0.0196 為 6k=128+j;/k 為數(shù)字量printf(d,%f,%f,%d,%dn”,i,y,d,j,k);i+;4.1.5三角波發(fā)生程序設(shè)計由于三角波的函數(shù)值比較容易計算,所以不必要像正弦波那樣還需用表格可直接通過如下程序段實現(xiàn)。elseif(wave_

38、choice=2)if(c=128)(/三角波P0=c;)else(P0=255-c;)c+;)4.1.6方波發(fā)生程序設(shè)計方波發(fā)生程序運用延時的方法實現(xiàn),只用一個主程序即可,因為產(chǎn)生一個方波只需要高低兩個數(shù),所以程序比較簡單。要給一個頻率,再計算所需的延時即可。實現(xiàn)方波的程序如下:elseif(wave_choice=3)方波(k=zk*256/100;d+;if(d=k)(P0=0 x00;elseP0=0 xff;)4.1.7鋸齒波發(fā)生程序設(shè)計鋸齒波中的斜線用一個個小臺階來逼近,在一個周期內(nèi)從最小值開始逐步遞增,當(dāng)達到最大值后又回到最小值,如此循環(huán),當(dāng)臺階間隔很小時,波形基本上近似于直線。

39、適當(dāng)選擇循環(huán)的時間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類似,只是高低兩個延時的常數(shù)不同,所以用延時法,來產(chǎn)生鋸齒波。elseif(wave_choice=4)/鋸齒波(if(e=255)(P0=255-e;)else(P0=0;)e+;4.2PROTEUS軟件仿真4.2.1PROTEUS 軟件仿真過程第一步,打開 PROTEUS 軟件,選擇所需器件。第二步,將所有器件排列好。器件排列見圖 4.4第三步,連接導(dǎo)線。如圖 4.5o第四步,打開 KEIL 軟件,調(diào)出程序編譯,生成 HEX 文件。調(diào)試窗口見圖 4.6第五步,調(diào)試仿真圖4.4器件排列窗口圖4.5導(dǎo)線連接圖4.7初始化仿真窗口

40、初始界面顯示 PPP.HELLO。仿真情況如圖 4.7 以下為四種波形的仿真結(jié)果示例。正弦波仿真:頻率 2383HZ。仿真結(jié)果如圖 4.8 所示MJwMm-smp.wMm-smp., ,EfcEfc-i-i 圖4.8正弦波仿真輸出三角波仿真:頻率 2984HZ。結(jié)果如圖 4.9?UtTX?U.E-3n?4VQVrrg3QiFEECWTrticlrDFTDFTHFHFSMSMIIIIK#6wraTp1.443fvMJilpK#6wraTp1.443fvMJilp口鼻El,00=:*口二、r-FZIMM?i%EHr-Er-FZIMM?i%EHr-ErCERENFE-CIrCERENFE-CI:BL

41、UEBLUErXn-tHUErXn-tHUEn nEMrEccdue(iHEMrEccdue(iH;Vi4trun?UMSVi4trun?UMS?他做3U*3U*甲aurwiXau500Qo5 .本機輸出電流:I0+&40mA,I0-020mA。5.4系統(tǒng)測試數(shù)據(jù)1 .穩(wěn)壓部分輸出電壓測試通過對實際電路進行測試,得出各器件輸出電壓數(shù)據(jù)如表 5.1 所示表5.1輸出電壓測試數(shù)據(jù)表穩(wěn)壓器件輸入電壓輸出電壓理想輸出電壓誤差78120V0007805+11.5V4.854%7812+13.4V11.5124.2%7912-13.3V-13.3-1210.8%從測試的數(shù)據(jù)上可以看出:采用 781

42、2,7805 穩(wěn)壓輸出電壓+12V,+5V,基本符合要求。誤差都控制在 5%以內(nèi)。而 7912 穩(wěn)壓負電壓,根本沒有起到穩(wěn)壓的作用,而且誤差也很大。我認(rèn)為是損壞了,因為在一次測試中不小心將 7912 電源的極性接反了,直接燒壞了。所以,在測試的時候一定要小心電源的極性和用電安全。2 .正弦波頻率測試在實際測試中,主要對正弦波的頻率進行了測試,測試數(shù)據(jù)如表 5-2 所示。表5.2正弦波頻率測試數(shù)據(jù)表顯示頻率(HZ)測試頻率(HZ)誤差()5553.72.4100103.53.38200195.22.465004902.041000970.33.0615001548.63.1420002041.1

43、2.0140003945.31.4980007842.42.01從誤差上分析,基本滿足設(shè)計要求。但是在顯示較高頻率時,數(shù)碼管的閃爍頻率太快了,根本看不清楚數(shù)字。這一點有待進一步改進。三角波,方波和鋸齒波的頻率測試不夠理想,所以不在這里列出。但是從PROTEUS 軟件仿真的結(jié)果看,三種波形都可以實現(xiàn)6結(jié)論與展望6.1結(jié)論單片機控制多功能信號發(fā)生器可以用于“單片機技術(shù)”的教學(xué)實踐,也可以用于實驗信號的產(chǎn)生。具比較典型的接口電路設(shè)計也為實際應(yīng)用提供參考。該儀器的研制既解決了實驗教學(xué)的需求,也節(jié)約了實驗設(shè)備投資,降低了實驗成本。經(jīng)過進一步完善后,可由學(xué)生利用課程設(shè)計的機會,親自動手制作,這樣還可以進一

44、步降低成本,同時極大地提高了學(xué)生的動手能力,是一件一舉多得的好事。隨著科學(xué)技術(shù)的不斷發(fā)展,以及實驗教學(xué)要求的不斷更新,要求我們開發(fā)的應(yīng)用系統(tǒng)具有良好的可擴充性和更新能力,作為一名技術(shù)人員,應(yīng)時刻跟蹤科技發(fā)展的步伐,不斷豐富專業(yè)知識,不斷完善我們開發(fā)的系統(tǒng)。本設(shè)計是是自己對“單片機技術(shù)”課程的理解和實際技術(shù)的總結(jié)。論文中可能會存在一些不足之處,敬請評審專家和各位老師批評指正。6.2展望未來通過本次畢業(yè)設(shè)計,我感到自己應(yīng)用基礎(chǔ)知識及專業(yè)知識解決問題的能力有了很大的提高。并且這次畢業(yè)設(shè)計的選題,是一個實際應(yīng)用工程。是我學(xué)完單片機課程后,自己動手做的一個大系統(tǒng)。盡管在設(shè)計過程中碰到了不少“難題”,通過

45、自己翻閱大量資料,解決了一個個難題。通過這次畢業(yè)設(shè)計,我深深體會到:世上無難題,只怕有心人。碰到難題不要懼怕,只要你肯鉆研,問題總會有解決的辦法。我想,通過這次畢業(yè)設(shè)計,到了工作單位后,我將能夠更快的適應(yīng)工作崗位和工作要求,我對自己未來充滿信心。總之,這次畢業(yè)設(shè)計對我而言是受益匪淺的參考文獻1李杏春主編.單片機原理及使用接口技術(shù).北京:北京航空航天大學(xué)出版社,19962李華主編.MCS-51系列單片機實用接口技術(shù).北京:北京航空航天出版社,19933于楓,王鼎編著.微型計算機原理及應(yīng)用.吉林:吉林科學(xué)技術(shù)出版社,19965何利民編著.單片機應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,19956

46、呂能元,孫育才,楊峰編著.MCS-51單片微型計算機.北京:科學(xué)出版社,19937趙宏偉,朱洪文,臧雪柏編著.計算機接口技術(shù).吉林:吉林大學(xué)出版社,19988侯伯文編著.單片微型計算機原理及應(yīng)用.北京:機械工業(yè)出版社,19879周明德編著.微型計算機原理及應(yīng)用.北京:清華大學(xué)出版社,199810芯片速查手冊.中國自動化技術(shù)公司出版,199511張洪潤,易濤編著.單片機應(yīng)用技術(shù)教程(第二版).北京:清華大學(xué)出版社2003,17217912求是科技編著.單片機典型模塊設(shè)計實例導(dǎo)航.北京:人民郵電出版社,200413孫進生編著.電子產(chǎn)品設(shè)計實例教程.北京:冶金工業(yè)出版社,200414段九州編著.放大

47、電路實用設(shè)計手冊.沈陽:遼寧科學(xué)技術(shù)出版社,200215潘新民,王燕芳編著.微型計算機控制技術(shù).北京:電子工業(yè)出版社,200416全國大學(xué)生電子設(shè)at競賽組委會編.第五屆全國大學(xué)生電子設(shè)計競賽獲獎作品選編.北京:北京理工大學(xué)出版社,200317楊寧編著.單片機與控制技術(shù).北京:北京航空航天大學(xué)出版社,200518ATMEL.MicrocontrollerDataB.ru/LITERATU/i386MDCS51FamilyofMicrocontrollersArchitecturalOverview20OppenheimAV,Wi

48、llskyAS,YoungIT.SignalsandSystems.EnglewoodCliffs,NJ:Prentice-Hall,198321FuKS.ControlSystem.IEEETrans,Vol.AC-16,No.1,1971附錄一源程序/*/*2009 年 5 月于湖南工學(xué)院*/*CPU 用 89S52 晶振選用 11.0592MHZ*/*能產(chǎn)生低頻 1hz-10khz 正弦波,三角波,方波,鋸齒波*/*頻率可調(diào),方波占空比可調(diào),通過 P2 輸出用 8 位數(shù)碼管顯示*/*P1 做矩陣鍵盤,P2 接 8 個數(shù)碼管動態(tài)掃描,P3 做位選信號*/*P0 經(jīng)過 373 鎖存后送到 D

49、AC0808 進行 D/A 轉(zhuǎn)換*/*#include#defineucharunsignedcharucharcodenumber_tab10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/0-9 數(shù)字共陰極ucharcodeinit_tab8=0X73,0 x73,0 x73,0 x76,0 x79,0 x38,0 x38,0 x3f;/PPP.HELLO 共陰極ucharcodeto_sin256=*/*低頻信號發(fā)生器設(shè)計*/*創(chuàng)作者:李炳陽*/*/0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1,0 xe3,0 x

溫馨提示

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

最新文檔

評論

0/150

提交評論