鎖相放大器設(shè)計_第1頁
鎖相放大器設(shè)計_第2頁
鎖相放大器設(shè)計_第3頁
鎖相放大器設(shè)計_第4頁
鎖相放大器設(shè)計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C題:鎖定放大器的設(shè)計摘 要:本設(shè)計對于檢測微弱信號的鎖存放大器進(jìn)行論述,鎖定放大器主要包括交流放大器、帶通濾波器、相敏檢波器、低通濾波器、直流放大器及液晶顯示等幾個部分。其中,交流放大器以INA128為主要構(gòu)成部件,實現(xiàn)交流信號的放大從而作為帶通濾波器的輸入;帶通濾波器用UAF42構(gòu)成,實現(xiàn)對900Hz到1100Hz頻帶范圍的濾波過程,其誤差小于20%;相敏檢波器的主要部件采用乘法器MPY634,得到的信號在輸入低通濾波器經(jīng)直流放大器放大后輸入顯示電路,顯示出被測信號的幅度及有效值。另外,在相敏檢波器部分的方波驅(qū)動信號由參考信道的參考信號經(jīng)觸發(fā)整形、移相、比較而來。同時,為了更好的檢測出鎖定

2、放大器的性能,在信號的輸入端增加加法器電路,實現(xiàn)被測信號與干擾信號的1:1疊加,當(dāng)干擾信號的頻率為1050Hz2100Hz時,輸出端的測量誤差小于10%。鎖定放大器在實際應(yīng)用中用途廣泛,尤其對于微弱信號檢測方向站著主導(dǎo)地位,隨著科技的發(fā)展已漸漸的融入人類的生活之中,擁有很好的發(fā)展前景。 關(guān)鍵詞:帶通濾波器;相敏檢波器;顯示;方波驅(qū)動1 總體方案設(shè)計1.1 方案比較與選擇1.1.1 微弱信號檢測模塊方案比較方案一:采用濾波電路檢測微弱信號,通過濾波電路將微弱信號從強(qiáng)噪聲中檢測出來,但濾波電路中心頻率是固定的,而信號的頻率是可變的,無法達(dá)到要求,由此可見該方案不滿足要求。方案二:采用取樣積分電路檢

3、測小信號,采用取樣技術(shù),在重復(fù)信號出現(xiàn)的期間取樣,并重復(fù)N次,則測量結(jié)果的信噪比可改善N倍,但這種方法取樣效率低,不利于重復(fù)頻率的信號恢復(fù)。方案三:采用鎖相放大器檢測小信號,鎖相放大器由信號通道、參考通道和相敏檢波器等組成,其中相敏檢波器(PSD)是鎖相放大器的核心,PSD把從信號通道輸出的被測交流信號進(jìn)行相敏檢波轉(zhuǎn)換成直流,只有當(dāng)同頻同相時,輸出電流最大,具有良好的檢波特性。由于該被測信號的頻率是指定的且噪聲強(qiáng)、信號弱,正好適用于鎖相放大器的工作情況,故選擇方案三。1.1.2 移相網(wǎng)絡(luò)模塊方案比較方案一:數(shù)字法:采用數(shù)字相移的方法勢必增加電路的難度,所以此法不可取。方案二:模擬法:由于電路用

4、的是鎖相放大,所以要保持輸入信號相位的一致,故需要對參考信號做移相處理,移相采用簡單的RC電路搭成,可以很容易得到所需效果。所以采用方案二。1.1.3 電阻分壓模塊方案比較電阻分壓網(wǎng)絡(luò)有串聯(lián)分壓和型網(wǎng)絡(luò),型網(wǎng)絡(luò)的性能較好,適合在高頻的條件下工作,而本設(shè)計要求的電壓范圍較小,故采用簡單電路串聯(lián)來作為分壓網(wǎng)絡(luò)就可以達(dá)到要求。1.1.4 顯示模塊方案方案一:采用數(shù)碼管顯示。數(shù)碼管只能顯示簡單的數(shù)字,其電路復(fù)雜,占用資源較多,顯示信息少,不宜顯示大量信息。方案二:采用液晶顯示。液晶顯示增加了顯示信息的可讀性,看起來更方便。而QC12864B字符點陣液晶模塊有明顯的優(yōu)點:微功耗、尺寸小、顯示信息量大、顯

