嵌入式-電壓采集系統(tǒng)_第1頁(yè)
嵌入式-電壓采集系統(tǒng)_第2頁(yè)
嵌入式-電壓采集系統(tǒng)_第3頁(yè)
嵌入式-電壓采集系統(tǒng)_第4頁(yè)
嵌入式-電壓采集系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要針對(duì)傳統(tǒng)的有線方式檢測(cè)、采集、傳輸中節(jié)點(diǎn)分散需要大量布線等問題,本文介紹了一種基于CC2530和數(shù)字壓力傳感器的電壓數(shù)據(jù)采集系統(tǒng)。首先介紹了CC2530結(jié)構(gòu)及實(shí)現(xiàn)原理以及所使用電壓傳感器模塊結(jié)構(gòu)和原理,然后在了解它們的根底上找出相應(yīng)的采集數(shù)據(jù)以及傳輸數(shù)據(jù)的所需的軟件,串口通信及AD轉(zhuǎn)換的原理和其實(shí)現(xiàn)方法,最后通過給出總的電壓采集的程序流程圖以及軟件子系統(tǒng)設(shè)計(jì)系統(tǒng)框圖和以上實(shí)驗(yàn)設(shè)備完成基于CC2530和數(shù)字壓力傳感器的電壓數(shù)據(jù)采集系統(tǒng)。關(guān)鍵詞:電壓采集,嵌入式,CC2530,AD轉(zhuǎn)換,串口通信目錄一、前言1二、根本原理22.1CC2530結(jié)構(gòu)及實(shí)現(xiàn)原理22.2電壓傳感器結(jié)構(gòu)及實(shí)現(xiàn)原理42.3軟件方面5〔1〕串口通信5〔2〕AD轉(zhuǎn)換6三、系統(tǒng)分析93.1程序流程圖93.2軟件子系統(tǒng)設(shè)計(jì)9四、代碼清單104.1核心代碼104.2AD轉(zhuǎn)換代碼11總結(jié)14參考文獻(xiàn)15一、前言嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為根底,軟硬件可定制,適用于不同應(yīng)用場(chǎng)合,對(duì)功能,可靠性,本錢,體積,功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)[1]。隨著生活水平的提高和科學(xué)技術(shù)開展的需求,人類對(duì)環(huán)境信息的感知上有了更高的要求,在某些特殊工業(yè)生產(chǎn)領(lǐng)域和室內(nèi)存儲(chǔ)場(chǎng)合對(duì)環(huán)境要求顯得特別苛刻;隨著嵌入式技術(shù)的開展,為環(huán)境檢測(cè)提供了更進(jìn)一步的保障?;谇度胧降沫h(huán)境信息采集系統(tǒng)包含感知層、傳輸層、應(yīng)用層三個(gè)層面;傳輸層常見的有溫濕度、煙感、電壓、壓力等嵌入式傳感器模塊,傳輸層包括有線通信和無線通信兩局部,應(yīng)用層包括各種終端。電壓是推動(dòng)電荷定向移動(dòng)形成電流的原因。電流之所以能夠在導(dǎo)線中流動(dòng),也是因?yàn)樵陔娏髦杏兄唠妱?shì)和低電勢(shì)之間的差異。這種差異叫電勢(shì)差,也叫電壓。換句話說,在電路中,任意兩點(diǎn)之間的電位差稱為這兩點(diǎn)的電壓。在很多應(yīng)用場(chǎng)合,電壓是一個(gè)很重要的一個(gè)參數(shù)。電壓的自動(dòng)監(jiān)測(cè)已經(jīng)成為各行業(yè)進(jìn)行平安生產(chǎn)和減少損失的重要措施之一。本課程設(shè)計(jì)就對(duì)嵌入式電壓數(shù)據(jù)采集系統(tǒng)進(jìn)行詳細(xì)分析和設(shè)計(jì)。二、根本原理2.1CC2530結(jié)構(gòu)及實(shí)現(xiàn)原理CC2530是基于、ZigBee和RF4CE上的一個(gè)片上系統(tǒng)解決方案。其特點(diǎn)是以極低的總材料本錢建立較為強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530芯片結(jié)合了RF收發(fā)器,增強(qiáng)型8051CPU,系統(tǒng)內(nèi)可編程閃存,8-KBRAM和許多其他模塊的強(qiáng)大的功能。如今CC2530主要有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256KB的閃存。其具有多種運(yùn)行模式,使得它能滿足超低功耗系統(tǒng)的要求。同時(shí)CC2530運(yùn)行模式之間的轉(zhuǎn)換時(shí)間很短,使其進(jìn)一步降低能源消耗。CC2530包括了1個(gè)高性能的2.4GHzDSSS〔直接序列擴(kuò)頻〕射頻收發(fā)器核心和1個(gè)8051控制器,它具有32/64/128kB可選擇的編程閃存和8kB的RAM,還包括ADC、定時(shí)器、睡眠模式定時(shí)器、上電復(fù)位電路、掉電檢測(cè)電路和21個(gè)可編程I/O引腳,這樣很容易實(shí)現(xiàn)通信模塊的小型化。CC2530是一款功耗相當(dāng)?shù)偷膯纹瑱C(jī),功耗模式3下電流消耗僅0.2μA,在32k晶體時(shí)鐘下運(yùn)行,電流消耗小于1μA。CC2530芯片使用直接正交上變頻發(fā)送數(shù)據(jù)?;鶐盘?hào)的同相分量和正交分量由DAC轉(zhuǎn)換成模擬信號(hào),經(jīng)過低通濾波,變頻到所設(shè)定的信道上。當(dāng)需要發(fā)送數(shù)據(jù)時(shí),先將要發(fā)送的數(shù)據(jù)寫入128B的發(fā)送緩存中,包頭是通過硬件產(chǎn)生的。最后經(jīng)過低通濾波器和上變頻的混頻后,將射頻信號(hào)被調(diào)制到2.4GHz,后經(jīng)天線發(fā)送出去。CC2530有兩個(gè)端口分別為TX/RX,RF端口不需要外部的收發(fā)開關(guān),芯片內(nèi)部已集成了收發(fā)開關(guān)。CC2530的存儲(chǔ)器ST-M25PE16是4線的SPI通信模式的FLASH,可以整塊擦除,最大可以存儲(chǔ)2M個(gè)字節(jié)。工作電壓為2.7v到3.6v。CC2530溫度傳感器模塊反向F型天線采用TI公司公布的2.4GHz倒F型天線設(shè)計(jì)。天線的最大增益為+3.3dB,天線面積為25.7×7.5mm。該天線完全能夠滿足CC2530工作頻段的要求〔CC2530工作頻段為2.400GHz~2.480GHz〕。圖1.CC2530芯片引腳CC2530芯片引腳功能AVDD128電源〔模擬〕2-V–3.6-V模擬電源連接AVDD227電源〔模擬〕2-V–3.6-V模擬電源連接AVDD324電源〔模擬〕2-V–3.6-V模擬電源連接AVDD429電源〔模擬〕2-V–3.6-V模擬電源連接AVDD521電源〔模擬〕2-V–3.6-V模擬電源連接AVDD631電源〔模擬〕2-V–3.6-V模擬電源連接DCOUPL40電源〔數(shù)字〕1.8V數(shù)字電源去耦。不使用外部電路供給。DVDD139電源〔數(shù)字〕2-V–3.6-V數(shù)字電源連接DVDD210電源〔數(shù)字〕2-V–3.6-V數(shù)字電源連接GND-接地接地襯墊必須連接到一個(gè)鞏固的接地面。GND1,2,3,4未使用的連接到GNDP0_019數(shù)字I/O端口0.0P0_118數(shù)字I/O端口0.1P0_217數(shù)字I/O端口0.2P0_316數(shù)字I/O端口0.3P0_415數(shù)字I/O端口0.4P0_514數(shù)字I/O端口0.5P0_613數(shù)字I/O端口0.6P0_712數(shù)字I/O端口0.7P1_011數(shù)字I/O端口1.0-20-mA驅(qū)動(dòng)能力P1_19數(shù)字I/O端口1.1-20-mA驅(qū)動(dòng)能力P1_28數(shù)字I/O端口1.2P1_37數(shù)字I/O端口1.3P1_46數(shù)字I/O端口1.4P1_55數(shù)字I/O端口1.5P1_638數(shù)字I/O端口1.6P1_737數(shù)字I/O端口1.7P2_036數(shù)字I/O端口2.0P2_135數(shù)字I/O端口2.1P2_234數(shù)字I/O端口2.2P2_333數(shù)字I/O模擬端口2.3/32.768kHzXOSCP2_432數(shù)字I/O模擬端口2.4/32.768kHzXOSCRBIAS30模擬I/O參考電流的外部精密偏置電阻RESET_N20數(shù)字輸入復(fù)位,活動(dòng)到低電平RF_N26RFI/ORX期間負(fù)RF輸入信號(hào)到LNARF_P25RFI/ORX期間正RF輸入信號(hào)到LNAXOSC_Q122模擬I/O32-MHz晶振引腳1或外部時(shí)鐘輸入XOSC_Q223模擬I/O32-MHz晶振引腳22.2電壓傳感器結(jié)構(gòu)及實(shí)現(xiàn)原理電壓輸入使用大于1MΩ的等效輸入阻抗的輸入取樣,將輸入電壓進(jìn)行15倍衰減,然后使用差分單端運(yùn)放,將其變換到0~3V的范圍,經(jīng)電壓二次緩沖后送到AD采集輸入端。其電路原理圖,如以下圖2.10所示:使用10~12bit的AD采集器,一次采樣使用2字節(jié)描述,MSB方式,電壓傳感器模塊輸出數(shù)據(jù)結(jié)構(gòu)請(qǐng)參見“電流傳感器模塊上傳數(shù)據(jù)定義〞。2.3軟件方面〔1〕串口通信1、串行數(shù)據(jù)(DATA)DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時(shí)鐘下降沿之后改變狀態(tài),并僅在SCK時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時(shí)鐘高電平時(shí),DATA必須保持穩(wěn)定。為防止信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA在低電平。需要一個(gè)外部的上拉電阻〔例如:10kΩ〕將信號(hào)提拉至高電平。上拉電阻通常已包含在微處理器的I/O電路中。2、串行時(shí)鐘輸入(SCK)SCK用于微處理器與電壓傳感器之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。3、測(cè)量時(shí)序(RH和T)發(fā)布一組測(cè)量命令〔‘00000101’表示電壓值〕后,控制器要等待測(cè)量結(jié)束。這個(gè)過程需要大約11/55/210ms,分別對(duì)應(yīng)8/12/14bit測(cè)量。確切的時(shí)間隨內(nèi)部晶振速度,最多有±15%變化。電壓傳感器通過下拉DATA至低電平并進(jìn)入空閑模式,表示測(cè)量的結(jié)束??刂破髟谠俅斡|發(fā)SCK時(shí)鐘前,必須等待這個(gè)“數(shù)據(jù)備妥〞信號(hào)來讀出數(shù)據(jù)。檢測(cè)數(shù)據(jù)可以先被存儲(chǔ),這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時(shí)再讀出數(shù)據(jù)。接著傳輸2個(gè)字節(jié)的測(cè)量數(shù)據(jù)和1個(gè)字節(jié)的CRC奇偶校驗(yàn)。uC需要通過下拉DATA為低電平,以確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)從MSB開始,右值有效〔例如:對(duì)于12bit數(shù)據(jù),從第5個(gè)SCK時(shí)鐘起算作MSB;而對(duì)于8bit數(shù)據(jù),首字節(jié)那么無意義〕。用CRC數(shù)據(jù)確實(shí)認(rèn)位,說明通訊結(jié)束。如果不使用CRC-8校驗(yàn),控制器可以在測(cè)量值LSB后,通過保持確認(rèn)位ack高電平,來中止通訊。在測(cè)量和通訊結(jié)束后,電壓傳感器自動(dòng)轉(zhuǎn)入休眠模式。4、通訊復(fù)位時(shí)序如果與電壓傳感器通訊中斷,以下信號(hào)時(shí)序可以復(fù)位串口:當(dāng)DATA保持高電平時(shí),觸發(fā)SCK時(shí)鐘9次或更多。在下一次指令前,發(fā)送一個(gè)“傳輸啟動(dòng)〞時(shí)序。這些時(shí)序只復(fù)位串口,狀態(tài)存放器內(nèi)容仍然保存。圖4通訊復(fù)位時(shí)序圖〔2〕AD轉(zhuǎn)換CC2530內(nèi)部包含一個(gè)ADC,它支持最高達(dá)12位的模擬到數(shù)字的轉(zhuǎn)換。該ADC包含一個(gè)模擬多路復(fù)用器支持最高達(dá)8路的獨(dú)立可配置通道、參考電壓產(chǎn)生器,轉(zhuǎn)換結(jié)果通過DMA被寫入存儲(chǔ)器。支持多種運(yùn)行模式。1、ADC輸入P0端口引腳上的信號(hào)可被用來作為ADC輸入。在以下的描述中,我們將這些引腳記為AIN0-AIN7引腳。輸入引腳AIN0-AIN7被連接到ADC。ADC可被設(shè)置為自動(dòng)執(zhí)行一個(gè)轉(zhuǎn)換序列,當(dāng)該序列被完成時(shí)可隨意地從任一通道執(zhí)行一個(gè)附加的轉(zhuǎn)換。輸入可被配置為單端或差分輸入。當(dāng)使用差分輸入時(shí),差分輸入由輸入組AIN0-1、AIN2-3、AIN3-4、AIN4-5和AIN6-7組成。注意:負(fù)電壓不能被連接到這些引腳,大于VDD的電壓也不能被連接到這些引腳。除了輸入引腳AIN0-AIN7外,一個(gè)片上溫度傳感器的輸出可被選擇作為ADC的一個(gè)輸入用來進(jìn)行溫度測(cè)量。還可以選擇相當(dāng)于AVDD_SOC/3的電壓作為ADC的一個(gè)輸入。2、ADC轉(zhuǎn)換序列ADC可執(zhí)行一個(gè)轉(zhuǎn)換序列并將結(jié)果傳送到存儲(chǔ)器(通過DMA)而不需要與CPU進(jìn)行任何互操作。轉(zhuǎn)換序列可被ADCCFG存放器影響,因?yàn)閬碜杂贗O引腳的ADC的8個(gè)模擬輸入不必全部被編程作為模擬輸入。如果一個(gè)通道作為一個(gè)序列的一局部,但相應(yīng)的模擬輸入在ADCCFG中被禁止,那么該通道將被跳過。對(duì)于通道8到12,輸入引腳必須被使能。ADCCON2.SCH存放器位被用來定義一個(gè)來自ADC輸入的ADC轉(zhuǎn)換序列。當(dāng)ADCCON2.SCH被設(shè)置為小于8的值時(shí),一個(gè)轉(zhuǎn)換序列將包含從0到該值的所有通道。單端輸入AIN0到AIN7由ADCCON2.SCH中的通道號(hào)0到7來表示。通道號(hào)8到11分別表示差分輸入AIN0-1、AIN2-3、AIN4-5和AIN6-7。通道號(hào)12到15分別表示GND、內(nèi)部參考電壓、溫度傳感器和AVDD_SOC/3。當(dāng)ADCCON2.SCH被設(shè)置為一個(gè)8到12之間的值時(shí),轉(zhuǎn)換序列將從通道8開始。對(duì)于更高的設(shè)置值,只進(jìn)行單一的轉(zhuǎn)換。3、ADC運(yùn)行模式ADC有3個(gè)控制存放器:ADCCON1、ADCCON2和ADCCON3。這些存放器被用來配置ADC和報(bào)告狀態(tài)。ADCCON1.EOC位是一個(gè)狀態(tài)位,當(dāng)一個(gè)轉(zhuǎn)換結(jié)束時(shí)該位被設(shè)置為高,當(dāng)ADCH被讀取時(shí)該位被清零。ADCCON1.ST位被用來開始一個(gè)轉(zhuǎn)換序列。當(dāng)該位被設(shè)置為高、ADCCON1.STSEL為11并且當(dāng)前沒有轉(zhuǎn)換在運(yùn)行時(shí),一個(gè)轉(zhuǎn)換序列將開始。當(dāng)該轉(zhuǎn)換序列被完成時(shí)該位被自動(dòng)清零。ADCCON1.STSEL位被用來選擇哪一個(gè)事件將開始一個(gè)新的轉(zhuǎn)換序列。4、ADC轉(zhuǎn)換結(jié)果數(shù)字轉(zhuǎn)換結(jié)果由二進(jìn)制補(bǔ)碼形式表示。對(duì)于單端輸入,結(jié)果將總為正的。當(dāng)輸入振幅等于VREF(選定的參考電壓)時(shí)轉(zhuǎn)換結(jié)果將到達(dá)最大值。對(duì)于差分輸入,兩引腳之間的差值被轉(zhuǎn)換,該值可以是負(fù)的。對(duì)于12位分辨率,當(dāng)模擬輸入等于VREF時(shí)數(shù)字轉(zhuǎn)換結(jié)果為2047;當(dāng)模擬輸入等于-VREF時(shí)數(shù)字轉(zhuǎn)換結(jié)果為-2048。當(dāng)ADCCON1.EOC被設(shè)置為1時(shí),數(shù)字轉(zhuǎn)換結(jié)果可從ADCH和ADCL中得到。當(dāng)ADCCON2.SCH位被讀取時(shí),讀取值將指示通道號(hào),在ADCH和ADCL中的轉(zhuǎn)換結(jié)果是該通道之前的那個(gè)通道的轉(zhuǎn)換結(jié)果。5、ADC參考電壓模/數(shù)轉(zhuǎn)換的正參考電壓是可選擇的。內(nèi)部產(chǎn)生的1.25V電壓、AVDD_SOC引腳上的電壓、連接到AIN7引腳上的外部電壓或連接到AIN6-7輸入的差分電壓都可以作為正參考電壓。為了進(jìn)行校準(zhǔn),可以選擇參考電壓作為ADC的輸入進(jìn)行參考電壓的轉(zhuǎn)換。類似的,可以選擇GND作為ADC的輸入。6、ADC轉(zhuǎn)換時(shí)間當(dāng)在32MHz系統(tǒng)時(shí)鐘下,該時(shí)鐘被8分頻后產(chǎn)生一個(gè)4MHz的時(shí)鐘供ADC運(yùn)行。三角積分調(diào)變器和抽取濾波器都是用4MHz時(shí)鐘進(jìn)行計(jì)算。使用其他的頻率將會(huì)影響結(jié)果和轉(zhuǎn)換時(shí)間。以下描述我們假設(shè)使用32MHz系統(tǒng)時(shí)鐘。執(zhí)行一次轉(zhuǎn)換所需要的時(shí)間取決于所選擇的抽取率。例如,當(dāng)抽取率被設(shè)置為128時(shí),抽取濾波器使用128個(gè)4MHz時(shí)鐘周期來計(jì)算結(jié)果。當(dāng)一個(gè)轉(zhuǎn)換開始后,輸入多路復(fù)用器需要16個(gè)4MHz時(shí)鐘周期來穩(wěn)定。16個(gè)4MHz時(shí)鐘周期的穩(wěn)定時(shí)間適用于所有抽取率。因此一般而言,轉(zhuǎn)換時(shí)間由下式給定:Tconv=(抽取率+16)×0.25us。7、ADC中斷當(dāng)一個(gè)附加轉(zhuǎn)換完成時(shí)ADC將產(chǎn)生一個(gè)中斷。當(dāng)來自轉(zhuǎn)換序列的一個(gè)轉(zhuǎn)換完成時(shí)將不會(huì)產(chǎn)生中斷。8、ADCDMA觸發(fā)當(dāng)來自一個(gè)轉(zhuǎn)換序列的每一個(gè)轉(zhuǎn)換完成時(shí)ADC將產(chǎn)生一個(gè)DMA觸發(fā)。當(dāng)一個(gè)附加轉(zhuǎn)換完成時(shí)不產(chǎn)生DMA觸發(fā)。首次在ADCCON2.SCH中定義的8個(gè)通道的每一個(gè)都有一個(gè)DMA觸發(fā)。當(dāng)一個(gè)新的采樣就緒時(shí)DMA觸發(fā)被激活。另外,還有一個(gè)DMA觸發(fā)ADC_CHALL,當(dāng)ADC轉(zhuǎn)換序列中的任何通道有新數(shù)據(jù)就緒時(shí)該觸發(fā)被激活。三、系統(tǒng)分析3.1程序流程圖開始開始系統(tǒng)時(shí)鐘初始化讀取電壓數(shù)據(jù)顯示電壓數(shù)據(jù)LCD初始化圖5軟件流程圖3.2軟件子系統(tǒng)設(shè)計(jì)為了能夠進(jìn)行系統(tǒng)初始化.采用一個(gè)匯編文件做肩動(dòng)代碼,用它實(shí)現(xiàn)向量表的定義、堆棧初始化、系統(tǒng)變量初始化、中斷系統(tǒng)初始化、I/O初始化、外同初始化、地址重映射等操作。系統(tǒng)的初始化流程如下圖。圖6系統(tǒng)的初始化流程給智能主板供電〔USB外接電源或2節(jié)干電池〕。將一個(gè)無線節(jié)點(diǎn)模塊插入到帶LCD的智能主板的相應(yīng)位置。將電壓傳感器模塊插入到智能主板的傳感及控制擴(kuò)展口位置。將CC2530仿真器的一端通過USB線〔A型轉(zhuǎn)B型〕連接到PC機(jī),另一端通過10Pin下載線連接到智能主板的CC2530JTAG口〔J203〕。將智能主板上電源開關(guān)撥至開位置。按下仿真器上的按鈕,仿真器上的指示燈為綠色時(shí),表示連接成功。四、代碼清單4.1核心代碼voidmain(){intvoltage;chars[16];UINT8adc0_value[2];floatnum=0;SET_MAIN_CLOCK_SOURCE(CRYSTAL);//設(shè)置系統(tǒng)時(shí)鐘源為32MHz晶體振蕩器GUI_Init();//GUI初始化GUI_SetColor(1,0);//顯示色為亮點(diǎn),背景色為暗點(diǎn)GUI_PutString5_7(25,6,"OURS-CC2530");//顯示OURS-CC2530GUI_PutString5_7(10,22,"voltage:");LCM_Refresh();while(1){th_read(&voltage);//讀取電壓sprintf(s,(char*)"%d%dC",((INT16)((int)voltage/10)),((INT16)((int)voltage%10)));//將電壓結(jié)果轉(zhuǎn)換為字符串GUI_PutString5_7(48,22,(char*)s);//顯示結(jié)果LCM_Refresh();ADC_ENABLE_CHANNEL(ADC_AIN0);//使能AIN0為ADC輸入通道/*配置ADCCON3存放器以便在ADCCON1.STSEL=11(復(fù)位默認(rèn)值)且ADCCON1.ST=1時(shí)進(jìn)行單一轉(zhuǎn)換*//*參考電壓:AVDD_SOC引腳上的電壓*//*抽取率:512*//*ADC輸入通道:AIN0*/ADC_SINGLE_CONVERSION(ADC_REF_AVDD|ADC_14_BIT|ADC_AIN0);ADC_SAMPLE_SINGLE();//啟動(dòng)一個(gè)單一轉(zhuǎn)換while(!ADC_SAMPLE_READY());//等待轉(zhuǎn)換完成ADC_ENABLE_CHANNEL(ADC_AIN0);//禁止AIN0adc0_value[0]=ADCL;//讀取ADC值adc0_value[1]=ADCH;//讀取ADC值adc0_value[0]=adc0_value[0]>>2;num=(adc0_value[1]*256+adc0_value[0])*3.3/8192;//有一位符號(hào)位,取2^13;num/=4;num=num*913;//轉(zhuǎn)換為L(zhǎng)x}}4.2AD轉(zhuǎn)換代碼voidmain(void){INT8adc0_value;UINT8pot0Voltage=0;INT8adc1_value;UINT8pot1Voltage=0;chars[16];SET_MAIN_CLOCK_SOURCE(CRYSTAL);//設(shè)置系統(tǒng)時(shí)鐘源為32MHz晶體振蕩器GUI_Init();//GUI初始化GUI_SetColor(1,0);//顯示色為亮點(diǎn),背景色為暗點(diǎn)GUI_PutString5_7(25,6,"OURS-CC2530");//顯示OURS-CC2530GUI_PutString5_7(42,22,"ADCLIB");GUI_PutString5_7(10,35,"adc0_value");GUI_PutString5_7(10,48,"adc1_value");LCM_Refresh();while(1){/*AIN0通道采樣*/ADC_ENABLE_CHANNEL(ADC_AIN0);//使能AIN0為ADC輸入通道/*配置ADCCON3存放器以便在ADCCON1.STSEL=11(復(fù)位默認(rèn)值)且ADCCON1.ST=1時(shí)進(jìn)行單一轉(zhuǎn)換*//*參考電壓:AVDD_SOC引腳上的電壓*//*抽取率:64*//*ADC輸入通道:AIN0*/ADC_SINGLE_CONVERSION(ADC_REF_AVDD|ADC_8_BIT|ADC_AIN0);ADC_SAMPLE_SINGLE();//啟動(dòng)一個(gè)單一轉(zhuǎn)換while(!ADC_SAMPLE_READY());//等待轉(zhuǎn)換完成ADC_ENABLE_CHANNEL(ADC_AIN0);//禁止AIN0adc0_value=ADCH;//讀取ADC值/*根據(jù)新計(jì)算出的電壓值是否與之前的電壓值相等來決定是否更新顯示*/if(pot0Voltage!=scaleValue(adc0_value)){pot0Voltage=scaleValue(adc0_value);sprintf(s,(char*)"%d.%dV",((INT16)(pot0Voltage/10)),((INT16)(pot0Voltage%10)));GUI_PutString5_7(72,35,(char*)s);LCM_Refresh();halWait(100);}/*AIN1通道采樣*/ADC_ENABLE_CHANNEL(ADC_AIN1);//使能AIN1為ADC輸入通道/*配置ADCCON3存放器以便在ADCCON1.STSEL=11(復(fù)位默認(rèn)值)且ADCCON1.ST=1時(shí)進(jìn)行單一轉(zhuǎn)換*//*參考電壓:AVDD_SOC引腳上的電壓*//*

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論