




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、南京航空航天大學(xué)研究生實(shí)驗(yàn)報(bào)告項(xiàng)目名稱(chēng):ARM嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用技術(shù)設(shè)計(jì)專(zhuān)題:綜合實(shí)驗(yàn)二類(lèi):數(shù)據(jù)采集和顯示系統(tǒng)班級(jí) 小組成員(1)姓名:學(xué)號(hào):學(xué)科:電話:Email :導(dǎo)師:(2)姓名:學(xué)號(hào):學(xué)科:電話:Email :導(dǎo)師:(3)姓名:學(xué)號(hào):學(xué)科:電話:Email :導(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開(kāi)發(fā)板上的12位A/D轉(zhuǎn)換器(參考電壓3.3V )采集電位器測(cè)試點(diǎn)的電 壓值。電位器與A/D的輸入通道14相連接。2、當(dāng)按下Key鍵之后任意旋轉(zhuǎn)電位器,利用A/D
2、轉(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)為“-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)、開(kāi)發(fā)日期等信息??衫肧TM32開(kāi)發(fā)板 的資源擴(kuò)展其他自定義功能(如增加溫度采集通道、當(dāng)前采樣頻率顯示和設(shè)置、采樣率調(diào) 節(jié)等)。二、
3、硬件框圖本次實(shí)驗(yàn)的硬件部分主要是計(jì)算機(jī)和STM32兩個(gè)部分,對(duì)于計(jì)算機(jī)部分不做過(guò)多的介 紹,下面著重介紹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ù)寄存器中。模擬看門(mén)狗特性允許應(yīng)用程序檢測(cè)輸入電壓是否超出用戶定義的高/低閥值。ADC的 輸入時(shí)鐘不得超過(guò)14MHz,它是由PCLK2經(jīng)分頻產(chǎn)生。STM32教學(xué)平臺(tái)的電位器是信號(hào)是連接到STM32的PC4 口的,PC4正好是A/D 轉(zhuǎn)換的通道
4、14,STM32實(shí)驗(yàn)教學(xué)平臺(tái)上也標(biāo)注了 ADC12_14 (14通道),電位器硬件框 圖如圖1所示,ADC硬件框圖如圖1所示。F.3LUBA7 A3JU A3VAI fAIMVAV Uli VAC tAX) VAM FAS13: 6 Lziniiieru UFt.L Bih-turn一< Kft_U±7Lk rrarpSEFL5r.PWH-口 FT “12-JD n >i ffl iFTTTr LI-PHbH»iATSETjnZ止 °/ 八 Juu. HCIiM-AULTLsls總罪«ELD JCr Fl M Ml > u Fi n z
5、ij卜, g i u 月M rru a “TTFLE0CTLCFLI mTTJYJ(!SC CUTADC硬件框圖1.2 Flash存儲(chǔ)模塊STM32F103ZET6 有 3 個(gè) SPI,分別為 SPI1 > SPI2 和 SPI3。其中 SP2 和I2S2 , SPI3和I2S3共用管腳,采用SPI功能還是I2S功能是由SPI I2S CFGR寄存器的第11位I2SM0D來(lái)決定的SPI2s配置寄存器(SPI2S_CFGR),如下圖3所示。其中I2SM0DE位為1時(shí) 表示選擇I2S模式,為0時(shí)表示選擇SPI模式在STM32開(kāi)發(fā)板上,是采用STM32的SPI1連接SPI FLASH的,如圖2
6、所示,STM32與M25P80的I0接口對(duì)應(yīng)關(guān)系如表1所示-KUTJ C.VCC D 丫祐* Q T5I-r P J< FhUi STK>_1S_SiiL圖2 STM32的SPI1硬件框圖表1 STM32與M25P80的10接口對(duì)應(yīng)關(guān)系STM32接口名稱(chēng)M25P80接口名稱(chēng)PB2( CS)s (片選信號(hào))PA5 ( SPI1_SCK)c (串行時(shí)鐘)PA6 ( SPI1_MISO)Q (串行數(shù)據(jù)輸出)PA7 ( SPI1_MOSI)D (串行數(shù)據(jù)輸入)1.3 Key按鍵介名召通常的按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),由于機(jī)械 觸點(diǎn)的彈性 作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不
7、會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)一下子斷開(kāi)。因而在閉合 及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種 現(xiàn)象而作的措施就是按鍵消抖。消抖是為了避免在按鍵按下或是抬起時(shí)電平劇烈抖動(dòng)帶來(lái)的影響。按鍵的消抖,可用硬 件或軟件兩種方法。Key硬件框圖如圖3所示,按鍵輸入與PG8 口連接。當(dāng)按鍵不按下時(shí),PG8 口輸入高電 平;當(dāng)按鍵按下時(shí),PG8 口輸入低電平User Button圖3 Key硬件框圖14定時(shí)器STM32有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ì)
8、時(shí)外,還可以捕獲比較。這些定時(shí)器具有捕獲比較功能,同 時(shí)還有一些特殊的工作模式。如在捕獲模式下,定時(shí)器將啟用一個(gè)輸入過(guò)濾器和一個(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所示Jk自祝匚配MJ泊LX ,幀.rm 內(nèi)曲時(shí)Ki urnrwn鈿亍務(wù)嚴(yán)4鉗T1*< 出選和 徉,二市Fmix/i'TF. il &*tfJO I?1TRiJ£4智勝視£飛至MJ導(dǎo)對(duì)Ff眄FL-Tim叭 ffigg 比一 i
9、 >njFs*A HA21ph*忸卜'狗諫由口卜國(guó)弋廿1pTit .11 ft加FI1F-IUKk*.-*rT,« 1|K<?50 J> "r"H*/tUicxAa.、k!/r吁IT4 LtriLI&L? «-ocaKA.fiirj 1TP TWAii J -+圖4STM32定時(shí)器內(nèi)部結(jié)構(gòu)三、程序流程圖1、主程序流程圖開(kāi)始初始化1結(jié)束圖5主程序的流程框圖如圖5所示,對(duì)于該流程框圖的分析如下:1)對(duì)STM32的初始化,其中包括ADC初始化、SPI串口初始化、LCD初始化等,初始 化過(guò)程在其相應(yīng)的子程序中執(zhí)行。2)顯示組員的
10、信息和時(shí)間,正如實(shí)驗(yàn)七所學(xué)的,運(yùn)用函數(shù)LCD_ShowString(),即可在LCD上顯示自己所需要的信息,其顯示的位置可以根據(jù)設(shè)定的坐標(biāo)來(lái)設(shè)置。3)設(shè)置Key鍵,當(dāng)Key鍵被按下時(shí),開(kāi)始采集數(shù)據(jù)并將其顯示,而數(shù)據(jù)采集和顯示的編程及其分析過(guò)程在前面的實(shí)驗(yàn)七中已經(jīng)有過(guò)比較詳細(xì)的介紹了,所以這里不再 贅述。同時(shí),采集到的數(shù)據(jù)及時(shí)的將其存儲(chǔ)在Flash中,F(xiàn)lash的設(shè)置在其初始化中已經(jīng) 完成。4)設(shè)置Temper鍵,當(dāng)Temper鍵被按下的時(shí)候,開(kāi)始對(duì)之前采集到的數(shù)據(jù)進(jìn)行繪圖, 而繪圖的過(guò)程在之后的子程序中有比較詳盡地介紹,這里也不在作詳細(xì)的說(shuō)明。2、子程序流程圖對(duì)于采集20組數(shù)據(jù)并顯示、20組數(shù)
11、據(jù)繪圖兩個(gè)子程序進(jìn)行詳細(xì)地說(shuō)明如1)采集20組數(shù)據(jù)并顯示子程序。ADC數(shù)據(jù)采集的編程在之前的實(shí)驗(yàn)中已經(jīng)介紹過(guò),STM32芯片的ADC轉(zhuǎn)換模塊是12位的逐次逼近,所以在采集到14通道的數(shù)據(jù)除以4096 (2S,同時(shí)應(yīng)當(dāng)熟悉ADC轉(zhuǎn)換的初始化過(guò)程,在采集一個(gè)數(shù)據(jù)之后,將其保存 在flash中,同時(shí)經(jīng)過(guò)一定的延時(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ù),并通過(guò)計(jì)算將其轉(zhuǎn)換成坐標(biāo)系中相應(yīng)的坐標(biāo)值,并通過(guò)函數(shù)LC
12、D_DrawLine (X1 ,Y1 ,X2,Y2)將其顯示出來(lái),直到繪制完20個(gè)數(shù)據(jù)為止,流程圖如圖7所示圖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ù)的值是通過(guò)擰動(dòng)電位器上的旋轉(zhuǎn)鍵而得到的,在采樣周期和操作人員擰動(dòng)速度合適的情況下,數(shù)據(jù) 所繪的圖有一定的連續(xù)性。如果設(shè)置的采樣周期太短的話,繪制的圖就可能是一條直線,采 集的數(shù)據(jù)是相同的值,所以在編程的時(shí)候,盡量把采樣時(shí)間設(shè)置的合
13、理一點(diǎn)。在編寫(xiě)顯示組員 信息的程序時(shí),重要的是把坐標(biāo)點(diǎn)設(shè)置合理,不然的話會(huì)出現(xiàn)顯示的字母重疊現(xiàn)象,或是離 的比較遠(yuǎn),上面的調(diào)試結(jié)果圖是經(jīng)過(guò)組員對(duì)程序的坐標(biāo)的調(diào)整,而得到的比較合適的位置。五、源程序清單#include "include.h"#define KEY_ON0#define KEY_OFF1float set_value1;float Get_adcvalue1;float ADC_Flash20;LCD_ShowString(30, 50, "Zeng Ruipeng SX1403006*1);LCD_ShowString(30, 70, "
14、Ge Zhishang SX1405117");void Draw_BigPoint(u16 x5u16 y)(LCD_DrawPoint(x,y); LCD_DrawPoint(x-1 ,y);LC D_D rawPoi nt(x+1 ,y);LCD_DrawPoint(x,y-1); LCD_DrawPoint(x,y+1);)int main(void)(int i;int sectorCnt;u32 Flash ID;char j=0;char flag=0;u16X1,Y1,X2,Y2;float Adc_Value,lastvalue,adctemp;float adcg
15、roup20;u32 ADC_ConvertedValue; char filename260;delay_init();uart_init(9600); NVIC_Configuration();Key_GPIO_Config();Adc_lnit(); LCD_lnit();SPI_FLASHJnit();/TIM2JntJnit(9999,71999);LED_GPIO_Config();Flash J D = SPI_FLASH_ReadlD();POINT_COLOR=BLACK; LCD_ShowString(40, 5, "The 11th Group, 2014.5.
16、28");LCD_ShowString(30, 30, "Chen Maowu SX1403012");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, &q
17、uot;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, 100, "Voltage");LCD_DrawLine(100,198, 100, 20
18、2);LCD_ShowString(96, 205, "5n);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=O)( forQ=0;j<20;j+) (ADC_ConvertedValue = G
19、et_Adc(ADC_Channel_14);Adc_Value=(float)ADC_ConvertedValue / 4096 * 3.3;while(1)adcgroupj=Adc_Value;sprintf(filename,"CurrentValue:%.3fH5adcgroupj);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(adcg
20、roup)/SPI_FLASH_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_BufferRead(u8*)Get_adcvalu e, 4*j, 4);ADC_Flashj=Get_adcvalueO;)POINT COLOR=GREEN
21、;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_DrawLine(58, 160, 62, 160);LCD_ShowString(40, 155, "2V");LCD_DrawLine(58, 140, 62,140);LCD_ShowString(40, 135,
22、"3V");LCD_DrawLine(58, 120, 62, 120);LCD_ShowString(40, 115, "4VH);LCD_ShowString(36, 100, ''Voltage");LCD_DrawLine(100,198, 100, 202);LCD_ShowString(96, 205, f,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(22
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年止咳化痰類(lèi)藥物合作協(xié)議書(shū)
- 2025年人工智能AI芯片項(xiàng)目經(jīng)濟(jì)效益評(píng)估報(bào)告
- 國(guó)際貿(mào)易合同公文寫(xiě)作范文
- 四年級(jí)語(yǔ)文下冊(cè)期中考試完整版部編版
- 二零二五年度電商平臺(tái)商家訂單返利合同
- 二零二五年度冷鏈倉(cāng)儲(chǔ)按季付費(fèi)租賃服務(wù)協(xié)議
- 2025年度茶樓資產(chǎn)及經(jīng)營(yíng)管理權(quán)轉(zhuǎn)讓合同樣本
- 二零二五年度走私犯罪案件刑事委托代理合同
- 二零二五年度應(yīng)收賬款抵押融資協(xié)議
- 2025年度金融行業(yè)人員借調(diào)與風(fēng)險(xiǎn)管理合同
- GB/T 4154-1993氧化鑭
- 水泥混凝土路面試驗(yàn)檢測(cè)的要點(diǎn)
- 運(yùn)輸供應(yīng)商年度評(píng)價(jià)表
- 室內(nèi)消防及給排水管道安裝施工方案方案
- 無(wú)創(chuàng)呼吸機(jī)參數(shù)調(diào)節(jié)課件
- 《過(guò)零丁洋》公開(kāi)課件
- 文件傳閱單范本
- 電工培養(yǎng)計(jì)劃表
- 部編版五年級(jí)道德與法治下冊(cè)課程綱要
- Q∕SY 02006-2016 PVT取樣技術(shù)規(guī)程
- 初中物理公式MicrosoftWord文檔
評(píng)論
0/150
提交評(píng)論