5、示清晰、易控制,抗干擾能力強(qiáng)。選擇方案二,用液晶顯示所需的數(shù)據(jù),顯示的信息量大而且方便。1.2 總體方案論述對于幅度較小的直流信號或滿編信號,為了防止1/f噪聲和直流放大的直流漂移(例如運(yùn)算放大器輸入失調(diào)電壓的溫度漂移)的不利影響,一般都使用調(diào)制器或斬波器將其變換成交流信號后,在進(jìn)行放大和處理,用帶通濾波器抑制寬帶噪聲,提高信噪比,之后再進(jìn)行解調(diào)和低通濾波,以得到放大了的被測信號。對于微弱的直流和慢變信號,調(diào)制后的正弦信號也必然微弱。要達(dá)到足夠的信噪比,用于提高信噪比的帶通濾波器的帶寬必須非常窄,Q值必須非常高,這在實際上往往很難實現(xiàn)。而且Q值太高的帶通濾波器往往不穩(wěn)定,溫度、電源電壓的波動均

6、會是濾波器的中心頻率發(fā)生變化,從而導(dǎo)致其通頻帶不能覆蓋信號頻率,使得測量系統(tǒng)無法穩(wěn)定可靠地進(jìn)行測量。在這種情況下,利用鎖定放大器可以很好地解決上述問題。本設(shè)計為制作一個用來檢測微弱信號的鎖定放大器。首先,交流放大器部分采用INA128作為主要部件,將信號放大后輸入帶通濾波器,帶通濾波器由UAF42構(gòu)成,可以實現(xiàn)950Hz到1050Hz頻帶范圍的濾波過程,其誤差小于10%;然后,帶通濾波后的信號和同頻同相的方波參考信號送入乘法器,乘法器采用MPY634;再者,乘法器輸出的信號送入低通濾波器,再經(jīng)直流放大器放大后,由顯示電路顯示出被測信號的幅度有效值。另外,在相敏檢波器部分的方波驅(qū)動信號由參考信道

7、的參考信號經(jīng)觸發(fā)整形、移相、比較而來。同時,為了更好的檢測出鎖定放大器的性能,在信號的輸入端增加加法器電路,實現(xiàn)被測信號與干擾信號的1:1疊加,當(dāng)干擾信號的頻率為1050Hz2100Hz時,輸出端的測量誤差小于10%。1.3 鎖定放大器的流程框圖鎖定放大器的流程框圖如圖1.1所示,主要由交流放大器、帶通濾波器、相敏檢波器、低通濾波器、直流放大器、觸發(fā)整形、移相器及方波驅(qū)動等模塊構(gòu)成。交流放大器相敏檢波器直流放大器低通濾波器帶通濾波器觸發(fā)整形移相器方波驅(qū)動參考輸出r(t)信號x(t)信號通道參考通道S(t)顯示R(t)圖1.1鎖定放大器的流程框圖1.4 總體電路圖總體電路圖如圖1.2所示。2 各

8、部分指標(biāo)的分析與計算2.1 交流放大器 交流放大器部分采用INA128三級同相放大電路放大。根據(jù)公式GB=1+50K/R,第一級放大16倍,第二級放大為26倍,第三級放大為26倍,三級相乘最終的放大倍數(shù)可達(dá)10816倍,滿足設(shè)計要求;由此每一級的電阻選擇分別為3.3K、2K、2K。INA128的外圍電路簡單,輸入阻抗高,同時能有效的抑制共模干擾,其電路圖如圖2.1所示。圖2.1交流放大器電路2.2 帶通濾波器 帶通濾波器部分的核心部件為UAF42芯片。UAF42是一款通用有源濾波器,可配置為低通、高通、帶通濾波器。它使用了一種經(jīng)典的狀態(tài)可調(diào)的模擬結(jié)構(gòu),通過一個反向放大器和兩個積分器。積分器包含

