簡易信號發(fā)生器論文_第1頁
簡易信號發(fā)生器論文_第2頁
簡易信號發(fā)生器論文_第3頁
簡易信號發(fā)生器論文_第4頁
簡易信號發(fā)生器論文_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要 本系統(tǒng)是基于 STC12C5A60S2單片機(jī)的數(shù)字式低頻信號發(fā)生器。采用 STC12C5A60S2 單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(DAC0832)、運(yùn)放電路(OPA2227)、電壓幅度控制電路(PGA2311)、按鍵和Nokia5110液晶顯示屏模塊等。通過按鍵控制可產(chǎn)生方波、鋸齒波、三角波、正弦波、梯形波等,并能通過鍵盤的改變輸出波的波形、頻率以及幅度,達(dá)到人機(jī)交互的目的,同時用液晶顯示屏顯示對應(yīng)波形的名稱、頻率和幅度。其設(shè)計(jì)簡單、性能優(yōu)良,可用于多種需要低頻信號源的場所,具有一定的實(shí)用性。 關(guān)鍵詞: 單片機(jī),信號發(fā)生器,D/A 轉(zhuǎn)換,STC12C5A60S2 DA

2、C0832 PGA2311Abstract The system is based on single-chip digital STC12C5A60S2 low frequency Signalgenerator. Using STC12C5A60S2 microcontroller as a control core, peripheralconversion circuit (DAC0832), op-amp circuits (OPA2227), the voltage amplitude control circuit (PGA2311), buttons and Nokia5110

3、 LCD module. Button control can generate a square wave, sawtooth, triangle, sine wave, trapezoidal wave, and the wave through the keyboard to change the output waveform, frequency and amplitude, the purpose of human-computer interaction, while the LCD display with corresponding waveform the name, fr

4、equency and amplitude. The design is simple, good performance, can be used for a variety of needs to place low-frequency signal source, has a certain practicality.Keywords: microcontroller, signal generator, D / A conversion, STC12C5A60S2、 DAC0832、 PGA2311目 錄引言11 緒論21.1 信號發(fā)生器現(xiàn)狀21.2單片機(jī)在低頻信號發(fā)生器中的應(yīng)用22

5、總體方案設(shè)計(jì)33 方案論證43.1波形產(chǎn)生電路43.2信號衰減電路43.3可控放大電路43.4濾波電路43.4 控制以及顯示模塊53.4 電源供電以及其它54 硬件電路設(shè)計(jì)64.1 信號產(chǎn)生及處理電路64.1.1波形產(chǎn)生電路64.1.2 信號衰減電路64.1.3 程控放大電路74.1.4濾波電路74.1.5電源供電以及其它84.2單片機(jī)控制部分94.2.1 時鐘電路94.2.2 復(fù)位電路94.2.3顯示及按鍵控制電路105、軟件原理115.1程序流程框圖115.1.1主程序流程設(shè)計(jì)115.1.2外部中斷程序流程設(shè)計(jì)125.2信號發(fā)生器程序126 測試方法及測試結(jié)果 206.1 測試使用儀器及型

6、號206.2 測試方法及測試數(shù)據(jù)206.2.1 輸出波形測試206.2.2輸出波形參數(shù)設(shè)置213數(shù)據(jù)誤差分析227 總結(jié)分析及結(jié)論238 謝辭249 參考文獻(xiàn)2510 附錄26引        言當(dāng)今是科學(xué)技術(shù)及儀器設(shè)備高度智能化飛速發(fā)展的信息社會,電子技術(shù)的進(jìn)步給人們帶來了根本性的轉(zhuǎn)變?,F(xiàn)代電子領(lǐng)域中,單片機(jī)的應(yīng)用正在不斷的走向深入,這必將導(dǎo)致傳統(tǒng)控制與檢測技術(shù)的日益革新。單片機(jī)構(gòu)成的儀器具有高可靠性、高性能價(jià)格比等特點(diǎn),在辦公、家電、高智能自動化系統(tǒng)等諸多領(lǐng)域應(yīng)用極為廣泛,從家庭中電冰箱、電視機(jī)到音響汽車,處處可見其應(yīng)用。因此,單片機(jī)技術(shù)的發(fā)展和應(yīng)用

