基于MFC和單片機的智能電壓表_第1頁
基于MFC和單片機的智能電壓表_第2頁
基于MFC和單片機的智能電壓表_第3頁
基于MFC和單片機的智能電壓表_第4頁
基于MFC和單片機的智能電壓表_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、武漢理工大學虛擬儀器課程設計說明書目錄緒論1I.虛擬儀器的組成1II.虛擬儀器的特點11方案確定21.1設計要求21.2方案確定32硬件模塊32.1系統(tǒng)總流程圖32.2 CD4051多路選擇開關32.3 PGA 202程控放大器42.4 AD7705模數(shù)轉換器53單片機程序93.1 主函數(shù)93.2 AD7705相關程序103.3 PGA放大倍數(shù)選擇程序123.4 CD4051通道選擇函數(shù)123.5 串口函數(shù)123.6 其它子函數(shù)134上位機程序135元件清單146小結15參考文獻16緒論虛擬儀器(virtual instruction,簡稱為VI)是虛擬技術的一個重要組成部分。它是由

2、計算機技術、測量技術和微電子技術高速發(fā)展而孕育出的一項革命性技術。這一創(chuàng)新使得用戶能夠根據(jù)自己的需要定義儀器功能,而不像傳統(tǒng)儀器那樣受到儀器廠家的限制。虛擬儀器的出現(xiàn)徹底改變了傳統(tǒng)的儀器方法,開辟了測控技術的新紀元。20 世紀80 年代中期,美國國家儀器公司(NationalInstrument,簡稱為NI) 首先提出的“軟件就是儀器”(TheSoftware is the Instrument)這一概念便是對虛擬儀器最本質的論述和表達。正是這個概念為用戶定義、構造自己的儀器系統(tǒng)提供了完美的解決途徑。   

3、;I.虛擬儀器的組成     虛擬儀器由硬件和軟件兩部分構成。硬件由計算機和I/O 接口設備組成,按功能可分為3 個主要部分:信號輸入:完成信號的采集、放大和A/D 轉換,將被測信號變成標準信號(一般用電壓信號)以利于計算機處理。對于多量程采集卡,只需根據(jù)傳感器輸出選擇量程即可。信號輸出:將計算機產生的數(shù)字信號經(jīng)過信號調理轉換成適合于被測系統(tǒng)的激勵信號。這兩部分由I/O 接口設備(如:數(shù)據(jù)采集卡、GPIB 總線儀器、VXI 總線儀器、PXI 總線儀器和串口系統(tǒng)等)完成。信號處

4、理:利用計算機對所采集的信號進行分析、顯示和存儲等,PC 機是硬件平臺的核心。軟件是虛擬儀器的核心,儀器的功能由用戶在軟件平臺上編程實現(xiàn)。目前最常用的軟件開發(fā)工具是美國NI 公司的LabWindows/CVI 2 和LabVIEW。NI 公司的虛擬儀器平臺LabVIEW 簡化了虛擬儀器系統(tǒng)的開發(fā)過程,縮短了系統(tǒng)開發(fā)和調試的周期。即使是個編程的新手,也能用全圖形化方式編程的LabVIEW 很快地”畫”出程序來。因為LabVIEW 是真正面向科學家和工程師的編程語言。II.虛擬儀器的特點  

5、0;   與傳統(tǒng)儀器相比,虛擬儀器具有下面一些特點:(1)虛擬儀器的軟硬件都具有開放性、模塊化、互換性、可重復使用等特點。一般運行于Windows 環(huán)境,可以同時啟用多個應用,而且用戶可以根據(jù)需要靈活組合,大大提高了使用效率,克服了傳統(tǒng)儀器功能專一限制很死的缺點。(2)大大地降低了測試成本。傳統(tǒng)測量多采用硬件設備或儀器,這些設備本身的制造成本就很高,在實驗室或研究所內使用還可以。但是,在野外、工作現(xiàn)場,設備的搬運、維護費用很高,使測試成本大大地提高,有時甚至無法實現(xiàn)。而虛擬儀器是借助于計算機以軟件為核心,隨著計算機的微型化,攜帶非常方便,有人形象地說“把