9、上1nF電容。這種結(jié)構(gòu)解決了有源濾波器設(shè)計的一個重要的難題獲得緊密對準(zhǔn)公差、低損耗電容。它是一種單片集成電路,其中包含了運(yùn)算放大器、匹配電阻和狀態(tài)可調(diào)雙極濾波極對所需的精密電容,以及四個獨立的精密運(yùn)放。對于帶通濾波器的設(shè)計,采用Filter42軟件計算出外圍電阻RF1=RF2=158K,達(dá)到中心頻率為1000Hz,頻帶范圍為950Hz1050Hz的濾波要求。其電路如圖2.2所示。圖2.2帶通濾波器電路2.3相敏檢波器相敏檢波器主要部件為MPY634,其電路如圖2.3所示。圖2.3相敏檢波器電路2.4低通濾波器低通濾波器同樣采用UAF42構(gòu)成,其外圍電阻分別為44K、470K。電路圖如圖2.4所

10、示。 圖2.4低通濾波器電路2.5直流放大器直流放大器電路如下圖2.5所示。圖2.5直流放大器電路2.6顯示部分單片機(jī)最小系統(tǒng)設(shè)計。本設(shè)計電流源通過鍵盤模塊輸入給定的電流值傳送給單片機(jī),單片機(jī)在接收到信號后進(jìn)行處理運(yùn)算,并顯示其給定的電流值,然后經(jīng)過D/A轉(zhuǎn)換以輸出電壓,驅(qū)動恒流源電路實現(xiàn)電流輸出,并將采樣電阻上的電壓經(jīng)過A/D轉(zhuǎn)換輸入單片機(jī)系統(tǒng),通過補(bǔ)償算法進(jìn)行數(shù)值補(bǔ)償處理,調(diào)整電流輸出并驅(qū)動顯示器當(dāng)前的電流值。最小系統(tǒng)核心為MSP430,將單片機(jī)的引腳用接口引出,電路圖如圖2.6中單片機(jī)最小系統(tǒng)模塊所示。圖2.6單片機(jī)最小系統(tǒng)A/D轉(zhuǎn)換器選用具有16位分辨率高精度模數(shù)轉(zhuǎn)換器ADS1115。

11、ADS1115具有一個板上基準(zhǔn)和振蕩器,數(shù)據(jù)通過一個I2C兼容型串行接口進(jìn)行傳輸,可以選擇4個I2C從地址。如圖2.7所示電路中,ADS1115的SDA與單片機(jī)P1.2口相接,SCL與單片機(jī)P1.3口相接。上接上拉電阻通過編程模擬ADS1115的通信時序?qū)崿F(xiàn)對ADS1115的操作。圖2.7 A/D轉(zhuǎn)換器液晶顯示電路設(shè)計如圖2.8所示。 圖2.8 液晶顯示電路2.7參考通道部分參考通道部分采用LM324及外圍電阻搭建而成,整個通道分為觸發(fā)整形、移相、方波驅(qū)動三個部分。其電路圖如圖2.9所示。圖2.9 參考通道部分整體電路2.8自制電源設(shè)計本設(shè)計共用到電源有2種:即±15V 、 +5V

12、。電源原理:穩(wěn)壓電源由電源變壓器、整流電路、濾波電路組成,整流作用是將交流電壓變換成脈動電壓。濾波電路一般由電容組成,其作用是脈動電壓中的大部分紋波加以濾除,以得到較平滑的直流電壓輸出。圖2.10所示的電源電路圖由L7815和L7915組成,輸出±15V電壓給壓控恒流電路中的OP07等器件供電。圖2.11所示為+5V電源電路。圖2.10 ±15V電源電路圖2.11 +5V電源電路3 軟件設(shè)計3.1 軟件流程設(shè)計軟件流程圖如圖3.1所示圖3.1 軟件流程圖4測試結(jié)果與數(shù)據(jù)分析4.1測試儀器為了確定系統(tǒng)與題目要求的符合程度,對系統(tǒng)中的關(guān)鍵部分進(jìn)行了實際測試。使用儀器設(shè)備見表41