7、水平已成為衡量一個國家工業(yè)發(fā)展水平的重要標(biāo)準(zhǔn)。 信號發(fā)生器是一種常用的信號源,廣泛應(yīng)用于科學(xué)研究、生產(chǎn)實(shí)踐和教學(xué)實(shí)驗(yàn)等領(lǐng)域。特別是在通信系統(tǒng)的科研實(shí)驗(yàn)中,常常需要用到多種不同頻率和相位的信號,如正弦波、三角波、方波和鋸齒波等,因此多功能信號發(fā)生器應(yīng)用十分廣泛。在數(shù)字化時代的今天,經(jīng)典的由模擬電路組成的信號發(fā)生器已經(jīng)漸漸遠(yuǎn)離了人們,取而代之的是電路簡潔、功能多樣、功耗低的數(shù)字電路。在以后的時間里,將會有越來越多的數(shù)字化的信號發(fā)生器運(yùn)用在各種科學(xué)技術(shù)領(lǐng)域和工程實(shí)踐中,給人們的日常生活帶來更多的便利。 第 1 頁1、 緒論 1.1 信號發(fā)生器現(xiàn)狀 信號發(fā)生器又稱函數(shù)發(fā)生器,指用于產(chǎn)生被測電路所需特定

8、參數(shù)的電測試信號的儀器。作為當(dāng)前科研、教學(xué)、制造業(yè)中一種最常見的通用儀器,市場上常見的信號發(fā)生器波形種類有限,輸出波形一般固定為正弦波、三角波、鋸齒波和方波。 傳統(tǒng)的信號發(fā)生器作為一種實(shí)驗(yàn)用信號源設(shè)備,可以完全利用 555 振蕩電路由硬件搭接而成,但該結(jié)構(gòu)產(chǎn)生信號存在波形失真、操控難、頻率范圍小、結(jié)構(gòu)復(fù)雜和體積大等缺陷。在生產(chǎn)實(shí)踐和科技研究過程中,如工業(yè)、農(nóng)業(yè)、通信、生物醫(yī)學(xué)等領(lǐng)域常常要用到低頻信號發(fā)生器。而由硬件電路構(gòu)成的低頻信號源因其所需的電阻和電容制作上較難,所以參數(shù)的精度難以保證;更因其存在體積大、損耗顯著、漏電等弱點(diǎn),在實(shí)際應(yīng)用過程中,電路復(fù)雜程度會大大增加,性能往往難以令人滿意。

9、1.2 單片機(jī)在低頻信號發(fā)生器中的應(yīng)用 單片機(jī)是將中央處理器、存儲器、定時器/計(jì)數(shù)器、輸入輸出接口等主要計(jì)算機(jī)部件集成在一塊芯片上,它是在大規(guī)模集成電路技術(shù)的基礎(chǔ)上發(fā)展起來的。和通用微型機(jī)相比,單片機(jī)主要有以下幾個方面的優(yōu)勢:(1)使用方便、可靠性高。由于單片機(jī)內(nèi)部功能強(qiáng),系統(tǒng)擴(kuò)展方便,因此系統(tǒng)的硬件設(shè)計(jì)非常簡單。而且單片機(jī)采用三總線結(jié)構(gòu),減少了芯片之間的連線,抗干擾能力強(qiáng),可靠性高。 (2)體積小、低功耗 單片機(jī)把運(yùn)算器等基本功能部件集成在一塊芯片上,具有較高的集成度,因此單片機(jī)應(yīng)用系統(tǒng)結(jié)構(gòu)簡單、功能全、體積小,適合在強(qiáng)磁場環(huán)境下工作;而且所用電源單一,功耗低。 (3)功能強(qiáng)大、擴(kuò)展性強(qiáng) 為

