壓力檢測(cè)及LCD顯示—劉智明組.doc_第1頁(yè)
壓力檢測(cè)及LCD顯示—劉智明組.doc_第2頁(yè)
壓力檢測(cè)及LCD顯示—劉智明組.doc_第3頁(yè)
壓力檢測(cè)及LCD顯示—劉智明組.doc_第4頁(yè)
壓力檢測(cè)及LCD顯示—劉智明組.doc_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)報(bào)告題目名稱壓力檢測(cè)及LCD顯示學(xué)生學(xué)院自動(dòng)化學(xué)院專業(yè)班級(jí)12級(jí)自動(dòng)化學(xué)號(hào)31120009923112000979、3112000988學(xué)生姓名劉智明、鄧志豪、梁健銳2015 年 03 月 26日壓力檢測(cè)及 LCD顯示一、 實(shí)驗(yàn)?zāi)康模和ㄟ^(guò)學(xué)習(xí)電阻測(cè)量和LCD 實(shí)驗(yàn)指導(dǎo)書(shū)上的相關(guān)步驟,參考實(shí)驗(yàn)中硬件軟件,通過(guò)改變壓力傳感器所受壓力來(lái)改變電路阻值從而改變輸入電壓大小,作為 A/D 轉(zhuǎn)換器 ADS1100 的模擬量輸入,運(yùn)用 ADS1100 的模數(shù)轉(zhuǎn)換功能, 把轉(zhuǎn)換的結(jié)果通過(guò) LCD 模塊顯示出相應(yīng)的壓力值。通過(guò)這次實(shí)驗(yàn), 對(duì)試驗(yàn)箱各模塊有了一定的了解, 掌握了模擬量輸入和數(shù)字量輸出通道以及相關(guān)

2、外設(shè)的操作。二、實(shí)驗(yàn)設(shè)備:TIVALaunchPad,電阻測(cè)量模塊,LCD 顯示模塊,跳線裝置等。壓力傳感器三、設(shè)計(jì)思想:TIV ALaunchPadLCD顯示作為通過(guò)對(duì)壓力傳感器施加壓力從而改變傳感器的輸出電壓并與基準(zhǔn)電壓作比較ADS1100的模擬量輸入,經(jīng) ADS1100的 A/D轉(zhuǎn)換后通過(guò)I2C,電壓差值通信協(xié)議與TIV ALaunchPad 進(jìn)行通信與數(shù)據(jù)交換,把結(jié)果送至示在 LCD 上。LaunchPad,再通過(guò)LaunchPad使相關(guān)信息顯四、實(shí)驗(yàn)原理:硬件部分:1.壓力傳感器圖 1壓力傳感器模塊的等效原理圖為電橋。當(dāng)壓力傳感器受力發(fā)生微小形變時(shí),應(yīng)變電阻阻值發(fā)生改變,從而改變了傳

3、感器的輸出電壓。傳感器與ADS1100 相連接。2.ADS1100ADS1100 基準(zhǔn)電壓為3.3V ,Vin+ 與 Vin- 分別與壓力傳感器輸出的正、負(fù)極相連接,傳感器輸出電壓在ADS1100 中與基準(zhǔn)電壓比較,電壓差值經(jīng)過(guò)A/D 轉(zhuǎn)換后通過(guò) I2C協(xié)議送至 TIVA LaunchPad 。 TIV A LaunchPad 通過(guò)對(duì)來(lái)自 I2C 的數(shù)字信號(hào)處理計(jì)算后,在LCD 模塊上顯示壓力傳感器所受的壓力。I2C 總線在傳送數(shù)據(jù)過(guò)程中共有三種類型信號(hào),它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。開(kāi)始信號(hào): SCL 為高電平時(shí), SDA 由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。結(jié)束信號(hào): SCL

4、為高電平時(shí), SDA 由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。應(yīng)答信號(hào):接收數(shù)據(jù)的 IC在接收到 8bit 數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC 發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。 CPU 向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU 接收到應(yīng)答信號(hào)后, 根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào), 由判斷為受控單元出現(xiàn)故障。圖 23.LCD 模塊圖 3軟件部分:通過(guò)了解 CCS 的開(kāi)發(fā)環(huán)境, 參考電阻測(cè)量和LCD 實(shí)驗(yàn)的代碼, 對(duì)程序進(jìn)行編寫(xiě)。通過(guò) USB電腦與 LuanchPad 連接,將代碼燒進(jìn)LuanchPad 的內(nèi)存中,按照下面代碼流程圖(圖4)分別對(duì)各模塊進(jìn)行初

