基于A(yíng)RM的溫濕度采集系統(tǒng)_第1頁(yè)
基于A(yíng)RM的溫濕度采集系統(tǒng)_第2頁(yè)
基于A(yíng)RM的溫濕度采集系統(tǒng)_第3頁(yè)
基于A(yíng)RM的溫濕度采集系統(tǒng)_第4頁(yè)
基于A(yíng)RM的溫濕度采集系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、編號(hào)22期末大作業(yè)題目:基于A(yíng)RM的溫濕度采集系統(tǒng) 物聯(lián)網(wǎng)工程 學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè)學(xué) 號(hào) 0304100222 學(xué)生姓名 仲其龍 指導(dǎo)教師 陳志國(guó) 二一三年五月摘 要課題是基于S3C44B0x ARM微處理器為核心,采用LCD液晶顯示,設(shè)計(jì)空氣中的溫溫度和濕度數(shù)據(jù)采集顯示系統(tǒng)。設(shè)計(jì)的過(guò)程主要包括硬件設(shè)計(jì)和軟件設(shè)計(jì),其中軟件設(shè)計(jì)為C語(yǔ)言設(shè)計(jì)。系統(tǒng)的主要功能是從空氣中采集數(shù)據(jù),通過(guò)A/D轉(zhuǎn)換器,轉(zhuǎn)換為數(shù)字信號(hào),并通過(guò)LCD液晶顯示屏顯示。實(shí)現(xiàn)了智能化的溫度數(shù)據(jù)采集、傳輸、處理與顯示功能。關(guān)鍵詞:ARM;S3C44B0x;嵌入式系統(tǒng);數(shù)據(jù)采集 目 錄摘 要I目 錄I第1章 概述11.1實(shí)驗(yàn)

2、目的及要求11.2實(shí)驗(yàn)內(nèi)容1第2章 設(shè)計(jì)原理22.1 硬件系統(tǒng)總體設(shè)計(jì)22.2 LCD液晶顯示設(shè)計(jì)22.2.1 S3C44B0X LCD控制器介紹22.2.2 顯示控制32.2.3 電路設(shè)計(jì)32.3 A/D轉(zhuǎn)換設(shè)計(jì)42.3.1 采樣保持接口42.3.2 分壓電路42.4 電源電路設(shè)計(jì)52.5 溫度采集電路設(shè)計(jì)6第3章 設(shè)計(jì)步驟73.1 軟件設(shè)計(jì)73.2 關(guān)鍵代碼8第4章 實(shí)驗(yàn)結(jié)果及結(jié)果分析124.1 實(shí)驗(yàn)結(jié)果124.2 實(shí)驗(yàn)結(jié)果分析12第5章 小結(jié)12參考文獻(xiàn)13第1章 概述1.1實(shí)驗(yàn)?zāi)康募耙竽壳扒度胧较到y(tǒng)的研究和應(yīng)用中,ARM芯片的使用越來(lái)越廣泛。本課程的目的是了解嵌入式系統(tǒng)基礎(chǔ)理論的前提

3、下,掌握一些常用的ARM處理器相關(guān)的匯編語(yǔ)言和C語(yǔ)言程序設(shè)計(jì)方法,熟悉基于S3C44B0X芯片的硬件接口設(shè)計(jì)方法,學(xué)會(huì)使用ARM集成開(kāi)發(fā)環(huán)境,從而了解嵌入式系統(tǒng)的軟硬件設(shè)計(jì)過(guò)程,為今后從事相關(guān)領(lǐng)域的應(yīng)用和研究打好基礎(chǔ)。通過(guò)大作業(yè)期望可以實(shí)現(xiàn)如下目的:一、掌握一種ARM的開(kāi)發(fā)工具使用方法;二、掌握S3C44B0X ARM處理器的原理和接口設(shè)計(jì)方法;三、掌握ARM的C語(yǔ)言和匯編語(yǔ)言編程方法;四、培養(yǎng)選用參考書(shū)、查閱技術(shù)手冊(cè)及相關(guān)參考文獻(xiàn)的能力;五、培養(yǎng)獨(dú)立思考、分析問(wèn)題和解決問(wèn)題的能力;六、培養(yǎng)嚴(yán)肅認(rèn)真的學(xué)習(xí)風(fēng)氣和良好的溝通協(xié)作能力。1.2實(shí)驗(yàn)內(nèi)容題目:基于A(yíng)RM的溫濕度顯示系統(tǒng)具體要求:1以S3