10、了滿足工業(yè)控制要求,一般單片機(jī)的指令系統(tǒng)都有極豐富的轉(zhuǎn)移指令,可以直接對 I/O 口進(jìn)行各種操作,運(yùn)算速度快,實(shí)時控制功能強(qiáng)。并能方便地?cái)U(kuò)展外部的 ROM、RAM 及 I/O 接口,與許多通用的微機(jī)接口兼容,方便對應(yīng)用系統(tǒng)的設(shè)計(jì)。 (4)性價(jià)比較高、易于產(chǎn)品化單片機(jī)具有價(jià)格便宜、體積小、插接件少、調(diào)試安裝簡單等特點(diǎn),使單片機(jī)系統(tǒng)擁有很高的性能價(jià)格比。同時單片機(jī)開發(fā)工具都具有很強(qiáng)的軟硬件調(diào)試體系,大大縮短了產(chǎn)品的開發(fā)周期,系統(tǒng)易于產(chǎn)品化,大量用于攜帶式產(chǎn)品和家用消費(fèi)類產(chǎn)品。 低頻信號源采用單片機(jī)程序來設(shè)計(jì)產(chǎn)生,不僅可以有效的改善電路結(jié)構(gòu)復(fù)雜、頻率覆蓋系數(shù)難以達(dá)標(biāo)、信號頻率不夠穩(wěn)定等缺點(diǎn),而且由于

11、采用了軟硬件結(jié)合的方式,在硬件電路連接不變的情況下,通過改變程序代碼,就能實(shí)現(xiàn)頻率的高低轉(zhuǎn)換,頻率穩(wěn)定度高,抗干擾能力強(qiáng)。線路使用的都是常用元器件,構(gòu)成簡單,價(jià)格低廉。 2、總體方案設(shè)計(jì) 采用軟硬件結(jié)合法,軟硬件結(jié)合的波形發(fā)生器設(shè)計(jì)方法同時兼具軟硬件設(shè)計(jì)的優(yōu)勢:既具有純硬件設(shè)計(jì)的快速、高性能,同時又具有軟件控制的靈活性、智能性。如以單片機(jī)和單片集成函數(shù)發(fā)生器為核心(如圖2.2)。輔以鍵盤控制、液晶顯示等電路,設(shè)計(jì)出智能型函數(shù)波形發(fā)生器,采用軟硬件結(jié)合的方法可以實(shí)現(xiàn)功能較全、性能更優(yōu)的波形發(fā)生器。該系統(tǒng)通過按鍵控制單片機(jī)驅(qū)動D/A轉(zhuǎn)換器輸出相應(yīng)波形,同時通過按鍵控制程控放大器調(diào)節(jié)輸出信號幅值,并

12、經(jīng)過濾波放大后輸出信號,輸出信號的波形、頻率和強(qiáng)度也通過理查德顯示器顯示出來。系統(tǒng)總體框圖如圖2-1:單片機(jī)按鍵顯示屏D/A轉(zhuǎn)換器信號衰減程控放大濾波放大控制輸出系統(tǒng)電源控制增益 圖2-1、系統(tǒng)總體框圖3、方案論證根據(jù)設(shè)計(jì)要求,整個系統(tǒng)包括波形產(chǎn)生電路,信號衰減、程控放大、信號放大電路、參數(shù)顯示以及按鍵人機(jī)交互等幾個部分組成。3.1、波形產(chǎn)生電路方案一:使用NE555產(chǎn)生方波,同時通過其他相應(yīng)的模擬電路轉(zhuǎn)換得到需要的波形方案二:采用單片機(jī)和 DAC0832 數(shù)模轉(zhuǎn)換器生成波形,由于是軟件濾波,所以可以有效的濾除高次諧波分量,生成的波形不失真。方案二它的特點(diǎn)是在低頻范圍內(nèi)穩(wěn)定性好、性能高,操作靈