5、始化。圖 4實(shí)驗(yàn)代碼主要參考指導(dǎo)書(shū)例程的CH3 和 CH4 進(jìn)行修改,程序代碼見(jiàn)附錄。五、實(shí)驗(yàn)總結(jié):1.實(shí)驗(yàn)結(jié)果:沒(méi)有受到壓力時(shí)狀態(tài)如圖5 所示,當(dāng)受到壓力時(shí)如圖6 所示,圖 5圖 6這次實(shí)驗(yàn)是一個(gè)模擬量輸入數(shù)字量輸出通道的實(shí)驗(yàn),在一開(kāi)始由于對(duì)實(shí)驗(yàn)箱和軟件的不熟悉,導(dǎo)致所需的時(shí)間比原定的時(shí)間要長(zhǎng), 而且對(duì)實(shí)驗(yàn)的原理并不是很透徹, 只能多參考各方面內(nèi)容來(lái)完成這個(gè)實(shí)驗(yàn)。有了這次的經(jīng)驗(yàn),以后的實(shí)驗(yàn)相信能更快完成。附錄 實(shí)驗(yàn)代碼#ifndefTARGET_IS_BLIZZARD_RA1#defineTARGET_IS_BLIZZARD_RA1#endif#ifndefPART_TM4C123GH6PM

6、#definePART_TM4C123GH6PM#endif/* Resistor Measure Application* Copyright (c) 2013-2014 China JiLiang University* All Rights Reserved.*/*!* filemain.c* version1.0* authorKai Zhang* date2013-08-22* brief恒流源、電橋電路原理檢測(cè)電阻阻值模擬程序* _*|*PA6|-SCLI2C 協(xié)議時(shí)鐘信號(hào)*M4 PA7|-SDAI2C 協(xié)議數(shù)據(jù)信號(hào)*PB4|-ADC0模數(shù)轉(zhuǎn)換信號(hào)源* _|*/#includest

7、dint.h#includestdbool.h#includeinc/hw_memmap.h#includeinc/hw_types.h#includeinc/hw_i2c.h#includeinc/hw_ints.h#includedriverlib/interrupt.h#includedriverlib/i2c.h#includedriverlib/adc.h#includedriverlib/sysctl.h#includedriverlib/gpio.h#includedriverlib/rom.h#includedriverlib/rom_map.h#includedriverli

8、b/pin_map.h#includeLCDDriver.h/* 宏定義*/#define MIN_BRIDGE_ADC_VALUE1984/電橋測(cè)電阻的最大ADC顯示值#define MAX_BRIDGE_ADC_VALUE4095/電橋測(cè)電阻的最大ADC顯示值#define MAX_RESISTOR_VALUE203500/最大檢測(cè)電阻值,單位m#defineSLAVE_ADDRESS0x48/ ADS1100 數(shù)據(jù)寄存器地址#defineSOURCE_OFFSET32768/* 初始化 ADC獲取滾輪電壓值 , 用于電橋電路測(cè)量電阻* |/|/M4PB4|-ADC0模數(shù)轉(zhuǎn)換信號(hào)源/ _|

9、*/#defineADC_BASEADC0_BASE/使用 ADC0#defineSequenceNum3/使用序列 3voidInit_ADC_Detect()/ 使能 ADC0 外設(shè)ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);/ 使能 Port B 外設(shè)端口ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);/ 選擇 PB4作為模數(shù)裝換 ADC的管腳ROM_GPIOPinTypeADC(GPIO_PORTB_BASE, GPIO_PIN_4);/ 配置采樣序列的觸發(fā)源和優(yōu)先級(jí)ROM_ADCSequ

