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

下載本文檔

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

文檔簡介

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

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

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

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

5、始化。圖 4實驗代碼主要參考指導書例程的CH3 和 CH4 進行修改,程序代碼見附錄。五、實驗總結(jié):1.實驗結(jié)果:沒有受到壓力時狀態(tài)如圖5 所示,當受到壓力時如圖6 所示,圖 5圖 6這次實驗是一個模擬量輸入數(shù)字量輸出通道的實驗,在一開始由于對實驗箱和軟件的不熟悉,導致所需的時間比原定的時間要長, 而且對實驗的原理并不是很透徹, 只能多參考各方面內(nèi)容來完成這個實驗。有了這次的經(jīng)驗,以后的實驗相信能更快完成。附錄 實驗代碼#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恒流源、電橋電路原理檢測電阻阻值模擬程序* _*|*PA6|-SCLI2C 協(xié)議時鐘信號*M4 PA7|-SDAI2C 協(xié)議數(shù)據(jù)信號*PB4|-ADC0模數(shù)轉(zhuǎn)換信號源* _|*/#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/電橋測電阻的最大ADC顯示值#define MAX_BRIDGE_ADC_VALUE4095/電橋測電阻的最大ADC顯示值#define MAX_RESISTOR_VALUE203500/最大檢測電阻值,單位m#defineSLAVE_ADDRESS0x48/ ADS1100 數(shù)據(jù)寄存器地址#defineSOURCE_OFFSET32768/* 初始化 ADC獲取滾輪電壓值 , 用于電橋電路測量電阻* |/|/M4PB4|-ADC0模數(shù)轉(zhuǎn)換信號源/ _|

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)先級ROM_ADCSequ

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

11、的 ADC電壓數(shù)據(jù) , 用于恒流源測量電阻* |/|/M4PA6|-SCLI2C協(xié)議時鐘信號/PA7|-SDAI2C協(xié)議數(shù)據(jù)信號/ _|*/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é)議時鐘信號、PA7 配置為 I2C 協(xié)議數(shù)據(jù)信號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 主機模塊。設(shè)置總線速度和使能主機模塊I2CMasterInitExpClk(I2C1_BASE,SysCtlC

13、lockGet(), false);/ 使能 I2C 主機模塊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 從機地址( ADS1100 );*2、獲取 16Bit ADC電壓數(shù)據(jù)中的高8Bit;*3、獲取 16Bit ADC電壓數(shù)據(jù)中的低8Bit;*4、得到 ADS1100 的配置信息*/uint32_tI2C_ADC_OpReg_MSB_i;/保存通過I2C讀取 ADS1100 的 16 位 AD的高字節(jié)uint32_tI2C_ADC_OpReg_LSB_i;/保存通過I2C讀取 ADS1100 的 16 位 AD的高字節(jié)uint32_tI2C_ADC_ConfigReg_i;#defi

15、neDELAY_6MS(SysCtlClockGet() / 3) / 150000voidCatchI2C()/ 恒流源測電阻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/恒流源測電阻ADC采樣值unsignedintsample_BridgeSAMPLE_NUM;/電橋測電阻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屏的第一行和第三行分別顯示“電阻:。 ”,用于觀察檢測電阻值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é)議,開啟從Init_I2C_Comm();/ADS1100 讀取 ADC值/ 配置 ADS1100 Configure_I2C();while(1)/ 對 while 做 125ms 的延時,每秒刷新頻率為 8HzROM_SysCtlDelay( SysCtlClockGet()/3/30);/#/ 電橋測電阻ADCProcessorTrigger(ADC_

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

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、電阻檢測轉(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 ;/判斷是否是負數(shù)/if(bit)/ADC_temp = sample_Source_Average + 1;/elseADC_temp = (uint32_t)(sample_Sou

溫馨提示

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

評論

0/150

提交評論