13、活、體積小、價(jià)格便宜。故選擇方案二。3.2、信號衰減電路由于PGA2311的供電電壓為正負(fù)5伏,為提高信號的可調(diào)節(jié)性能,故在PGA2311輸入前增加信號衰減電路方案一:使用無源衰減網(wǎng)絡(luò),通過電阻衰減后接入到PGA2311的輸入端 方案二:有源衰減網(wǎng)絡(luò),經(jīng)過電阻衰減后通過電壓跟隨器接入到PGA2311的輸入端 方案二電壓跟隨器的帶負(fù)載能力強(qiáng),可忽略PGA2311輸入電阻的影響,因此選用此方案。3.3、可控放大電路方案一:通過改變運(yùn)算放大器的反饋電阻來調(diào)節(jié)信號放大倍數(shù),以此來調(diào)節(jié)輸出信號幅度,實(shí)現(xiàn)輸出信號幅度可控的功能方案二:采用程控放大器芯片,通過單片機(jī)控制來實(shí)現(xiàn)信號輸出可控的功能。方案二可通過

14、按鍵來控制增益來實(shí)現(xiàn),增益控制方便,同時可以顯示輸出幅度。因此選用此方案。34、濾波電路方案一:用無源元件(R、L 和C)組成帶通濾波電路,此方法雖然成本低,但通帶內(nèi)的信號有能量損耗,負(fù)載效應(yīng)比較明顯,使用電感元件時容易引起電磁感應(yīng),系統(tǒng)不穩(wěn)定,效果較差。方案二:運(yùn)用RC及運(yùn)放搭建二階巴特沃斯帶通濾波器,集成度高,反應(yīng)動作迅速,多級級聯(lián)時相互影響較小,且幅頻響應(yīng)在通帶中具有最大平坦度。方案二的有源濾波器比無源濾波器設(shè)計(jì)更為靈活,且具有良好的隔離性能,系統(tǒng)穩(wěn)定,體積小,因此選用此方案。3.5、控制以及顯示模塊控制器CPU選用宏晶公司的stc12c5a60s2單片機(jī),顯示模塊選用nokia5110

15、來顯示輸出信號的波形、幅度以及頻率等3.6、電源供電以及其它由于單片機(jī)和DAC0832的工作電壓是5V,程控放大器的工作電壓也是V供電,故需要添加穩(wěn)壓電路;同時為達(dá)到輸出信號足夠大以及信號源的輸出能力在后級添加了一些輔助電路。4、硬件電路分析與設(shè)計(jì)硬件電路分為單片機(jī)控制以及顯示電路和信號產(chǎn)生電路兩個部分4.1、信號產(chǎn)生及處理電路4.1.1、波形產(chǎn)生電路這里采用STC12C5A60S2單片機(jī)控制 DAC0832 數(shù)模轉(zhuǎn)換器通過運(yùn)算放大器生成波形。DAC0832是8分辨率的電流型D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣

16、泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。DAC0832 與反相比例放大器相連,實(shí)現(xiàn)電流到電壓的轉(zhuǎn)換,電路如圖4-1所示:圖4-1 DAC0832波形產(chǎn)生路因此輸出模擬信號的極性與參考電壓的極性相反,數(shù)字量與模擬量的轉(zhuǎn)換關(guān)系為 : - 4-14.1.2、信號衰減電路由于程控放大芯片PGA2311的供電電壓為V,測試時發(fā)現(xiàn)最大不失真輸出信號為5.1Vpp,該芯片最大增益為31.5dB,即幅度放大39倍左右,又因?yàn)镈AC0832的波形產(chǎn)生電路輸出的波形幅度為3Vpp;故衰減倍數(shù)為: - 4-2實(shí)際電路如圖4-2如下:圖4-2、信號衰減電路4.1

