




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 基于AD5933的阻抗測量儀摘要:設計采用阻抗測量芯片AD5933,以低功耗高性能處理器LUMINARY615作為控制器,利用比例測量,DFT數字解調,軟件校準和補償等技術實現了對阻抗的高精度測量。通過外接模擬開關并通過軟件設計實現了量程自動轉換,并能在不同頻率下進行測量,能通過良好的人機界面來實時控制與顯示。測試結果表明,在一定范圍內測量阻抗的幅值相對誤差小于1%,實現了較高精度的阻抗測量。關鍵詞: 阻抗測量 ; AD5933 ;自動量程轉換 ;Luminay615目 錄1. 系統設計 1.1 設計要求 1.2 方案比較與論證 1.2.1 系統方案比較與論證 1.2.2 系統方案2. 系統
2、硬件電路設計 2.1 處理器電路設計 2.2 阻抗測量電路設計 2.2.1 AD5933 簡介2.2.2 AD5933工作原理2.2.4 測量電路3.軟件設計 3.1 開發環境簡介3.2 I2C通行協議簡介3.2 軟件設計 4.系統測試 4.1 測試儀器 4.2 測試方法及結果 4.3 誤差分析5.總結6.參考文獻附錄1. 系統設計1.1設計要求要求設計一個較高精度的阻抗測量系統,并實現對阻抗的自動測量。1.2方案論證與比較1.2.1系統方案比較與論證方案一:電橋法電橋法是指在橋式電路的某部分施加一電壓,通過調節電橋內部標準,一直到接于電橋電路中的平衡指示器獲得平衡指示。這時,位于電路未知端的
3、器件和電橋電路的其它元件之間存在確定關系。一般來說,電橋法是傳統阻抗測量中準確度最高方法,特別適于中值阻抗的測量。測量原理如圖1.1所示。圖1.1 電橋電路原理圖 圖1.1中Z1,Z2,Z3,Z4為電橋的四臂的阻抗,E為電橋的信號源,G為電橋的平衡指示器。當電橋橋路平衡時,Uab=0,橋路平衡指示器上無電流流過,根據基爾霍夫定律,I1=I2,I3=I4,Uca=Ucb,Uad=Ubd。 故I1Z1=I3Z3;I2Z2=I4Z4;以上兩式相比得:Z1/Z2=Z3/Z4。這就是四臂電橋平衡的條件,當橋路中有3個橋臂為已知時,則未知量才可求得。因為阻抗包含電阻分量和電抗分量,在調節已知阻抗使電橋達到
4、平衡時,至少需要調節兩個。在直流電橋中,因為各臂皆由純電阻組成,故不需要考慮相位問題。對于交流電橋,各臂阻抗都等效為電阻分量和電抗分量。為了使電橋的平衡調節簡單化,這兩個調節阻抗元件的選擇是非常重要的。最理想的調節參數是能夠分別平衡被測阻抗中的電阻分量和電抗分量。因為阻抗電橋平衡的調節和相應的計算極為復雜,所以測量操作繁瑣、費時,且測量范圍受限,這給測量帶來極大不便。方案二:諧振法諧振法是用電感和電容組成的串聯或并聯諧振電路,通過電壓表或電流表來確定諧振點,而進行阻抗測量的一種方法。這種方法常用于測量電抗成分與電阻成分之比很大,并組成串聯或并聯電路的阻抗。圖1.2為一諧振電路,當被測元件Cx未
5、連接時,電路諧振頻率為: ( C0 為諧振時可調電容值)圖1.2 諧振法測量阻抗當Cx接入后,保持f值不變,調節電容C的值使電路重新諧振,設此時C的值為C2,則Cx=C0-C2諧振法通常是測定回路的參量,而不是單個元件的參量。如果要用諧振法測定單個元件參量,只有在其它回路元件為已知或者它們對于回路的作用可以不予考慮的情況下才能實現,所以,諧振法不能用作高準確度阻抗測量,但諧振法具有寬頻帶 (1kHz至1000MHz),操作簡單,適合于高Q元器件測量。方案三:矢量電壓電流法矢量電壓電流法是將測試信號電壓加到被測件,測量信號電流流過被測件,然后由電壓和電流之比計算測試端的阻抗。這種方法可用多端測量
6、結構,在電路中消除殘余阻抗的影響同時測量電路比較簡單、量程寬。電橋電路不需要使用通常的平衡控制,所以便于高速測量且操作容易。其工作原理如圖1.3所示:圖1.3 矢量電壓電流法由精確的電阻R值便可實現阻抗的測量,容易得到下式:以上三種方案各有優缺,通過比較,結合設計要求,采用基于矢量電壓電流法的阻抗測量芯片AD5933來實現阻抗測量,能達到高精度,高穩定度的要求,且容易實現。1.3 系統方案系統通過Luminary615作為控制器,對AD5933內部寄存器讀寫從而控制阻抗測量,外接模擬開關以實現不同量程范圍內阻抗的測量。AD5933芯片內部集成了內置溫度傳感器,數模轉換器和模數轉換器,頻率發生器
7、.掃描激勵信號通過被測物后,再經過放大、濾波、模數轉換,使其變為數字信號后經過DFT變換得到阻抗實部值與虛部值,通過與Luminary615進行I2C通信便可實現數據處理最終實現阻抗測量。系統設計框圖如圖1.4所示。圖1.4 系統框圖2. 硬件電路設計2.1 處理器電路設計Luminary Micro Stellaris®系列微控制器是首款基于ARM® CortexTM-M3 的控制器,它將高性能的32 位計算引入到對價格敏感的嵌入式微控制器應用中。這些堪稱先鋒的器件,價格與8 位和16 位器件相同,卻能為用戶提供32 位器件的性能,并且所有器件都是以小型封裝的形式提供。S
8、tellaris 系列的LM3S615微控制器擁有ARM 微控制器所具有的眾多優點,如擁有廣泛使用的開發工具,片上系統(SoC)的底層結構IP 的應用,以及眾多的用戶群體。此外,控制器還采用了ARM 可兼容Thumb®的Thumb-2 指令集來降低內存的需求量,進而降低成本。Luminary615最小系統電路圖見附錄圖1.1。2.2 阻抗測量電路設計2.2.1 AD5933 芯片簡介AD5933是一種高精度阻抗數字直接變換系統,主要由一個12位、1MSPS的片上頻率發生器和一個片上模擬數字轉換器(ADC)組成。頻率發生器可以產生特定頻率的信號激勵外部復阻抗。復阻抗的響應信號由片上模數
9、轉換器ADC采樣后,再通過片上上數字信號處理器進行離散傅立葉變換(DFT)。在每個輸出頻率,DFT運算處理后都會返回一個實值(R)和虛值(I)。校正后,掃頻軌跡上的每個頻點的阻抗幅值和阻抗相對相位很容易計算。圖2.1給出了AD5933的封裝圖,表2.1給出了AD5933的引腳定義。圖2.2為AD5933內部框圖。建議在使用時把所有的電源腳9、10、11都連到一起,統一連接到電源上,同樣所有的地引腳12、13、14也都連接到一起,統一連接到系統地上。圖2.1 AD5933引腳排列表2.1 AD5933引腳定義引腳標號引腳名稱引腳描述1,2,3,7NC空引腳,沒有定義4RFB外部反饋電阻,連接在4
10、和5之間來設置接受端電流電壓轉換放大器的增益5VIN輸入到接受阻抗轉換放大器,存在VDD/2的參考地6VOUT激勵電壓輸出腳8MCLK芯片外部時鐘輸入,由用戶提供9DVDD數字電源10AVDD1模擬電源111AVDD2模擬電源212DGND數字地13AGND1模擬地114AGND2模擬地215SDAI2C數據輸入口,需要10k的上拉電阻連接到VDD16SCLI2C時鐘輸入口,需要10k的上拉電阻連接到VDD圖2.2 AD5933內部框圖2.2.2 AD5933工作原理用AD5933來實現阻抗測量,這種測量方法實質上是一種軟測量方法,即在待測變量難于直接測量的情況下,進行與之相關的易測變量的測量
11、,并依據易測變量與待測變量之間的數學關系,建立數學模型,運用各種數學計算和估計方法,實現待測變量的測量10。AD5933有一個電壓輸出引腳Vout (圖2.2)。它能發出一定頻率的正弦掃描信號對外部阻抗 Z() 進行激勵。信號通過被測樣品后,再經放大、濾波后被模數轉換器取樣,并進行離散傅立葉變換,最終計算出待測阻抗值。AD5933是通過芯片內部的DDS(直接數字合成器)來產生正弦掃描信號,該信號具有小于1Hz的分辨率。為DDS提供時鐘頻率的,既可以是外部時鐘,也可以是內置的振蕩器,可通過軟件進行設置。DDS合成的信號經過數模轉換和放大后,即可變為測試需要的掃描激勵信號。該正弦激勵信號有四個幅值
12、可供選擇,其值分別為2v,1v,400mv,200mv。而這些信號的起始頻率,頻率的增加量,和增加的次數,必須預先確定,它們都可通過軟件進行設定。掃描激勵信號通過被測物后,再經過放大、濾波、模數(AD)轉換,使其變為數字信號。在這個過程中,反饋電阻RFB的選取至關重要,必須保證輸入到AD轉換器的電壓,即Vout×(Rf / Z)×PGA(放大倍數),既不能超過模數轉換器的最大電壓,也不能太小(見圖1)。這是因為電壓太大AD轉換器則會飽和,從而使信號失真。太小信號所含信息又不能夠被充分利用。這兩種情況都會使AD轉換器不能工作在線性區域。我們必需通過選取合適的反饋電阻Rf,使V
13、out×(Rf / Z)×PGA的數值處在一個適當的范圍內以避免上述情況發生。AD轉換器輸出的數字信號,直接進入數字信號處理器進行離散傅立葉變換(DFT),傅立葉變換在每個掃描頻率點上進行,其公式如下: 其中f是掃描點的頻率,x(n)是AD轉換器輸出值,而cos(n)和sin(n)是在頻率f下由DDS計算產生。計算的結果一般是一個復數。它的實部用R,虛部用I來表示。 這些就是我們建立被測阻抗數學模型所需的易測變量值。以下是詳細計算過程。 (1) 幅值計算 阻抗測量的第一步是在每個掃頻點,計算傅里葉變換的幅值,計算公式如下: 幅值= 上式中R為存儲在地址為0x94和0x95寄
14、存器中的實數;I為存儲在地址為0x96和0x97寄存器中的虛數(注)。例如:實數寄存器中的十進制數值為907,虛數寄存器中的十進制數值為516,則幅值= =1043.506。 (2) 增益系數計算增益系數的計算是在VOUT引腳和VIN引腳之間連接一個未知阻抗,進行系統校準計算完成的。該系數被確定后便可以測量計算任何阻抗值。下面是一個計算增益系數的例子:假設輸出激勵電壓為2V(峰峰值),校正阻抗值為200K,PGA放大倍數是1倍,電流電壓轉換放大器增益電阻為200K,校正頻率為30KHz。該頻點經DFT轉換后實數和虛數寄存器中的內容為: 實數寄存器=0xF064=-3996;虛數寄存器=0x22
15、7E=8830 ; 幅值= =9692.106 增益系數= = (1/200K)/9692.106=515.819×10-12下面再給出一個已知增益系數、被測電阻的實部和虛部值計算被測電阻阻值的例子。假設被測電阻為510k,激勵頻率為30kHz,測量得到的實部和虛部值分別為1473和3507,則計算得到的模值為3802.863。 阻抗值= =1/(515.819E-12×3802.863) =509.791k。對于不同的測量頻率點增益系數是不同的,所以在不同的頻率點上要分別計算增益系數。在測量過程中可以通過限制電阻的測量范圍來優化測量性能。 (3)相角計算及校準在阻抗測量過
16、程中不僅僅要關注電阻的模值,還要知道相角的大小,相角值=arctanI/R。和模值一樣相角也要進行校準。首先對標定電阻進行測量,得到標定電阻的相角,測量電阻的實際相角等于測量計算得到的值減去標定電阻的相角值。值得注意的是測量時通過arctanI/R得到的相角是在-90º到+90º之間的,所以要根據R和I所決定的象限來把相角變換到所在象限內。如果R<0,I>0則說明在第二象限,所以計算時要把相角加上180º;如果R<0,I<0則是在第三象限,計算時要把相角減去180 º。2.2.4 測量電路電路由3.3V穩壓器Lm1117提供電源,
17、為實現不同量程范圍內阻抗的測量,外接模擬開關CD4051來實現量程轉換。電路原理圖見附錄圖1,圖2所示。由于外接模擬開關的導通電阻在300左右,通過測試,當采用運放來實現小阻抗測量時,效果并不明顯,故該電路中沒有采用運放來實現小阻抗測量。3. 軟件設計3.1編程環境介紹基于ARM公司最新內核Cotex-M3 的Luminary615處理器,可以采用IAR編程環境,IAR編程環境風格簡易方便,功能齊全,支持JTAG仿真。IAR EWARM Embedded Workbench for ARM 是IAR Systems 公司為ARM 微處理器開發的一個集成開發環境(下面簡稱IAR EWARM)。比
18、較其他的ARM 開發環境,IAR EWARM 具有入門容易、使用方便和代碼緊湊等特點。EWARM 中包含一個全軟件的模擬程序(simulator)。用戶不需要任何硬件支持就可以模擬各種ARM 內核、外部設備甚至中斷的軟件運行環境,從中可以了解和評估IAR EWARM 的功能和使用方法。3.2 I2C通行協議簡介控制AD5933是通過支持串行接口協議的I2C總線完成的,AD5933作為一個由主控設備控制的從設備連接到總線上。AD5933有一個7位串行總線從地址。當設備通電后,默認的串行總線地址為0001101(0x0D)。 圖3.1給出了I2C接口一般讀寫操作的時序圖。主設備先進行傳輸數據初始化
19、,包括:建立一個起始條件,定義串行數據線為自高位到低位傳輸,串行時鐘線保持為高電平時,數據流傳送。從設備響應起始條件,傳送一個8位數據,其中包括7位從地址和一個決定數據傳輸方向的讀寫控制位,即數據是由從設備讀取或寫入(0:寫入,1:讀取)。圖3.1 I2C控制時序圖 在第九個時鐘脈沖的前一個低電平時刻,從設備將數據線的電位拉低(稱為應答信號)并在該時鐘脈沖的高電平階段保持為低。所選設備等待數據進行讀取或寫入,而總線上的其他所有設備保持空閑狀態。如果讀/寫位為0,那么主機內容寫入從器件。如果讀/寫位為1,主機由從器件讀取數據。串行總線上的數據傳送在九個時鐘脈沖后傳送一個序列,包括八位數據位,一個
20、應答信號位。這數據可以是主設備發出的,也可以使從設備發出的。數據線上的數據傳送是在時鐘信號為低并保持穩定的時刻進行的,因為當時鐘信號為高電平時,若一個上升沿出現,則該信號為停止信號。如果該操作是一個寫操作,從地址的第一數據字節,是一個指令字節。該字節會通知從器件接下來的工作是什么。它可能是一個指令,告訴從器件進行塊寫操作;也可以是一個寄存器地址,告訴從器件隨后的數據將寫入什么地方。因為數據流被定義為一個單方向的讀/寫位,從設備在讀操作事是不可能向其發送指令的。在執行讀操作之前,有時需要先進行寫操作告訴從存儲器讀操作的類型,或數據讀取的地址。當所有字節數據讀或寫完畢后,會建立停止條件。寫模式下,
21、在第十個時鐘脈沖聲明停止條件期間,主設備將數據線電位拉高。讀模式下,在第九個時鐘脈沖之前的低電平段,主設備釋放數據線的占用,但從設備并不會把它拉低,這就是所謂的非應答。在第十個時鐘脈沖之前的低電平段,主設備把數據線電位拉低,然后在第十個時鐘脈沖到來時又將其拉高,以形成停止條件。3.3 軟件設計AD5933是I2C接口的器件,滿足I2C控制條件,LM3S615通過I/O口模擬I2C協議實現對AD5933的讀寫操作,通過參數修正便可以得到正確的結果,通過對CD4051的控制,實現了量程自動轉換。系統主程序設計流程圖如圖3.2所示,圖3.3中給出單個阻抗測量軟件流程圖。測量后得到的實部和虛部結果都是
22、十六進制表示。通過I2C通信將數據傳至Luminary615進行處理并由Luminary615控制,輔以良好的人機界面,可方便操作。具體程序詳見附錄3.圖3.2 系統設計流程圖寫入頻率掃描參數到相應寄存器(1) 起始頻率寄存器(2) 掃描頻率點數(3) 頻率增量設置AD5933進入標準模式寫入開始頻率命令到控制寄存器初始化系統在足夠的建立時間之后開始頻率掃描從實部和虛部寄存器中讀取數據測量結束寫入跳到下個頻率或者重復當前頻率命令到控制寄存器NY開始DFT是否完成?頻率掃描完成?NY圖3.3 單個阻抗測量過程軟件流程圖4. 系統測試4.1測試儀器數字萬用表:UT39A.4.2測試方法與結果在特定
23、頻率下,將電阻、電容等串并聯接到測試端,從液晶讀出阻抗幅值與相位并記錄下來,再通過數字外用表測量其值并計算出阻抗實際值。比較測量值與實際值的大小,計算出誤差并進行分析。通過測試,部分結果如表4.1、表4.2及表4.3所示,此處測試激勵源頻率為2KHZ,激勵信號幅值設定為2V。誤差計算公式為:表1 電阻測量結果實際阻抗()測量阻抗()誤差(%)5095426.4837096399.8731.13K1.141K0.9325.54K5.579K0.7119.99K10.0710.00817.6617.6190.23256K56.089K0.159100.6K99.894K0.702554K555.0
24、00K0.181954K954.009K0.0011.93M1.937M0.4054.70M4.646M1.1285.68M5.645M0.6189.71M9.6530.589備注,測量電阻時無相位誤差。表4.2電阻與電容串聯測量結果理論值測量值誤差(%)阻抗相位(°)阻抗相位(°)阻抗相位電阻值2.1K6K-406.25K-414.172.50電容值13nF電阻值74K84.66K-2976.8K-279.286.89電容值2nF電阻值385K454.29K-32431.02K-315.123.13電容值330Pf電阻值4M4.34M-294.20M-273.236.89
25、電容值35pF表4.3電阻與電容并聯測量結果理論值測量值誤差(%)阻抗相位(°)阻抗相位(°)阻抗相位電阻值2.1K1.98K-191.8K-179.0910.52電容值13nF電阻值74K35.88K-6033.15K-577.615電容值2nF電阻值385K204.4K-57199.36K-532.467.02電容值330Pf電阻值4M1.56M-671.53M-621.927.46電容值35pF4.3 誤差分析測量結果表明,對電阻的測量是比較精確的,大電阻范圍內精度在1%以內,由于測量小電阻時模擬開關的導通電阻較大,故測量結果誤差較大。另外,元器件的阻值本身便有一定誤
26、差,在測量電容時尤其能體現出。電阻與電容的串并聯測量結果表明,阻抗幅值誤差在10%以內,相位誤差也從2%10%不等。一方面電容的器件誤差本身比電阻大,不同大小電容間誤差大小也不同,另一方面頻率對電容的影響大,對結果也有影響。在電感測量中,由于實驗室電感值較小,阻抗值處在小范圍內,測量誤差較大。5. 結論該設計采用阻抗測量芯片AD5933實現阻抗測量,外圍電路簡單,測試結果表明,通過Luminary615微控制器控制AD5933測量精度高,穩定性好。設計中,標定阻抗的選取對精度有很大影響,且軟件算法對測量值的校準也非常重要。該設計實現了阻抗量程的自動轉換,總體測試良好。6.參考文獻12 崔傳金,
27、郭志強,趙楠,左月明.用AD5933實現電導率測量的研究, 機電工技術,2008.37(4)3 高吉祥.全國大學生電子設計競賽培訓系列教程M.北京:電子工業出版社,2007.12附錄一 元器件清單附表1元件型號標號數量電容104C1, C3, C5, C314電解電容100UC21電解電容10UC41磁珠L1, L32發光二極管LEDL21插針P1, P4 ,P2, P3, P55電阻300R11電阻10KR2, R32電阻510R41電阻200R51電阻1KR61電阻10KR71電阻100KR81電阻220KR91電阻1MR121芯片Lm1117U11芯片CD4051U21芯片AD5933U
28、61附錄二 原理圖以及PCB圖附圖1 AD5933 pack板原理圖附圖2 AD5933阻抗測量原理圖附圖3 阻抗測量底座PCB底層附圖4 阻抗測量底座PCB絲印層附圖5 AD5933pack板 PCB頂層附圖6 AD5933pack板 PCB絲印層附圖7 Luminary615 最小系統PCB頂層圖附圖8 Luminary615 最小系統PCB底層圖附圖9 Luminary615 最小系統圖附錄三 程序清單/*文件名:xiangwei.c*功能:通過LM3S615實現對AD5933的控制,實現阻抗測量 *說明:AD5933是I2C接口的,LM3S通過模擬I2C接口實現對AD5933的控制。
29、*/#include "VI2C_LM3S101.H"#include "hw_ints.h"#include "hw_memmap.h"#include "hw_types.h"#include "gpio.h"#include "interrupt.h"#include "sysctl.h"#include "12864.h"#include "ZLG7290.h"#include "math.h&qu
30、ot;#include "7290moni.h"#ifndef uchar #define uchar unsigned char#endif/ I2C引腳的定義。#define SDA GPIO_PIN_3 / 模擬I2C數據傳送位#define SCL GPIO_PIN_2 / 模擬I2C時鐘控制位#define SDAA GPIO_PIN_5 /模擬I2C數據傳送位#define SCLL GPIO_PIN_4 /模擬I2C時鐘控制位#define AD5933_addr 0x1A /從機地址#define SET_POINT 0xB0 /0xB0命令表示寫入地址un
31、signed char j=0;/-/ 函數原形:void delays(unsigned int n)/ 功能描述:延時數量為n個指令周期。/ 參數說明:unsigned int n,將要延時的時間數。/ 返回值:無/-void delays(unsigned int n)/ 軟件延遲函數 volatile int i; for(;n>0;n-) for(i=0;i<10;i+); /-/ 函數原形:InitAD5933(void)/ 功能描述:AD5933初始化函數。/ 參數說明:無。/ 返回值:無/-void InitAD5933(void) ISend(AD5933_add
32、r,0x82,0x00); /start frequency起始頻率 delays(5); ISend(AD5933_addr,0x83,0xFA); /1kHz delays(5); ISend(AD5933_addr,0x84,0x05); delays(5); ISend(AD5933_addr,0x85,0x00); /increment frequency頻率增量 delays(5); ISend(AD5933_addr,0x86,0x31); /500Hz delays(5); ISend(AD5933_addr,0x87,0x81); delays(5); ISend(AD593
33、3_addr,0x88,0x01); /測量點數 delays(5); ISend(AD5933_addr,0x89,0xFF); delays(5); ISend(AD5933_addr,0x80,0xB1); /標準模式 delays(5); ISend(AD5933_addr,0x81,0x00); /選著內部時鐘 delays(5); ISend(AD5933_addr,0x81,0x10); /復位AD5933 delays(5); ISend(AD5933_addr,0x81,0x00); delays(5); ISend(AD5933_addr,0x80,0x11); /初始化頻
34、率 delays(5); ISend(AD5933_addr,0x8A,0x03); /等待建立周期數 delays(5); ISend(AD5933_addr,0x8B,0xFF); delays(5); ISend(AD5933_addr,0x80,0x21); /啟動頻率掃描 delays(5); /-/ 函數原形:void display(unsigned int re,unsigned int im)/ 功能描述:顯示函數。/ 參數說明:unsigned int re,unsigned int im ,實部和虛部/ 返回值:無/-void display(signed int re,
35、signed int im) unsigned char a11,y=0,x=0,i=0; signed int revalu=0,imvalu=0; float valu=0; double xishu=0,regist; long int ll; revalu=re; imvalu=im; if(revalu&0x8000) /把帶符號的換算成無符號整數 revalu=(revalu-0x10000)*(-1); x=1; if(imvalu&0x8000) /把帶符號的換算成無符號整數 imvalu=(imvalu-0x10000)*(-1); y=1; valu=sqr
36、t(imvalu*imvalu+revalu*revalu); /計算幅值 switch(j) case 0: if(valu<13000)&&(valu>8000) xishu=(1/(96.86810); /計算系數 xishu=(1/(xishu*valu)*100000+0.5; /計算阻值 ll=xishu-250; i=1; break; case 1: if(valu<13000)&&(valu>1350) xishu=(1/(13.33726); /計算系數 xishu=(1/(xishu*valu)*1000000+0.
37、5; /計算阻值 ll=xishu-100; i=1; break; case 3: if(valu<12000)&&(valu>1050) xishu=(1/(10.398994); /計算系數 xishu=(1/(xishu*valu)*10000000+0.5; /計算阻值 ll=xishu; i=1; break; case 4: if(valu<12000)&&(valu>1000) xishu=(1/(96.736596); /計算系數 xishu=(1/(xishu*valu)*10000000+0.5; /計算阻值 ll=
38、xishu; i=1; break; case 5: if(valu<2130)&&(valu>1060) xishu=(1/(21.006); /計算系數 xishu=(1/(xishu*valu)*100000000+0.5; /計算阻值 ll=xishu; i=1; break; case 6: if(valu<4800)&&(valu>800) xishu=(1/(96.527914); /計算系數 xishu=(1/(xishu*valu)*100000000+0.5; /計算阻值 ll=xishu; i=1; break; d
39、efault: break; if(i=1) /滿足條件則顯示阻值,相位 a0=ll/10000000+48; a1=ll%10000000/1000000+48; a2=ll%1000000/100000+48; a3=ll%100000/10000+48; a4=ll%10000/1000+48; a5='.' a6=ll%1000/100+48; a7=ll%100/10+48; a8=ll%100%10+48; a9='K' a10=0; LCD_WriteStr(4,2,a); regist=ll; if(y=0)&&(x=0) /計算
40、并顯示 atan2(float y, float x); 求y/x(弧度表示)的反正切值 xishu=atan2(imvalu,revalu)*180/3.14+0.5; if(y=1)&&(x=0) /計算并顯示 atan2(float y, float x); 求y/x(弧度表示)的反正切值 xishu=atan2(imvalu*(-1),revalu)*180/3.14-0.5; xishu=xishu+180; if(y=1)&&(x=1) /計算并顯示 atan2(float y, float x); 求y/x(弧度表示)的反正切值 xishu=ata
41、n2(imvalu,revalu)*180/3.14+0.5; xishu=xishu+180; if(y=0)&&(x=1) xishu=atan2(imvalu,(revalu*(-1)*180/3.14-0.5; /計算并顯示 atan2(float y, float x); 求y/x(弧度表示)的反正切值 xishu=xishu+360; if(ll<1000)&&(ll>400) /相位誤差修正 ll=xishu-89.5; if(ll<10000)&&(ll>=1000) ll=xishu-(-0.001223
42、7*regist+91.46)+0.5; if(ll<100000)&&(ll>=10000) ll=xishu-(-0.0001515*regist+91.016)+0.5; if(ll<1000000)&&(ll>=100000) ll=xishu-(-0.0000179*regist+91.806)+0.5; if(ll<=2000000)&&(ll>=1000000) ll=xishu-(-0.000009675*regist+93.789)+0.5; if(ll<12000000)&&a
43、mp;(ll>2000000) ll=xishu-(-0.00000256*regist+95.444)+0.5; if(ll<0) /判斷正負 ll=ll*(-1); a0='-' a1=ll/100+48; a2=ll%100/10+48; a3=ll%100%10+48; a4=0; LCD_WriteStr(4,3,a); else a0=' ' a1=ll/100+48; a2=ll%100/10+48; a3=ll%100%10+48; a4=0; LCD_WriteStr(4,3,a); /-/ 函數原形:ReadData(unsigned char addr)/ 功能描述:讀數據函數。/ 參數說明:unsigned char addr 子地址/ 返回值:數據/-unsigned int ReadData(unsigned char addr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國滑板鞋齒輪行業投資前景及策略咨詢研究報告
- 2025年中國DVD5母盤行業投資前景及策略咨詢研究報告
- 商業空間衛生管理優化方案
- 教育技術創新助力遠程教育發展
- 教育政策與提高教育公平性探討
- 教育技術創新實驗室AI技術實踐分享
- 深度解析虛擬現實教育在各學科的應用
- 教育心理學在跨文化教育中的應用研究
- 海員培訓實操課件
- 煤礦地面安全培訓
- 2025-2030中國眼底照相機行業市場發展趨勢與前景展望戰略研究報告
- 2024年深圳市大鵬新區區屬公辦中小學招聘教師真題
- 緬甸語教學與學習作業指導書
- 人教版小學語文四年級下冊作文范文2
- 大學語文試題及答案琴
- 紅十字會資產管理制度
- 2025屆四川成都錦江區數學七下期末質量檢測試題含解析
- 無人機飛行器結構與性能試題及答案
- 廣東深圳2025年公開招聘農村(村務)工作者筆試題帶答案分析
- 《蔚來汽車》課件
- 建筑工地安全應急預案
評論
0/150
提交評論