




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、南京航空航天大學(xué)研究生實(shí)驗(yàn)報(bào)告項(xiàng)目名稱: ARM 嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用技術(shù)設(shè)計(jì)專題:綜合實(shí)驗(yàn)二類:數(shù)據(jù)采集和顯示系統(tǒng)班級(jí) :小組成員(1)姓名:學(xué)號(hào): f電話:Email :導(dǎo)師:(2)姓名:學(xué)號(hào): f電話:Email :導(dǎo)師:(3)姓名:學(xué)號(hào): fEmail :導(dǎo)師:20XX 年 XX 月 XX 日一、本實(shí)驗(yàn)主要內(nèi)容及要求本次綜合實(shí)驗(yàn)的主要內(nèi)容是,利用ARM 內(nèi)部的 A/D 轉(zhuǎn)換器進(jìn)行數(shù)據(jù)采集和顯示系統(tǒng)設(shè)計(jì)。實(shí)驗(yàn)要求如下:1、 采用 STM32 開發(fā)板上的12 位 A/D 轉(zhuǎn)換器 (參考電壓3.3V) 采集電位器測(cè)試點(diǎn)的電壓值。電位器與A/D 的輸入通道14 相連接。2、 當(dāng)按下 Key 鍵
2、之后任意旋轉(zhuǎn)電位器,利用 A/D 轉(zhuǎn)化器采樣20 組電壓值 (每1ms 采樣一次,使用定時(shí)器TIM2 計(jì)時(shí)) , 并在液晶屏幕上顯示當(dāng)前電壓值,當(dāng)再次按下Key 鍵之后將20 組電壓值存入到FLASH 中。3、 復(fù)位后按下Temper 鍵將保存的20 組電壓值在液晶屏幕中央繪制出波形(要求各點(diǎn)連接,每個(gè)點(diǎn)為5 個(gè)像素,要有坐標(biāo)系)。1) 橫坐標(biāo)為“1 20 ”,每個(gè)橫坐標(biāo)之間的間隔為 8 個(gè)像素點(diǎn);2)縱坐標(biāo)為電壓值“ 0V, 1V, 2V, 3V, 4V”,相鄰坐標(biāo)之間的為10個(gè) 像素點(diǎn)。4、 在液晶屏合適的位置顯示組名、姓名、 學(xué)號(hào)、 開發(fā)日期等信息??衫?STM32開發(fā)板的資源擴(kuò)展其他
3、自定義功能(如增加溫度采集通道、當(dāng)前采樣頻率顯示和設(shè)置、采樣率調(diào)節(jié)等)。二、硬件框圖本次實(shí)驗(yàn)的硬件部分主要是計(jì)算機(jī)和STM32 兩個(gè)部分,對(duì)于計(jì)算機(jī)部分不做過多的介紹,下面著重介紹STM32 中的與本實(shí)驗(yàn)相關(guān)模塊。1.1 ADC 模塊12 位 ADC 是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有多達(dá)18 個(gè)通道,可測(cè)量 16 個(gè)外部和2 個(gè)內(nèi)部信號(hào)源。各通道的A/D 轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC 的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在16 位數(shù)據(jù)寄存器中。模擬看門狗特性允許應(yīng)用程序檢測(cè)輸入電壓是否超出用戶定義的高/ 低閥值。 ADC 的輸入時(shí)鐘不得超過14MHz ,它是由PCLK2 經(jīng)分
4、頻產(chǎn)生。STM32 教學(xué)平臺(tái)的電位器是信號(hào)是連接到STM32 的 PC4 口的, PC4 正好是 A/D 轉(zhuǎn)換的通道14, STM32 實(shí)驗(yàn)教學(xué)平臺(tái)上也標(biāo)注了ADC12_14( 14 通道) ,電位器硬件框圖如圖1 所示, ADC 硬件框圖如圖1 所示。fah Mil ncMUPAMHMJI13r叫戶!工OLTMjsrKtuxri Lue iruorf pi KIMHLXULTADC硬件框圖占改匚; LJFt.L 時(shí)并 叼百手- » 叼科工也 ELD X釀 K B DU、 七門u FLH E| l J3 >"TTFlu 、* i ,一 .0小 、I,-3ra、J Fl
5、!LCFklZFI:*TFTBTeteuT» Fir iJ H: j工 Fl:: D H1J 節(jié)Fl F二:r-nI EE*1.2 Flash存儲(chǔ)模塊STM32F103ZET6 有 3 個(gè) SPI,分另1為 SPI1、 SPI2 和 SPI3。其中 SP2 和I2S2 , SPI3 和 I2S3SPI功能還是I2S功能是由SPI I2S CFGR寄存器的第11位I2SMOD來決定的SPI_12s配置寄存器(SPI_I2S_CFGR),如下圖3所示。其中I2SMODE位為1時(shí)表示選擇I2S模式,為0時(shí)表示選擇SPI模式。在STM32開發(fā)板上,是采用 STM32的SPI1連接SPI FL
6、ASH的,如圖2 所示,STM32與M25P80的IO接口對(duì)應(yīng)關(guān)系如表1所示。+3V3,Th|b'IOTiiF UflI-RESET C -5/i-; ycc 0 n1- N VSS 一_ h一. P-2 I g 而L_ I1. P45KD5PE80+VVX伍 二端T<7Fl?sJj_MOSi)-圖2 STM32的SPI1硬件框圖表1 STM32 與M25P80 的IO接口對(duì)應(yīng)關(guān)系STM32接口名稱M25P80接口名稱PB2 (CS)S (片選信號(hào))PA5 (SPI1_SCK)C (串行時(shí)鐘)PA6 (SPI1_MISO )Q (串行數(shù)據(jù)輸出)PA7 (SPI1_MOSI )D
7、(串行數(shù)據(jù)輸入)1.3 Key按鍵介紹通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān), 當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械 觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通, 在斷開時(shí)也不會(huì) 一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種 現(xiàn)象而作的措施就是按鍵消抖。消抖是為了避免在按鍵按下或是抬起時(shí)電平劇烈抖動(dòng)帶來的影響。 按鍵的消 抖,可用硬件或軟件兩種方法。Key硬件框圖如圖3所示,按鍵輸入與PG8 口連接。當(dāng)按鍵不按下時(shí),PG8口輸入高電平;當(dāng)按鍵按下時(shí),PG8 口輸入低電平。+JV3TM.R22產(chǎn)IIa userUser Button圖3 Key硬件框圖1.4 定時(shí)器S
8、TM32有4個(gè)定時(shí)器單元,一共有8個(gè)定時(shí)器。定時(shí)器1和定時(shí)器8構(gòu)成 功能強(qiáng)大的高級(jí)定時(shí)器,這兩個(gè)定時(shí)器在電機(jī)控制方面有絕對(duì)的優(yōu)勢(shì)。其他剩下 的定時(shí)器是通用定時(shí)器。STM32的定時(shí)器除了可以計(jì)時(shí)外,還可以捕獲比較。這些定時(shí)器具有捕獲 比較功能,同時(shí)還有一些特殊的工作模式。如在捕獲模式下,定時(shí)器將啟用一個(gè) 輸入過濾器和一個(gè)特殊的 PWM測(cè)量模塊,同時(shí)還支持編碼器輸入,這些編碼 輸入可以測(cè)出電機(jī)的旋轉(zhuǎn)方向甚至可以測(cè)出速度。而在比較模式下,定時(shí)器可以實(shí)現(xiàn)標(biāo)準(zhǔn)的比較功能、輸可以調(diào)節(jié)占空比的 PWM波。STM32定時(shí)器內(nèi)部結(jié)構(gòu),如圖4所示內(nèi)時(shí)14 mjk iwe百利 tmfClx -EEIHWOTTET內(nèi)
9、Q4L賴林純13h-M K .1 J.劉“乒匕MX粉nx»工乍tt企加出福 R3LWLFI1F*IUKk'.-'擅Hl!憐肝卡.用二"1下】II &riftK.LJhiTIM 0M*氣it JE4謝由匕事*盜糜無為八百福 具均名夢(mèng)卡兒證以6 子再木r酬hTllf ATfit咤FMFfETRipr叫TRSF,#3ur -1JKCIG1. jlcire U *f. 一; 叫>f”C2(2,|d更看察雷格,u停iM演U曲向卜插Iwr.狄諾CC' I悔#LU; 1常#L "當(dāng)通叱W戈號(hào)5用J-匹二e菇 mrMm* 在 HT HHt修霹
10、仃CC1I-> -i1司海兌知",文小圖4 STM32定時(shí)器內(nèi)部結(jié)構(gòu)三、程序流程圖1、主程序流程圖c開始)初始化組員信息顯示-N一V Key按鍵是否按下二-Y采集20組數(shù)據(jù)并顯示1Y將20組數(shù)據(jù)存入Flash»Nj_Temper按鍵是否按下t,丫20組數(shù)據(jù)繪圖/ J、(結(jié)束:圖5主程序的流程框圖如圖5所示,對(duì)于該流程框圖的分析如下:1)對(duì)STM32的初始化,其中包括ADC初始化、SPI串口初始化、LCD初始化 等,初始化過程在其相應(yīng)的子程序中執(zhí)行。2)顯示組員的信息和時(shí)間,正如實(shí)驗(yàn)七所學(xué)的,運(yùn)用函數(shù)LCD_ShowString(), 即可在LCD上顯示自己所需要的信息
11、,具顯示的位置可以根據(jù)設(shè)定的坐標(biāo)來設(shè)置。3) 設(shè)置 Key 鍵,當(dāng) Key 鍵被按下時(shí),開始采集數(shù)據(jù)并將其顯示,而數(shù)據(jù)采集和顯示的編程及其分析過程在前面的實(shí)驗(yàn)七中已經(jīng)有過比較詳細(xì)的介紹了,所以這里不再贅述。同時(shí), 采集到的數(shù)據(jù)及時(shí)的將其存儲(chǔ)在Flash 中, Flash的設(shè)置在其初始化中已經(jīng)完成。4) 設(shè)置 Temper 鍵, 當(dāng) Temper 鍵被按下的時(shí)候,開始對(duì)之前采集到的數(shù)據(jù)進(jìn)行繪圖,而繪圖的過程在之后的子程序中有比較詳盡地介紹,這里也不在作詳細(xì)的說明。2、子程序流程圖對(duì)于采集20組數(shù)據(jù)并顯示、20組數(shù)據(jù)繪圖兩個(gè)子程序進(jìn)行詳細(xì)地說明如下:1)采集20組數(shù)據(jù)并顯示子程序。ADC數(shù)據(jù)采集的
12、編程在之前的實(shí)驗(yàn)中已經(jīng)介 紹過,STM32芯片的ADC轉(zhuǎn)換模塊是12位的逐次逼近,所以在采集到 14通道的數(shù)據(jù)除以4096 (212),同時(shí)應(yīng)當(dāng)熟悉ADC轉(zhuǎn)換的初始化過程, 在采集一個(gè)數(shù)據(jù)之后,將其保存在 flash中,同時(shí)經(jīng)過一定的延時(shí)之后進(jìn)行 下一個(gè)數(shù)據(jù)采集,直到采集滿20個(gè)數(shù)據(jù)為止,流程圖如圖6所示。圖6采集數(shù)據(jù)并顯示子程序流程圖2)將20組數(shù)據(jù)繪圖。在采集完20組數(shù)據(jù)后,進(jìn)入繪圖子程序,繪圖最初是進(jìn) 行坐標(biāo)的建立,坐標(biāo)軸繪制好之后,依次讀取存入Flash中的數(shù)據(jù),并通過計(jì)算將其轉(zhuǎn)換成坐標(biāo)系中相應(yīng)的坐標(biāo)值,并通過函數(shù) LCD_DrawLine(X1,Y1,X2,Y2)將其顯示出來,直到繪
13、制完 20個(gè)數(shù)據(jù)為止, 流程圖如圖7所示。20組數(shù)據(jù)繪圖圖7數(shù)據(jù)繪制子程序四、實(shí)驗(yàn)結(jié)果和分析1、軟件的調(diào)試結(jié)果將程序燒錄到STM32中進(jìn)行調(diào)試,調(diào)試結(jié)果如圖89所示,從圖中可知, 程序滿足實(shí)驗(yàn)要求。圖8顯示日期及組員信息圖9顯示電壓值及數(shù)據(jù)繪圖2、結(jié)果分析如調(diào)試結(jié)果可知,程序基本上滿足了本實(shí)驗(yàn)的要求,其中,20個(gè)數(shù)據(jù)的值是通過擰動(dòng)電位器上的旋轉(zhuǎn)鍵而得到的,在采樣周期和操作人員擰動(dòng)速度合適的情況下,數(shù)據(jù)所繪的圖有一定的連續(xù)性。 如果設(shè)置的采樣周期太短的話,繪制的 圖就可能是一條直線,采集的數(shù)據(jù)是相同的值,所以在編程的時(shí)候,盡量把采樣 時(shí)間設(shè)置的合理一點(diǎn)。在編寫顯示組員信息的程序時(shí),重要的是把坐標(biāo)
14、點(diǎn)設(shè)置合理,不然的話會(huì)出現(xiàn)顯示的字母重疊現(xiàn)象, 或是離的比較遠(yuǎn),上面的調(diào)試結(jié)果圖是經(jīng)過組員對(duì)程序的坐標(biāo)的調(diào)整,而得到的比較合適的位置。五、源程序清單#include "include.h"#define KEY_ON0#define KEY_OFF1float set_value1;float Get_adcvalue1;float ADC_Flash20;void Draw_BigPoint(u16 x,u16 y)LCD_DrawPoint(x,y);LCD_DrawPoint(x-1,y);LCD_DrawPoint(x+1,y);LCD_DrawPoint(x,y-
15、1);LCD_DrawPoint(x,y+1);int main(void)int i;int sectorCnt;u32 Flash_ID;char j=0;char flag=0;u16 X1,Y1,X2,Y2;float Adc_Value,lastvalue,adctemp;float adcgroup20;u32 ADC_ConvertedValue;char filename260;delay_init();uart_init(9600);NVIC_Configuration();Key_GPIO_Config();Adc_Init();LCD_Init();SPI_FLASH_I
16、nit();/TIM2_Int_Init(9999,71999);LED_GPIO_Config();Flash_ID = SPI_FLASH_ReadID();POINT_COLOR=BLACK;LCD_ShowString(40, 5, "The 11th Group, 2014.5.28");LCD_ShowString(30, 30, "Chen MaowuSX1403012");LCD_ShowString(30, 50, "Zeng Ruipeng SX1403006");LCD_ShowString(30, 70, &q
17、uot;Ge Zhishang SX1405117");while(1) if(Key_Scan(GPIOG, GPIO_Pin_8) = KEY_ON)LCD_Clear(WHITE);POINT_COLOR=GREEN;LCD_DrawLine(60, 200, 240, 200);LCD_ShowString(40, 195, "0V");LCD_DrawLine(60, 200, 60, 110);LCD_DrawLine(58, 180, 62, 180);LCD_ShowString(40, 175, "1V");LCD_DrawL
18、ine(58, 160, 62, 160);LCD_ShowString(40, 155, "2V");LCD_DrawLine(58, 140, 62,140);LCD_ShowString(40, 135, "3V");LCD_DrawLine(58, 120, 62, 120);LCD_ShowString(40, 115, "4V");LCD_ShowString(36, 100, "Voltage");LCD_DrawLine(100,198, 100, 202);LCD_ShowString(96, 2
19、05, "5");LCD_DrawLine(140,198, 140, 202);LCD_ShowString(136, 205, "10");LCD_DrawLine(180,198, 180, 202);LCD_ShowString(176, 205, "15");LCD_DrawLine(220,198, 220, 202);LCD_ShowString(216, 205, "20");if(flag=0) for(j=0;j<20;j+)ADC_ConvertedValue=Get_Adc(ADC_C
20、hannel_14); Adc_Value= (float)ADC_ConvertedValue / 4096 * 3.3;adcgroupj=Adc_Value;sprintf(filename,"CurrentValue:%.3f",adcgroupj);LCD_ShowString(30,60,filename); POINT_COLOR=BLUE;X1=68+8*j;Y1=200-20*Adc_Value; Draw_BigPoint(X1,Y1); delay_ms(1000); if(flag=1) sectorCntsizeof(adcgroup)/SPI_F
21、LASH_SectorSize;if(sizeof(adcgroup)%SPI_FLASH_SectorSi ze != 0)sectorCnt+;for(i = 0; i < sectorCnt; i+ ) SPI_FLASH_SectorErase(i*SPI_FLASH_Sec torSize);for(j=0;j<20;j+)set_value0=adcgroupj;SPI_FLASH_BufferWrite(u8*)set_value, 4*j, sizeof(float);LCD_Clear(WHITE); POINT_COLOR=RED; LCD_ShowString
22、(60, 120, "HaveStored In Flash!"); flag=!flag;if(Key_Scan(GPIOC, GPIO_Pin_13)= KEY_ON)for(j=0;j<20;j+)SPI_FLASH_BufferRead(u8*)Get_adcvalu e, 4*j, 4);ADC_Flashj=Get_adcvalue0;POINT_COLOR=GREEN;LCD_DrawLine(60, 200, 240, 200);LCD_ShowString(40, 195, "0V");LCD_DrawLine(60, 200,
23、60, 110);LCD_DrawLine(58, 180, 62, 180);LCD_ShowString(40, 175, "1V");LCD_DrawLine(58, 160, 62, 160);LCD_ShowString(40, 155, "2V");LCD_DrawLine(58, 140, 62,140);LCD_ShowString(40, 135, "3V");LCD_DrawLine(58, 120, 62, 120);LCD_ShowString(40, 115, "4V");LCD_ShowString(36,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中考語文一輪復(fù)習(xí):應(yīng)用文 練習(xí)題(含答案)
- 電梯清洗抱閘施工方案
- 2025年中考語文寫作復(fù)習(xí):備考作文主題《山花爛漫時(shí)》演繹張桂梅的“燃燈精神”
- 石材露臺(tái)改造施工方案
- 市政防滑路面施工方案
- 2025年法律援助測(cè)試題及答案
- 低介電常數(shù)聚酰亞胺
- 4年級(jí)下冊(cè)英語手抄報(bào)1到5單元
- 4-庚氧基-1-丁醇用途
- 鋼塑門施工方案
- SL176-2007《水利水電工程施工質(zhì)量檢驗(yàn)與評(píng)定規(guī)程》
- 挖掘機(jī)液壓原理動(dòng)作分解
- 腹部CT應(yīng)用入門
- 2019版外研社高中英語選擇性必修二Unit 1 Growing up 單詞表
- 路基接觸網(wǎng)基礎(chǔ)技術(shù)交底
- (高清版)輻射供暖供冷技術(shù)規(guī)程JGJ142-2012
- JTT 1295—2019道路大型物件運(yùn)輸規(guī)范_(高清-最新)
- 土壤固化土施工技術(shù)導(dǎo)則
- VAR模型Johansen協(xié)整檢驗(yàn)在eviews中的具體操作步驟及結(jié)果解釋
- 冷凍面團(tuán)項(xiàng)目市場分析
- 加油站法律法規(guī)符合性評(píng)價(jià)
評(píng)論
0/150
提交評(píng)論