17、.3、可控放大電路采用程控放大器芯片,通過單片機(jī)控制來實(shí)現(xiàn)信號輸出可控的功能。這里選用TI公司的PGA2311芯片,該芯片為+/-5V 立體聲音頻音量控制控制,其增益帶寬積為10MHZ,增益范圍為+31.5dB到 -95.5dB每0.5dB調(diào)節(jié)的芯片,符合該設(shè)計(jì)要求,其增益計(jì)算公式為: - 4-3其中N的值為0-255;PGA2311的應(yīng)用電路如圖4-3所示: 圖4-3、PGA2311應(yīng)用電路4.1.4、濾波電路運(yùn)用RC及運(yùn)放搭建二階巴特沃斯帶通濾波器,集成度高,反應(yīng)動作迅速,多級級聯(lián)時相互影響較小,且幅頻響應(yīng)在通帶中具有最大平坦度。2階有源低通濾波器電路,運(yùn)放選擇opa2227,它在增益為1

18、倍時帶寬為10MHz,能夠用于搭建此電路。由OPA2227構(gòu)成的2階有源低通濾波器電路如下所示: 圖4-4、2階有源低通濾電路其中計(jì)算公式如下: - 4-4 - 4-54.1.5、電源供電以及其它由于單片機(jī)和DAC0832的工作電壓是5V,程控放大器的工作電壓也是V供電,故需要添加穩(wěn)壓電路;同時為達(dá)到輸出信號足夠大以及信號源的輸出能力在后級添加了一些輔助電路。其中電源穩(wěn)壓芯片采用三端穩(wěn)壓管lm7805、lm7905,其中電路如下: 圖4-5、電源穩(wěn)壓電路 同時后級需要添加的放大電路如下: 圖4-6、信號放大電路4.2、單片機(jī)控制部分該部分包含單片機(jī)的最小系統(tǒng)、按鍵和lcd液晶顯示等模塊。單片機(jī)

19、最小系統(tǒng)包括:單片機(jī)、時鐘電路和復(fù)位電路等4.2.1時鐘電路 單片機(jī)的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩方式。時鐘電路如圖4-7所示圖4-7、 時鐘部分電路圖在引腳XTAL1和XTAL2外接晶體振蕩器或陶瓷諧振蕩器,構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自積振蕩,并產(chǎn)生振蕩時鐘脈沖。晶振通常選用6MHZ、12MHZ、或24MHZ。4.2.2單片機(jī)的復(fù)位狀態(tài)當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機(jī)器周期以上的高電平時,根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開關(guān)復(fù)位。上電復(fù)位要求接通電源后,

20、自動實(shí)現(xiàn)復(fù)位操作。上電或開關(guān)復(fù)位要求電源接通后,單片機(jī)自動復(fù)位,并且在單片機(jī)運(yùn)行期間,用開關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時,按下復(fù)位鍵K后松開,也能使RST為一段時間的高電平,從而實(shí)現(xiàn)上電或開關(guān)復(fù)位的操作。復(fù)位電路如圖4-8圖4-8、 復(fù)位電路單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機(jī)冷啟動后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個特殊功能寄存器復(fù)位后的狀態(tài)為確定值統(tǒng)復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,

21、使整個控制芯片回到默認(rèn)的硬件狀態(tài)下。51單片機(jī)的復(fù)位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。51單片機(jī)在系統(tǒng)復(fù)位時,將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,至于內(nèi)部RAM內(nèi)部的數(shù)據(jù)則不變。由時鐘電路、復(fù)位電路以及單片機(jī)還有電源構(gòu)成最小系統(tǒng),最小系統(tǒng)電路如圖4-9所示: 圖4-9單片機(jī)最小系統(tǒng)4.2.3顯示及按鍵控制電路 本系統(tǒng)根據(jù)鍵盤和LCD完成人機(jī)交互,通過按鍵控制波形的產(chǎn)生以及波