13、。表41 測試使用的儀器設(shè)備序號名稱、型號、規(guī)格數(shù)量備注1數(shù)字萬用表 UT71B1精度4位半2數(shù)字示波器DS5102M1帶寬100M3可調(diào)直流穩(wěn)壓電源KHM-1130V/3A4.2各部分電路測試結(jié)果1)鎖定放大器的設(shè)定要求與測試結(jié)果如下:(1)外接信號源提供頻率為1kHz的正弦波信號,幅度自定,輸入至參考信號R(t)端。R(t)通過自制電阻分壓網(wǎng)絡(luò)降壓接至被測信號S(t)端,S(t)端幅度有效值為 10V1mV。結(jié)果:外接信號源的頻率為1kHz的正弦波信號,幅度0.25v,通過分壓網(wǎng)絡(luò)470倍,S(t)端幅度有效值為 0.5mV,滿足設(shè)計要求。(2)參考通道的輸出r(t)為方波信號,r(t)的

14、相位相對參考信號R(t)可連續(xù)或步進(jìn)移相180度,步進(jìn)間距小于10度。結(jié)果:參考通道輸出r(t)為方波信號,r(t)的相位相對參考信號R(t)可實現(xiàn)連續(xù)或步進(jìn)移相180度,步進(jìn)間距小于10度,滿足設(shè)計要求。(3)信號通道的3dB頻帶范圍為900Hz1100Hz。誤差小于20%。結(jié)果:帶通濾波器的中心頻率為1000 Hz,信號通道的3dB頻帶范圍為900Hz1100Hz,滿足設(shè)計要求。(4)在鎖定放大器輸出端,設(shè)計一個能測量并顯示被測信號S(t)幅度有效值的電路。所測量的顯示值與S(t)有效值的誤差小于10%。結(jié)果:所設(shè)計的鎖定放大器的輸出端能測量被測信號S(t)幅度的有效值,所測量的顯示值與S

15、(t)有效值的誤差為9%,滿足設(shè)計要求。(5)在鎖定放大器信號S(t)輸入端增加一個運(yùn)放構(gòu)成的加法器電路,實現(xiàn)S(t)與干擾信號n(t)的1:1疊加。結(jié)果:鎖定放大器信號S(t)輸入端的加法器電路可以實現(xiàn)S(t)與干擾信號n(t)的1:1疊加,滿足設(shè)計要求。(6)用另一信號源產(chǎn)生一個頻率為10502100Hz的正弦波信號作為n(t),將其疊加在鎖定放大器的輸入端,信號幅度等于S(t)。n(t)亦可由與獲得S(t)同樣結(jié)構(gòu)的電阻分壓網(wǎng)絡(luò)得到。鎖定放大器應(yīng)盡量降低n(t)對S(t)信號有效值測量的影響,測量誤差小于10%。結(jié)果:測量誤差在15%。未能達(dá)到設(shè)計要求。(7)增加n(t)幅度,使之等于1

16、0S(t),鎖定放大器對S(t)信號有效值的測量誤差小于10%。結(jié)果:測量誤差在22%。未能達(dá)到設(shè)計要求。2)測試結(jié)果分析 未能完全滿足設(shè)計要求(6)和(7)。主要原因之一是,參考方波信號和帶通濾波器輸出信號的相位存在一定誤差;主要原因之二是,由于整體電路沒有采用屏蔽線,再加上所使用的儀器精度不夠不可避免地引入噪聲。5 總結(jié)本設(shè)計對于檢測微弱信號的鎖存放大器進(jìn)行論述,鎖定放大器主要包括交流放大器、帶通濾波器、相敏檢波器、低通濾波器、直流放大器及液晶顯示等幾個部分。鎖定放大器在實際應(yīng)用中用途廣泛,尤其對于微弱信號檢測方向站著主導(dǎo)地位,隨著科技的發(fā)展已漸漸的融入人類的生活之中,擁有很好的發(fā)展前景。