6、實驗室拎著走”。由于所有信號有一個公用的量化、分析和處理通道,減少了復雜的開關矩陣和信號電纜。因此,采用虛擬儀器既省去了大量設備硬件的制造成本,也減少了搬運維護等費用,對于經(jīng)濟條件較緊張的我國來說更具有現(xiàn)實意義。(3)使用效率高。傳統(tǒng)儀器都是自成系統(tǒng)、功能單一、體積龐大、儀器繁多,而虛擬儀器只需要一臺計算機,其它必須的硬件如A/D、D/A 等都是固定在計算機插槽上的,體積小,使用起來非常方便。虛擬儀器是一種軟件化的測量裝置,軟件的靈活性與復用性使用戶可以根據(jù)自己的需要定義測量裝置,也可以靈活地組合儀器。模塊化和規(guī)范化的設計為虛擬儀器組建自動測試系統(tǒng)提供了極大的方便。資源可重復使用,做

7、完實驗后,PC 機又可轉入它用,不僅虛擬儀器工作臺的PC 機可以一機多用,而且即使實驗室也可以一室多用,節(jié)約了設備資源,提高了利用率,可緩解高校實驗室空間不足的局面。(4)功能更強大,處理能力更強。信號處理理論的不斷完善和計算機運算能力的大大提高,使虛擬儀器具有強大的數(shù)據(jù)處理能力。這就是通常所說的“一臺有采集卡的計算機加上用戶自己開發(fā)的VI,就具有了幾個實驗室儀器的測試能力”。(5)遠程訪問和交互式操作。通過InterNET 真正實現(xiàn)軟硬件資源的共享。這樣研究人員可不到現(xiàn)場就能高效地進行實驗,而把工作重點放在實驗結果的處理分析上,大大提高了科技人員的工作效率,降低

8、了勞動強度。將多種測試集于一體的方法縮短了測試時間,提高了測試速度。(6) 測量精度更高。傳統(tǒng)儀器的操作件都是物理實體,操作次數(shù)多了可能會出現(xiàn)滑絲、指示不準等機械故障,導致測量誤差大。而虛擬儀器主要是軟件完成,操作簡單,受電纜長度、阻抗和儀器修正因素的影響較小,提高了測量的準確性和可重復性,測量精度也會相應提高。1方案確定1.1設計要求1.設計一個智能化的電壓采集、測量、監(jiān)控系統(tǒng),該系統(tǒng)以單片機和虛擬儀器技術為核心并具有如下功能:(1).能對0-5V范圍變化的模擬信號進行連續(xù)采樣,并在PC機中進行實時顯示,采樣頻率不低于10Hz;(2).具有數(shù)據(jù)記錄功能,能夠將采集到的數(shù)據(jù)以文件形式

9、保存在PC機中; (3).能對系統(tǒng)存在的隨機誤差和系統(tǒng)誤差進行校正;(4).系統(tǒng)具有自動量程選擇功能,量程至少4檔可調;(5).具有自動電壓監(jiān)控功能,當采樣值大于4V時,點亮報警指示燈。2.要求完成的主要任務:(1).合理設計系統(tǒng)總體方案,并畫出方框圖;(2).正確選擇A/D和PGA,要求系統(tǒng)測量最大量程時, 測量分辨率達到1mV以內,最小量程時測量分辨率達到1uV以內;(3).要求系統(tǒng)具有隨機誤差和系統(tǒng)誤差校正功能,具有自動量程選擇功能;(4).PC機軟件由LabVIEW或C/C+編程實現(xiàn),要求操作方便,界面美觀;(5).設計說明書應詳細說明設計思路、特點和電路工作原理。1.2方案確定本次設

10、計是基于單片機和MFC編程的智能數(shù)字電壓表。使用CD4051作為多路選擇開關,用于誤差校正。 PGA202可編程放大器,用于自動量程的切換時的電壓放大。單片機采用STC90C516RD+,用于對電路板上各個芯片的控制。上位機界面用MFC編程,主要實現(xiàn)了采集電壓的顯示,超量程報警和數(shù)據(jù)存儲功能。2硬件模塊2.1系統(tǒng)總流程圖AD770516位PGA202程控放大CD40518路選擇PC機單片機 輸入電壓總的電路連接圖請看附圖1。2.2 CD4051多路選擇開關CD4051引腳圖:圖2.1 CD4051引腳圖引腳功能描述: A0A2: 地址端 I0/O0I7/O7: 輸入輸出端 INH: 禁止端 O

11、/I: 公共輸出/輸入端 VDD: 正電源 VEE: 模擬信號地A0A2地址線真值表:表2.1 CD4051真值表2.3 PGA 202程控放大器PGA 202芯片,其放大增益為1,10,100,1000滿足具有四檔量程,模擬輸入電壓的最大值為5V,對應的量程分別為5000mV檔,500mV檔,50mV檔,5mV檔。PGA引腳圖如下:圖2.2 PGA202引腳圖PGA202引腳介紹:A0、A1:增益數(shù)字選擇輸入端+VCC-VCC:+15V和-15V電源+VIN、-VIN:同相和反相輸入端Filter A、Filter B:輸出濾波端VOUT Sence:輸出檢測端與輸出端相接Digital C

