stm32電子指南針_第1頁
stm32電子指南針_第2頁
stm32電子指南針_第3頁
stm32電子指南針_第4頁
stm32電子指南針_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 小型智能電子終端 課程設(shè)計(jì)說明書題 目: 電子指南針 院 (系): 信息科學(xué)與工程學(xué)院 專業(yè)班級(jí): 電子1102 學(xué)生姓名: 王金輝 學(xué) 號(hào): 20111185061 指導(dǎo)教師: 徐琴 20 14 年 6 月 9 日至20 14 年 6 月 25 日華中科技大學(xué)武昌分校制 小型智能電子終端 課程設(shè)計(jì)任務(wù)書一、設(shè)計(jì)題目電子指南針二、設(shè)計(jì)主要內(nèi)容(1) 廣泛查找文獻(xiàn)資料,認(rèn)真研究,反復(fù)論證,精心設(shè)計(jì)技術(shù)方案。(2) 嚴(yán)格遵守各項(xiàng)紀(jì)律,勤奮學(xué)習(xí),認(rèn)真思考,敢于挑戰(zhàn)困難并勇于創(chuàng)新。(3) 較為深入的掌握ARM處理器的體系結(jié)構(gòu)、指令系統(tǒng)、編程方法,初步了解ARM應(yīng)用系統(tǒng)的軟硬件開發(fā)方法及手段,較熟練地

2、掌握ARM處理器幾種重要的片內(nèi)外設(shè)(定時(shí)器、PLL、I2C、RTC等)的基本原理及編程方法,初步掌握ARM處理器外圍電路的擴(kuò)展方法。(4) 通過三軸加速度傳感器檢測(cè)到的偏差角度,再傳送到ARM芯片處理,送到顯示屏顯示此時(shí)的方位。(5) 分析結(jié)果,獨(dú)立撰寫設(shè)計(jì)總結(jié)報(bào)告陳述自己的觀點(diǎn),格式應(yīng)嚴(yán)格遵守學(xué)校規(guī)范。內(nèi)容盡量翔實(shí),其中必須要有自己獨(dú)立的見解和認(rèn)識(shí)。三、原始資料硬件資源:TFT的顯示屏,STM32的實(shí)驗(yàn)板,GY271三軸加速度傳感器,燒錄線設(shè)計(jì)指導(dǎo)書:ARM系統(tǒng)板配套光盤四、要求的設(shè)計(jì)成果(1)在顯示屏上顯示具體方位。(2)撰寫課程設(shè)計(jì)說明書,要求簡(jiǎn)潔、通順,格式規(guī)范,設(shè)計(jì)方案正確,實(shí)現(xiàn)技術(shù)

3、路線明確,論述內(nèi)容完整、清楚、規(guī)范,數(shù)據(jù)、資料真實(shí)可靠,軟件程序運(yùn)行良好。(3)要求有完整的電路設(shè)計(jì)原理圖及軟件源代碼。五、進(jìn)程安排(1)第 1 天:任務(wù)布置及相關(guān)知識(shí)講解(2)第2-3天:資料查閱與方案制定(3)第4-8天:硬件設(shè)計(jì)、程序編制與調(diào)試階段(4)第 9 天:撰寫設(shè)計(jì)報(bào)告(5)第 10 天:答辯與考核階段六、主要參考資料1 田澤. 嵌入式系統(tǒng)開發(fā)與應(yīng)用實(shí)驗(yàn)教程. 北京航空航天工業(yè)大學(xué)出版社,2005.2 郭榮佐,王霖. 嵌入式系統(tǒng)原理.北京航空航天大學(xué)出版社,.2008.3 周根林.嵌入式系統(tǒng)原理與應(yīng)用.南京大學(xué)出版社, 2006.4 譚浩強(qiáng). C語言程序設(shè)計(jì)(第2版).清華大學(xué)出