17、在本次設(shè)計的過程中,遇到了許多困難,開始設(shè)計進(jìn)度比較慢,但通過仔細(xì)的分析和進(jìn)行多方面的調(diào)整后解決了問題,從中我們對電子專業(yè)知識與技能得到了更多的理解與提高。比賽中三個人分工明確,積極配合,最終完成了設(shè)計,這使我們深刻地體會到了共同協(xié)作和團(tuán)隊精神的重要性。總之,這次比賽對我們每個人都影響非常深刻。參考文獻(xiàn):1 高晉占主編.微弱信號檢測.清華大學(xué)出版社,20042 王兆安主編.電力電子技術(shù).第五版.北京:機(jī)械工業(yè)出版社,20093 邱關(guān)源編著電路(第五版),高等教育出版社,20064 康光華編著電子技術(shù)基礎(chǔ),高等教育出版社,20065 閻石主編.數(shù)字電子技術(shù)基礎(chǔ).第五版.北京:高等教育出版社,20

18、06.6 梅麗鳳等編著單片機(jī)原理及接口技術(shù)清華大學(xué)出版社2009. 附錄:附錄1:主要元器件清單1、 單片機(jī)MSP430 G25532、 16位A/D轉(zhuǎn)換器ADS11153、 液晶QC12864B4、高精度運(yùn)算放大器OP075、DNC頭、DNC座6、加法器NE55347、乘法器MPY6348、濾波芯片UAF429、移向、比較芯片LM32410、穩(wěn)壓芯片LM317、7805、7905、7815、7915附2:程序清單#include <msp430g2553.h>#include"math.h"typedef unsigned char uchar;typedef

19、 unsigned int uint;#defineChannal_A 1 /通道A#define Channal_B 2 /通道B#define Channal_AB 3 /通道A&B/*TLV5618引腳接線*#define DIN_L P1OUT&=BIT0 /數(shù)據(jù)輸入端#define DIN_H P1OUT|= BIT0#define SCLK_L P1OUT&=BIT4#define SCLK_H P1OUT|= BIT4#define CS_L P1OUT&=BIT5#define CS_H P1OUT|= BIT5/ADS1115引腳定義#defi

20、ne SCL_H P1OUT |= BIT0#define SCL_L P1OUT &= BIT0#define SDA_H P1OUT |= BIT1#define SDA_L P1OUT &= BIT1#define SDA_in P1DIR &= BIT1 /SDA改成輸入模式#define SDA_out P1DIR |= BIT1 /SDA變回輸出模式#define SDA_val P1IN&BIT1 /SDA的位值#define TRUE 1#define FALSE 0#define CPU_F (double)8000000)#define de

21、lay_us(x) _delay_cycles(long)(CPU_F*(double)x/1000000.0) /延時uS#define delay_ms(x) _delay_cycles(long)(CPU_F*(double)x/1000.0) /延時mS#define uchar unsigned char#define uint unsigned int#define address 0x90#define config 0x01#define conversion 0x00#define Lsiwei 0xE3#define channel_0 0 /表示選擇通道0#define

22、channel_1 1 /表示選擇通道1#define channel_2 2 /表示選擇通道2#define channel_3 3 /表示選擇通道2uchar jieguo5;uchar dianya3;/12864 1接地 2接vcc 3和18接電位器 (3-18 ) 19接vcc 20接地#define CS BIT0/P2.0片選端#define SID BIT1/P2.1 數(shù)據(jù)口#define SCLK BIT2/P2.2 時鐘口/#define PSB BIT3 /P2.3 PSB=0,串行;PSB=1,并行uchar f10;int c;int ad,i=1010,j=0,da

23、te,p=0,a=0,n=0,w=0; double a1,a2=0,a3=0; /= / 函數(shù)名稱 :void DAC_TLV5618(unsigned int Dignum) / 函數(shù)功能 :進(jìn)行DA轉(zhuǎn)換 / 入口參數(shù) :Dignum:根據(jù)說明設(shè)置轉(zhuǎn)化數(shù)據(jù),頭四位為特殊位用于選擇轉(zhuǎn)化方式, / 以及用于通道選擇.請自行設(shè)置.后12位為需要轉(zhuǎn)換的值 / 出口參數(shù) :無 /= void DAC_TLV5618( unsigned int Dignum ) unsigned int Dig=0; unsigned char i=0; SCLK_H; CS_L; / Chip Enable for