22、形、頻率和幅度的改變,通過LCD顯示實(shí)時的信號,波形幅度以及信號頻率。達(dá)到智能控制的效果,顯示模塊采用Nokia5110顯示屏。采用外部中斷實(shí)現(xiàn)切換功能,具體電路如圖4-10:圖4-10、顯示及按鍵控制電路5、軟件原理系統(tǒng)軟件由主程序和產(chǎn)生波形的子程序組成,軟件設(shè)計(jì)主要是產(chǎn)生各種波形的子程序的編程,通過編程可得到各種波形。周期的改變可采用插入延時子程序的方法來實(shí)現(xiàn)。主程序的產(chǎn)生波形,波形的切換,頻率和幅度的改變通過外部中斷控制.5.1、程序流程框圖5.1.1、主程序和幾種常用波形子程序的流程圖如圖5-1所示。讀取波形選擇開關(guān)狀態(tài)開 始控制DA輸出對應(yīng)波形值初 始 化波形判別延時圖5-1、主程序

23、流程圖利用8位D/A轉(zhuǎn)換器DAC0832,可以將8位數(shù)字量轉(zhuǎn)換成模擬量輸出。數(shù)字量輸入的范圍為0255,對應(yīng)的模擬量輸出的范圍在VREF-到VREF+之間。根據(jù)這一特性,可以利用單片機(jī)的并行口輸出的數(shù)字量,產(chǎn)生常用的波形。各種波形的數(shù)字量利用MATLAB將波形均勻取樣后,得到等間隔時刻的y方向上的二進(jìn)制數(shù)值,然后依次輸出后經(jīng)D/A轉(zhuǎn)換得到。5.1.2、外部中斷程序控制波形、幅值、頻率的改變。 通過增加相關(guān)標(biāo)志位來知道選擇改變的是幅值、頻率,波形通過單獨(dú)按鍵切換,中斷程序流程圖5-2如下: 進(jìn)入按鍵掃描循環(huán)N、N進(jìn)中斷 若有按下改變相關(guān)參數(shù)Lcd顯示關(guān)閉輸出判斷相關(guān)按鍵是否按下Y顯示屏顯示輸出參

24、數(shù)出中斷相關(guān)芯片初始化是否退出按鍵掃描圖5-2、中斷程序流程框圖5.2信號發(fā)生器程序 在確定編程思路以后將各部分的程序及各子程序編好,使用 Keil 進(jìn)行編譯,根據(jù)提示的錯誤對程序進(jìn)行修改。具體程序如下:#include <STC12C5A60S2.H>#include <intrins.h>#include "Font_code.c"#include "LCD5510_V2.H"#define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop

25、_();_nop_();_nop_();_nop_();sbit ZCEN=P00;sbit CS1=P01;sbit SDI=P02;sbit SCLK=P03;sbit MUTE=P05;sbit cs=P06;sbit wr=P07;sbit key1=P15;sbit key2=P16;sbit key3=P17;sbit key4=P31;sbit key5=P32;/外部中斷管腳uint t=0;uchar wave=0 ,select=0,voltage=212;uchar sig59="sine ","square ","tri

26、ang ","serrat ","trapez "/顯示輸出波形數(shù)組uchar sele59="out ","vpp ","freq "," . vpp"," hz "uchar code sine100= 128,133,138,142,147,152,156,161,165,169,173,177,181,184,187,190,193,195,197, 199,201,202,203,204,205,205,205,204,203,202,

27、201,199,197,195,193,190,187,184, 181,177,173,169,165,161,156,152,147,142,138,133,128,123,118,114,109,104,100, 95,91,87,83,79,75,72,69,66,63,61,59,57,55,54,53,52,51,51,51,52,53,54,55,57,59, 61,63,66,69,72,75,79,83,87,91,95,100,104,109,114,118,123 ;/正弦波對應(yīng)輸出數(shù)組100個點(diǎn)uchar code square20=51,51,51,51,51,51,

28、51,51,51,51, 205,205,205,205,205,205,205,205,205,205;/方波輸出數(shù)組uchar code triang50=51,57,64,70,77,83,90,96,102,109,115,122,128,134,141,147,154,160,167,173,179,186,192,199,205, 205,199,192,186,179,173,166,160,154,147,141,134,128,122,115,109,102,96,89,83,77,70,64,57,51;/三角波輸出數(shù)組uchar code serrat50=205,202