4、版社,20085 丁峰. ARM系統(tǒng)開發(fā)從實(shí)踐到提高. 中國(guó)電力出版社,2007.6 游雨云. 單片機(jī)PWM信號(hào)控制智能小車的實(shí)現(xiàn)方法.技術(shù)與市場(chǎng), 2009,(12)7 袁新娜,余紅英,超聲波傳感器在智能小車避障系統(tǒng)中的應(yīng)用. 大眾商務(wù)教育版(民辦教育研究),2009,(8)指導(dǎo)教師(簽名): 20 年 月 日目錄1.前言12.總體設(shè)計(jì)方案22.1總體設(shè)計(jì)23硬件設(shè)計(jì)33.1 STM3233.2顯示模塊44.軟件設(shè)計(jì)64.1 12864模塊64.2 主函數(shù)模塊75.系統(tǒng)調(diào)試106.結(jié)論117. 心得與體會(huì)131.前言指南針是用以判別方位的一種簡(jiǎn)單儀器,是一種重要的導(dǎo)航工具,可應(yīng)用在多種場(chǎng)合中

5、。指南針的前身是中國(guó)古代四大發(fā)明之一的司南。主要組成部分是一根裝在軸上可以自由轉(zhuǎn)動(dòng)的磁針。磁針在地磁場(chǎng)作用下能保持在磁子午線的切線方向上。磁針的北極指向地理的北極,利用這一性能可以辨別方向。常用于航海、大地測(cè)量等方面。隨著人們對(duì)指南針原理認(rèn)識(shí)的不斷深入,指南針也由先前笨重的“司南”發(fā)展到現(xiàn)在的便攜式的指南針。但其基本構(gòu)造是沒有改變的,都是屬于機(jī)械的指針式,其指示的機(jī)械結(jié)構(gòu)基本上沒有改變,都是利用某種支撐使得磁針能夠受到地磁場(chǎng)的影響而自由的旋轉(zhuǎn)。由于機(jī)械的先天因素導(dǎo)致了指針式指南針在便攜性、靈敏度、精度以及使用壽命上都有一定的限制。由于國(guó)內(nèi)外電子技術(shù)的飛速發(fā)展,特別是在磁傳感器和專用芯片上的發(fā)展

6、使能指南針的基本實(shí)現(xiàn)機(jī)理有了質(zhì)的改變,不再是機(jī)械結(jié)構(gòu)而采用了磁場(chǎng)傳感器和專用處理器對(duì)磁場(chǎng)進(jìn)行測(cè)量和處理后指示方向,這就是當(dāng)前應(yīng)用較為廣泛的電子式指南針。電子指南針內(nèi)部結(jié)構(gòu)固定,沒有移動(dòng)部分,可以簡(jiǎn)單地和其它電子系統(tǒng)接口,因此可代替舊的磁指南針。并以精度高、穩(wěn)定性好等特點(diǎn)得到了廣泛運(yùn)用。本設(shè)計(jì)采用Honeywell公司的各向異性磁阻(AMR)傳感器芯片HMC5883L。霍尼韋爾HMC5883L是一種表面貼裝的高集成模塊,并帶有數(shù)字接口的弱磁傳感器芯片,HMC5883L包括最先進(jìn)的高分辨率HMC118X系列磁阻傳感器,并附帶霍尼韋爾專利的集成電路包括放大器、自動(dòng)消磁驅(qū)動(dòng)器、偏差校準(zhǔn)、能使指南針精度

