




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、測控系統(tǒng)綜合訓(xùn)練報(bào) 告題 目: 程控放大器的設(shè)計(jì) 班 級: 姓 名: 學(xué) 號: 指導(dǎo)教師: 成 績: 目 錄摘 要2第1章 緒 論31.1 課題研究背景31.2 設(shè)計(jì)思路3第2章 系統(tǒng)總體設(shè)計(jì)42.1 方案選擇42.1.1程控部分方案選擇42.1.2顯示部分方案選擇52.2系統(tǒng)設(shè)計(jì)要求62.3 系統(tǒng)結(jié)構(gòu)與總體設(shè)計(jì)6第3章 系統(tǒng)硬件設(shè)計(jì)63.1單片機(jī)的應(yīng)用與選擇73.2芯片簡介73.2.1 stc89c51性能簡介73.2.2 stc89c51的主要特性73.2.3 stc89c51管腳功能73.3 控制顯示電路93.4按鍵輸入電路103.5 d/a轉(zhuǎn)換電路113.5.1 管腳功能113.5.2
2、 d/a轉(zhuǎn)換電路模塊133.6 轉(zhuǎn)換電路13第4章 系統(tǒng)軟件設(shè)計(jì)144.1軟件開發(fā)環(huán)境簡介154.2 c語言簡介154.3軟件總體設(shè)計(jì)154.4部分程序段代碼164.4.1 dac0832程序段164.4.2 lcd液晶顯示代碼17第5章 系統(tǒng)仿真調(diào)試195.1 系統(tǒng)仿真結(jié)果19第6章 整機(jī)實(shí)物調(diào)試與分析206.1 增益測試206.2 帶寬測試21 6.3 誤差分析24第7章 學(xué)習(xí)總結(jié)247.1 心得體會247.2 參考文獻(xiàn)24附錄:25附錄一 總程序代碼25附錄二 實(shí)物圖30附錄三 整機(jī)電路31摘 要在電子信息技術(shù)中,常常需要對輸入信號進(jìn)行放大。特別是對于一些輸入信號幅度變化較大的系統(tǒng),常常
3、需要實(shí)時(shí)改變其放大倍數(shù),以保證其輸出信號能滿足系統(tǒng)的要求。為了滿足該需求市面上出現(xiàn)了多種程控放大器。但該類放大器多采用價(jià)格昂貴的專用芯片實(shí)現(xiàn),從而性價(jià)比不高。針對以上問題,本文設(shè)計(jì)出一種可通過程序?qū)崿F(xiàn)改變信號增益的高增益高精度信號放大器。該放大器利用電流型dac內(nèi)部的倒梯形網(wǎng)絡(luò)配合運(yùn)算放大器組成反饋網(wǎng)絡(luò)實(shí)現(xiàn)程控放大的功能。本設(shè)計(jì)采用與之相關(guān)的stc89c51單片機(jī),tl084放大器,dac0832da轉(zhuǎn)換器的概況及應(yīng)用。本文介紹了目前程控放大器的各項(xiàng)技術(shù)特征,并且闡述了其工作過程和要求,硬件系統(tǒng)設(shè)計(jì)以及軟件系統(tǒng)設(shè)計(jì),簡單地對可編程控制器(plc)系統(tǒng)結(jié)構(gòu)、工作原理及控制原理進(jìn)行了分析,詳細(xì)闡述
4、了程控放大器的外觀設(shè)計(jì)、放大過程、硬件設(shè)計(jì)、軟件程序設(shè)計(jì)的實(shí)現(xiàn)過程。關(guān)鍵詞:stc89c51單片機(jī)、dac0832、運(yùn)算放大器第1章 緒 論1.1 課題研究背景程控放大器,又名可編程放大器,是一種放大倍數(shù)由程序控制的放大器。程控放大器可以通過軟件改變增益,利用模數(shù)轉(zhuǎn)換器可以自動(dòng)適應(yīng)大范圍變化的模擬信號電平,因此越來越多地應(yīng)用在自動(dòng)控制系統(tǒng)、智能化儀器儀表中。本課題適用于科學(xué)教研、生產(chǎn)實(shí)踐和教學(xué)實(shí)驗(yàn)等領(lǐng)域。它是用stc89c51單片機(jī)、dac0832、tl084等通過按鍵來實(shí)現(xiàn)增益的產(chǎn)生與切換。1.2 設(shè)計(jì)思路本系統(tǒng)的主控制模塊是由單片機(jī)最小系統(tǒng),四個(gè)獨(dú)立按鍵構(gòu)成的,每一個(gè)按鍵對應(yīng)一種調(diào)整模式,
5、分別為設(shè)置、增加、減小、移位。按下按鍵后,會執(zhí)行相應(yīng)的按鍵功能,松開后停止。程控放大器的輸出電壓u0與dac0832的rf端口的輸入信號的關(guān)系式:u0=-(vrefrf)/2nd(dn-12n-1+dn-22n-2+.+d020)。vref為系統(tǒng)的反饋信號輸入線電阻,d為dac0832的數(shù)字輸出量,就相當(dāng)于改變系統(tǒng)的增益。具體實(shí)現(xiàn)過程:系統(tǒng)上電后先對dac0832和lcd1602液晶初始化,再對按鍵進(jìn)行掃描。當(dāng)按鍵有按下時(shí),系統(tǒng)產(chǎn)生相應(yīng)的變化,從而改變系統(tǒng)的增益,使得輸出電壓發(fā)生相應(yīng)的變化。系統(tǒng)的放大倍數(shù)和輸出電壓通過液晶實(shí)時(shí)顯示。第2章 系統(tǒng)總體設(shè)計(jì)2.1 方案選擇2.1.1程控部分方案選擇
6、方案一: 采用壓控放大器(如ad603)實(shí)現(xiàn)高增益程控放大。將可程控的電壓源加到壓控放大器的控制端,通過調(diào)整電壓的幅值即可調(diào)整輸入信號的放大倍數(shù),實(shí)現(xiàn)程控放大。但這種方法所能實(shí)現(xiàn)的程控增益有限,很難滿足題目中的高增益要求,并且在高增益時(shí)所加電壓有小的紋波都會引起增益的較大變化,所以需要配合一個(gè)高精度的dac以及一個(gè)高精度的參考電源,所需成本較高。故不采用此方案。方案二:采用分級pga芯片配合分壓電阻網(wǎng)絡(luò)和多路開關(guān)實(shí)現(xiàn)程控放大器。此方案的多路開關(guān)實(shí)現(xiàn)程控放大的原理如圖2-1所示,可實(shí)現(xiàn)高增益程控放大。程控放大器利用選通開關(guān),控制放大器的反饋電阻阻值,實(shí)現(xiàn)改變放大倍數(shù)的原理工作。圖2-1 多路開關(guān)
7、實(shí)現(xiàn)程控放大的原理圖利用數(shù)模開關(guān)選通不同的開關(guān)通道,通過反饋電阻的搭配可以實(shí)現(xiàn)多種數(shù)值的放大,但要小步進(jìn)的增益控制,則需要很復(fù)雜的電阻網(wǎng)絡(luò)和通道選擇,控制難度大,成本也相應(yīng)的增加,只能進(jìn)行較為簡單的放大倍數(shù)控制。方案三:利用數(shù)字電位器作為放大器的反饋電阻,實(shí)現(xiàn)放大器的放大倍數(shù)改變。此方案和方案二原理基本相同,都是通過調(diào)節(jié)反饋電阻來實(shí)現(xiàn)對增益的控制,不同的是選用數(shù)字電位器來實(shí)現(xiàn),缺點(diǎn)是數(shù)字電位器為了擴(kuò)大使用電壓范圍,內(nèi)部附加了由振蕩器組成的充電泵,因而會產(chǎn)生有害的高頻噪聲。方案四:采用固定增益放大器與利用d/a芯片的倒梯形權(quán)電阻網(wǎng)絡(luò)的程控放大器級實(shí)現(xiàn)。可利用數(shù)模轉(zhuǎn)換器內(nèi)部所具有的電阻網(wǎng)絡(luò)作為反饋
8、電阻。電流輸出型d/a芯片的參考電壓引腳和電流輸出引腳之間等效于一個(gè)數(shù)控的電阻網(wǎng)絡(luò),該網(wǎng)絡(luò)較為精準(zhǔn)和易于控制。采用該種方案的程控放大器,增益的細(xì)分程度取決于d/a轉(zhuǎn)換器的精度(即位數(shù))。固定增益部分由兩級放大電路實(shí)現(xiàn),程控放大部分由dac和低噪聲運(yùn)放程控放大,在信號經(jīng)過選頻網(wǎng)絡(luò)之后經(jīng)過后期固定增益檔位的可控放大使輸出結(jié)果更為理想。該方案的優(yōu)點(diǎn)是靈活性相當(dāng)大,增益調(diào)節(jié)范圍很寬,容易實(shí)現(xiàn)高精度、高分辨率的高增益程控放大。故綜合考慮選擇方案四。2.1.2顯示部分方案選擇為便于系統(tǒng)簡化和滿足人機(jī)交互基本功能,顯示部分方案選擇比較:方案一:用led數(shù)碼管作顯示。采用七段碼顯示時(shí),數(shù)據(jù)管中的每一段相當(dāng)于一
9、個(gè)發(fā)光二極管。對于共陽極數(shù)碼管,內(nèi)部每個(gè)發(fā)光二極管的陽極被連在一起,成為該各段的公共選通線,發(fā)光二極管的陰極則成為段選線。對于共陰極數(shù)碼管,則正好相反,內(nèi)部發(fā)光二極管的陰極接在一起,陽極成為段選線。這兩種數(shù)碼管的驅(qū)動(dòng)方式是不同的。當(dāng)需要點(diǎn)亮共陽極數(shù)碼管的一段時(shí),公共段需接高電平,該段的段選選線接低電平。從而該段被點(diǎn)亮。當(dāng)需要點(diǎn)亮共陰極數(shù)碼管的一段時(shí),公共段需接低電平,該段的段選接高電平,該段被點(diǎn)亮。led數(shù)碼管顯示清晰明亮,適合用于白天等強(qiáng)光條件下顯示,能使用時(shí)間長久,價(jià)格低廉,但led數(shù)碼管顯示單一,且顯示電路處理麻煩,很占控制器的資源。方案二:用液晶lcd1602作顯示。lcd1602可以
10、顯示字母、數(shù)字符號、中文字型及圖形,具有繪圖及文字畫面混合顯示功能。提供三種控制接口,分別是8位微處理器接口,4位微處理器接口及串行接口。所有的功能,包含顯示ram,字型產(chǎn)生器,都包含在一個(gè)芯片里,只要一個(gè)最小的微處理系統(tǒng),就可以方便操作模塊。lcd1602液晶極其省電,且能顯示26個(gè)英文字母和一些簡單的圖標(biāo),在人機(jī)交互,可以有更多的選擇,靈活多變,且價(jià)格低廉,占用控制器的資源少。綜合以上幾種方案的優(yōu)缺點(diǎn),本設(shè)計(jì)采用方案二,用液晶lcd1602作顯示。2.2系統(tǒng)設(shè)計(jì)要求本系統(tǒng)設(shè)計(jì)的程控放大器可以實(shí)現(xiàn)如下功能:(1)輸出的值可通過lcd1602液晶顯示;(2)可以通過按鍵輸入改變放大器的放大倍數(shù)
11、。2.3 系統(tǒng)結(jié)構(gòu)與總體設(shè)計(jì) 從總體結(jié)構(gòu)上來看,整體結(jié)構(gòu)可以分為兩塊。增益程控模塊和信號輸出模塊,其中增益信號模塊主要利用按鍵來給芯片的信號輸入來調(diào)節(jié)增益,繼而用lcd顯示。而信號輸出模塊主要利用用dac0832芯片的r-2r電阻網(wǎng)絡(luò)來進(jìn)行對輸入信號進(jìn)行增益,在通過單極型差動(dòng)運(yùn)放和方向比例運(yùn)放來形成輸出信號。圖2-2 系統(tǒng)結(jié)構(gòu)框圖第3章 系統(tǒng)硬件設(shè)計(jì)3.1單片機(jī)的應(yīng)用與選擇8051是mcs-51系列單片機(jī)中的代表產(chǎn)品,它內(nèi)部集成了功能強(qiáng)大的中央處理器,包含了硬件乘除法器、21個(gè)專用控制寄存器、64kb的程序存儲器 、256b字節(jié)的數(shù)據(jù)存儲器、4組8位的并行口、兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器、一
12、個(gè)全雙工的串行口以及布爾處理器。由于mcs-51集成了幾乎完善的8位中央處理單元,處理功能強(qiáng),中央處理單元中集成了方便靈活的專用寄存器,硬件的加、減、乘、除法器和布爾處理機(jī)及各種邏輯運(yùn)算和轉(zhuǎn)移指令,這給應(yīng)用提供了極大的便利。3.2芯片簡介3.2.1 stc89c51性能簡介stc89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將
13、多功能8位cpu和閃爍存儲器組合在單個(gè)芯片中,atmel的stc89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。3.2.2 stc89c51的主要特性(1)4k字節(jié)可編程flash存儲器(壽命:1000寫/擦循環(huán));(2)全靜態(tài)工作:0hz-24khz;(3)三級程序存儲器保密鎖定;(4)128*8位內(nèi)部ram;(5)32條可編程i/o線;(6)兩個(gè)16位定時(shí)器/計(jì)數(shù)器;(7)5個(gè)中斷源;(8)可編程串行通道。3.2.3 stc89c51管腳功能mcs-51系列單片機(jī)芯片均為40個(gè)引腳,hmos工藝制造的芯片采用雙列直插(dip)方式封裝,其引腳示意及功能分類
14、如圖3-1:圖3-1 stc89c51引腳圖mcs-51系列單片機(jī)的40個(gè)引腳中有2個(gè)專用于主電源的引腳,2個(gè)外接晶體的引腳,4個(gè)控制或與其它電源復(fù)用的引腳,以及32條輸入輸出i/o引腳。vcc:供電電壓。 gnd:接地。(1)p0口(p0.0p0.7) 為雙向8位三態(tài)io口,當(dāng)作為i/o口使用時(shí),可直接連接外部i/o設(shè)備。它是地址總線低8位及數(shù)據(jù)總線分時(shí)復(fù)用口,可驅(qū)動(dòng)8個(gè)ttl負(fù)載。一般作為擴(kuò)展時(shí)地址/數(shù)據(jù)總線口使用。(2) p1口(p1.0p1.7) 為8位準(zhǔn)雙向io口,它的每一位都可以分別定義為輸入線或輸出線(作為輸入時(shí),口鎖存器必須置1),可驅(qū)動(dòng)4個(gè)ttl負(fù)載。(3) p2口(p2.0
15、p2.7) 為8位準(zhǔn)雙向io口,當(dāng)作為i/o口使用時(shí),可直接連接外部i/o設(shè)備。它是與地址總線高8位復(fù)用,可驅(qū)動(dòng)4個(gè)ttl負(fù)載。一般作為擴(kuò)展時(shí)地址總線的高8位使用。(4)p3口(p3.0p3.7) 為8位準(zhǔn)雙向io口,是雙功能復(fù)用口,可驅(qū)動(dòng)4個(gè)ttl負(fù)載。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:
16、每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。綜上所述,mcs-51系列單片機(jī)的引腳作用可歸納為以下兩點(diǎn):(1)單片機(jī)功能多,引腳數(shù)少,因而許多引腳都具有第2功能;(2)單片機(jī)對外呈3總線形式,由p2、p0口組成16位地址總線;由p0口分時(shí)復(fù)用作為數(shù)據(jù)總線;由ale、psen/、ea/與p3口中的int0/、int1/、
17、t0、t1、wr/、rd/共10個(gè)引腳組成控制總線。3.3 控制顯示電路本設(shè)計(jì)用stc89c51單片機(jī)最小控制系統(tǒng),顯示部分采用lcd1602液晶顯示器lcd引腳圖如圖3-2所示。圖3-2 lcd1602引腳圖此液晶屬于工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5x7或者5x11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義cgram,顯示效果也不
18、好)。 1602lcd是指顯示的內(nèi)容為16x2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。 本設(shè)計(jì)中液晶主要用于顯示放大器的倍數(shù)和方便設(shè)置放大器的倍數(shù)。由于液晶顯示以及程序設(shè)計(jì)靈活,可以省去數(shù)碼管顯示的繁瑣操作。同時(shí)液晶顯示更加人性化,且現(xiàn)在液晶成本低廉,在本設(shè)計(jì)中是一個(gè)很好的選擇。圖中單片機(jī)的p0口作為液晶顯示的數(shù)據(jù)端口。由于51單片機(jī)設(shè)計(jì)者為了滿足多電平的兼容性。在設(shè)計(jì)時(shí)p0口作輸出時(shí),設(shè)計(jì)為集電極開路輸出,因此本設(shè)計(jì)作為液晶的數(shù)據(jù)端口,p0口輸出增加上拉電r2將p0口輸出上拉至vcc。以保證單片機(jī)輸出1時(shí),液晶數(shù)據(jù)口接收到的信號為高電平。3.4按鍵輸入電路按鍵輸入電路如圖
19、3-4所示,通過按鍵控制放大倍數(shù)。p1.0接放大設(shè)置按鈕,p1.1接放大倍數(shù)增加按鈕,p1.2接放大倍數(shù)減小按鈕,p1.3接移位按鈕。圖3-4 按鍵輸入電路3.5 d/a轉(zhuǎn)換電路d/a轉(zhuǎn)換電路采用dac0832來實(shí)現(xiàn),首先來介紹下dac0832芯片。3.5.1 管腳功能dac0832管腳功能如圖3-5所示。圖3-5 dac0832引腳圖dac0832的主要特性參數(shù)如下:(1)分辨率為8位;(2)輸出為電流信號,電流的建立時(shí)間為1us;(3)可單緩沖、雙緩沖或直接數(shù)字輸入;(4)只需在滿量程下調(diào)整其線性度;(5)單一電源供電(+5v+15v),低功耗,20mw;(6)參考電壓可以達(dá)到10v;(7
20、)直接的數(shù)字接口可以與任何一款單片機(jī)相連。dac0832的引腳功能: (1)d0d7:8位數(shù)據(jù)輸入線,ttl電平,通常與單片機(jī)的數(shù)據(jù)總線相連,用于輸入cup送來的待轉(zhuǎn)換數(shù)字量。有效時(shí)間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會出錯(cuò));(2)ile:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;(3):片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;(4):數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ile、的邏輯組合產(chǎn)生le1,當(dāng)le1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,le1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;(5):數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns)有效;(
21、6):dac寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由、的邏輯組合產(chǎn)生le2,當(dāng)le2為高電平時(shí),dac寄存器的輸出隨寄存器的輸入而變化,le2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入dac寄存器并開始d/a轉(zhuǎn)換。(7)iout1:電流輸出端1,其值隨dac寄存器的內(nèi)容線性變化;(8)iout2:電流輸出端2,其值與iout1值之和為一常數(shù); 當(dāng)dac寄存器內(nèi)容全為1時(shí),iout1為最大,iout2=0;當(dāng)dac寄存器內(nèi)容全為0時(shí),iout1=0,iout2為最大;為了保證輸出電流的線性,應(yīng)將iout1 及iout2接到外部運(yùn)算放大器的輸入端上。(9)rfb:反饋信號輸入線,改變r(jià)fb端
22、外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;(11)vcc:芯片工作電源,范圍為+5v+15v;(12)vref:基準(zhǔn)電壓輸入線,vref的范圍為-10v+10v;(13)agnd:模擬信號地,為模擬信號和基準(zhǔn)電源的參考地;(14)dgnd:數(shù)字信號地,為工作電源地和數(shù)字邏輯地3.5.2 d/a轉(zhuǎn)換電路模塊d/a轉(zhuǎn)換電路如圖3-6所示,單片機(jī)的p2口輸出信號給0832的8位并口數(shù)據(jù)輸入,控制端口接地。輸出信號至運(yùn)算放大器。圖3-6 d/a轉(zhuǎn)換電路3.6 轉(zhuǎn)換電路運(yùn)放與dac0832連接的運(yùn)放電路如圖3-6所示。dac0832輸出的轉(zhuǎn)換結(jié)果為電流信號,在本設(shè)計(jì)中利用tl084運(yùn)算放大器將其轉(zhuǎn)換為模擬電壓信號
23、。運(yùn)放的反饋接到運(yùn)放的vref端口。圖中所示運(yùn)算放大器u3的作用是反向器,是輸出的電壓與d/a轉(zhuǎn)換的電壓相同。運(yùn)放與dac0832連接的運(yùn)放電路如圖3-7所示。圖3-7 運(yùn)放與dac0832連接電路第4章 系統(tǒng)軟件設(shè)計(jì)4.1軟件開發(fā)環(huán)境簡介 本設(shè)計(jì)中選用德國keil公司推出的uvision4集成開發(fā)環(huán)境作為主機(jī)程序設(shè)計(jì)的編譯器。該軟件集成了業(yè)內(nèi)最領(lǐng)先的技術(shù)。keil software的8051開發(fā)工具提供以下程序,可以用它們來編譯c程序代碼,匯編源程序,連接和重定位目標(biāo)文件和庫文件,創(chuàng)建hex文件以及調(diào)試目標(biāo)程序。4.2 c語言簡介c語言是一種結(jié)構(gòu)化的語言,它層次清晰,便于按模塊化的方式組織程
24、序,易于調(diào)試和維護(hù),語言簡潔,緊湊,使用方便靈活。其次,它豐富的運(yùn)算和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)解耦。第三,可以直接訪問內(nèi)存地址,能進(jìn)行位操作的特點(diǎn),使其能夠勝任開發(fā)炒作系統(tǒng)的工作。第四,由于c語言可以對硬件進(jìn)行編程操作,因此,它既有高級語言的功能,同時(shí)也有低級語言的優(yōu)勢。不僅可用于系統(tǒng)軟件的開發(fā),同時(shí)也適用于應(yīng)用軟件的開發(fā)。另外,c語言還有效率高的,可移植性強(qiáng)等特點(diǎn)。例如,原來使用的匯編語言編寫的程序,由于別人編寫的程序不易被讀懂,在一段時(shí)間后再去做升級和維護(hù)就會感覺非常的不方便。但在使用和維護(hù)c語言編寫的程序時(shí),就不會遇到這樣的困擾,這時(shí)候c語言的優(yōu)勢就大大的體現(xiàn)出來了。4.3軟件總
25、體設(shè)計(jì)如圖4-1所示為系統(tǒng)的軟件流程圖。主程序中,首先對系統(tǒng)進(jìn)行初始化。初始化所完成的是對系統(tǒng)中所用到的資源的控制寄存器等賦初值(如按鍵端口、液晶端口i/o方向進(jìn)行初始化、液晶lcd1602顯示初始化、放大器控制初始化等),默認(rèn)放大倍數(shù)為1。各程序段,主要包括dac0832程序段和lcd1602液晶顯示程序段。首先,系統(tǒng)進(jìn)行初始化,包括液晶初始化和和各端口的初始化,并設(shè)定默認(rèn)倍數(shù)為1,根據(jù)相應(yīng)的放大倍數(shù)和d/a值關(guān)系,輸出d/a控制命令,然后,程序進(jìn)行入按鍵掃描段,如果“選擇/確定”鍵按下,則進(jìn)入放大倍數(shù)修改段。根據(jù)掃描的鍵值,進(jìn)行相應(yīng)的修改,如,若“加”鍵被按下,相應(yīng)位上加1;若“減”鍵被按
26、下,相應(yīng)位減1;若”移位”鍵被按下,光標(biāo)移位。最后,程序根據(jù)修改的放大倍數(shù)值,根據(jù)相應(yīng)的放大倍數(shù)和d/a值關(guān)系,輸出d/a控制命令。圖4-1 系統(tǒng)軟件流程序4.4部分程序段代碼4.4.1 dac0832程序段首先,dac0832輸出一個(gè)默認(rèn)的放大倍數(shù)1,然后根據(jù)鍵值做出相應(yīng)的改變,根據(jù)鍵值和放大倍數(shù)的對應(yīng)數(shù)學(xué)關(guān)系,計(jì)算出dac0832應(yīng)輸出的控制命令。如下為dac0832程序段:/* 對第一片dac0832進(jìn)行賦值設(shè)置*/void dac0832_set(uint16 data) uint8 i; uint16 buffer; buffer=data+0x1000; sync=0; for(i
27、=0;i16;i+) sclk=1; if(buffer&0x8000)sdin=1; else sdin=0; sclk=0; buffer=1; sync=1; 4.4.2 lcd液晶顯示代碼 液晶的顯示部分采用帶一款字符型液晶1602,此模塊的程序結(jié)構(gòu)較簡單,難點(diǎn)也只是液晶讀寫的時(shí)序,本程序中只需要時(shí)時(shí)對液晶寫入數(shù)據(jù),便于人機(jī)交互,只要對液晶驅(qū)動(dòng)了后寫數(shù)據(jù)也就相應(yīng)的簡單了,通過查看液晶的時(shí)序圖4-2,然后再模擬時(shí)序編程別能驅(qū)動(dòng)液晶了。液晶操作的命令碼可以查詢lcd1602官方給出的命令碼表。首先對液晶進(jìn)行初始化,然后,根據(jù)相應(yīng)的鍵值,作出相應(yīng)的變化,如若“加”鍵被按下,相應(yīng)位上加1,輸出
28、對應(yīng)的ascii值;若“減”鍵被按下,相應(yīng)位減1,輸出對應(yīng)的ascii值;若“移位”鍵被按下,光標(biāo)移位等。圖4-2 讀操作時(shí)序圖1602液晶驅(qū)動(dòng)程序:void lcd_init(void) lcd_write_com(0x38); /*顯示模式設(shè)置*/ delay_ms(5); lcd_write_com(0x38); delay_ms(5); lcd_write_com(0x38); delay_ms(5); lcd_write_com(0x38); lcd_write_com(0x08); /*顯示關(guān)閉*/ lcd_write_com(0x01); /*顯示清屏*/ lcd_write_c
29、om(0x06); /*顯示光標(biāo)移動(dòng)設(shè)置*/ delay_ms(5); lcd_write_com(0x0c); /*顯示開及光標(biāo)設(shè)置*/void lcd_write_com(uint8 com) rs_clr; rw_clr; en_set; p0 = com; delay_us(5); en_clr;/* 寫入數(shù)據(jù)函數(shù) */*/ void lcd_write_data(uint8 data) rs_set; rw_clr; en_set; p0 = data; delay_us(5); en_clr;/* 清屏函數(shù) */*/ void lcd_clear(void) lcd_write_c
30、om(0x01); delay_ms(5);第5章 系統(tǒng)仿真調(diào)試5.1 系統(tǒng)仿真結(jié)果當(dāng)輸入信號為正弦信號,且幅度為10mv,頻率為100hz時(shí),信號從a通道輸入,從d通道輸出,仿真輸出結(jié)果如圖5-1所示。圖5-1 仿真結(jié)果如圖5-1所示,初始放大倍數(shù)為1,a通道輸入的原始信號與d通道輸出的信號一致,實(shí)現(xiàn)了原始信號的正確輸出;通過按鍵改變放大倍數(shù)為5,d通道旋轉(zhuǎn)按鈕顯示為50mv,經(jīng)過簡單計(jì)算,可得輸出信號被放大了5倍,由此得出,仿真結(jié)果如預(yù)期所想。第6章 整機(jī)實(shí)物調(diào)試與分析6.1 增益測試當(dāng)輸入信號為正弦,峰-峰值為400mvpp,頻率為1khz,則各增益如表6-1所示。a0表示理論增益(db
31、),uo表示輸出電壓(v),a1表示實(shí)際增益(db)。表6-1 不同增益下測試結(jié)果a01234615162027uo0.501.001.552.02.857.447.849.6813.7a11.02.03.145.714.915.619.327.4誤差(%)0%0%3.3%0%5%0.7%2.5%3.5%1.5%如表所示,輸入信號乘以增益與輸出信號的關(guān)系基本表明此設(shè)計(jì)實(shí)現(xiàn)了程控放大,且在不同增益下誤差基本穩(wěn)定在一定范圍內(nèi),除個(gè)別測試數(shù)據(jù)誤差較大外,可剔除(如表6-1中增益為10時(shí))。測試波形如圖6-1所示,分別對應(yīng)表6-1中的不同增益。圖6-1 不同增益下測試波形6.2 帶寬測試當(dāng)輸入信號為正
32、弦,峰-峰值為500mvpp,頻率為1khz,增益為5時(shí)測試頻率與輸出信號的關(guān)系如表6-2所示,fo表示頻率(khz),uo表示輸出電壓,a表示放大增益(db)。fo1251012141516172040uo2.52.52.352.031.91.771.741.71.621.50.9a554.74.063.83.543483.43.2431.8表6-2 增益為5時(shí)的測試數(shù)據(jù)其幅頻特性曲線如圖6-3所示。圖6-2 增益為5的幅頻特性曲線當(dāng)輸入信號為正弦,峰-峰值為500mvpp,頻率為1khz,增益為6時(shí)測試頻率與輸出信號的關(guān)系如表6-3所示,fo表示頻率(khz),uo表示輸出電壓(v),a表
33、示放大增益(db)。fo1234567891011uo2.902.852.812.742.702.612.502.422.332.242.18a5.85.75.625.485.45.225.004.844.664.484.36表6-3增益為6時(shí)的測試數(shù)據(jù)其幅頻特性曲線如圖6-3所示。圖6-3 增益為6的幅頻特性曲線當(dāng)輸入信號為正弦,峰-峰值為500mvpp,頻率為1khz,增益為7時(shí)測試頻率與輸出信號的關(guān)系如表6-4所示,fo表示頻率(khz),uo表示輸出電壓(v),a表示放大增益(db)。表6-4 增益為7時(shí)的測試數(shù)據(jù)fo1234567891011uo3.593.553.483.403.3
34、13.163.073.002.832.752.64a7.187.16.966.86.626.326.146.005.665.55.28其幅頻特性曲線如圖6-4所示。圖6-4 增益為7的幅頻特性曲線 由上三張幅頻特性曲線分析可得,增益分別5、6、7對應(yīng)的-3db截止頻率分別約為15.2khz,15.4khz,15.8khz,則其帶寬分別為15.2khz,15.4khz,15.8khz。由圖6-5可得系統(tǒng)截止頻率為 =15.923khz,實(shí)測值都小于理論值,且都接近一定值,符合數(shù)字式程控放大器設(shè)計(jì)原理。圖6-5 電壓跟隨器電路6.3 誤差分析誤差來源主要分以下幾個(gè)方面:1) 信號源輸出的信號在幅值
35、很小時(shí),其幅值不夠精確。在放大倍數(shù)比較小時(shí),放大精度高很多,例如,放大100倍時(shí),誤差為4%,而放大2倍時(shí),誤差只有1%,這是因?yàn)闇y試放大2倍的被測信號的峰峰值為1vpp,而測試放大100倍的被測信號的峰峰值為10mvpp,10mvpp的信號源輸出則相對1pp的信號來說,其精確度不夠;2) 系統(tǒng)使用的8位d/a數(shù)字程控放大,其中d/a在放大倍數(shù)比較小時(shí),其連續(xù)性更好,即放大倍數(shù)會更精確,在放大倍數(shù)比較大時(shí),其放大倍數(shù)精確度相對來說要差很多,所以要想在放大倍數(shù)比較大時(shí)取得理想的精確度,則需要使用位數(shù)更多的d/a數(shù)模轉(zhuǎn)換器;3) 系統(tǒng)設(shè)計(jì)時(shí)沒有考慮濾波,成生的雜波沒有很好的經(jīng)過濾波部分,對系統(tǒng)結(jié)果
36、有一定的影響。第7章 學(xué)習(xí)總結(jié)7.1 心得體會本次試驗(yàn)我們通過仿真和實(shí)物同步進(jìn)行的方法,相互映證,使得解決問題的效率有所提高。同時(shí)鍛煉我們對于仿真和實(shí)物的綜合運(yùn)用的能力。同時(shí)對于組員之間的相互配合和分工合作進(jìn)一步加強(qiáng)。而且在本實(shí)驗(yàn)的關(guān)于程控放大器工作原理分析及其設(shè)計(jì)安裝與調(diào)試,加深了我對程控放大器工作原理的理解,同時(shí)對線性電子線路的理論與實(shí)踐應(yīng)用知識有了新的認(rèn)識,并且提高基本的實(shí)驗(yàn)技能與試驗(yàn)分析技巧,提高運(yùn)用理論知識解決實(shí)際問題的能力。在實(shí)驗(yàn)過程中,通過選取元件、確定電路形式、以及計(jì)算等等,提高我的實(shí)踐動(dòng)手操作能力,同時(shí)通過調(diào)試來發(fā)現(xiàn)自己的錯(cuò)誤并分析及排除這些故障。7.2 參考文獻(xiàn)1王煒.程控
37、放大器及其典型應(yīng)用的實(shí)例j.中國科學(xué)院長春光學(xué)精密機(jī)械研究所.19982周春光.程控放大器在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用j.電子技術(shù)應(yīng)用.19873傅越千.程控放大器的設(shè)計(jì)與應(yīng)用j.寧波高等??茖W(xué)校學(xué)報(bào),20024房慧龍.程控放大器的實(shí)現(xiàn)方法j.常州信息職業(yè)技術(shù)學(xué)院電子信息工程系.20045邵雄凱,張文燦,黃文斌.一種程控放大器的分析與實(shí)現(xiàn)j.湖北工學(xué)院學(xué)報(bào),19976吳建平,李建強(qiáng).數(shù)字程控放大器設(shè)計(jì)與應(yīng)用j.成都理工學(xué)院報(bào),20027余錫存,曹國華編著.單片機(jī)原理及接口技術(shù)m.西安:西安電子科技大學(xué)出版社,20008彭楚武主編.微機(jī)原理與接口技術(shù)m.長沙:湖南大學(xué)出版社,20049童詩白,華成英主
38、編.模擬電子技術(shù)基礎(chǔ)m.北京:高等教育出版社,200110胡斌,蔡月紅.放大器電路識圖與故障分析輕松入門m.北京:人民郵電出版社,2003附錄:附錄一 總程序代碼#include regx52.h#include typedef.h#include delay.h#include lcd.h#include key_scan.h#include dac7811.hint8 cursor_pos,key_value,gain4;uint16 gain_set,gain_set1;void sysytem_init(void) lcd_init();void main()sysytem_init(
39、);lcd_write_str(0,0,set gain:11000);lcd_write_str(0,1,now:0001);gain0=1;gain1=0;gain2=0;gain3=0;gain_set=gain0+gain1*10+gain2*100+gain3*1000;/p2=256/gain_set-1;while(1) while(key_value=key_scan()=1)/按鍵掃描,確認(rèn)按鍵是否按下,按下,則進(jìn)入設(shè)定程序 cursor_off_flash_on();/打開光標(biāo)閃爍 cursor_move_left(1);/光標(biāo)左移一位cursor_pos=0; while
40、(key_value=key_scan()!=1)/按鍵掃描,確認(rèn)按鍵是否按下 switch(key_value)/判斷鍵值case 2:/加1gaincursor_pos+;if(gaincursor_pos=10) /當(dāng)加到10時(shí),變成0 gaincursor_pos=0;dis_uint(7-cursor_pos),1,gaincursor_pos);/顯示加1后的值cursor_move_left(1);/光標(biāo)左移一位 break;case 3:/減1gaincursor_pos-;if(gaincursor_pos100) gain_set=100;if(gain_set=0) ga
41、in_set=1;gain3=gain_set/1000;gain2=(gain_set%1000)/100; gain1=(gain_set%100)/10;gain0=(gain_set%10);dis_uint(4,1,gain3);dis_uint(5,1,gain2);dis_uint(6,1,gain1);dis_uint(7,1,gain0); p2=256/gain_set-1;cursor_off_flash_off(); void lcd_write_com(uint8 com) rs_clr; rw_clr; en_set; p0 = com; delay_us(5);
42、en_clr; void lcd_write_data(uint8 data) rs_set; rw_clr; en_set; p0 = data; delay_us(5); en_clr;void lcd_clear(void) lcd_write_com(0x01); delay_ms(5);void lcd_write_str(uint8 x,uint8 y,uint8 *s) if (y = 0) lcd_write_com(0x80 + x); else lcd_write_com(0xc0 + x); while (*s) lcd_write_data( *s); s +; voi
43、d lcd_write_char(uint8 x,uint8 y,uint8 data) if (y = 0) lcd_write_com(0x80 + x); else lcd_write_com(0xc0 + x); lcd_write_data( data); void lcd_init(void) lcd_write_com(0x38); /*顯示模式設(shè)置*/ delay_ms(5); lcd_write_com(0x38); delay_ms(5); lcd_write_com(0x38); delay_ms(5); lcd_write_com(0x38); lcd_write_co
44、m(0x08); /*顯示關(guān)閉*/ lcd_write_com(0x01); /*顯示清屏*/ lcd_write_com(0x06); /*顯示光標(biāo)移動(dòng)設(shè)置*/ delay_ms(5); lcd_write_com(0x0c); /*顯示開及光標(biāo)設(shè)置*/ void dis_n_char(uint8 dis_addr,uint8*n,uint8*n_char_addr) uint8 i; lcd_write_com(dis_addr); for(i=0;i=0)&(x= 2 & radix = 36 ) / 限制radix必須在2到36之間 if ( value 0 ); / 轉(zhuǎn)換結(jié)束后字符串是翻的 nindex = ( ncount + 1 ) / 2; / 計(jì)算出一半的長度 while( nindex- 0 ) / 將字符串的字符序翻轉(zhuǎn) ntemp = pstr nindex ; pstr nindex = pstr ncount - nindex ; pstr ncount - nindex = ntemp; pstr ncount + 1 = 0;/ 置結(jié)束符 return str; void cursor_off_flash_on(void) lcd_write_com(0x0d); /*顯示開及光標(biāo)不打開,但閃爍*/void cursor_on_flash_on
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 整車制造綠色環(huán)保技術(shù)應(yīng)用考核試卷
- 木材采伐作業(yè)成本控制考核試卷
- 衛(wèi)生材料的社會影響與企業(yè)責(zé)任考核試卷
- 在建工地安全課件模板
- 工廠院內(nèi)改造合同范本
- 公司聘用合同范本6
- 土地小院出租合同范本
- 團(tuán)隊(duì)合作合同范本
- 鋁廠服裝租借合同范本
- 小學(xué)生注意力課件
- 《調(diào)整心態(tài)迎接中考》主題班會
- 冠心病患者運(yùn)動(dòng)恐懼的現(xiàn)狀及影響因素分析
- 全國2018年10月自考00043經(jīng)濟(jì)法概論(財(cái)經(jīng)類)試題及答案
- 《又見平遙》課件
- 噴涂設(shè)備點(diǎn)檢表
- 廣東省佛山市《綜合基礎(chǔ)知識》事業(yè)單位國考真題
- 02 第2章 城市與城市化-城市管理學(xué)
- 六年級上冊英語教案-Culture 2 Going Green 第二課時(shí) 廣東開心英語
- 警察叔叔是怎樣破案的演示文稿課件
- 2019石景山初三一模語文試題及答案
- 09式 新擒敵拳 教學(xué)教案 教學(xué)法 圖解
評論
0/150
提交評論