12、omnon:數(shù)字公共地端VOS Adjust:偏置調整端VREF:參考電壓輸入端VOUT:輸出端將A0,A1分別接到單片機的P1.0,P1.1腳,通過單片機程序控制,輸出高/低電平來控制其增益。來實現(xiàn)自動量程轉換功能。1倍對應5V,依次,1000倍對應5mv檔。由于PGA 202供電電源為+/-15V的差分電源,而系統(tǒng)供電電源為5V。故采用A0515S-2W來放大電壓。2.4 AD7705模數(shù)轉換器本次設計精度的要求為:最大量程05V時, 測量分辨率達到1mV以內,最小量程05mV時測量分辨率達到1uV以內,根據(jù)這一要求可知ADC至少要有13位。AD7705為16位,且具有分辨率從、寬動態(tài)范圍

13、、自校準、低功耗、優(yōu)良的抗造性能等優(yōu)點,所以選擇AD7705,其引腳圖如圖。AD7705的內部結構主要包括由緩沖器和增益可編程放大器(PGA)組成的前端模擬調節(jié)電路、-調制器、可編程數(shù)字濾波器等部件。片內的增益可編程放大器PGA可選擇1、2、4、8、16、32、64、128八種增益之一,將不同擺幅范圍的各類輸入信號放大到接近A/D轉換器的滿標度電壓再進行A/D轉換,有利于提高轉換質量。當電源電壓為5 V,基準電壓為2.5 V時,器件可直接接受從020 mV至02.5 V擺幅范圍的單極性信號和從0±20 mV至0±2.5 V范圍的雙極性信號,負極性電壓相對AIN()引腳而言,

14、這兩個引腳應偏置到恰當?shù)恼娢簧?。不允許在器件的任何引腳施加相對于GND為負電壓的信號。圖2.3 AD7705引腳圖AD7705的引腳介紹:SCLK:串行接口時鐘輸入端。MCLK IN : 芯片工作時鐘輸入??梢允蔷д窕蛲獠繒r鐘,其頻率范圍為500kHz 到5MHz。MCLK OUT:時鐘信號輸出。當用晶振作為芯片的工作時鐘時,晶振必須接在MCLK IN 和MCLKOUT之間。如果采用外部時鐘,MCLK OUT可用于輸出反相時鐘信號,以作為其他芯片的時鐘源。該時鐘輸出可以通過編程來關閉。CS:片選端,低電平有效。RESET: 芯片復位端口。當該端為低電平時,AD7705芯片內的接口邏輯、自校準

15、、數(shù)據(jù)濾波器等均為上電狀態(tài)。AIN1( + ) 、AIN1( - ):分別為第1 個差分輸入通道的正端與負端。AIN2( + ) 、AIN2( - ):分別為第2 個差分輸入通道的正端與負端。REF IN( + )、REF IN( - ):分別為參考電壓的REF IN( + ) 、REF IN( - ):分別為參考電壓的正端與負端。DIN :串行數(shù)據(jù)輸入端。DOUT:轉換結果輸出端。DRDY:A/ D 轉換結束標志。DRDY為低電平,表明數(shù)據(jù)寄存器中有新的數(shù)據(jù)數(shù)據(jù)可用。DRDY為高電平,表示數(shù)據(jù)寄存器數(shù)據(jù)在更新,這時不能讀數(shù)據(jù),避免在數(shù)據(jù)寄存器更新的過程中讀出不可靠的數(shù)據(jù)。AD7705 的片內

16、寄存器1.通信寄存器可讀/ 寫的8 位寄存器,上電復位后缺省值為零,對該寄存器執(zhí)行寫操作,決定下一次操作是寫還是讀,同時決定這一次讀操作或寫操作針對哪個寄存器,并控制對哪一個輸入通道進行采樣也就是說所有的寄存器(包括通信寄存器本身和輸出數(shù)據(jù)寄存器) 進行讀操作之前必須首先寫通信寄存器,然后才能讀選定的寄存器。通信寄存器各位定義如表2.2所示表2.2通信寄存器0/DRDYRS2RS1RS0R/WSTBYCH1CH0 0/DRDY :寫操作時此位必須為0,以保證對通信寄存器寫操作的順利完成。若將“1”寫到此位,則后續(xù)的各位將不能被寫入該寄存器。讀操作時表示數(shù)據(jù)寄存器數(shù)據(jù)是否準備好。0/DRDY與引