7、控制在1°2°的12位模數(shù)轉(zhuǎn)換器。簡(jiǎn)易的I2C系列總線接口。HMC5883L采用霍各向異性磁阻(AMR)技術(shù),該技術(shù)領(lǐng)先于這些各向異性傳感器具有在軸向高靈敏度和線性高精度的特點(diǎn)。傳感器具有的對(duì)正交軸的低靈敏度的固相結(jié)構(gòu)能用于測(cè)量地球磁場(chǎng)的方向和大小,其測(cè)量范圍從負(fù)8高斯到 8 高斯(gauss)。本文介紹了電子指南針的工作原理及電路硬件及軟件的設(shè)計(jì),同時(shí)給出了其抗干擾設(shè)計(jì)以及信號(hào)和數(shù)據(jù)的處理方法。02.總體設(shè)計(jì)方案2.1總體設(shè)計(jì) 通過以上測(cè)量分析思路所得傳感器信號(hào),經(jīng)過STM32數(shù)據(jù)預(yù)處理和算法補(bǔ)償后在上傳到12864液晶屏上顯示。結(jié)合以上各方案選擇及設(shè)計(jì)思路可得出以下總體

8、方案框圖。STM32最小系統(tǒng)HMC5883L(磁阻傳感器+ASIC)I2C電源12864顯示器圖2.2 總體方案設(shè)計(jì)框圖3硬件設(shè)計(jì)對(duì)于此次電路設(shè)計(jì),我們采用的是老師給的STM32最小系統(tǒng),外加顯示模塊,我們是采用12864LCD來顯示;三軸加速度傳感器模塊我們采用的是GY271傳感器。由于板子上的高低電平引腳不夠,我們自己外擴(kuò)了引腳模塊。3.1 STM32 STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核。按性能分成兩個(gè)不同的系列:STM32F103“增強(qiáng)型”系列和STM32F101“基本型”系列。增強(qiáng)型系列時(shí)鐘頻率達(dá)到72MHz,是同類產(chǎn)品

9、中性能最高的產(chǎn)品;基本型時(shí)鐘頻率為36MHz,以16位產(chǎn)品的價(jià)格得到比16位產(chǎn)品大幅提升的性能,是16位產(chǎn)品用戶的最佳選擇。兩個(gè)系列都內(nèi)置32K到128K的閃存,不同的是SRAM的最大容量和外設(shè)接口的組合。時(shí)鐘頻率72MHz時(shí),從閃存執(zhí)行代碼,STM32功耗36mA,是32位市場(chǎng)上功耗最低的產(chǎn)品,相當(dāng)于0.5mA/MHz。其參數(shù)與主要特點(diǎn)如下:1.參數(shù): 2V-3.6V供電, 容忍5V的I/O管腳, 優(yōu)異的安全時(shí)鐘模式, 帶喚醒功能的低功耗模式, 內(nèi)部RC振蕩器 ,內(nèi)嵌復(fù)位電路 ,工作溫度范圍:-40°C至+85°C或105°C。2.特點(diǎn):(1)內(nèi)核:ARM32位

10、Cortex-M3 CPU,最高工作頻率72MHz,1.25DMIPS/MHz。單周期乘法和硬件除法。(2)存儲(chǔ)器:片上集成32-512KB的Flash存儲(chǔ)器。6-64KB的SRAM存儲(chǔ)器。(3)時(shí)鐘、復(fù)位和電源管理:2.0-3.6V的電源供電和I/O接口的驅(qū)動(dòng)電壓。POR、PDR和可編程的電壓探測(cè)器(PVD)。4-16MHz的晶振。內(nèi)嵌出廠前調(diào)校的8MHz RC振蕩電路。內(nèi)部40 kHz的RC振蕩電路。用于CPU時(shí)鐘的PLL。帶校準(zhǔn)用于RTC的32kHz的晶振。(4)低功耗:3種低功耗模式:休眠,停止,待機(jī)模式。為RTC和備份寄存器供電的VBAT。(5)調(diào)試模式:串行調(diào)試(SWD)和JTAG