29、,199,196,192,189,186,183,180,177,174,170,167,164,161,158,155,152,148,145,142,139,136,133,130,126, 123,120,117,114,111,108,104,101,98,95,92,89,86,82,79,76,73,70,67,64,60,57,54,51;/鋸齒波輸出數(shù)組uchar code trapez50=205,196,187,178,169,160,151,142,133,123,114,105,96,87,78,69,60,51,51,51,51,51,51,51,51,51,51,

30、51,51,51,51,51,51,51,60,69,78,87,96,105,114,123,133,142,151,160,169,178,187,196;/梯形波對應(yīng)數(shù)組void delay() /延時函數(shù),根據(jù)t的值改變輸出波形周期 uint i;for(i=t;i>0;i-)_nop_(); void delayms(uchar n)/延時函數(shù),用來進(jìn)行相關(guān)延時 uchar i, j; for(;n>0;n-) for(j=0;j<110;j+) for(i=0;i<5;i+) delayNOP();void freq_value() /進(jìn)行頻率計(jì)算,并存入到

31、頻率顯示數(shù)組 uint fre;float f; switch(wave) case 0:f=10000.0/(8.00+1.62*t); break; case 1:f=10000.0/(1.240+0.3202*t); break; case 2:f=10000.0/(3.3+0.814*t); break; case 3:f=10000.0/(3.4002+0.8119*t); break; case 4:f=10000.0/(3.66+0.8118*t); break; fre=f; sele40=fre/1000+'0' sele41=fre%1000/100+

32、9;0' sele42=fre%1000%100/10+'0' sele43=fre%10+'0' sele44='h'void vpp_value() uchar i;uint z;float v=3080.0;if(voltage>212)for(i=0;i<voltage-212;i+) v=v*1.060;else for(i=0;i<212-voltage;i+)v=v*0.947;z=v; sele30=z/10000+'0' sele31=z%10000/1000+'0' s

33、ele33=z%1000/100+'0' sele34=z%100/10+'0'sele35=z%10/1+'0'sele36='v'void LCD5510show() /顯示輸出波形,和頻率值 LCD_prints(5, 2,sigwave); LCD_prints(5, 4,sele4);void keyscan() /按鍵掃描程序 if(key1=0) /控制是否輸出、修改參數(shù)選擇鍵delayms(200);if(key1=0)select+=1; if(select>2) select=0; LCD_prints(

34、7, 3,seleselect); switch(select) case 1:if(key2=0)&&(voltage<249) /輸出波形幅度值控制 delayms(200); if(key2=0)&&(voltage<249) /幅值加 voltage+; if(key3=0)&&(voltage>170) /幅值減 delayms(200); if(key3=0)&&(voltage>170)voltage-; vpp_value();LCD_prints(5, 5,sele3);/顯示幅度值bre

35、ak; case 2: if(key2=0)&&(t>0) /輸出信號周頻控制 delayms(200); if(key2=0)&&(t>0) /周期減 t=t-1; if(key3=0)&&(t<1900) /周期加 delayms(200); if(key3=0)&&(t<1900) t=t+1; freq_value(); LCD_prints(5, 4,sele4);/顯示頻率值break; if(key4=0) /切換輸出波形delayms(200);if(key4=0) wave+;if(wav

36、e>4)wave=0; freq_value(); LCD5510show();/顯示輸出幅度 void PGA2311()uchar x,vol,i; MUTE=1; ZCEN=1;CS1=0;for(x=0;x<2;x+) vol=voltage;for(i=0;i<8;i+) SDI=vol&0x80;SCLK=0;SCLK=1;vol<<=1; CS1=1;void LCD5510show_out() /顯示信號所有參數(shù) LCD5510_Init(); LCD_clr_scr(); LCD_show_normal; LCD_prints(0, 0,

37、"Num:1200220523"); LCD_prints(0, 1, "Signal generat"); LCD_prints(0, 2,"Wave:"); LCD_prints(5, 2,sigwave); LCD_prints(0, 3,"select:out");LCD_prints(0, 4,"Freq:"); LCD_prints(5, 4,sele4);LCD_prints(0, 5,"Volt:"); LCD_prints(5, 5,sele3);void