24、(i=0;i<16;i+) / Write 16_Bits Datas Dig=Dignum&0x8000; if(Dig) DIN_H; else DIN_L; SCLK_L; _NOP(); Dignum<<=1; SCLK_H; _NOP(); SCLK_H; CS_H; / Chip Disenable /= / 函數(shù)名稱 :void Write_A_B( float Analog_A , float Analog_B , / unsigned char Channal,unsigned char Mode ) / 函數(shù)功能 :模式、通道選擇并進(jìn)行DA轉(zhuǎn)換 /

25、 入口參數(shù) :Analog_A:A通道轉(zhuǎn)換的電壓值 / Analog_B:B通道轉(zhuǎn)換的電壓值 / Channal:通道選擇,其值為Channal_A,Channal_B,或Channal_AB / Model:速度控制位 0:slow mode 1:fast mode / 出口參數(shù) :無 /說明: 范圍為:00x0fff / 本程序如果只需要一個通道時,另外一個通道的值可任意,但是不能缺省 /= void Write_A_B( float Analog_A , float Analog_B , unsigned char Channal,unsigned char Mode ) unsigne

26、d int Data_A = 0, Data_B = 0; unsigned int tmp = 0; /Analog_A=2*Vref*(Data_A/0x1000) 822 Data_A = (unsigned int)( Analog_A * 1000 ) ; Data_B = (unsigned int)( Analog_B * 1000 ) ; if( Mode ) tmp=0x4000; else tmp=0x0000; switch( Channal ) case Channal_A: DAC_TLV5618( tmp | 0x8000 | ( 0x0fff & Data

27、_A ) );break; case Channal_B: DAC_TLV5618( tmp | 0x0000 | ( 0x0fff & Data_B ) );break; case Channal_AB:DAC_TLV5618( tmp | 0x1000 | ( 0x0fff & Data_B ) ); DAC_TLV5618( tmp | 0x8000 | ( 0x0fff & Data_A ) );break; default:break; void Delay_1ms(void)uchar i;for(i = 150;i > 0;i-) _NOP();vo

28、id Delay_Nms(uint n) uint i; for(i = n;i > 0;i-) Delay_1ms();void Write_Cmd(uchar cmd)uchar flag;P2DIR|=CS+SCLK+SID;P2OUT&=(CS+SCLK+SID);/P2OUT=0;uchar i;uchar i_data;i_data=0xf8;P2OUT|=CS; /CS=1;=for(i=0;i<8;i+)flag=SID&(i_data&0x80)>>6);if(flag!=0)P2OUT|=SID;else P2OUT&

29、=SID;P2OUT&=SCLK;/SCLK=0;P2OUT|=SCLK;/SCLK=1;i_data=i_data<<1;i_data=cmd;i_data&=0xf0;for(i=0;i<8;i+)flag=SID&(i_data&0x80)>>6);if(flag)P2OUT|=SID;else P2OUT&=SID;P2OUT&=SCLK;/SCLK=0;P2OUT|=SCLK;/SCLK=1;i_data=i_data<<1;i_data=cmd;i_data=i_data<<4;f

30、or(i=0;i<8;i+)flag=SID&(i_data&0x80)>>6);if(flag)P2OUT|=SID;else P2OUT&=SID;P2OUT&=SCLK;/SCLK=0;P2OUT|=SCLK;/SCLK=1;i_data=i_data<<1;P2OUT&=CS;/CS=0;Delay_Nms(10);void Write_Data(uchar dat)uchar flag;P2DIR|=CS+SCLK+SID;P2OUT&=(CS+SCLK+SID);/P2OUT=0;/P2OUT&=