11、接口。(6)DMA:12通道DMA控制器。支持的外設(shè):定時(shí)器,ADC,DAC,SPI,IIC和UART。(7)2個(gè)12位的us級(jí)的A/D轉(zhuǎn)換器(16通道):A/D測(cè)量范圍:0-3.6 V。雙采樣和保持能力。片上集成一個(gè)溫度傳感器。(8)2通道12位D/A轉(zhuǎn)換器:STM32F103xC,STM32F103xD,STM32F103xE獨(dú)有。(9)最多高達(dá)112個(gè)的快速I/O端口:根據(jù)型號(hào)的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16個(gè)外部中斷向量。除了模擬輸入,所有的都可以接受5V以內(nèi)的輸入。(10)最多多達(dá)11個(gè)定時(shí)器:4個(gè)16位定時(shí)器,每個(gè)定時(shí)器有4個(gè)IC/

12、OC/PWM或者脈沖計(jì)數(shù)器。2個(gè)16位的6通道高級(jí)控制定時(shí)器:最多6個(gè)通道可用于PWM輸出。2個(gè)看門狗定時(shí)器(獨(dú)立看門狗和窗口看門狗)。Systick定時(shí)器:24位倒計(jì)數(shù)器。2個(gè)16位基本定時(shí)器用于驅(qū)動(dòng)DAC。(11)最多多達(dá)13個(gè)通信接口:2個(gè)IIC接口(SMBus/PMBus)。5個(gè)USART接口(ISO7816接口,LIN,IrDA兼容,調(diào)試控制)。3個(gè)SPI接口(18 Mbit/s),兩個(gè)和IIS復(fù)用。CAN接口(2.0B)。USB 2.0全速接口。SDIO接口。(12)ECOPACK封裝:STM32F103xx系列微控制器采用ECOPACK封裝形式。3.2顯示模塊 12864是128