38、Init() /初始化程序 freq_value(); vpp_value(); LCD5510show_out(); /顯示信號所有參數(shù) cs=0; wr=0; PGA2311(); /pga2311使能EA=1; /開總中斷 EX0=1; /外部中斷0允許IT0=1; /脈沖觸發(fā)void main(void) uchar n=0; Init(); /初始化for(;) switch(wave) /輸出波形 case 0:if(n>99)n=0; P2=sinen+; delay(); break; case 1:if(n>19)n=0; P2=squaren+; delay()

39、; break; case 2:if(n>49)n=0; P2=triangn+; delay(); break; case 3:if(n>49)n=0; P2=serratn+; delay(); break; case 4:if(n>49)n=0; P2=trapezn+; delay(); break; void int0(void) interrupt 0 /外部中斷0函數(shù) select=1; delayms(100); LCD_prints(7, 3,seleselect); while(select>0) keyscan(); LCD5510show_out

40、() ; /顯示信號所有參數(shù) PGA2311(); /pga2311使能6、 測試方法及測試結(jié)果6.1、測試使用儀器及型號測試儀器序號名稱、型號、規(guī)格數(shù)量備注1Gdp-3303型直流穩(wěn)壓電源12RIGOL DM3058型萬用表13RIGOL D02S22型數(shù)字存儲示波器16.2、測試方法及測試數(shù)據(jù)6.2.1輸出波形測試在整個系統(tǒng)連通的情況下,給系統(tǒng)提供V工作電壓,用示波器觀察測量輸出信號波形,觀察到的波形如下圖:圖6-1、輸出正弦波波形 圖6-2、輸出方波波形圖6-3、輸出三角波波形 圖6-4、 輸出鋸齒波波形圖6-5、輸出梯形波波形6.2.1輸出波形參數(shù)設(shè)置在整個系統(tǒng)連通的情況下,給系統(tǒng)提供

41、V工作電壓,用示波器觀察測量輸出信號波形的頻率和幅度,這里以正弦波作為測量對象,其中四種波形只測量一組:其中測量頻率是3.08Vpp的情況下測量值,頻率對應(yīng)單位為HZ,幅度測量是在輸出頻率最大的情況下測量的,幅度對應(yīng)單位為Vpp表2 波形參數(shù)測試f0(理論值:hz)f0(測量值)V0(理論值)V0(測量值)5050.25634640100100.2789760199198.8833820220220.3880860281280.91.2201.180442442.52.1032.04621621.23.0803.12690689.64.9094.88890892.87.8427.6812501

42、25010.47010.2表3 其它波形輸出參數(shù)測量波形f0(理論值)f0(測量值)V0(理論值)V0(測量值)方波806481173.083.12三角波303030303.083.08鋸齒波294129423.083.04梯形波272927253.083.126.3、數(shù)據(jù)誤差分析 通過上述測試,可分析本系統(tǒng)引入誤差的因素主要有以下幾個方面:(1) 電路中所用到的電阻及電容值的實(shí)際值與標(biāo)稱值有所出入;(2) 電路設(shè)計(jì)過程中,數(shù)字電路部分對模擬電路產(chǎn)生了一定的影響;(3) 程序進(jìn)行數(shù)據(jù)處理有一定的計(jì)算誤差,校準(zhǔn)精度不夠;(4) 運(yùn)算放大器的非線性誤差;(5) 儀器測量時的誤差及人為因素讀數(shù)時造成的誤差。7、總結(jié)分析與結(jié)論經(jīng)過將近將近半個學(xué)期的單片機(jī)課

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論