4、C44B0X的ARM處理器為核心,選擇合適的元器件,設(shè)計(jì)一個(gè)空氣中的溫度和濕度的顯示系統(tǒng);2溫度傳感器和濕度傳感器的類(lèi)型不限,要求溫度測(cè)量范圍為-20+60,濕度測(cè)量范圍為10%90%;3溫度和濕度的顯示,可以采用八段數(shù)碼管或LCD液晶屏的形式;4要求給出S3C44B0X和主要裝置的硬件連接電路圖(原理圖);5要求編寫(xiě)相關(guān)的溫濕度采集和顯示程序,并給出合理的程序注釋。第2章 設(shè)計(jì)原理2.1 硬件系統(tǒng)總體設(shè)計(jì)在本系統(tǒng)的設(shè)計(jì)過(guò)程中,根據(jù)嵌入式系統(tǒng)的基本設(shè)計(jì)思想,系統(tǒng)采用了模塊化的設(shè)計(jì)方法;并且根據(jù)系統(tǒng)的功能要求和技術(shù)指標(biāo),系統(tǒng)遵循自上而下、由大到小、由粗到細(xì)的設(shè)計(jì)思想;按照系統(tǒng)的功能層次,在設(shè)計(jì)中

5、把硬件和軟件分成若干功能模塊分別設(shè)計(jì)和調(diào)試,然后全部連接起來(lái)統(tǒng)調(diào)。 本設(shè)計(jì)的基于A(yíng)RM 的嵌入式數(shù)據(jù)采集和顯示裝置的原理框圖如圖1所示。由圖可見(jiàn),本系統(tǒng)采用“電源部分ARM 核心控制模塊溫度采集模塊”實(shí)現(xiàn)所需功能。下面分別對(duì)各部分的工作原理做簡(jiǎn)要的說(shuō)明: 為了實(shí)現(xiàn)系統(tǒng)所要求的功能和指標(biāo),并考慮到系統(tǒng)的可擴(kuò)展性和延伸性,本系統(tǒng)采用主從CPU協(xié)同工作,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)采集、傳輸與顯示,具有處理速度快、精度高、人機(jī)交互界面友好、穩(wěn)定性高、擴(kuò)展性好等優(yōu)點(diǎn)。 2.2 LCD液晶顯示設(shè)計(jì)2.2.1 S3C44B0X LCD控制器介紹S3C44B0X處理器集成LCD控制器,支持4位單掃描、4 位雙掃描和8位

6、單掃描工作方式。處理器使用內(nèi)部RAM 區(qū)作為顯示緩存,并支持屏幕水平和垂直滾動(dòng)顯示。數(shù)據(jù)的傳送采用DMA(直接內(nèi)存訪(fǎng)問(wèn))方式,以達(dá)到最小的延遲。根據(jù)實(shí)際硬件水平和垂直像素點(diǎn)數(shù)、傳送數(shù)據(jù)位數(shù)、時(shí)間線(xiàn)和幀速率方式等進(jìn)行編程以支持多種類(lèi)型的液晶屏。可以支持的液晶類(lèi)型有:- 單色液晶- 4 級(jí)或16級(jí)灰度屏(基于時(shí)間抖動(dòng)算法或幀速率控制-FRC)- 256 色彩色液晶(STN 液晶)2.2.2 顯示控制LCD 控制器主要提供液晶屏顯示數(shù)據(jù)的傳送、時(shí)鐘和各種信號(hào)的產(chǎn)生與控制功能。S3C44B0X處理器的LCD控制器主要部分框圖如圖2所示:2.2.3 電路設(shè)計(jì)進(jìn)行液晶屏控制電路設(shè)計(jì)時(shí)必須提供電源驅(qū)動(dòng)、偏壓

7、驅(qū)動(dòng)以及LCD 顯示控制器。由于S3C44B0X處理器本身自帶LCD 控制器,而且可以驅(qū)動(dòng)實(shí)驗(yàn)板所選用的液晶屏,所以控制電路的設(shè)計(jì)可以省去顯示控制電路,只需進(jìn)行電源驅(qū)動(dòng)和偏壓驅(qū)動(dòng)的電路設(shè)計(jì)即可。圖3 液晶顯示電路2.3 A/D轉(zhuǎn)換設(shè)計(jì)2.3.1 采樣保持接口在S3C44B0X中A/D模塊有8 個(gè)模擬輸入通道,通道的切換可以由內(nèi)部的定時(shí)器完成。如果要進(jìn)行8個(gè)通道連續(xù)變化的信號(hào)的轉(zhuǎn)換,還必須在8個(gè)通道全部加采樣保持器,采樣保持的接口電路如下圖。模擬輸入信號(hào)為需要轉(zhuǎn)換的信號(hào),驅(qū)動(dòng)控制信號(hào)可以通過(guò)編程利用ARM里面的timer產(chǎn)生,也可以通過(guò)I/O 口來(lái)控制,輸出信號(hào)直接接到A/D模塊中的輸入通道。