13、*64點(diǎn)陣的圖形型液晶顯示模塊,控制器ST7920.可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16*16點(diǎn)陣),128個(gè)字符(8*16點(diǎn)陣)及64*256點(diǎn)陣顯示RAM(GDRAAM).可與CPU直接接口,提供兩種界面來連接微處理器:8位并行及串行兩種連接方式。具有多種功能:光標(biāo)顯示,畫面移位,睡眠模式等。 圖3.1.1 12864LCD引腳圖 圖3.1.2 引腳說明圖模塊的外部接口 : 1、邏輯工作電壓(VDD):3.3V5.3V(默認(rèn)出貨為 5V)模塊在 V0 懸空時(shí)邏 輯電壓 5V 顯示最佳 2、電源地(GND):0V 3、工作溫度(Ta): -2075(寬溫)-30-80(默認(rèn)出貨是寬

14、溫-20-70)4.軟件設(shè)計(jì)4.1 12864模塊 在設(shè)計(jì)該模塊代碼時(shí),最主要的就是驅(qū)動(dòng)程序。在12864液晶顯示屏的初始化代碼寫好了,需要檢測(cè)是否處于忙碌狀態(tài),一切正常進(jìn)行后就可以開始自己的設(shè)計(jì)了。在其中運(yùn)用最多的就是寫地址與寫數(shù)據(jù),在寫了地址之后才能進(jìn)行寫數(shù)據(jù),我一共定義了兩個(gè)用于寫現(xiàn)實(shí)的函數(shù):void lcd_write_string(unsigned char x,unsigned char y,u8 *ch)和void lcd_write_x(unsigned char x,unsigned char y,unsigned int num,unsigned char len,unsi

15、gned char mode)下面為這兩個(gè)函數(shù)的代碼,在void lcd_write_string()中x,y為坐標(biāo),char為字符串,在void lcd_write_x()中,x,y為坐標(biāo),num為數(shù)字,len為所寫的長(zhǎng)度限制,mode表示開顯示。void lcd_write_string(unsigned char x,unsigned char y,u8 *ch) lcd_pos(x,y); while(*ch!='0') lcd_dat(*ch); ch+; void lcd_write_x(unsigned char x,unsigned char y,unsigne

16、d int num,unsigned char len,unsigned char mode) u8 t,temp;u8 enshow=0; lcd_pos(x,y); for(t=0;t<len;t+)temp=(num/lcd12864_Pow(10,len-t-1)%10;if(enshow=0&&t<(len-1)if(temp=0)if(mode) lcd_dat(' ');else lcd_dat('0'); continue;else enshow=1; lcd_dat(temp+'0'); 4.2 主函

17、數(shù)模塊 在主函數(shù)中,一開始就是對(duì)自己所要用的所有模塊進(jìn)行初始化,這樣接下來才能成功調(diào)用,寫了羅盤自檢之后就是現(xiàn)實(shí)程序了,現(xiàn)實(shí)代碼如下:while(1)HMC5883_Angle = HMC5883_AngelInDegrees();lcd_write_string(1,0,"電子指南針");lcd_write_string(3,0,"王金輝 曾立制作");if( HMC5883_Angle < 90&&HMC5883_Angle > 0|HMC5883_Angle = 0)lcd_write_string(2,0,"

18、東偏南");lcd_write_x(2,3,HMC5883_Angle,2,0);lcd_write_string(2,4,"度");if( 90 <HMC5883_Angle &&HMC5883_Angle < 180|HMC5883_Angle = 90)HMC5883_Angle = 180 - HMC5883_Angle;lcd_write_string(2,0,"西偏南");lcd_write_x(2,3,HMC5883_Angle,2,0);lcd_write_string(2,4,"度&quo

19、t;);if( 180 <HMC5883_Angle &&HMC5883_Angle< 270|HMC5883_Angle = 180)HMC5883_Angle = HMC5883_Angle - 180;lcd_write_string(2,0,"西偏北");lcd_write_x(2,3,HMC5883_Angle,2,0);lcd_write_string(2,4,"度");if( 270 <HMC5883_Angle &&HMC5883_Angle< 360|HMC5883_Angle =

20、 270)HMC5883_Angle = 360 - HMC5883_Angle;lcd_write_string(2,0,"東偏北");lcd_write_x(2,3,HMC5883_Angle,2,0);lcd_write_string(2,4,"度");由于處于正東方向的時(shí)候只是一瞬間的,所以一開始準(zhǔn)備現(xiàn)實(shí)正東是不可能的,函數(shù)一直在寫,所以正東的現(xiàn)實(shí)是不可能實(shí)現(xiàn)的,所以我就把正東、正南、正北、正西添加到了相應(yīng)的角度顯示中。主函數(shù)當(dāng)中主要就是寫顯示,利用處理過得到的角度值來進(jìn)行顯示。5.系統(tǒng)調(diào)試在系統(tǒng)調(diào)試當(dāng)中,主要用到的就是12864,在上面的現(xiàn)實(shí)看

21、是否與自己想要的結(jié)果一樣,不一樣則再次進(jìn)行調(diào)試,其中首先進(jìn)行的就是看硬件是否有問題。在12864中,我首先就是寫了簡(jiǎn)單的代碼,設(shè)置坐標(biāo)后顯示簡(jiǎn)單的字符,看輸出是否為自己所想要的,如果是,則可以開始寫自己的任務(wù)中所要完成的顯示,在GY_271初始化好了之后,利用其傳輸?shù)臄?shù)據(jù)處理后送到顯示器上面顯示,看是否與理論的相符,這樣可以判斷自己在處理數(shù)據(jù)的時(shí)候是否有錯(cuò)誤并加以改正,在確認(rèn)無誤之后,再轉(zhuǎn)化為東偏南、東偏北、西偏南、西偏北與之相符的位置,其中,在0度的時(shí)候指的方向?yàn)檎龞|方向。在調(diào)試的過程中,我開始想著到了0度、90度、180度、270度的時(shí)候可以分別顯示為正東方向、正南方向、正西方向、和正北方向,而在動(dòng)傳感器的時(shí)候始終都不會(huì)顯示這幾個(gè)方向,最后分析了一下發(fā)現(xiàn):角度是一直在測(cè)的,由于傳感器不可能處于絕對(duì)的這幾種

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論