31、PSB;/PSB=0;uchar i;uchar i_data;i_data=0xfa;P2OUT|=CS; /CS=1;for(i=0;i<8;i+)flag=SID&(i_data&0x80)>>6);if(flag)P2OUT|=SID;else P2OUT&=SID;P2OUT&=SCLK;/SCLK=0;P2OUT|=SCLK;/SCLK=1;i_data=i_data<<1;i_data=dat;i_data&=0xf0;for(i=0;i<8;i+)flag=SID&(i_data&0x8

32、0)>>6);if(flag)P2OUT|=SID;else P2OUT&=SID;P2OUT&=SCLK;/SCLK=0;P2OUT|=SCLK;/SCLK=1;i_data=i_data<<1;i_data=dat;i_data=i_data<<4;for(i=0;i<8;i+)flag=SID&(i_data&0x80)>>6);if(flag)P2OUT|=SID;else P2OUT&=SID;P2OUT&=SCLK;/SCLK=0;P2OUT|=SCLK;/SCLK=1;i_dat

33、a=i_data<<1;P2OUT&=CS;/CS=0;Delay_Nms(10);void Ini_Lcd(void) Delay_Nms(500); Write_Cmd(0x30); /基本指令集 Delay_1ms(); Write_Cmd(0x02); / 地址歸位 Delay_1ms();Write_Cmd(0x0c); /整體顯示打開,游標(biāo)關(guān)閉 Delay_1ms();Write_Cmd(0x01); /清除顯示 Delay_1ms();Write_Cmd(0x06); /游標(biāo)右移 Delay_1ms();Write_Cmd(0x80); /設(shè)定顯示的起始地址v