17、腳定義相同,即低電平時數(shù)據(jù)寄存器中的數(shù)據(jù)可讀,高電平時數(shù)據(jù)寄存器數(shù)據(jù)在更新,不能讀。RS2RS0:寄存器選擇位。用于選擇下次操作要訪問的8個片內寄存器之一,如表2.3所示表2.3 寄存器選擇RS2 RS0 RS0 寄存器 寄存器位數(shù) 0 0 0 通信寄存器 8位 0 0 1 設置寄存器 8位 0 1 0 時鐘寄存器 8位 0 1 1 數(shù)據(jù)寄存器 16位 1 0 0 測試寄存器 8位 1 0 1 無操作 1 1 0 偏移寄存器 24位 1 1 1 增益寄存器 24位 R/W:讀/ 寫選擇,指出下次對寄存器的操作是讀還是寫。 “1”表示下一次是讀操作。 “0”表示下一次是寫操作。STBY :等待模

18、式STBY =“1”時器件處于等待或掉電狀態(tài),此時電流約10A。STBY =“0”時為正常工作模式。CH1、CH0:選擇輸入通道。CH1CH0=00 選擇通道1, CH1CH0=01 選擇通道22.設置寄存器設置寄存器也是一個可讀/寫的8位寄存器,用于設置工作模式、校準方式和輸入增益等。在通信寄存器選擇后才能進行讀或寫。設置寄存器的位定義如表 2.4所示表2.4設置寄存器MD1MD0G2G1G0B/UBUFFSYNCMD1、MD0:工作模式選擇位,用于選擇工作模式,具體含義見表2.5。表2.5工作模式選擇MD1MD0工作模式功能00正常工作模式轉換器進行正常A/D轉換01為自校準模式一次完成零

19、標度和滿標度校準10零刻度校準零刻度系統(tǒng)校準,零基準電壓由外部提供G2、G1、G0:增益選擇位,設置PGA的增益如表2.6所示表2.6增益選擇G2G1G0增益設置0001001201040118100161013211064111128B/U:單/ 雙極性工作選擇位 “0”表示選擇雙極性。 “ 1”表示選擇單極性。BUF:輸入緩沖控制位 “0”表示無緩沖, “1”表示緩沖器傳入通道,可處理高阻抗信號源。FSYNC: 濾波器同步位。該位為“1”時濾波器的節(jié)點、控制邏輯、校準邏輯等復位,為“1”正常處理數(shù)據(jù)。3.時鐘寄存器時鐘寄存器是一個可讀/寫的8 位寄存器,用于設置有關AD7705運行頻率參數(shù)

20、和A/D轉換輸出更新速率。時鐘寄存器的位定義如表2.7。表2.7時鐘寄存器ZEROZEROZEROCLKDISCLKDIVCLKFS1FS0ZERO:必須在這些位上寫零,以確保TM7705正確操作。否則,會導致器件的非指定操作。CLKDIS主時鐘禁止位。邏輯 “1”表示阻止主時鐘在MCLKOUT引腳上輸出。禁止時,MCLKOUT輸出引腳處于低電平。 CLKDIV:時鐘分頻器位,CLKDIV置為邏輯1時,MCLKIN引腳處的時鐘頻率在被AD7705使用前進行2分頻;CLKDIV置為邏輯0,則MCLKIN引腳處的頻率實際上就是器件內部的頻率。 CLK:時鐘位。CLK位

21、應根據(jù)TM7705的工作頻率而設置。如果轉換器的主時鐘頻率為2.4576MHz(CLKDIV=0)或為4.9152MHz(CLKDIV=1),CLK應置“0”。如果器件的主時鐘頻率為1MHz(CLKDIV=0)或2MHz(CLKDIV=1),則該位應置 “1”FS1、FS0:濾波器選擇位,與CLK一起決定器件的輸出更新率,在MCLK IN的時鐘頻率正確和CLKDIV位的設置也恰當?shù)那闆r下,輸出更新率如表2.8所示。表2.8FS1、FS0與CLK決定的器件輸出更新率CLKFS1FS0輸出更新率(Hz)0002000125010100011200100501016011025011150

22、04.數(shù)據(jù)寄存器16位只讀寄存器,由兩個8位的存貯單元組成,用于存放最新的轉換結果。輸出時MSB在前,如果接收微控制器需要LSB在前,例如8051系列,讀取的時候應該分兩次讀,每次讀出8位分別倒序,而不是整個16位倒序。AD7705需接入外部晶振,采用2.4576MHz的頻率。3單片機程序3.1 主函數(shù)#include <reg51.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned int/*-AD7705引腳聲明-*/sbit led = P01;/led閃爍,說明程序和AD770