8、圖4 采樣保持接口2.3.2 分壓電路分壓電路比較簡(jiǎn)單,為了保證電壓轉(zhuǎn)換時(shí)是穩(wěn)定的,可以直接調(diào)節(jié)可變電阻得到穩(wěn)定的電壓值。圖5 分壓電路2.4 電源電路設(shè)計(jì)本系統(tǒng)的電源電路由兩部分組成:系統(tǒng)總電源電路和RAM核心模塊電源電路。如圖:+12V恒定直流電源經(jīng)電容濾波,分別進(jìn)入7809和7805穩(wěn)壓,得到+9V和+5V的穩(wěn)定電壓輸出后分別供給ARM核心控制模塊和其余電路部分使用。圖中IN4148是為了防止輸出端并接高于本穩(wěn)壓模塊的輸出電壓而燒壞7809和7805而特別設(shè)計(jì),達(dá)到了可靠性電源設(shè)計(jì)目的。另外,由于系統(tǒng)正常工作電流較大,因此使用時(shí)均應(yīng)在7809和7805上加散熱片散熱。 由圖可見(jiàn),系統(tǒng)采用

9、雙電源供電,提供了系統(tǒng)正常工作所需的電源電壓。另外,由于考慮到便攜目的,本系統(tǒng)采用+12V鉛蓄電池提供系統(tǒng)所需的恒定直流電源。 圖6 電源電路2.5 溫度采集電路設(shè)計(jì)溫度采集模塊電路如圖??紤]到系統(tǒng)成本因素,此處采用AT89S52單片機(jī)作為模塊的協(xié)控制器。對(duì)于溫度傳感器的選用DS18B20,因?yàn)镈S18B20是Dallas公司最新單總線(xiàn)數(shù)字溫度傳感器,該傳感器集溫度變換、A/D轉(zhuǎn)換于同一芯片,輸出直接為數(shù)字信號(hào),大大提高了電路的效率。由于現(xiàn)場(chǎng)溫度直接以“一線(xiàn)總線(xiàn)”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,且提高了CPU的效率。圖4中AT89S52單片機(jī)的P0 口與8路溫度傳感器相連,用于采集溫

10、度數(shù)據(jù);另外,模塊提供RS-232串行口與RAM核心控制模塊通信,達(dá)到數(shù)據(jù)傳輸?shù)哪康摹?圖7 溫度采集電路第3章 設(shè)計(jì)步驟3.1 軟件設(shè)計(jì)本溫度數(shù)據(jù)采集與顯示裝置的主體由S3C44B0x核心控制模塊和溫度數(shù)據(jù)采集模塊構(gòu)成,所以系統(tǒng)軟件也是圍繞這兩個(gè)模塊來(lái)編寫(xiě)的。而又由于系統(tǒng)采用了 S3C44Box和AT89S52兩個(gè)CPU協(xié)同工作,所以軟件的編寫(xiě)需要對(duì)這兩個(gè)CPU分別編寫(xiě),以實(shí)現(xiàn)所要求的功能。 由該流程圖可看出,剛上電時(shí),S3C44B0x要先進(jìn)行ARM 內(nèi)部的初始化,以使ARM進(jìn)入相應(yīng)的狀態(tài)和模式;然后初始化硬件裝置,以使硬件系統(tǒng)可以正常支持溫度數(shù)據(jù)采集;接著通信初始化,以確定溫度采集模塊與

11、ARM核心控制模塊連接正常,并通過(guò)UART復(fù)位溫度數(shù)據(jù)采集模塊,確保其進(jìn)入正常溫度數(shù)據(jù)采集狀態(tài);然后初始化LCD顯示和鍵盤(pán),在LCD上顯示相應(yīng)的 菜單列表,供用戶(hù)通過(guò)鍵盤(pán)選擇操作;至此,系統(tǒng)初始化完成,并進(jìn)入正常主程序循環(huán)狀態(tài)。 在正常主程序循環(huán)狀態(tài)中,首先掃描鍵盤(pán),以快速的響應(yīng)用戶(hù)的按鍵操作;若沒(méi)有鍵值按下,則ARM立即進(jìn)行數(shù)據(jù)的采集、處理與顯示,以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集與顯示等功能。 3.2 關(guān)鍵代碼LCD液晶屏初始化:void lcd_init(void)rDITHMODE = 0x12210;rDP1_2= 0xa5a5;rDP4_7= 0xba5da65;rDP3_5= 0xa5a5f;r

