版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 題目:運動員心率無線檢測系統(tǒng)的設計</p><p> Title: Athletes Heart Rate Wireless Detection System</p><p> 院系名稱:物理與通信電子學院</p><p> 學生姓名: </p><p> 學生學號:
2、 </p><p> 專 業(yè):電子信息工程 </p><p> 指導老師: </p><p> 完成時間:2011年4月 </p><p><b> 摘 要</b></p><p> 運動員心率,即
3、運動員在運動時保持的心率[1]狀態(tài)。不管是有氧運動,還是無氧運動,都有一個合適的心率才能達到較佳的訓練效果。保持最佳運動心率對運動員的訓練效果和安全都很重要。如果心率過高,會對身體健康不利,導致惡心、頭暈、胸悶;心率低對身體沒有危害,但是鍛煉效果不好。</p><p> 本設計以AT89S52單片機為核心,由心率傳感器,信號處理電路,NRF24L01無線模塊,顯示模塊和上位機等組成的一個運動員心率無線檢測系統(tǒng)。
4、該系統(tǒng)可以實現(xiàn)對運動員心率檢測,檢測誤差在±2次/每分鐘,心率值在前端由數(shù)碼管顯示方便運動員自己觀察,由Labview編寫的上位機程序能對運動員的心率值進行保存并且顯示心率變化曲線方便觀察運動員的心率波動情況,而且無線模塊的發(fā)送距離在空曠的地方能達到50米以上。</p><p> 關鍵詞: AT89S52;運動員心率;NRF24L01;Labview。</p><p><
5、b> Abstract</b></p><p> Athletes heart rate, that athlete's heart rate during exercise to maintain condition. Either aerobic exercise or anaerobic exercise, there is an appropriate training he
6、art rate in order to achieve better results. Maintain optimal exercise heart rate training for effectiveness and safety of athletes is important, if heart rate is too high, will health disadvantage, leading to nausea, di
7、zziness, chest tightness, heart rate does no harm, but the exercise is not effective. The design of the AT89</p><p> Key words: AT89S52; Athletes heart rate; NRF24L01; Labview.目 錄</p><p>&
8、lt;b> 摘 要I</b></p><p> AbstractII</p><p><b> 1 引言1</b></p><p><b> 2 設計要求1</b></p><p> 3 總體方案設計 [3]1</p><p>&l
9、t;b> 4 方案論證2</b></p><p> 4.1 傳感器選擇2</p><p><b> 4.2無線模塊2</b></p><p> 5系統(tǒng)硬件電路設計3</p><p> 5.1單片機最小系統(tǒng)3</p><p> 5.1.1 單片機AT89S52
10、3</p><p> 5.1.2 單片機AT89S52最小系統(tǒng)4</p><p><b> 5.2顯示電路5</b></p><p> 5.3無線模塊電路6</p><p> 5.3.1 NRF24L01簡介6</p><p> 5.3.2 SPI協(xié)議7</p>
11、<p> 5.3.3 NRF24L01時序7</p><p> 5.4串口模塊電路8</p><p> 5.4.1 串口芯片MAX232[12]8</p><p> 5.4.2 串口電路8</p><p> 5.5電源模塊電路9</p><p> 5.5.1 正5V電源模塊9<
12、/p><p> 5.5.2 LM317穩(wěn)壓模塊9</p><p> 6 軟件程序設計10</p><p> 6.1單片機程序設計10</p><p> 6.2上位機程序設計13</p><p> 6.2.1 VISA配置串口14</p><p> 6.2.2讀串口數(shù)據(jù)14&l
13、t;/p><p> 6.2.3心率測量15</p><p> 6.2.4 Excel文件生成程序15</p><p> 6.2.5心率值保存程序16</p><p><b> 7 程序仿真16</b></p><p> 7.1心率信號的測量與顯示仿真16</p>&l
14、t;p> 7.2單片機模擬SPI協(xié)議時序仿真17</p><p> 7.3串口發(fā)送仿真18</p><p> 8設計系統(tǒng)的調(diào)試結(jié)果與數(shù)據(jù)分析18</p><p><b> 9 結(jié)束語20</b></p><p><b> 參考文獻21</b></p><
15、p> 附錄一:電路圖22</p><p> 附錄二:Labview整體程序圖24</p><p> 附錄三:源程序25</p><p><b> 1 引言 </b></p><p> 心率作為自主神經(jīng)在竇房[2]結(jié)水平相互作用的反應,它與人體心臟功能和狀態(tài)密切相關,近年來在醫(yī)學和運動醫(yī)學領域受到廣
16、泛關注。在醫(yī)學領域中監(jiān)測心率主要的手段是通過心電監(jiān)護儀,而運動醫(yī)學中是采用腕式心率表或心率計。前者適用于靜態(tài)狀態(tài)的患者,后者則適用于運動員自身去觀看。因此如果要實時監(jiān)測處于運動中人體心率信號,這兩種方法都不適用。</p><p> 為了使醫(yī)生或教練員能夠?qū)崟r監(jiān)測運動中的患者或運動員的心率信號,研制一種運動員心率無線檢測系統(tǒng)就非常有必要了。</p><p><b> 2 設計要
17、求</b></p><p> 運動員心率遠程無線檢測系統(tǒng)的設計,基本要求如下:</p><p> 心率誤差:-2~+2次/每分鐘;</p><p> 心率值前端由數(shù)碼管顯示;</p><p> 要求上位機能顯示接收心率值;</p><p> 發(fā)射距離大于50米;</p><p&
18、gt; 3 總體方案設計 [3] </p><p> 根據(jù)設計要求,本系統(tǒng)的總體設計系統(tǒng)框圖如圖1所示,主要包括傳感器模塊,信號處理,單片機,顯示模塊,無線模塊,串口模塊,上位機。首先用傳感器對運動員心率信號進行采集,然后經(jīng)過信號處理后用單片機進行計數(shù),計數(shù)完成后,單片機控制顯示模塊對心率值進行顯示,并且將心率值通過無線模塊進行發(fā)送;遠端單片機無線模塊對心率值進行接收,接收完成后通過串口模塊將心率數(shù)據(jù)傳送給上
19、位機,上位機對接收到的數(shù)據(jù)進行顯示和保存。</p><p><b> 圖1 系統(tǒng)框圖</b></p><p><b> 4 方案論證</b></p><p><b> 4.1 傳感器選擇</b></p><p> 現(xiàn)階段應用的心率傳感器[4][5][6]種類繁多,性能各
20、異,根據(jù)其工作原理主要可分為三種:一種是通過感受脈動處分壓力的變化而描述脈搏圖,即壓力式脈搏傳感器;另一種則是通過感受脈管容積的變化來描述脈象,即光電式脈搏傳感器;第三種是通過感受人體生物電的變化來描述脈象,即心電電極。</p><p> 由于本設計是為了對運動員的心率進行測量,所以光電式脈搏傳感器在本設計中首先被排除,因為光電式脈搏傳感器的干擾比較大,而且光電式傳感器不便于佩戴,其次由于心電電極對運動員的心率
21、進行測量,測量過程中運動員會分泌大量的汗液,電極的佩戴也不方便,而且目前市場上的心電電極多為一次性的,并不是十分方便使用,而且人體的生物電要對多點進行檢測才能獲得較準確的脈搏信號,所以本設計采用壓電式脈搏傳感器。</p><p> 經(jīng)過實驗效果分析和比對,本設計選用了HK-2000A[7]集成化數(shù)字脈搏傳感器。該傳感器使用了新型的高分子聚合物傳感材料PVDF,具有很好的壓電特性和很好的仿生特性,與人體組織的阻抗
22、耦合性好,能緊貼皮膚,靈敏度高。采用高度集成化工藝將力敏元件(PVDF壓電膜)、靈敏度溫度補償元件、感溫元件、信號調(diào)理電路集成在傳感器內(nèi)。壓電式原理采集信號,模擬信號輸出,輸出同步于脈搏波動的脈沖信號,脈搏波動一次輸出一正脈沖,方便后續(xù)的信號處理。</p><p><b> 4.2無線模塊</b></p><p> 現(xiàn)階段生活中很多地方都要用到無線傳輸,無線傳輸模
23、塊非常的多。根據(jù)其原理可以分為兩套方案:</p><p> 方案一:藍牙模塊[8]</p><p> 藍牙工作于2.4GHZ的全球通用ISM(工業(yè),科學,醫(yī)學)頻段, 以保證藍牙在全世界范圍內(nèi)的運用. 藍牙系統(tǒng)的天線發(fā)射功率符合FCC關于ISM波段的要求0dBm。系統(tǒng)的最大跳頻速率為1600跳/秒,在2.402GHz到2.480GHz之間,采用79個1MHZ帶寬的頻點。系統(tǒng)設計的通信距
24、離為10米(0db),如果增加發(fā)射功率(20DB),這一距離也可以達到100米。</p><p> 方案二: 2.4G無線模[9]</p><p> 2.4G無線模塊工作在全球免申請ISM頻道2400M-2483M范圍內(nèi),實現(xiàn)開機自動掃頻功能,共有50個工作信道,可以同時供50個用戶在同一場合同時工作,無需使用者人工協(xié)調(diào)、配置信道。同時,可以根據(jù)成本考慮,選擇50米內(nèi)、150米、600
25、 米多種類型無線模塊。接收單元和遙控器單元具有1鍵自動對碼功能,數(shù)字地址編碼,容量大,避免地址重復。</p><p> 藍牙模塊和2.4G無線模塊都是以2.4G為載波,但是兩者的區(qū)別在于兩者采用的協(xié)議不同。但是相對來說2.4G無線模塊的功耗更低,在相同的傳輸距離的情況下2.4G模塊的價格也更低,傳輸質(zhì)量上兩者都差不多,但是藍牙是有專利的,生產(chǎn)藍牙產(chǎn)品需要進行付費。綜上所述本設計選用2.4G無線模塊實現(xiàn)心率值的無
26、線傳輸。</p><p><b> 5系統(tǒng)硬件電路設計</b></p><p> 硬件電路的設計主要包括單片機最小系統(tǒng)及顯示電路、無線模塊、串口模塊和電源電路五部分。單片機采用AT89S52或其兼容系列,現(xiàn)場測量部分采用12MHz高精度的晶振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差,遠端使用11.0592MHz高精度晶振,以獲的穩(wěn)定的波特率,減少誤差。顯示電路采用簡單
27、實用的三位一體LED數(shù)碼管。無線模塊使用NRF24L01[10]模塊。串口模塊電路使用MAX232實現(xiàn)電平轉(zhuǎn)換。</p><p> 5.1單片機最小系統(tǒng)</p><p> 5.1.1 單片機AT89S52</p><p><b> 主要性能:</b></p><p> (1) 與MCS-51單片機產(chǎn)品兼容<
28、/p><p> (2) 8K字節(jié)在系統(tǒng)可編程Flash存儲器</p><p> ?。?) 1000次擦寫周期 </p><p> ?。?)全靜態(tài)操作:0Hz~33Hz</p><p> ?。?) 三級加密程序存儲器</p><p> (6) 32個可編程I/O口線 </p><p> ?。?)
29、 三個16位定時器/計數(shù)器</p><p><b> ?。?) 八個中斷源</b></p><p> ?。?) 全雙工UART串行通道 </p><p> ?。?0)低功耗空閑和掉電模式</p><p> (11)掉電后中斷可喚醒 </p><p> ?。?2) 看門狗定時器
30、</p><p> (13)雙數(shù)據(jù)指針 </p><p><b> ?。?4)掉電標識符</b></p><p><b> 功能特性描述:</b></p><p> AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K在系統(tǒng)可編程Flash 存儲器。使用A
31、tmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、有效的解決方案。</p><p> AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)
32、據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構,全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止.AT89S52的引腳結(jié)構如圖2所示。</p><p> 圖2 AT89
33、S52的引腳結(jié)構</p><p> 5.1.2 單片機AT89S52最小系統(tǒng)</p><p> AT89S52是片內(nèi)有EPROM的單片機。因此,用這種芯片構成的最小系統(tǒng)簡單、可靠。用AT89S52單片機構成最小應用系統(tǒng)時,只要將單片機接上時鐘電路和復位電路以及擴展的簡單I/O口即可,如圖3所示。由于受集成度、片內(nèi)功能的限制,最小應用系統(tǒng)只能用作一些小型的控制單元。其應用特點為:有可供用
34、戶使用的較多的I/O口線。由于不需要擴展外部存儲器,EA應接高電平,P0、P1、P2、P3均作為用戶I/O口使用。內(nèi)部存儲器容量有限。</p><p> 應用系統(tǒng)開發(fā)具有特殊性。如AT89S52的應用軟件須依靠半導體廠家用半導體掩膜技術置入,故AT89S52應用系統(tǒng)一般用作大批量生產(chǎn)的應用系統(tǒng)。另外,P0、P2口的應用與開發(fā)環(huán)境差別較大。</p><p> 圖3 單片機最小系統(tǒng)原理圖&
35、lt;/p><p><b> 5.2顯示電路</b></p><p> LED采用3位一體8段共陰數(shù)碼管。該數(shù)碼管具有顯示清晰,穩(wěn)定可靠,接口電路簡單,控制簡單等優(yōu)點。AT89S52通過P0.0~P0.7與LED連接控制段選,然后通過另外三個I/O引腳控制位選.圖4為數(shù)碼管引腳圖。
36、 </p><p><b> 圖4 數(shù)碼管引腳圖</b></p><p><b> 5.3無線模塊電路</b></p><p> 無線模塊采用挪威 NORDIC 公司的 NRF24L01,無線模塊電路圖如圖5所</p><p><b&
37、gt; 示。</b></p><p> 圖5 無線模塊電路圖</p><p> 5.3.1 NRF24L01簡介 </p><p> 2.4G無線收發(fā) IC設計的一款高性能2.4G無線收發(fā)模塊,采用 GFSK 調(diào)制,工作在 2400‐2483M的國際通用 ISM 頻段,最高調(diào)制速率可達 2MBPS。24L01集成了所有與 RF協(xié)議相關的高速信號處
38、理部分,自動重發(fā)丟失數(shù)據(jù)包和自動產(chǎn)生應答信號等,模塊的 SPI[11] 接口可以利用單片機的硬件 SPI口連接或用單片機的 I/O 口進行模擬,內(nèi)部有 FIFO 可以與各種高低速微處理器接口,便于使用低成本單片機。NRF24L01模塊的引腳圖如圖6所示。NRF24L01工作方式有四種分別是:收發(fā)模式,配置模式,空閑模式,關機模式。</p><p> 圖6 NRF24L01模塊的引腳圖</p>&l
39、t;p> 5.3.2 SPI協(xié)議</p><p> SPI是英語Serial Peripheral Interface的縮寫,顧名思義就是串行外圍設備接口。SPI是一種高速的,全雙工,同步的通信,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便。</p><p> SPI是一個環(huán)形總線結(jié)構,由SS(CS)、SCK、SDI、SDO 構成,其
40、時序其實很簡單,主要是在SCK 的控制下,兩個雙向移位寄存器進行數(shù)據(jù)交換。 上升沿發(fā)送、下降沿接收、高位先發(fā)送。 上升沿到來的時候,SDO上的電平將被發(fā)送到從設備的寄存器中。下降沿到來的時候,SDI上的電平將被接收到主設備的寄存器中。 </p><p> 5.3.3 NRF24L01時序</p><p> 如圖7和如圖8所示分別是讀操作和寫操作</p><p>
41、;<b> 圖7讀操作</b></p><p><b> 圖8寫操作</b></p><p><b> 5.4串口模塊電路</b></p><p> 5.4.1 串口芯片MAX232[12]</p><p> MAX232是美信公司專門為電腦的RS232標準串口設計的
42、單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V- 。功耗低,典型供電電流5mA, 內(nèi)部集成2個RS-232C驅(qū)動器,內(nèi)部集成兩個RS-232C接收器。MAX232引腳圖如圖9所示。</p><p> 圖9 MAX232引腳圖</p><p> 5.4.2 串口電路</p><p> MAX
43、IM公司的MAX232接收/發(fā)送器是MAXIM公司特別為滿足EIA/TEA2232的標準而設計的,它們具有功耗低,工作電源為單電源,外接電容僅為0.1uF或1uF的電容,其價格低,可在一般需要串行通信的系統(tǒng)中使用。MAX232引腳C1+與C1-、C2+與C2-、V+與VCC、V-與GND之間的4個0.1uF的電容不可缺少,一般選用陶瓷介質(zhì)的電容。</p><p> MAX232可以用作單片機和單片機之間、單片機
44、和PC機串口之間的符合RS232串行接口電路。只要將待進行串行傳輸?shù)脑O備的發(fā)送和接收端相應的接上,編程即可。MAX232電路圖如圖10所示。</p><p> 圖10 MAX232電路圖</p><p><b> 5.5電源模塊電路</b></p><p> 5.5.1 正5V電源模塊</p><p> 選擇78
45、05穩(wěn)壓芯片制作5V電源。如圖11所示為電源模塊圖。</p><p><b> 圖11電源模塊圖</b></p><p> 5.5.2 LM317穩(wěn)壓模塊</p><p> LM317 [13]是美國國家半導體公司的三端可調(diào)正穩(wěn)壓器集成電路。LM317 的輸出電壓范圍是1.2V至37V,負載電流最大為1.5A。它的使用非常簡單,僅需兩個外
46、接電阻來設置輸出電壓。此外它的線性調(diào)整率和負載調(diào)整率也比標準的固定穩(wěn)壓器好。LM317 內(nèi)置有過載保護、安全區(qū)保護等多種保護電路??烧{(diào)整輸出電壓低到1.2V。保證1.5A 輸出電流。典型線性調(diào)整率0.01%。典型負載調(diào)整率0.1%。80dB 紋波抑制比。輸出短路保護。過流、過熱保護。調(diào)整管安全工作區(qū)保護。標準三端晶體管封裝。其封裝形式如圖12所示,LM317可調(diào)電源電路圖如圖13所示。</p><p> 圖12
47、 LM317封裝圖</p><p> 圖13 LM317可調(diào)電源模塊圖</p><p><b> 6 軟件程序設計</b></p><p> 6.1單片機程序設計</p><p> 軟件設計思想:采用模塊化的分層次設計方法,將軟件系統(tǒng)功能由多個實現(xiàn)單一功能的子程序?qū)崿F(xiàn)。通過調(diào)用不同的子程序,實現(xiàn)了復雜功能控制。這
48、樣便于調(diào)試、修改和移植。</p><p> 由于本設計采用單片機控制,軟件設計程序編寫是用C語言來完成。其中主程序部分主要完成調(diào)用子程序。系統(tǒng)的初始化,中斷方式的設置,開中斷,存儲單元的清零等,數(shù)碼管的顯示,無線模塊發(fā)送,延時等均由相應的子程序來完成。軟件編程是實現(xiàn)多功能、智能化、操作方便的關鍵。在本設計中,可以把子程序的各部分相互結(jié)合起來,達到設計所要求各項的功能。</p><p>
49、?。?)主程序1主要完成定時器0初始化功能,無線模塊初始化,LED顯示的初始化,發(fā)送心率等。程序流程圖如圖14所示</p><p> (2)定時器0中斷服務程序設計。定時器0完成計時功能,定時50ms,進行定時中斷計數(shù)并每隔5s更新一次顯示數(shù)據(jù)。程序流程圖如圖15所示</p><p> (3)無線模塊發(fā)送初始化程序主要是完成無線模塊發(fā)送的初始化是無線模塊工作在發(fā)送模式。流程圖如圖16所
50、示</p><p> ?。?)外部中斷0程序主要是完成計數(shù)功能,流程圖如圖17所示</p><p> ?。?)主程序2主要完初始化無線模塊,初始化串口,啟動無線接收模式,接收心率和串口發(fā)送心率程序流程圖如圖18所示</p><p> ?。?)無線模塊接收初始化程序主要是完成無線模塊接收的初始化使無線模塊處于接收模式。流程圖如圖19所示</p><
51、p> 6.2上位機程序設計</p><p> 上位機軟件的編寫采用的是目前工業(yè)控制中使用較多的Labview[14]軟件進行編寫的。該上位機設計能對串口接收到的心率值進行顯示和保存。上位機的顯示界面如圖20所示。</p><p><b> 圖20上位機界面圖</b></p><p> 6.2.1 VISA配置串口</p>
52、;<p> 首先需要調(diào)用VISA Configure Serial Port完成串口參數(shù)的設置,包括串口資源分配、波特率、數(shù)據(jù)位、停止位、校驗位和流控等等。VISA Configure Serial Port各參數(shù)意義如圖21所示。</p><p><b> 圖21 串口配置圖</b></p><
53、;p> 6.2.2讀串口數(shù)據(jù)</p><p> 讀取串口收到的數(shù)據(jù)四個為一組如果收到的數(shù)據(jù)的第一字節(jié)不為49,第四字節(jié)不為52則舍棄該數(shù)據(jù)。程序圖如圖22所示。</p><p> 圖22 讀串口數(shù)據(jù)程序圖</p><p><b> 6.2.3心率測量</b></p><p> 將數(shù)據(jù)的第二字節(jié)放大100倍
54、加上第三字節(jié)數(shù)據(jù)通過波形圖進行心率值的顯示,如圖23所示。</p><p> 圖23波形顯示程序圖</p><p> 6.2.4 Excel文件生成程序</p><p> 要將從串口接收到的數(shù)據(jù)保存到Excel中需要創(chuàng)建和打開Excel,程序圖如圖24所示。</p><p> 圖24 Excel文件生成程序圖</p>
55、<p> 6.2.5心率值保存程序</p><p> 在生成的Excel中將每秒的心率值進行保存,方便歷史數(shù)據(jù)的使用和查閱。程序如圖25所示。</p><p> 圖25心率值保存程序圖</p><p><b> 7 程序仿真</b></p><p> 仿真主要包括心率信號的測量、顯示和無線模塊SPI協(xié)
56、議時序仿真,串口發(fā)送仿真。</p><p> 7.1心率信號的測量與顯示仿真</p><p> 將發(fā)送部分的程序生成的Hex文件燒錄到單片機中,然后在外部中斷0口輸入一個頻率為100Hz的方波信號,進行仿真,得到的結(jié)果如圖26所示。</p><p> 圖26心率信號的測量、顯示仿真圖</p><p> 7.2單片機模擬SPI協(xié)議時序仿
57、真</p><p> 為了驗證單片機產(chǎn)生的SPI信號的正確性,將模擬口的信號全部用Proteus的Digital Analysis進行觀察。當CE片選信號使能的情況下控制信號才有效。一個字節(jié)的數(shù)據(jù)在8個SCK信號周期下發(fā)送完成。與實際的SPI協(xié)議一致。</p><p> 圖27 單片機模擬SPI協(xié)議時序仿真</p><p><b> 7.3串口發(fā)送仿
58、真</b></p><p> 將接收端的程序生成的Hex文件添加到單片機中,觀察接收端發(fā)送出來的數(shù)據(jù)。因為我設置的是接收端數(shù)據(jù)一開始為31 00 00 34 所以在Virtual Terminal中顯示的為1 4,其之間的0不能進行顯示。仿真圖形如圖28所示。</p><p> 圖28 串口發(fā)送仿真圖</p><p> 8設計系統(tǒng)的調(diào)試結(jié)果與數(shù)據(jù)分
59、析</p><p> 將接收端和發(fā)送端的程序分別燒錄進兩個單片機,將電路按設計原理圖接好,由于HK-2000A傳感器沒有買回來,所以頻率發(fā)生器來模擬心率信號,將所有的東西連接好后啟動電源和上位機界面,上位機的界面對心率值進行顯示。如圖29所示。</p><p> 根據(jù)測試結(jié)果,采用NRF24L01的無線心率測量系統(tǒng)在有障礙物(寢室)能達到的距離為15米左右,在空曠的地方能傳輸?shù)木嚯x為6
60、5米左右。心率計能夠在前端對數(shù)據(jù)進行顯示,并且可以將數(shù)據(jù)發(fā)送到上位機進行顯示和保存。由于傳感器模塊為集成的,是整形后的,輸出直接為方波信號,所以沒有進行測試。心率測量的測量誤差沒有測量。</p><p> 圖29 上位機界面圖</p><p><b> 9 結(jié)束語</b></p><p> 這次畢業(yè)設計過程中綜合了所學的數(shù)字電路,模擬電路
61、,單片機,C語言對單片機編程,對大學所學的知識起了一個很好的鞏固作用,同時也應用到了Protell 99軟件畫圖和ISIS Profressional軟件仿真,仿真的結(jié)果還比較的準確,但是實物卻沒有完全實現(xiàn)功能。這此過程中認識到自己的知識面太狹小,也許是自己制作的實品太少了,對一些芯片的了解甚少,今后在工作中一定要補充這塊。同時也認識到理論和實踐的差別,通過實際制作更能了解到一些模塊電路和芯片的功能,特別是檢查電路時,讓自己對電路有更深
62、的了解。</p><p> 撰寫論文時,也讓自己認識到做每件事都應認真對待,要規(guī)范、嚴謹。</p><p><b> 參考文獻</b></p><p> [2] 呂虎 華萍.探索人體奧秘.科學出版社,2008:118-132.</p><p> [3] 包旭鶴.便攜式電子血壓計設計[J].現(xiàn)代電子技術,2007,
63、(8):7-9.</p><p> [4] 王家慶.脈搏信號處理方法研究與脈搏測量系統(tǒng)設計[D].北京工業(yè)大學碩士學位論文,2006:1—2.</p><p> [5] 羅志昌,張松,楊益民.脈搏波的工程分析與臨床應用[M].北京:科學出版社,2006:1-2,105一106,108—109.</p><p> [6] 姜斌 宋蜇存 于鵬.脈象傳感器的發(fā)展概況
64、[J].科技資訊,2007,(5):22.</p><p> [7] HK-2000系列集成化脈搏傳感器[EB/OL].合肥華科電子技術研究所,2004.</p><p> [11] 周立功.ARM嵌入式系統(tǒng)基礎教程.北京航空航天大學出版社.2008:237-248</p><p> [13] 王港元.電工電子實踐指導[M].江西科學技術出版社,2005<
65、;/p><p> [14] 劉君華.基于LabVIEW的虛擬儀器設計[M].北京:電子工業(yè)出版社,2003</p><p> [15] Gaey Wendt E,Klaus K W.A new type of hydraulic actuator using electrorheological fluids[J].InternationalJ Modern Physics B,1999(
66、14):2 176. </p><p> [16] Gary W.Johnson,Richard Jennings. Graphical Programming,2011.</p><p><b> 附錄一:電路圖</b></p><p> 圖30 接收電路電路圖</p><p> 圖31 發(fā)送電路電路圖<
67、/p><p> 附錄二:Labview整體程序圖</p><p> 圖32 Labview程序圖</p><p><b> 附錄三:源程序</b></p><p><b> 發(fā)送程序</b></p><p> #include <reg52.h></p
68、><p> #include <intrins.h></p><p> typedef unsigned char uchar;</p><p> typedef unsigned char uint;</p><p> int a,second,number,speed;</p><p> int
69、ge,shi,bai;</p><p> //*********************IO端口定義*************************</p><p> sbit MISO=P1^2;</p><p> sbit MOSI=P1^4;</p><p> sbitSCK =P1^6;</p>
70、<p> sbitCE =P1^5;</p><p> sbitCSN=P1^7;</p><p> sbitIRQ=P1^3;</p><p> //*************************待發(fā)送數(shù)據(jù)********************</p><p> uchar TxBuf[4
71、]=</p><p><b> {</b></p><p> 0x01,0x21,0x00,0x00</p><p><b> };</b></p><p> unsigned char code temp[]={0x3f,0x06,0x5b,0x4f,//數(shù)碼管代碼</p>
72、<p> 0x66,0x6d,0x7d ,0x07,</p><p> 0x7f,0x6f};</p><p> //******************************NRF24L01**********************</p><p> #define TX_ADR_WIDTH 5 // 5 uints TX a
73、ddress width</p><p> #define RX_ADR_WIDTH 5 // 5 uints RX address width</p><p> #define TX_PLOAD_WIDTH 4 // 20 uints TX payload</p><p> #define RX_PLOAD_WIDTH 4 // 20
74、 uints TX payload</p><p> uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//本地地址</p><p> uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//接收地址</p><
75、;p> //***************************************NRF24L01寄存器指令*******************************************************</p><p> #define READ_REG 0x00 // 讀寄存器指令</p><p> #define WRITE_REG
76、 0x20 // 寫寄存器指令</p><p> #define RD_RX_PLOAD 0x61 // 讀取接收數(shù)據(jù)指令</p><p> #define WR_TX_PLOAD 0xA0 // 寫待發(fā)數(shù)據(jù)指令</p><p> #define FLUSH_TX 0xE1 // 沖洗發(fā)送 FIFO指令&l
77、t;/p><p> #define FLUSH_RX 0xE2 // 沖洗接收 FIFO指令</p><p> #define REUSE_TX_PL 0xE3 // 定義重復裝載數(shù)據(jù)指令</p><p> #define NOP 0xFF // 保留</p><p> //***
78、**********************************SPI(nRF24L01)寄存器地址****************************************************</p><p> #define CONFIG 0x00 // 配置收發(fā)狀態(tài),CRC校驗模式以及收發(fā)狀態(tài)響應方式</p><p> #define EN_AA
79、 0x01 // 自動應答功能設置</p><p> #define EN_RXADDR 0x02 // 可用信道設置</p><p> #define SETUP_AW 0x03 // 收發(fā)地址寬度設置</p><p> #define SETUP_RETR 0x04 // 自動重發(fā)功能設置&l
80、t;/p><p> #define RF_CH 0x05 // 工作頻率設置</p><p> #define RF_SETUP 0x06 // 發(fā)射速率、功耗功能設置</p><p> #define STATUS 0x07 // 狀態(tài)寄存器</p><p> #define O
81、BSERVE_TX 0x08 // 發(fā)送監(jiān)測功能</p><p> #define CD 0x09 // 地址檢測 </p><p> #define RX_ADDR_P0 0x0A // 頻道0接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P1 0x0B /
82、/ 頻道1接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P2 0x0C // 頻道2接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P3 0x0D // 頻道3接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P4 0x0E // 頻道4接收數(shù)據(jù)地址</p>&l
83、t;p> #define RX_ADDR_P5 0x0F // 頻道5接收數(shù)據(jù)地址</p><p> #define TX_ADDR 0x10 // 發(fā)送地址寄存器</p><p> #define RX_PW_P0 0x11 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P1
84、 0x12 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P2 0x13 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P3 0x14 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P4 0x15 // 接收
85、頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P5 0x16 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define FIFO_STATUS 0x17 // FIFO棧入棧出狀態(tài)寄存器設置</p><p> //************************************************
86、**********</p><p> void Delay(unsigned int s);</p><p> void inerDelay_us(unsigned char n);</p><p> void init_NRF24L01(void);</p><p> uint SPI_RW(uint uchar);</p&
87、gt;<p> uchar SPI_Read(uchar reg);</p><p> uint SPI_RW_Reg(uchar reg, uchar value);</p><p> uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);</p><p> uint SPI_Writ
88、e_Buf(uchar reg, uchar *pBuf, uchar uchars);</p><p> unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);</p><p> void nRF24L01_TxPacket(unsigned char * tx_buf);</p><p><b&g
89、t; //延時程序</b></p><p> void delay(int x)</p><p><b> {</b></p><p><b> int i,j;</b></p><p> for(j=0;j<x;j++)</p><p> fo
90、r(i=0;i<10;i++);</p><p><b> }</b></p><p> //***************定時器初始化**************************/</p><p> void time0_init()</p><p><b> {</b>&l
91、t;/p><p> TMOD=0x01;//設置定時器0工作模式</p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p> EA=1; //開總中斷</p><p> ET0=1;//開T0中斷</p>&l
92、t;p> IT0=1;// 設置負邊沿觸發(fā)</p><p> EX0=1; // 開外部中斷</p><p> TR0=1;//啟動定時器T0</p><p><b> number=0;</b></p><p><b> }</b></p><p><
93、;b> //顯示程序</b></p><p> void display()</p><p><b> { </b></p><p> bai=speed%1000/100;</p><p> shi=speed%100/10; </p><p> ge=speed%
94、10;</p><p><b> P2=0xdf;</b></p><p> P0=temp[bai];</p><p> delay(10);</p><p><b> P2=0xbf;</b></p><p> P0=temp[shi];</p>
95、<p> delay(10);</p><p><b> P2=0x7f;</b></p><p> P0=temp[ge];</p><p> delay(10); </p><p><b> }</b></p><p> //************
96、***************************************</p><p> uint bdata sta; //狀態(tài)標志</p><p> sbitRX_DR=sta^6;</p><p> sbitTX_DS=sta^5;</p><p> sbitMAX_RT=sta^4;</p>
97、;<p> /*******************************************************</p><p><b> /*延時函數(shù)</b></p><p> /****************************************************/</p><p> vo
98、id inerDelay_us(unsigned char n)</p><p><b> {</b></p><p> for(;n>0;n--)</p><p><b> _nop_();</b></p><p><b> }</b></p>&
99、lt;p> //***************************************************</p><p> /*NRF24L01初始化</p><p> //***************************************************/</p><p> void init_NRF24L01(vo
100、id)</p><p><b> {</b></p><p> inerDelay_us(100);</p><p> CE=0; // chip enable</p><p> CSN=1; // Spi disable </p><p> SCK=0; // Spi c
101、lock line init high</p><p> SPI_RW_Reg(FLUSH_TX,0x00);</p><p> SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 寫本地地址</p><p> SPI_Write_Buf(WRITE_REG + RX_ADD
102、R_P0, RX_ADDRESS, RX_ADR_WIDTH); // 寫接收端地址</p><p> SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 頻道0自動ACK應答允許</p><p> SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允許接收地址只有頻道0,如果需要多頻道可以參考Pag
103、e21 </p><p> SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 設置信道工作為2.4GHZ,收發(fā)必須一致</p><p> SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //設置接收數(shù)據(jù)長度,本次設置為32字節(jié)</p><p> SPI_RW_Reg
104、(WRITE_REG + RF_SETUP, 0x07); //設置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB</p><p> SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收發(fā)完成中斷響應,16位CRC,主發(fā)送</p><p><b> }</b></p><p> /**
105、**************************************************</p><p> /*函數(shù):uint SPI_RW(uint uchar)</p><p> /*功能:NRF24L01的SPI寫時序</p><p> /*************************************************/&l
106、t;/p><p> uint SPI_RW(uint uchar)</p><p><b> {</b></p><p> uint bit_ctr;</p><p> for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit</p><p>
107、<b> {</b></p><p> MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI</p><p> uchar = (uchar << 1); // shift next bit into MSB..</p>&
108、lt;p> SCK = 1; // Set SCK high..</p><p> uchar |= MISO; // capture current MISO bit</p><p> SCK = 0; // ..then set SCK low again</p>&l
109、t;p><b> }</b></p><p> return(uchar); // return read uchar</p><p><b> }</b></p><p> /****************************************************
110、******/</p><p> /*功能:NRF24L01讀寫寄存器函數(shù)</p><p> /***********************************************************/</p><p> uint SPI_RW_Reg(uchar reg, uchar value)</p><p><
111、;b> {</b></p><p> uint status;</p><p> CSN = 0; // CSN low, init SPI transaction</p><p> status = SPI_RW(reg); // select register</p><
112、p> SPI_RW(value); // ..and write value to it..</p><p> CSN = 1; // CSN high again</p><p> return(status); // return nRF24L01 status uchar</p>
113、<p><b> }</b></p><p> /**********************************************************</p><p> /*函數(shù):uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)</p><p>
114、 /*功能: 用于寫數(shù)據(jù):為寄存器地址,pBuf:為待寫入數(shù)據(jù)地址,uchars:寫入數(shù)據(jù)的個數(shù)</p><p> /****************************************************/</p><p> uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)</p><
115、;p><b> {</b></p><p> uint status,uchar_ctr;</p><p> CSN = 0; //SPI使能 </p><p> status = SPI_RW(reg); </p><p> for(uchar_ctr=0; uch
116、ar_ctr<uchars; uchar_ctr++) //</p><p> SPI_RW(*pBuf++);</p><p> CSN = 1; //關閉SPI</p><p> return(status); // </p><p><b> }</b></p>
117、<p> /************************************************************</p><p> /*函數(shù):void nRF24L01_TxPacket(unsigned char * tx_buf)</p><p> /*功能:發(fā)送 tx_buf中數(shù)據(jù)</p><p> /*********
118、**********************************************/</p><p> void nRF24L01_TxPacket(unsigned char * tx_buf)</p><p><b> {</b></p><p> CE=0;//StandBy I模式</p><
119、p> SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 裝載接收端地址</p><p> SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // 裝載數(shù)據(jù)</p><p> //SPI_RW_Reg(WRITE_REG + CO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運動員用多參數(shù)無線監(jiān)護系統(tǒng)的開發(fā)與設計.pdf
- 優(yōu)秀運動員心率變異性分析.pdf
- 課程設計--運動員成績管理系統(tǒng)
- 畢業(yè)設計---心率計設計
- 畢業(yè)設計正文---井架應變無線檢測系統(tǒng)設計
- 高原訓練對速滑運動員心率變異性的影響
- 無線表決系統(tǒng)的設計-畢業(yè)設計
- 運動員訓練數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn).pdf
- 便攜式運動員心血管功能檢測系統(tǒng)的設計與開發(fā).pdf
- 基于labview的心率計設計【畢業(yè)設計】
- 高原訓練對速滑運動員心率變異性的影響.pdf
- 足球運動員若干最大心率測試方法對比研究
- 簡易心率計設計——畢業(yè)設計論文
- 畢業(yè)設計--室溫檢測系統(tǒng)的設計
- 運動員進行曲教學活動設計
- 競走運動員運動訓練計劃管理系統(tǒng)的設計與開發(fā).pdf
- 運動員進行曲教學活動設計
- 不同方式力量訓練對優(yōu)秀摔跤運動員心率和心率恢復影響的比較研究.pdf
- 足球運動員若干最大心率測試方法對比研究.pdf
- 糧倉無線遙測系統(tǒng)畢業(yè)設計
評論
0/150
提交評論