23、5正常工作sbit alarm= P02;/alarm變亮,說明測試電壓超過4Vsbit DRDY = P03;sbit CS = P04;sbit SO = P05;sbit SCK = P06;sbit SI = P07;sbit PGA0 = P10;sbit PGA1 = P11;float WC_b;float WC_k;/*-子函數(shù)聲明-*/void delay(uint z);/延時void AD_writeByte(uchar x);/寫一個字節(jié)函數(shù)uint Read(void);/讀轉換數(shù)據(jù)函數(shù)void Init_AD7705(void);/AD7705初始化函數(shù)void I

24、nit_UART(void);/串口初始化函數(shù)void ChannelChose(uchar);/選擇CD405通道void GainSelect(uchar);/選擇PGA增益void DelayUs2x(uchar);void DelayMs(uchar); /*-主函數(shù)-*/void main()uint a;float b;Init_UART();Init_AD7705();ChannelChose(0x00);GainSelect(0);while(1)if(DRDY = 0)AD_writeByte(0x38);led = led;if(DRDY = 0)/等待DRDY變低a =

25、Read();if(a>52400)alarm = 0;/led燈已先接高電平elsealarm = 1;b = 5*(float)a/65536);printf("%f", b);DelayMs(5);由于PGA放大倍數(shù)過大時會導致程序跑飛,所以在總程序中并未加入自動量程切換的功能,自動量程切換功能程序將在分程序中講解。另外,由于這次設計編寫的誤差校正功能并未達到想要的效果,所以也未加入。3.2 AD7705相關程序初始化程序:void Init_AD7705(void)AD_writeByte(0x20);/AD7705初始化-讀第1通道AD轉換值,寫時鐘寄存器A

26、D_writeByte(0x04);/改刷新頻率為20不分頻AD_writeByte(0x10);/下寫setup寄存器AD_writeByte(0x44);/delay(3);往AD7705寫入一個字節(jié)子程序:void AD_writeByte(uchar x)/寫一個字節(jié)子程序uchar i;CS = 0;SCK = 1;for(i=0; i<8; i+)SCK= 0;/delay(1);SI = (bit)(x&0x80);/delay(1);SCK = 1;/delay(1);x<<=1;SI = 1;/SO = 1;CS = 1;從AD7705讀兩個字節(jié)數(shù)據(jù)

27、子程序:uint Read(void)/讀數(shù)據(jù)子程序uchar i;uint w;w = 0;CS = 0;SCK = 0;for(i=0; i<16; i+)SCK = 0;w<<=1;if(SO = 1)w |= 0x01;SCK = 1;CS = 1;return w;3.3 PGA放大倍數(shù)選擇程序void GainSelect(uchar x)switch(x)case 0: PGA1 = 0;PGA0 = 0;break;case 1: PGA1 = 0;PGA0 = 1;break;case 2: PGA1 = 1;PGA0 = 0;break;case 3: P

28、GA1 = 1;PGA0 = 1;break;default:break; PGA的A1和A0腳需接單片機P1.1和P1.0。3.4 CD4051通道選擇函數(shù)void ChannelChose(uchar x)P2 = x;CD4051的地址線C、B、A需對應接單片機P2.2、P2.1、P2.0。3.5 串口函數(shù)串口初始化函數(shù):void Init_UART(void)SCON = 0x50;/模式1,8-bit UART,使能接收TMOD |= 0x20; /定時器,模式2,8-bit自動重裝值計數(shù)TH1 = 0xFD;/初值0xFD,晶振11.0592時,波特率9600 TI=1;/用系統(tǒng)自

29、帶的printf函數(shù),TI必須等于1,否則無法發(fā)送,不能 TR1=1;/使能定時器1 ES=1; /串口中斷使能 EA=1; /全局中斷使能串口中斷函數(shù):void UART_SER(void) interrupt 4 if(TI)/發(fā)送成功TI置位 /TI=0;/用系統(tǒng)的printf的時候,如果又用到中斷的話,那么這句話就得屏蔽,否/則無法發(fā)送 3.6 其它子函數(shù)兩個延時函數(shù):void DelayUs2x(uchar t)while(t-);大概延時2t微秒。void DelayMs(uchar t)while(t-)DelayUs2x(245);DelayUs2x(245);大概延時1Ms,以上兩個函數(shù)都是在11.0592M晶振下正常延時。4上位機程序上位機

溫馨提示

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

評論

0/150

提交評論