12、DP2_3 = 0xd6b;rDP5_7 = 0xeb7b5ed;rDP3_4= 0x7dbe;rDP4_5 = 0x7ebdf;rDP6_7 = 0x7fdfbfe;/ disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk,rLCDCON1= (0x0)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12);/ LINEBLANK=10 (without any calculation)rLCDCON2 = (LINEVAL)|(HOZV

13、AL_COLOR<<10)|(10<<21);rLCDCON3 = 0;/ 256-color, LCDBANK, LCDBASEUrLCDSADDR1 = (0x3<<27) | ( (unsigned int)g_unLcdActiveBuffer>>22)<<21 ) | M5D(unsigned int)g_unLcdActiveBuffer>>1);rLCDSADDR2=M5D(unsigned int)g_unLcdActiveBuffer+(SCR_XSIZE*LCD_YSIZE)>>1) | (

14、MVAL<<21);、rLCDSADDR3 = (LCD_XSIZE/2) | ( (SCR_XSIZE-LCD_XSIZE)/2)<<9 );/The following value has to be changed for better display.rREDLUT =0xfdb96420; / 1111 1101 1011 1001 0110 0100 0010 0000rGREENLUT=0xfdb96420; / 1111 1101 1011 1001 0110 0100 0010 0000rBLUELUT =0xfb40; / 1111 1011 010

15、0 0000rLCDCON1=(0x1)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12);rPDATE=rPDATE&0x0e;lcd_clr();LCD顯示溫度濕度代碼:/-/顯示溫度濕度/-void word_view320x240x256(UINT8T *pBuffer)UINT32T i, j;UINT32T *pView = (UINT32T*)g_unLcdActiveBuffer;for (i = 0; i < SCR_XSIZE *

16、SCR_YSIZE / 4; i+)*pView = (*pBuffer) << 24) + (*(pBuffer+1) << 16) + (*(pBuffer+2) << 8) + (*(pBuffer+3);pView+;pBuffer += 4;相應(yīng)溫度處理與轉(zhuǎn)換子程序: /存放讀取到的當(dāng)前溫度值,未轉(zhuǎn)換 static U16 a-temp-now8=8*0 /存放經(jīng)精度計(jì)算后的實(shí)際溫度值,高8位整數(shù)部分,低8位小數(shù)部分 static U16 b-temp-now8=8*0; /存放8路轉(zhuǎn)換后溫度值,分別為百位,十位,個(gè)位,小數(shù)位 static U8

17、temp-convent-all32=32*0; /- /溫度處理與轉(zhuǎn)換子程序 /- void temp-change(void) U8 negtive=0x00; /存放數(shù)的符號(hào),若為正=0;若為負(fù),=0xff U8 j=0; U8 *pt=temp-convent-all; U16 *p1=a-temp-now; U16 *p3=b-temp-now; U16 temp=0; for(j=0;j<8;j+) negative =0x00; temp=*p1; /若溫度為負(fù)值,進(jìn)行相應(yīng)處理 if(temp&0xf80) !=0) temp=(temp)+1;/轉(zhuǎn)為正的原碼 ne

18、gative=0xff; / 同時(shí)置符號(hào)為0xff /根據(jù)精度消除無(wú)關(guān)數(shù)據(jù) switch(a-temp-prec) case 0x1f: /精度為9位,則清除最低3位無(wú)效位 temp=temp&0xfff8;break; case 0x3f: /精度為10位,則清除最低2位無(wú)效位 temp=temp&0xfffc;break; case 0x5f: /精度為11位,則清除最低1位無(wú)效位 temp=temp&0xfffe;break; case 0x7f: /精度為12位 break; /換算成實(shí)際溫度,并擴(kuò)大10倍,去掉小數(shù)部分 temp=(U16)(float)(te

19、mp)*0.625); /折算放入b-temp-now 數(shù)組中 /高8位放整數(shù)部分,低8位放小數(shù)部分,最高位放符號(hào)位 if(negtive= 0xff) /若為負(fù)值 *p3=(temp/10)<<8)|(temp%10)|0x8000; else *p3=(temp/10)<<8)|(temp%10)&0x7fff; if(negtive=0xff) /若為負(fù)值 (*pt+)=0x80; else (*pt+)=temp/1000%10+0x30; (*pt+)=temp/100%10+0x30; (*pt+)=temp/10%10+0x30; (*pt+)=temp%10+0x30; p1+; p3+; /轉(zhuǎn)換完成后清除讀回的原始溫度 p1=a-temp-now; for(j=8;j>0;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論