34、oid pos(uchar x,uchar y)/x:1,2,3,4/y:1,2,3,4,5,6,7,8uchar pos;/x行y列 switch(x) case 1:pos=0x80+y;break; case 2:pos=0x90+y;break; case 3:pos=0x88+y;break; case 4:pos=0x98+y;break; Write_Cmd(pos);void LCD_12864(uchar x,uchar y,char *q)/在x行y列顯示字符串q uchar i; _delay_cycles(10);pos(x,y); for(i=0;*(q+i)!=&#

35、39;0'i+) Write_Data(qi);void send(uchar x,uchar y,int date)/在x行y列顯示字符串q _delay_cycles(10);pos(x,y);Write_Data(date);void adc() ADC10CTL0 |= ENC + ADC10SC; / Sampling and conversion start _bis_SR_register(CPUOFF + GIE); / LPM0, ADC10_ISR will force exit ad=ADC10MEM; date=ADC10MEM; a1=(double)date

36、/1023)*3.64;void anjian() P2DIR&=BIT3; P2OUT|=BIT3; P2DIR&=BIT4; P2OUT|=BIT4; P2DIR&=BIT5; P2OUT|=BIT5; P1DIR&=BIT7; P1OUT|=BIT7;if(!(P2IN&BIT4) _delay_cycles(1000); if(!(P2IN&BIT4) while(!(P2IN&BIT4); Write_Cmd(0x01); /while(P2IN&BIT3)&&(P2IN&BIT5)&&a

37、mp;(P1IN&BIT6) i=i-10; if(i=90) i=0; LCD_12864(3,0,"DA轉(zhuǎn)換電壓:"); send(4,2,(int)a1/10000+0x30); send(4,3,(int)a1%10000/1000+0x30); send(4,4,(int)a1%1000/100+0x30); send(4,5,(int)a1%100/10+0x30); send(4,6,(int)a1%10+0x30); LCD_12864(4,7,"mV"); LCD_12864(1,0,"AD轉(zhuǎn)換電流:");

38、send(2,2,i/1000+0x30); send(2,3,i/100%10+0x30); send(2,4,i/10%10+0x30); send(2,5,i%10+0x30); LCD_12864(2,7,"mA"); _delay_cycles(1000); if(!(P2IN&BIT3) _delay_cycles(1000); if(!(P2IN&BIT3) while(!(P2IN&BIT3); Write_Cmd(0x01); LCD_12864(1,0,"進(jìn)入設(shè)置界面"); LCD_12864(2,0,&quo

39、t;按2-電流"); LCD_12864(3,0,"按4-"); LCD_12864(4,0,"負(fù)載調(diào)整率"); _delay_cycles(1000); if(!(P2IN&BIT5)_delay_cycles(1000);if(!(P2IN&BIT5)while(!(P2IN&BIT5);Write_Cmd(0x01);/while(P2IN&BIT4)&&(P2IN&BIT3) LCD_12864(3,0,"輸入電流監(jiān)測:"); send(4,2,(int)a1%

40、10+0x30); send(4,3,0x2e); send(4,4,(int)(a1*10)%10+0x30); send(4,5,(int)(a1*100)%10+0x30); send(4,6,(int)(a1*1000)%10+0x30); LCD_12864(4,7,"mA");if(!(P1IN&BIT7)_delay_cycles(1000);if(!(P1IN&BIT7)while(!(P1IN&BIT7);Write_Cmd(0x01);/while(P1IN&BIT7)&&(P1IN&BIT7) L

41、CD_12864(3,0,"AD輸入電流監(jiān)測:"); send(4,2,(int)a1%10+0x30); send(4,3,0x2e); send(4,4,(int)(a1*10)%10+0x30); send(4,5,(int)(a1*100)%10+0x30); send(4,6,(int)(a1*1000)%10+0x30); LCD_12864(4,7,"mA"); LCD_12864(1,0,"取樣電阻5R"); Write_A_B(1, 2, Channal_AB, 1);/ADS1115/void delay(void

42、) uchar i;for(i = 0;i < 15;i+) _NOP();/*函數(shù)名稱:start功 能:完成IIC的起始條件操作參 數(shù):無返回值 :無*/void start(void)SCL_H;SDA_H;delay();SDA_L;delay();SCL_L;delay();/*函數(shù)名稱:stop功 能:完成IIC的終止條件操作參 數(shù):無返回值 :無*/void stop(void)SDA_L;delay();SCL_H;delay();SDA_H;delay();/*函數(shù)名稱:mack功 能:完成IIC的主機(jī)應(yīng)答操作參 數(shù):無返回值 :無*/void mack(void)SD

43、A_L;_NOP(); _NOP();SCL_H;delay();SCL_L;_NOP();_NOP();SDA_H;delay();/*函數(shù)名稱:mnack功 能:完成IIC的主機(jī)無應(yīng)答操作參 數(shù):無返回值 :無*/void mnack(void)SDA_H;_NOP(); _NOP();SCL_H;delay();SCL_L;_NOP(); _NOP();SDA_L;delay();/*檢查應(yīng)答信號函數(shù)*/*如果返回值為1則證明有應(yīng)答信號,反之沒有*/*函數(shù)名稱:check功 能:檢查從機(jī)的應(yīng)答操作參 數(shù):無返回值 :從機(jī)是否有應(yīng)答:1-有,0-無*/void ack() uchar i;

44、 i=0; SDA_in; SCL_H; delay(); while(P1IN&BIT1)&&(i<250) i+; SDA_out; SCL_L; delay();/*函數(shù)名稱:write1功 能:向IIC總線發(fā)送一個1參 數(shù):無返回值 :無*/void write1(void)SDA_H;delay();SCL_H;delay();SCL_L;delay();/*函數(shù)名稱:write0功 能:向IIC總線發(fā)送一個0參 數(shù):無返回值 :無*/void write0(void)SDA_L;delay();SCL_H;delay();SCL_L;delay();/

45、*函數(shù)名稱:write1byte功 能:向IIC總線發(fā)送一個字節(jié)的數(shù)據(jù)參 數(shù):wdata-發(fā)送的數(shù)據(jù)返回值 :無*/void write1byte(uchar wdata)uchar i;for(i = 8;i > 0;i-)if(wdata & 0x80)write1();else write0();wdata <<= 1;SDA_H;_NOP();/*函數(shù)名稱:read1byte功 能:從IIC總線讀取一個字節(jié)參 數(shù):無返回值 :讀取的數(shù)據(jù)*/uchar read1byte(void)uchar rdata = 0x00,i; uchar flag;for(i = 0;i < 8;i+)SDA_H;delay();SCL_H; SDA_in;delay();flag = SDA_val;rdata <<= 1;if(flag)rdata |= 0x01; SDA_out;SCL_L;delay()

溫馨提示

  • 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

提交評論