




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于加速度傳感器adxl345的計步器設(shè)計摘要:計步器是一種頗受歡迎的日常鍛煉進度監(jiān)控器,可以激勵人們挑戰(zhàn)自己,增強體質(zhì),幫助瘦身。早期設(shè)計利用加重的機械開關(guān)檢測步伐,并帶有一個簡單的計數(shù)器?;蝿舆@些裝置時,可以聽到有一個金屬球來回滑動,或者一個擺錘左右擺動敲擊擋塊。計步器功能可以根據(jù)計算人的運動情況來分析人體的健康狀況。而人的運動情況可以通過很多特性來進行分析。與傳統(tǒng)的機械式傳感器不同,adxl345是電容式三軸傳感器,由它捕獲人體運動時加速度信號,更加準(zhǔn)確。信號通過低通濾波器濾波,由單片機內(nèi)置a/d轉(zhuǎn)換器對信號進行采樣、a/d轉(zhuǎn)換。軟件采用自適應(yīng)算法實現(xiàn)計步功能,減少誤計數(shù),更加精確。單片
2、機stc89c52控制液晶顯示計步狀態(tài)。整機工作電流只有1-1.5ma,實現(xiàn)超低功耗。關(guān)鍵詞:計步器;加速度傳感器;adxl345;低功耗0 前言隨著社會的發(fā)展,人們的物質(zhì)生活水平日漸提高,人們也越來越關(guān)注自己的健康。計步器作為一種測量儀器,可以計算行走的步數(shù)和消耗的能量,所以人們可以定量的制定運動方案來健身,并根據(jù)運行情況來分析人體的健康狀況,因而越發(fā)流行。手持式的電子計步器是適應(yīng)市場需求的設(shè)計,使用起來簡單方便。計步器是一種頗受歡迎的日常鍛煉進度監(jiān)控器,可以激勵人們挑戰(zhàn)自己,增強體質(zhì),幫助瘦身。早期設(shè)計利用加重的機械開關(guān)檢測步伐,并帶有一個簡單的計數(shù)器。晃動這些裝置時,可以聽到有一個金屬球
3、來回滑動,或者一個擺錘左右擺動敲擊擋塊。電子計步器主要組成部分是振動傳感器和電子計數(shù)器。步行的時候人的重心會上下移動。以腰部的上下位移最為明顯,所以記步器掛在腰帶上最為適宜。所謂的振動傳感器其實就是一個平衡錘在上下振動時平衡被破壞使一個觸點能出現(xiàn)通/斷動作,由電子計數(shù)器完成了主要的記錄與顯示功能,其他的屬于熱量消耗,路程換算均由電路完成。計步器中一般采用一種加速度計來感受外界的震動。常用的加速度計原理如下:在一段塑料管中密封著一小塊磁鐵,管外纏繞著線圈,當(dāng)塑料管運動時,磁鐵由于慣性在管中反向運動,切割線圈,由于電磁感應(yīng),線圈中產(chǎn)生電流,人體運動時,上下起伏的加速度近似為正弦過程,線圈的輸出電流
4、也是正弦波,測量正弦波的頻率就可以得出運動的步數(shù),再計算的出速度,距離,和消耗卡路里。1 總體方案設(shè)計1.1 設(shè)計要求(1)掌握加速度傳感器adxl345的工作原理。(2)掌握lcd1602的工作原理及編程方法。(3)該系統(tǒng)能夠有效的檢測人體步行動作。(4) 能夠顯示并且記錄單位時間內(nèi)的步數(shù),一段時間內(nèi)總步數(shù),行走的距離以及消耗的熱量。(5) 使用單片機技術(shù)處理數(shù)據(jù)。1.2 單片機芯片的選擇方案和論證采用at89s51芯片作為硬件核心,內(nèi)部具有4kb rom 存儲空間,能于3v的超低壓工作,而且與mcs-51系列單片機完全兼容,但是運用于電路設(shè)計中時由于不具備isp在線編程技術(shù),所以在對電路進
5、行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。采用stc89c52芯片,stc89c52是一種低功耗、高性能的8位cmos微控制器,具有8k的可編程flash存儲器。同樣具有at89s51的功能,且具有在線編程可擦除技術(shù),當(dāng)對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,不需要對芯片多次拔插,所以不會對芯片造成損壞,因此選擇采用stc89c52作為主控制系統(tǒng)核心。1.3 顯示模塊選擇方案和論證方案一:采用led數(shù)碼管動態(tài)掃描,led數(shù)碼管價格適中,對于顯示數(shù)字合適,采用動態(tài)掃描法與單片機連接時,雖然占用的單片機口線少
6、,但連線還需要花費一點時間,所以也不用此種作為顯示。方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,若采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以在此也不用此種作為顯示。方案三:采用lcd1602液晶顯示屏;它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。1602lcd可以顯示的內(nèi)容為16x2,即可以顯示兩行。該液晶顯示屏的顯示功能強大,內(nèi)置192種字符,可顯示大量符號、數(shù)字,清晰可見,而且功率消耗小壽命長抗干擾能力強。綜上,在此設(shè)計中采用1602液晶顯示屏。1.4 傳感器的選擇方案和論證方案一:選擇機械式振動傳感器機械式振動傳感器內(nèi)部
7、有一個平衡錘,當(dāng)傳感器振動時,平衡被破壞,如此會造成上下觸點的通斷。佩戴者在跑步過程中,身體起伏重心高低產(chǎn)生變化,計步器內(nèi)部的振動傳感器就會將這一變化轉(zhuǎn)換為數(shù)字量送至控制單元,從而獲得佩戴者的運動信息。機械式振動傳感器原理簡單、精度和成本低,適用于振幅較大的場合。方案二:選擇加速度傳感器三軸加速度傳感器分為壓阻式,壓電式和電容式。加速度的變化能夠改變電阻、電壓或者電容的變化,從而獲得空間位置三個垂直方向的加速度分量。佩戴者在跑步過程中,身體上下起伏,計步器內(nèi)部的微控制器讀取三軸加速度傳感器的三組模擬量,通過計步算法分析,獲取運動信息。三軸加速度傳感器具有精度高、反應(yīng)速度快、通訊協(xié)議簡單可靠等特
8、點,廣泛使用于汽車、數(shù)碼產(chǎn)品、航天設(shè)備等領(lǐng)域。方案三:選擇壓力傳感器壓力傳感器是將壓力的變化轉(zhuǎn)化為電壓的變化。利用這一特性,可將壓力傳感器內(nèi)置在鞋的底部,當(dāng)用戶在行進過程中,壓力傳感器受到的壓力不同(抬腳時腳對鞋無壓力,放腳時腳對鞋有持續(xù)壓力),這樣,計步器的主控單元讀取壓力值,經(jīng)過計步算法即可判斷運動狀態(tài)。為選擇一款最適合本課題的計步傳感器將三種傳感器對比如下表:表1 三種傳感器對比表類型機械式振動傳感器加速度傳感器壓力傳感器工作電流5ma30ma-工作精度0.1g0.002g-價格(元)1.0元5.0元-目前內(nèi)置于鞋底的壓力傳感器屬于柔性傳感器。在2008年北京奧運會上曾將它用于檢測運動員
9、的蹬地力、蹬地時間、足底接觸形狀、運動速度、離心力等信息,以便指導(dǎo)運動員取得更好的成績。這種傳感器價格昂貴,設(shè)計難度較大,不適合本設(shè)計。機械設(shè)振動傳感器應(yīng)用于早期的計步器,測量精度低,誤判、漏判嚴(yán)重,不符合本課題高精度的設(shè)計原則。隨著加速度傳感器的工藝逐漸成熟,測量精度也逐漸提高,同時也有很高的靈敏度,功耗已達到微安級別,溫度漂移小,具有良好的穩(wěn)定性,隨著市場的大量使用,價格也降了下來,加速度傳感器非常適合移動設(shè)備應(yīng)用。綜上,加速度傳感器符合本課題的設(shè)計理念。表2列出了不同型號的三軸加速度傳感器的特性。表2 加速度傳感器特性對比表加速度計代表型號lsm303dlhmpu-6050adxl345
10、工作電流0.83ma500ua150ua精度0.0003g0.0003g0.008g價格(元)40.050.03.0結(jié)合價格、功耗和精度等多方面考慮,本課題選擇的三軸加速度傳感器adxl345作為計步傳感器。1.5 系統(tǒng)最終方案設(shè)計該計步器是由adxl345加速度傳感器、stc89c52單片機以及l(fā)cd1602顯示屏等組成。傳感器采集數(shù)據(jù),經(jīng)內(nèi)部a/d轉(zhuǎn)換后,輸入單片機內(nèi)部,將數(shù)據(jù)處理后輸出至液晶顯示器顯示。 圖1 總體方框圖2 硬件電路設(shè)計 2.1 系統(tǒng)硬件概述本電路是以stc89c52單片機為控制核心,該芯片具有在線編程功能,功耗低,能在3.3v的超低壓下工作,在單芯片上,擁有靈巧的8 位
11、cpu和在系統(tǒng)可編程flash,使得stc89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案;加速度傳感器采用adxl345,它是一款小而薄的超低功耗3軸加速度計,測量范圍達正負(fù)16g,數(shù)字輸出數(shù)據(jù)為16位的二進制補碼格式,可通過spi(3線或4線)或iic數(shù)字接口訪問。顯示模塊使用lcd1602液晶顯示屏來實現(xiàn),該顯示屏具有低功耗、壽命長、可靠性高,可供顯示的字符較多,控制指令簡單的特點,其工作電壓為5v。2.2 主要單元電路的設(shè)計2.2.1 系統(tǒng)主控制模塊的設(shè)計本設(shè)計中單片機主要負(fù)責(zé)對外設(shè)的控制和各個功能模塊間的協(xié)調(diào),沒有復(fù)雜的數(shù)據(jù)計算,因此,8位的52系列單片機足以勝任,它具
12、有體積小、控制功能強、成本低,易擴展,可靠性好、使用溫度范圍寬等眾多優(yōu)點。通常使用的國產(chǎn)stc89c52單片機以其低廉的價格以及較出色的性能成了很多控制系統(tǒng)的首選。它具有豐富的內(nèi)部資源,較大的數(shù)據(jù)存儲區(qū)和程序存儲區(qū)。同時,由于學(xué)習(xí)52單片機容易上手,指令簡單易懂,編程靈活,在本設(shè)計中具有較高的應(yīng)用價值。一個典型的單片機最小系統(tǒng)一般由時鐘電路、復(fù)位電路、電源指示燈和外部擴展接口等部分組成,本系統(tǒng)也不例外,當(dāng)單片機具備了這些最基本的條件后,就可以正常工作了。stc89c52單片機外部結(jié)構(gòu)圖如圖2所示。圖2 單片機外部結(jié)構(gòu)圖1、復(fù)位電路的設(shè)計復(fù)位電路是使單片機的cpu或系統(tǒng)中的其他部件處于某一確定的
13、初始狀態(tài),并從這上狀態(tài)開始工作。(1)單片機常見的復(fù)位電路通常單片機復(fù)位電路有兩種:上電復(fù)位電路,按鍵復(fù)位電路。上電復(fù)位電路:上電復(fù)位是單片機上電時復(fù)位操作,保證單片機上電后立即進入規(guī)定的復(fù)位狀態(tài)。它利用的是電容充電的原理來實現(xiàn)的。按鍵復(fù)位電路:它不僅具有上電復(fù)位電路的功能,同時它的操作比上電復(fù)位電路的操作要簡單的多。如果要實現(xiàn)復(fù)位的話,只要按下reset鍵即可。它主要是利用電阻的分壓來實現(xiàn)的在此設(shè)計中,采用的按鍵復(fù)位電路。按鍵復(fù)位電路如圖3所示。圖3 復(fù)位電路(2)復(fù)位電路工作原理上電復(fù)位要求接通電源后,單片機自動實現(xiàn)復(fù)位操作。上電瞬間reset引腳獲得高電平,隨著電容的充電,rerst引腳
14、的高電平將逐漸下降。rerst引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復(fù)位操作。上電與按鍵均有效的復(fù)位電路不僅在上電時可以自動復(fù)位,而且在單片機運行期間,利用按鍵也可以完成復(fù)位操作。2、晶振電路的設(shè)計晶振電路用于產(chǎn)生單片機工作所需要的時鐘信號,而時序所研究的是指令執(zhí)行中各信號之間的相互關(guān)系。單片機本身就如一個復(fù)雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應(yīng)在唯一的時鐘信號控制下嚴(yán)格地工作。通常在引腳xtall和xtal2跨接石英晶體和兩個補償電容構(gòu)成自激振蕩器,如圖4中x1、c1、c2??梢愿鶕?jù)情況選擇6mhz、12mhz或24mhz等頻率的石英晶體,補償電容通
15、常選擇30nf左右的瓷片電容。圖4 時鐘振蕩電路2.2.2計步器傳感器采集模塊adxl345的內(nèi)部功能結(jié)構(gòu)如圖5所示,x、y、z三個相互正交的方向上的加速度由 g-cell傳感器感知,經(jīng)過容壓變換器、增益放大、濾波器和溫度補償后以電壓信號輸出。圖5 adxl345內(nèi)部結(jié)構(gòu)功能框圖所謂的g-cell傳感器是由半導(dǎo)體材料(多晶硅)經(jīng)半導(dǎo)體工藝加工得到,其結(jié)構(gòu)可簡化為三塊電容極板,如圖6。兩端的極板圈定,中間的極板在加速度的作用下,偏離無加速度的位置,這樣它到兩端極板的距離發(fā)生變化,造成電容值的變化這個變化值經(jīng)容壓變換、增益放大,濾波等后體現(xiàn)在最后的電壓輸出值上,從而完成對加速度的測量。圖6 g-c
16、ell傳感器的物理模型adxl345的三個相互正交的測量方向如圖7,固定在人體上后,這三個方向上的數(shù)據(jù)意義也就隨之確定了。圖7 adxl345的三測量軸向引腳配置(頂視圖): 圖8 引腳功能圖adxl345是一款小而薄的超低功耗3軸加速度計,分辨率高(13位),測量范圍達16g。數(shù)字輸出數(shù)據(jù)為16位二進制補碼格式,可通過spi(3線或4線)或i2c數(shù)字接口訪問。adxl345非常適合移動設(shè)備應(yīng)用。它可以在傾斜檢測應(yīng)用中測量靜態(tài)重力加速度,還可以測量運動或沖擊導(dǎo)致的動態(tài)加速度。其高分辨率(3.9mg/lsb),能夠測量不到1.0的傾斜角度變化。如圖9所示,為傳感器底座,接口電路連接:1234p1
17、11234p120.1ufc7x outy outz outvcc1357911246101281314adxl345sdosdasclvddgndgndresereseint2gndncvscsint1x outz outs1y out圖9 傳感器連接模塊此模塊電路主要功能就用于做adxl345加速度傳感器的一個轉(zhuǎn)接口,而且利用adxl345該加速度傳感器產(chǎn)生相應(yīng)的變化值。相當(dāng)于整個系統(tǒng)的信號產(chǎn)生模塊。2.2.3 顯示模塊的設(shè)計本設(shè)計中由于要對時間進行顯示,所以選擇液晶顯示屏1602模塊作為輸出。1602字符型lcd通常有14條引腳線或16條引腳線的lcd,多出來的2條線是背光電源線。它可以
18、顯示兩行,每行16個字符,采用單+5v電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(cgrom)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號等,每一個字符都有一個固定的代碼,比如大寫的英文字母“a”的代碼是01000001b(41h),顯示時模塊把地址41h中的點陣字符圖形顯示出來,就能看到字母“a”。 管腳功能如表3所示:表3 lcd1602引腳功能引腳符號功能說明1vss一般接地2vdd接電源(+5v)3v0液晶顯示器對比度調(diào)整端。4rsrs為寄存器選擇。5r/wr/w為讀寫信號線。6ee(或en
19、)端為使能(enable)端,下降沿使能。7db0db7三態(tài)、 雙向數(shù)據(jù)總線lcd1602主要管腳介紹:v0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生鬼影使用時可以通過一個10k的電位器調(diào)整對比度。rs為寄存器選擇端,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。r/w為讀寫信號線端,高電平時進行讀操作,低電平時進行寫操作。當(dāng)rs和r/w共同為低電平時可以寫入指令或者顯示地址;當(dāng)rs為高電平r/w 為低電平時可以寫入數(shù)據(jù)。e為使能端,當(dāng)e端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。將lcd1602的rs端和p2.0,r/w端和p2.1,e端和p2
20、.2相連,當(dāng)rs=0時,對lcd1602寫入指令;當(dāng)rs=1時,對lcd1602寫入數(shù)據(jù)。當(dāng)r/w端接高電平時芯片處于讀數(shù)據(jù)狀態(tài),反之處于寫數(shù)據(jù)狀態(tài),e端為使能信號端。當(dāng)r/w為高電平,e端也為高電平,rs為低電平時,液晶顯示屏顯示需要顯示的示數(shù)。圖10為1602液晶顯示屏與單片機的硬件連接圖。圖10 lcd液晶與單片機硬件連線圖3 系統(tǒng)軟件設(shè)計3.1 系統(tǒng)主程序設(shè)計圖11 系統(tǒng)主程序流程圖3.2 計步器算法的實現(xiàn)在可用于分析跑步或步行的特征當(dāng)中,我們選擇“加速度”作為相關(guān)參數(shù)。個體(及其相關(guān)軸)的運動包括三個分量,分別是前向(“滾動”)、豎向(“偏航”)和側(cè)向(“俯仰”),如圖12所示。ad
21、xl345檢測其三個軸x、y和z上的加速度。計步器處于未知方向,因此測量精度不應(yīng)嚴(yán)重依賴于運動軸與加速度計測量軸之間的關(guān)系。圖12 跑步時的三個分量讓我們考慮步行的特性。一個步伐,我們將其定義為單位步行周期,步行周期各階段與豎向和前向加速度變化之間有一定的關(guān)系。要實現(xiàn)檢測步數(shù)首先要對人走路的姿態(tài)有一定了解。行走時,腳、腿、腰部,手臂都在運動,它們的運動都會產(chǎn)生相應(yīng)的加速度,并且會在某點有一個峰值。從腳的加速度來檢測步數(shù)是最準(zhǔn)確的,但是考慮到攜帶的方便,我們選擇利用腰部的運動來檢測步數(shù)。圖13顯示了與一名跑步者的豎向、前向和側(cè)向加速度相對應(yīng)的x、y和z軸測量結(jié)果的典型圖樣。無論如何穿戴計步器,總
22、有至少一個軸具有相對較大的周期性加速度變化,因此峰值檢測和針對所有三個軸上的加速度的動態(tài)閾值決策算法對于檢測單位步行或跑步周期至關(guān)重要。圖13 從一名跑步者測得的x、y和z軸加速度的典型圖樣(1)步伐參數(shù)數(shù)字濾波器:首先,為使信號波形變得平滑,需要一個數(shù)字濾波器??梢允褂盟膫€寄存器和一個求和單元,如圖14所示。當(dāng)然,可以使用更多寄存器以使加速度數(shù)據(jù)更加平滑,但響應(yīng)時間會變慢。圖14 數(shù)字濾波器圖15顯示了來自一名步行者所戴計步器的最活躍軸的濾波數(shù)據(jù)。對于跑步者,峰峰值會更高。圖15 最活躍軸的濾波數(shù)據(jù)動態(tài)閾值和動態(tài)精度:系統(tǒng)持續(xù)更新三軸加速度的最大值和最小值,每采樣50次更新一次。平均值(ma
23、x + min)/2稱為“動態(tài)閾值”。接下來的50次采樣利用此閾值判斷個體是否邁出步伐。由于此閾值每50次采樣更新一次,因此它是動態(tài)的。這種選擇具有自適應(yīng)性,并且足夠快。除動態(tài)閾值外,還利用動態(tài)精度來執(zhí)行進一步濾波。步伐邁出的條件定義為:當(dāng)加速度曲線跨過動態(tài)閾值下方時,加速度曲線的斜率為負(fù)值(sample_new sample_old)。峰值檢測:步伐計數(shù)器根據(jù)x、y、z三軸中加速度變化最大的一個軸計算步數(shù)。如果加速度變化太小,步伐計數(shù)器將忽略。步伐計數(shù)器利用此算法可以很好地工作,但有時顯得太敏感。當(dāng)計步器因為步行或跑步之外的原因而非常迅速或非常緩慢地振動時,步伐計數(shù)器也會認(rèn)為它是步伐。為了找
24、到真正的有節(jié)奏的步伐,必須排除這種無效振動。利用“時間窗口”和“計數(shù)規(guī)則”可以解決這個問題?!皶r間窗口”用于排除無效振動。假設(shè)人們最快的跑步速度為每秒5步,最慢的步行速度為每2秒1步。這樣,兩個有效步伐的時間間隔在時間窗口0.2 s - 2.0 s之內(nèi),時間間隔超出該時間窗口的所有步伐都應(yīng)被排除。adxl345的用戶可選輸出數(shù)據(jù)速率特性有助于實現(xiàn)時間窗口。表4列出了ta = 25c、vs = 2.5 v、vdd i/o = 1.8 v時的可配置數(shù)據(jù)速率(以及功耗)。表4 數(shù)據(jù)速率和功耗輸出數(shù)據(jù)速率(hz)帶寬(hz)速率代碼idd (a)3200160011111461600800111010
25、0800400110114540020011001452001001011145100501010145502510011002512.510006512.56.250111556.253.125011040此算法使用50 hz數(shù)據(jù)速率(20 ms)。采用interval的寄存器記錄兩步之間的數(shù)據(jù)更新次數(shù)。如果間隔值在10與100之間,則說明兩步之間的時間在有效窗口之內(nèi);否則,時間間隔在時間窗口之外,步伐無效?!坝嫈?shù)規(guī)則”用于確定步伐是否是一個節(jié)奏模式的一部分。步伐計數(shù)器有兩個工作狀態(tài):搜索規(guī)則和確認(rèn)規(guī)則。步伐計數(shù)器以搜索規(guī)則模式開始工作。假設(shè)經(jīng)過四個連續(xù)有效步伐之后,發(fā)現(xiàn)存在某種規(guī)則(in
26、regulation),那么步伐計數(shù)器就會刷新和顯示結(jié)果,并進入“確認(rèn)規(guī)則”工作模式。在這種模式下工作時,每經(jīng)過一個有效步伐,步伐計數(shù)器就會更新一次。但是,如果發(fā)現(xiàn)哪怕一個無效步伐,步伐計數(shù)器就會返回搜索規(guī)則模式,重新搜索四個連續(xù)有效步伐。3.3 系統(tǒng)程序的編譯編譯是對程序進行查找錯誤的過程,在編譯之前需要對keil軟件進行設(shè)置,首先建立一個工程,保存該工程時選擇與自己硬件相同的單片機型號。然后新建文件,編寫完程序,保存時為后綴為“.c”。點擊編譯按鈕,若出現(xiàn)錯誤,則修改錯誤,若無錯,則生成“.hex”文件,以供仿真與硬件使用。編譯軟件如圖16所示。圖16 系統(tǒng)程序的編譯圖3.4 系統(tǒng)電路軟件
27、仿真系統(tǒng)仿真需要在proteus軟件里進行,在仿真之前,要先設(shè)計好系統(tǒng)電路以及元器件各自的參數(shù),在proteus里面找到元器件并連接好電路。同時設(shè)置它們的參數(shù)。并且用調(diào)試助手將程序燒錄到單片機中,進行仿真。調(diào)試助手界面如圖17所示。仿真圖如圖18。圖17 調(diào)試助手界面圖546231sw1sw-12p1gndvccp1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78rst9(rxd)p3.010(txd)p3.111(int0)p3.212(int1)p3.313(t0)p3.414(t1)p3.515(wr)p3.616(rd)p3.717xtal218xtal11
28、9gnd20p2.021p2.122p2.223p2.324p2.425p2.526p2.627p2.728psen29ale/prog30ea/vpp31p0.732p0.633p0.534p0.435p0.336p0.237p0.138p0.039vcc40u1stc89c52y112mc220c320vccgndr210kc110ufvccs1s3s2gnd單片主控電路電源接口電路lcd1602液晶接口按鍵電路gnd1vcc2vo3rs4rw5e6db07db18db29db310db411db512db613db714bg/vcc15bg/gnd16lcd1lcd1602gndgndv
29、ccvccr12kp00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p07p10p11p12scl1sda2sdo3int24vs7gnd8vcc3.39vcc510int15cs6u2adxl345gndp14p15圖18 系統(tǒng)仿真圖4 系統(tǒng)硬件電路的測試如表5為在實際步數(shù)中顯示步數(shù)以及總步數(shù)不復(fù)位情況下記錄。下圖表6為在實際步數(shù)中顯示步數(shù)每5步復(fù)位一次總步數(shù)不復(fù)位情況下記錄。由圖可得到實物對步數(shù)統(tǒng)計準(zhǔn)確率在90%以上。表5 實際測試不復(fù)位記錄表實際步數(shù)51015202530顯示步數(shù)5914182227總步數(shù)5914182227表6 實際測試每5步復(fù)位
30、一次實際步數(shù)51015202530顯示步數(shù)454555總步數(shù)4913182328基于adxl345的計步器的電路比較復(fù)雜,對于焊接方面不可輕視,需要有一定的焊接基礎(chǔ)和嘗試,只要電路系統(tǒng)中出于一處的錯誤,就會對檢測造成很大的不便,而且電路的交線較多,所以在焊接的時候要邊焊接,邊檢測是否有電路,斷路,跳線情況發(fā)生,如果有,則要及時修正,否則會對續(xù)后的電路焊接造成極大地困難。對于各種鋒利的引腳要注意處理,否則會刺破帶有包皮的導(dǎo)線,則會對電路造成短路現(xiàn)象。在本次課題的設(shè)計調(diào)試中遇到了很多的問題。回想這些問題只要認(rèn)真多思考都是可以避免的,以下為主要的問題: (1)在顯示步數(shù)、總步數(shù)、路程以及卡路里有時l
31、cd液晶顯示屏被屏蔽掉,造成不亮現(xiàn)象。 解決:根據(jù)儀器的測試,發(fā)現(xiàn)電路的驅(qū)動能力不足,在接入2.4k的上拉電阻后,電路的驅(qū)動能力才能滿足,即可解決不亮現(xiàn)象。 (2)燒入程序后,lcd液晶顯示屏不顯示或者亮度不好。 解決:不顯示時首先使用萬用表對電路進行測試,觀察是否存在漏焊,虛焊,或者元件損壞的現(xiàn)象。若無此問題查看燒寫的程序是否正確無誤,對程序進行認(rèn)真修改。當(dāng)顯示亮度不好時一遍旋轉(zhuǎn)10k歐的滑動變阻器,一遍觀看lcd顯示屏,直到看到合適的亮度為止。 經(jīng)過多次的反復(fù)調(diào)試試與分析,可以對電路的原理及功能更加熟悉,同時提高了設(shè)計能力與及對電路的分析能力。同時在軟件的編程方面得到更到的提高,對編程能力
32、得到加強,同時對所學(xué)的知識得到很大的提高與鞏固。如下為硬件實物圖如圖18所示。計步器工作時的實物圖如圖19所示。圖18 計步器實物圖圖19 計步器工作時的實物圖5 結(jié)論及進一步設(shè)想至此,關(guān)于課程設(shè)計的所有內(nèi)容就介紹完了,進行這次課程設(shè)計一切都是從零開始,從最簡單查資料、了解各個元件的功能起步,再確定設(shè)計方案、畫流程圖、編寫程序到最后進行仿真,這次課題設(shè)計可以說成功完成。系統(tǒng)的硬件、軟件設(shè)計合理,功能完備,運行穩(wěn)定、可靠。實驗結(jié)果表明此系統(tǒng)實現(xiàn)后具有讀取方便、顯示直觀、功能多樣、電路簡潔、等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。在整個設(shè)計過程中,充分發(fā)揮了人的主觀能動性,自主
33、學(xué)習(xí),學(xué)到了許多沒學(xué)到的知識。程序編寫中,由于思路不清晰,開始時遇到了很多的問題,經(jīng)過靜下心來思考查資料,和同學(xué)討論,向老師請教,理清了思路,完成對程序的編寫。通過設(shè)計提高了對單片機的認(rèn)識,進一步熟悉和掌握單片機的結(jié)構(gòu)及工作原理。通過實際程序設(shè)計和調(diào)試,逐步掌握模塊化程序設(shè)計方法和調(diào)試技術(shù),提高軟件設(shè)計、調(diào)試能力;通過這次設(shè)計熟悉以單片機核心的應(yīng)用系統(tǒng)開發(fā)的全過程,掌握硬件電路設(shè)計的基本方法和技術(shù),掌握相關(guān)電路參數(shù)的計算方法。最終較好的完成了設(shè)計,達到了預(yù)期的目的,完了最初的設(shè)想。但是由于時間和個人能力的原因,整個系統(tǒng)看起來還是顯得非常的簡單,只實現(xiàn)了一些最基本的功能,還有許多不足和可以擴展的
34、地方。由于lcd1602還有剩余位置可以顯示其他字符,我們可以在系統(tǒng)中加入時鐘芯片,可以實時顯示時間,消除從手機上看時間的麻煩。也可以加入濕度傳感器,實時監(jiān)測環(huán)境濕度并顯示,或者也可以加入煙霧傳感器、等組成綜合系統(tǒng),使該系統(tǒng)在起到計步器的作用外還可以起到提醒人們適不適合戶外運動的作用。所以,該拓展部分是非常有價值,且非常有必要的。參考文獻1 曹赟,周宇,徐寅林.加速度傳感器在步態(tài)信號采集系統(tǒng)中的應(yīng)用j.信息化研究, 2009,35(9).2 錢朋安,葛運建,唐毅等.加速度計在人體運動檢測中的應(yīng)用j.計算機技術(shù)與應(yīng)用進展,2004:632636.3 陳義華.基于加速度傳感器的定位系統(tǒng)研究d.福建
35、:廈門大學(xué),2006.4 孟維國三軸加速度計adxl345的特點及其應(yīng)用j.電子設(shè)計工程,2007(2):47-505 賈朱紅,張曉冬基于ic總線的單主多從單片機之問的通信j微計算機信息,2009,25(3-2):1016 高吉祥.模擬電子線路設(shè)計m.北京:北京電子工業(yè)出版社,20077 陳爾紹.電子控制電路實例m.北京:電子工業(yè)出版社,20048 王彥朋.大學(xué)生電子設(shè)計與應(yīng)用m.北京:中國電力出版社,20079 屈翠香,李剛.具有數(shù)字信號輸出的三軸加速度傳感器adxl345j.國外電子元器件,1999(8):812.10 彭勃,何曉平,蘇偉.微機械靜電伺服加速度計j.中國慣性技術(shù)學(xué)報,200
36、0,8(1):6366.11 劉宗林,李圣怡,吳學(xué)忠.新型三軸加速度計j.傳感器技術(shù)學(xué)報,2004,17(3):488492.課設(shè)體會兩周的課程設(shè)計結(jié)束了,在這次課程設(shè)計里確實感到收貨頗豐。從課設(shè)一開始課設(shè)題目的分析,選擇最佳方案,到后來的程序的編寫,proteus仿真,以及到最后的硬件電路的焊接,每一個環(huán)節(jié)都讓我能學(xué)到很多之前從未學(xué)到的知識和技能。本次課程設(shè)計是一個比較綜合的課程設(shè)計,包含數(shù)字電路,模擬電路,電路,單片機等相關(guān)課程的知識,由于我之前對這些課程的知識的掌握并不是特別扎實,所以在做課設(shè)的過程中遇到很多阻礙,但通過圖書館查資料,網(wǎng)上搜尋,同學(xué)幫助等途徑都得到了一一解決,在此要特別感
37、謝幫助我的老師和同學(xué)的制導(dǎo)。由于本次課設(shè)中所用到的液晶顯示器和加速度傳感器之前從未通透的學(xué)過,在做課設(shè)之前都重新學(xué),這個獨立學(xué)習(xí)的過程是非常令人難忘的。本次課設(shè)需要焊接硬件,這就需要有一定的焊接基礎(chǔ),之前學(xué)過一點焊接知識,在本次課設(shè)中完全運用上了,雖然焊接不是很完美,但也沒出現(xiàn)很嚴(yán)重的錯誤。通過本次課設(shè),我明白了我們需要學(xué)習(xí)的知識還有很多,需要腳踏實地,扎實的掌握本專業(yè)的知識,除此之外,還要學(xué)習(xí)其他知識,全面學(xué)習(xí),才能在以后生活工作中減少不必要的麻煩。 2016年1月 15日完成附錄1 電路原理圖附錄2 程序清單#include #include #define uchar unsigned
38、char#define uint unsigned int#define dataport p0 /lcd1602數(shù)據(jù)端口sbit scl=p15; /iic時鐘引腳定義; sbit sda=p14; /iic數(shù)據(jù)引腳定義uchar code table_num=0123456789abcdefg; /* * lcd1602設(shè)置 */sbit rs=p10; /寄存器選擇信號 h:數(shù)據(jù)寄存器 l:指令寄存器sbit rw=p11; /寄存器選擇信號 h:數(shù)據(jù)寄存器 l:指令寄存器sbit e =p12; /片選信號 下降沿觸發(fā) /* *清零按鍵設(shè)置 */sbit key1 = p16; sbi
39、t key2 = p17;sbit key3 = p13; #defineslaveaddress 0xa6 /*定義器件在iic總線中的從地址,根據(jù)alt address地址引腳不同修改alt address引腳接地時地址為0xa6,接電源時地址為0x3a*/long bushu,zong; /步數(shù)uchar buf8; /接收數(shù)據(jù)緩存區(qū) uchar ge,shi,bai,qian,wan; /顯示變量int dis_data; /變量int c;int s;int h=30.5;void multiple_read_adxl345(); /連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)#define rdcom
40、mand 0x01 /定義isp的操作命令#define prgcommand 0x02#define erasecommand 0x03 #define error 1#define ok 0#define waittime 0x01 /定義cpu的等待時間sfr isp_data=0xe2; /寄存器申明sfr isp_addrh=0xe3;sfr isp_addrl=0xe4;sfr isp_cmd=0xe5;sfr isp_trig=0xe6;sfr isp_contr=0xe7;uchar a_a;/*打開 isp,iap 功能 * */void isp_iap_enable(voi
41、d) ea = 0; /關(guān)中斷 isp_contr = isp_contr & 0x18; / 0001,1000 isp_contr = isp_contr | waittime; / 寫入硬件延時 isp_contr = isp_contr | 0x80; / ispen=1 /* 關(guān)閉 isp,iap 功能 * */void isp_iap_disable(void) isp_contr = isp_contr & 0x7f; / ispen = 0 isp_trig = 0x00; ea = 1; / 開中斷/*公用的觸發(fā)代碼* */void ispgoon(void) isp_iap
42、_enable(); /打開 isp,iap 功能 isp_trig = 0x46; /觸發(fā)isp_iap命令字節(jié)1 isp_trig = 0xb9; /觸發(fā)isp_iap命令字節(jié)2 _nop_();/*字節(jié)讀 * */unsigned char byte_read(unsigned int byte_addr)ea = 0; isp_addrh = (unsigned char)(byte_addr 8); / 地址賦值 isp_addrl = (unsigned char)(byte_addr & 0x00ff); isp_cmd = isp_cmd & 0xf8; /清除低3位 isp_
43、cmd = isp_cmd | rdcommand; / 寫入讀命令 ispgoon(); /觸發(fā)執(zhí)行 isp_iap_disable / 關(guān)閉isp,iap功能 ea = 1; return (isp_data); / 返回讀到的數(shù)據(jù) /* 扇區(qū)擦除* */void sectorerase(unsigned int sector_addr) unsigned int isectoraddr; isectoraddr = (sector_addr & 0xfe00); / 取扇區(qū)地址 isp_addrh = (unsigned char)(isectoraddr 8); isp_addrl =
44、 0x00; isp_cmd = isp_cmd & 0xf8; /清空低3位 isp_cmd = isp_cmd | erasecommand; /擦除命令3 ispgoon(); /觸發(fā)執(zhí)行 isp_iap_disable(); /關(guān)閉isp,iap功能/* 字節(jié)寫 * */void byte_write(unsigned int byte_addr, unsigned char original_data) ea = 0;/ sectorerase(byte_addr); isp_addrh = (unsigned char)(byte_addr 8); / 取地址 isp_addrl
45、= (unsigned char)(byte_addr & 0x00ff); isp_cmd = isp_cmd & 0xf8; / 清低3位 isp_cmd = isp_cmd | prgcommand; /寫命令2 isp_data = original_data; /寫入數(shù)據(jù)準(zhǔn)備 ispgoon(); /觸發(fā)執(zhí)行 isp_iap_disable(); /關(guān)閉iap功能 ea =1;/*把數(shù)據(jù)保存到單片機內(nèi)部eeprom中*/void write_eeprom()/保存數(shù)據(jù)sectorerase(0x2000);byte_write(0x2000, bushu);byte_write(0x
46、2001, bushu 8);byte_write(0x2002, bushu 16);byte_write(0x2003, zong);byte_write(0x2004, zong 8);byte_write(0x2005, zong 16);byte_write(0x2055, a_a); /*把數(shù)據(jù)從單片機內(nèi)部eeprom中讀出來*/void read_eeprom() /讀出保存數(shù)據(jù)bushu = byte_read(0x2002);bushu = 8;bushu |= byte_read(0x2001); bushu = 8;bushu |= byte_read(0x2000);z
47、ong = byte_read(0x2005);zong = 8;zong |= byte_read(0x2004); zong = 8;zong |= byte_read(0x2003);a_a = byte_read(0x2055);/*開機自檢eeprom初始化*/void init_eeprom() /開始初始化保存的數(shù)據(jù)read_eeprom(); /讀出保存數(shù)據(jù)if(a_a != 14)/新的單片機初始單片機內(nèi)問eeprom zong = 0;bushu = 0;a_a = 14;write_eeprom();/保存數(shù)據(jù)void conversion(uint temp_data) wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余運算qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; /取余運算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余運算 shi=temp_data/10+0x30 ; temp_data=te
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T型連接高強螺栓受拉承載力設(shè)計方法及可靠性研究
- 基于TPACK理論的師范生人工智能素養(yǎng)現(xiàn)狀及培養(yǎng)策略研究
- 編制會議材料培訓(xùn)
- 貓和老鼠手繪課件設(shè)計指南
- 體外診斷試劑性能指標(biāo)
- 領(lǐng)航職業(yè)英語課件
- 顱腦CTA技術(shù)課件
- 預(yù)防踩踏事故班會課件
- 預(yù)防毒品安全知識課件
- 預(yù)防小學(xué)生溺水的課件
- 2025全員安全生產(chǎn)責(zé)任制范本
- 林業(yè)行政執(zhí)法培訓(xùn)
- 電大考試試題及答案商法
- 廣西壯族自治區(qū)柳州市上進聯(lián)考2024-2025學(xué)年高一下學(xué)期6月期末聯(lián)合考試數(shù)學(xué)試題(含答案)
- 八年級暑假前家長會課件
- 福建省南平市2024-2025學(xué)年八年級下學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2025年河南省高考地理試卷真題(含答案)
- 2025屆廣東省惠州惠城區(qū)五校聯(lián)考英語八下期末檢測試題含答案
- 工廠績效計件方案(3篇)
- 2025年湖南省中考?xì)v史試卷真題(含答案)
- 高中英語必背3500單詞表完整版
評論
0/150
提交評論