10、enceConfigure(ADC_BASE, SequenceNum, ADC_TRIGGER_PROCESSOR,0);/ 配置采樣序列發(fā)生器的步進(jìn)ROM_ADCSequenceStepConfigure(ADC_BASE, SequenceNum, 0, ADC_CTL_CH10 | ADC_CTL_IE |ADC_CTL_END);/ 使能一個(gè)采樣序列ROM_ADCSequenceEnable(ADC_BASE, SequenceNum);/ 清除采樣序列中斷源ROM_ADCIntClear(ADC_BASE, SequenceNum);/* 初始化 AI2C 獲取 ADS1100 上

11、的 ADC電壓數(shù)據(jù) , 用于恒流源測(cè)量電阻* |/|/M4PA6|-SCLI2C協(xié)議時(shí)鐘信號(hào)/PA7|-SDAI2C協(xié)議數(shù)據(jù)信號(hào)/ _|*/voidInit_I2C_Comm()/ 使能 I2C1 外設(shè)SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C1);/ 使能 PortA 外設(shè)端口SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);/ 配置 PA6、 PA7為上拉端口GPIOPadConfigSet (GPIO_PORTA_BASE, GPIO_PIN_6 | GPIO_PIN_7, GPIO_STRENGTH_2MA,

12、GPIO_PIN_TYPE_STD_WPU);/ PA6配置為 I2C 協(xié)議時(shí)鐘信號(hào)、PA7 配置為 I2C 協(xié)議數(shù)據(jù)信號(hào)GPIOPinConfigure(GPIO_PA6_I2C1SCL);GPIOPinConfigure(GPIO_PA7_I2C1SDA);GPIOPinTypeI2C(GPIO_PORTA_BASE, GPIO_PIN_6 | GPIO_PIN_7);GPIOPinTypeI2CSCL(GPIO_PORTA_BASE, GPIO_PIN_6);/ 初始化 I2C 主機(jī)模塊。設(shè)置總線速度和使能主機(jī)模塊I2CMasterInitExpClk(I2C1_BASE,SysCtlC

13、lockGet(), false);/ 使能 I2C 主機(jī)模塊I2CMasterEnable(I2C1_BASE);/* 配置 ADS1100 的配置寄存器*ST/BSY00SCDR1DR0PGA1PGA0*10011100*/voidConfigure_I2C()I2CMasterSlaveAddrSet(I2C1_BASE, SLAVE_ADDRESS, false);I2CMasterDataPut(I2C1_BASE,0x8C);I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_SINGLE_SEND);while( I2CMasterBusBusy

14、(I2C1_BASE);/* 獲取 ADS1100 上采集到的 ADC數(shù)據(jù)*通信協(xié)議: 1 、設(shè)置讀取的I2C 從機(jī)地址( ADS1100 );*2、獲取 16Bit ADC電壓數(shù)據(jù)中的高8Bit;*3、獲取 16Bit ADC電壓數(shù)據(jù)中的低8Bit;*4、得到 ADS1100 的配置信息*/uint32_tI2C_ADC_OpReg_MSB_i;/保存通過(guò)I2C讀取 ADS1100 的 16 位 AD的高字節(jié)uint32_tI2C_ADC_OpReg_LSB_i;/保存通過(guò)I2C讀取 ADS1100 的 16 位 AD的高字節(jié)uint32_tI2C_ADC_ConfigReg_i;#defi

15、neDELAY_6MS(SysCtlClockGet() / 3) / 150000voidCatchI2C()/ 恒流源測(cè)電阻I2CMasterSlaveAddrSet(I2C1_BASE, SLAVE_ADDRESS, true);/#I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_RECEIVE_START);while( I2CMasterBusy(I2C1_BASE);I2C_ADC_OpReg_MSB_i =I2CMasterDataGet(I2C1_BASE);/#I2CMasterControl(I2C1_BASE, I2C_M

16、ASTER_CMD_BURST_RECEIVE_CONT);while( I2CMasterBusy(I2C1_BASE);I2C_ADC_OpReg_LSB_i =I2CMasterDataGet(I2C1_BASE);/#I2CMasterControl (I2C1_BASE, I2C_MASTER_CMD_BURST_RECEIVE_FINISH); while ( I2CMasterBusy (I2C1_BASE);I2C_ADC_ConfigReg_i =I2CMasterDataGet(I2C1_BASE);/#defineint16_tSAMPLE_NUMsample_Sourc

17、eSAMPLE_NUM;8/恒流源測(cè)電阻ADC采樣值unsignedintsample_BridgeSAMPLE_NUM;/電橋測(cè)電阻ADC采樣值int16_tsample_Source_Average;uint32_tsample_Bridge_Average;intsample_Index;/* 主函數(shù)*/uint32_ttemp1, temp2;charbit;uint16_taverage;int16_ttemp3;intmain ( void )bool bRefresh = false;uint32_tpui32ADC0Value1;/保存 ADC采樣值unsignedcharnu

18、mber =0;CV+SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);/ 使能 LCD LCD_Enable();/ 初始化 LCD LCD_Init();/ 初始化 LCD屏做清屏工作LCD_ScreenClr();/ 初始化滾輪Init_ADC_Detect();/ 在 LCD屏的第一行和第三行分別顯示“電阻:。 ”,用于觀察檢測(cè)電阻值LCD_Draw_Char( W ,LINE_ONE, 0 * 8);LCD_Draw_Char( E,LINE_ONE, 1 *

19、8);LCD_Draw_Char( I,LINE_ONE, 2 * 8);LCD_Draw_Char( G ,LINE_ONE, 3 * 8);LCD_Draw_Char( H,LINE_ONE, 4 * 8);LCD_Draw_Char( T,LINE_ONE, 5 * 8);LCD_Draw_Char( :,LINE_ONE, 6 * 8);LCD_Draw_Char( K,LINE_TWO, 9*8);LCD_Draw_Char( G,LINE_TWO, 10*8);/ 用于監(jiān)控 IIC 的讀取狀況SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);G

20、PIOPinTypeGPIOOutput (GPIO_PORTF_BASE, GPIO_PIN_1); GPIOPinWrite (GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);/ 初始化 I2C 通信協(xié)議,開(kāi)啟從Init_I2C_Comm();/ADS1100 讀取 ADC值/ 配置 ADS1100 Configure_I2C();while(1)/ 對(duì) while 做 125ms 的延時(shí),每秒刷新頻率為 8HzROM_SysCtlDelay( SysCtlClockGet()/3/30);/#/ 電橋測(cè)電阻ADCProcessorTrigger(ADC_

21、BASE, SequenceNum);/ 等待完成 AD轉(zhuǎn)換while(! ADCIntStatus(ADC_BASE, SequenceNum, false)/ 清楚 ADC中斷標(biāo)志位ADCIntClear(ADC_BASE, SequenceNum);/ 讀取 ADC值A(chǔ)DCSequenceDataGet(ADC_BASE, SequenceNum, pui32ADC0Value);/sample_Bridge_Average = pui32ADC0Value0;sample_Bridge_Average = (pui32ADC0Value0 * 3300) / 4096;/#/ 恒流源測(cè)

22、電阻CatchI2C();/ 將高 8位數(shù)據(jù)放置高 8位上temp1 = (I2C_ADC_OpReg_MSB_i & 0x000000FF) = SAMPLE_NUM)bRefresh = true;sample_Index = 0;uint32_tint32_tinti = 0;total_Bridge = 0;total_Source = 0;for(i = 0 ; i 3;sample_Source_Average = total_Source 3;total_Bridge = 0;total_Source = 0; elsesample_Index +;if (bRefresh)/

23、電阻檢測(cè)轉(zhuǎn)換公式/ float ResValue = (sample_Bridge_Average - MIN_BRIDGE_ADC_VALUE) * (MAX_RESISTOR_VALUE / (MAX_BRIDGE_ADC_VALUE - MIN_BRIDGE_ADC_VALUE);/#uint32_ttemp = (int) sample_Bridge_Average;inti = 0 ;unsignedchardata4 = 0;data0 = (temp / 1000);data1 = (temp / 100) % 10;data2 = (temp / 10) % 10;data3 = (temp / 1) % 10;/如果 ADC采樣值發(fā)生變化則更新顯示/*for(i = 0; i 4; +i)LCD_Draw_Char(., LINE_FOUR, 60 + 10 * 1);if(i 15;average = sample_Source_Average + 1 ;/判斷是否是負(fù)數(shù)/if(bit)/ADC_temp = sample_Source_Average + 1;/elseADC_temp = (uint32_t)(sample_Sou

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論