基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)
《基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)(41頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、龍巖學(xué)院畢業(yè)設(shè)計(jì) 題目: 基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì) 專(zhuān)業(yè): 電子信息工程 學(xué)號(hào): 2014041817 作者: 柯慶烽 指導(dǎo)教師(職稱(chēng)): 曾瑋 副教授 2016年5 月20 日基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)【摘要】在社會(huì)不斷進(jìn)步的同時(shí),人們的生活水平也隨之提高。越來(lái)越多的人開(kāi)始喜歡上了自行車(chē),它不僅成為一種交通工具或者代步工具。隨著社會(huì)的進(jìn)步,自行車(chē)上的輔助功能也變得越來(lái)越多,于此同時(shí),人們也非常希望自行車(chē)上能夠有休閑、鍛煉等功能,這樣能夠在騎自行車(chē)的同時(shí)給人帶來(lái)更多舒適和健康。雖然自行車(chē)騎行是一個(gè)老少皆宜的運(yùn)動(dòng),但是在騎行的過(guò)程時(shí),人們對(duì)自身的安全非常重視。同時(shí)在沒(méi)有騎行
2、時(shí),對(duì)自行車(chē)停放的位置也是有點(diǎn)顧慮和擔(dān)憂(yōu)的。本設(shè)計(jì)是利用STC12C5A60S2單片機(jī)來(lái)實(shí)現(xiàn)自行車(chē)的多功能自行車(chē)防丟系統(tǒng),主要分為主機(jī)和副機(jī)兩個(gè)部分來(lái)實(shí)現(xiàn)自行車(chē)的轉(zhuǎn)向燈的功能,運(yùn)動(dòng)時(shí)心率檢測(cè)功能,和自行車(chē)防丟功能。【關(guān)鍵字】STC12C5A60S2 轉(zhuǎn)向燈 防丟功能 心率檢測(cè)Multifunctional bicycle lost prevention system based on single chip microcomputerAbstract in the continuous progress of society, peoples living standards will be
3、improved. More and more people began to love on the bike, it not only as a means of transport or transport. With the progress of the society, bicycle auxiliary function has become more and more, at the same time, people also very much hope that bike to leisure, exercise, and other functions, this ca
4、n in riding a bicycle also brings more comfort and health. Although the cycling is an ages of movement, but in the process of riding, people for their own safety very seriously. At the same time in the absence of riding, the location of the bicycle parking is also a bit of concern and worry. This de
5、sign is uses STC12C5A60S2 to achieve a bike multifunctional bicycle anti lost system, mainly divided into two parts: the host machine and the auxiliary machine to achieve a bike of steering lamp function, movement heart rate detection function, and the bicycle anti lost functions.keyword STC12C5A60S
6、2 Steering light Anti drop function Heart rate detection目錄第1章 緒論11.1研究的背景及意義11.1.1課題研究背景11.1.2課題研究意義1第2章 課題的目標(biāo)任務(wù)22.1 課題的主要內(nèi)容22.1.1 課題總體介紹體22.1.2 工作內(nèi)容22.1.3 課題具體任務(wù)2第3章 硬件設(shè)計(jì)33.1 硬件系統(tǒng)選型33.1.1 控制芯片的選擇33.1.2 無(wú)線(xiàn)通信模塊選擇33.1.3 心率檢測(cè)傳感器的選擇43.2 系統(tǒng)硬件設(shè)計(jì)43.2.1 單片機(jī)控制電路設(shè)計(jì)43.2.2 無(wú)線(xiàn)通信模塊電路設(shè)計(jì)43.2.3 按鍵模塊電路63.2.4 心率檢測(cè)模塊設(shè)計(jì)
7、63.2.5 報(bào)警電路設(shè)計(jì)7第4章 軟件設(shè)計(jì)84.1 系統(tǒng)功能介紹84.2 程序總體框圖84.2.1 主機(jī)的程序框圖84.2.2 副機(jī)的程序框圖84.3 程序設(shè)計(jì)的總體思路94.3.1 NRF24L01無(wú)線(xiàn)通信模塊的設(shè)計(jì)思路94.3.2 自行車(chē)轉(zhuǎn)向燈模塊的設(shè)計(jì)思路94.3.3 心率檢測(cè)模塊的設(shè)計(jì)思路94.4 部分程序流程圖104.4.1 NRF24L01無(wú)線(xiàn)收發(fā)模塊的程序流程圖設(shè)計(jì)104.4.2 主機(jī)流程圖設(shè)計(jì)104.4.2 副機(jī)流程圖設(shè)計(jì)11第5章 系統(tǒng)調(diào)試125.1 硬件系統(tǒng)調(diào)試125.1.1 基本電路檢測(cè)125.1.2 基本連線(xiàn)檢查125.2 軟件系統(tǒng)調(diào)試135.2.1 基本輸入輸出調(diào)試
8、135.2. 基本功能的調(diào)試13第6章 結(jié)論146.1 基本成果146.2 改進(jìn)展望146.3 經(jīng)驗(yàn)總結(jié)14致謝15參考文獻(xiàn)16附錄17附錄一:基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)的電路原理圖17附錄二:基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)的PCB圖18附錄三:基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)的部分程序.194第1章 緒論1.1研究的背景及意義1.1.1課題研究背景 在科技不斷的發(fā)展和社會(huì)不斷的進(jìn)步條件下,人們的生活也隨著不斷的改善,從而人們?cè)絹?lái)越注重自身的身體健康,越來(lái)越多的人會(huì)選擇不同的運(yùn)動(dòng)方式。自行車(chē)現(xiàn)在不僅僅是人們的代步工具,從而也成為人們的運(yùn)動(dòng)工具。但是人們將自行車(chē)騎在馬路上的時(shí)
9、候,馬路上總是有汽車(chē)等機(jī)動(dòng)車(chē),由于當(dāng)自行車(chē)在轉(zhuǎn)向的時(shí)候,讓后方的機(jī)動(dòng)車(chē)無(wú)法及時(shí)的判斷出自行車(chē)的轉(zhuǎn)向,從而容易導(dǎo)致事故的發(fā)生;同時(shí),總是會(huì)聽(tīng)說(shuō)自行車(chē)放在露天或者停下自行車(chē)去買(mǎi)個(gè)東西的時(shí)候,發(fā)生了自行車(chē)丟失的事件,這讓那些丟車(chē)的車(chē)主頭痛,也讓那些原本想買(mǎi)自行車(chē)的人望而祛步。作為一些專(zhuān)業(yè)的運(yùn)動(dòng)者而言,總是希望有一個(gè)良好是數(shù)據(jù)能夠體現(xiàn)出自己當(dāng)前的運(yùn)動(dòng)心率,用來(lái)提醒自己的身體能否承受更大的運(yùn)動(dòng)。所以,在這樣的背景條件下,自行車(chē)的輔助功能就顯得尤為重要,同時(shí)能夠讓自行車(chē)賦予更多的運(yùn)用功能。1.1.2課題研究意義本課題的設(shè)計(jì)是將自行車(chē)的轉(zhuǎn)向燈、自行車(chē)的無(wú)線(xiàn)防丟以及心率檢測(cè)三個(gè)功能結(jié)合起來(lái),這樣能夠讓使用自行
10、車(chē)的人在馬路上騎行的時(shí)候,不要擔(dān)心身后的機(jī)動(dòng)車(chē)無(wú)法判別出自己的轉(zhuǎn)向而會(huì)發(fā)生車(chē)禍;同時(shí)也讓那些車(chē)主在停放自行車(chē)的時(shí)候,不用擔(dān)心自己的自行車(chē)發(fā)生丟失,從而使自己的心情變差。于此同時(shí),也可以讓那些以自行車(chē)為運(yùn)動(dòng)工具的人在運(yùn)動(dòng)是檢測(cè)到自己的心率,從而來(lái)體現(xiàn)自己當(dāng)前的運(yùn)動(dòng)量是否超過(guò)了自己身體是承受能力。第2章 課題的目標(biāo)任務(wù)2.1 課題的主要內(nèi)容2.1.1 課題總體介紹體本課題是基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)的設(shè)計(jì)和制作,同時(shí)對(duì)相應(yīng)的硬件和軟件進(jìn)行設(shè)計(jì)與制作。2.1.2 工作內(nèi)容(1)完成多功能自行車(chē)防丟系統(tǒng)的總體系統(tǒng)方案的設(shè)計(jì)與電路設(shè)計(jì)。(2)制作與連接好完整的硬件電路,同時(shí)能調(diào)試出正確的結(jié)果。2.
11、1.3 課題具體任務(wù)多功能自行車(chē)防丟系統(tǒng)是基于單片機(jī)控制的,系統(tǒng)電路分為主機(jī)和副機(jī)兩個(gè)部分。主機(jī)的系統(tǒng)電路設(shè)計(jì)主要由單片機(jī)的最小系統(tǒng)電路、按鍵輸入電路、LCD1602顯示電路、無(wú)線(xiàn)收發(fā)電路、 LED顯示電路和報(bào)警電路;副機(jī)主要由單片機(jī)的最小系統(tǒng)電路、無(wú)線(xiàn)收發(fā)電路、LED顯示電路和報(bào)警電路。軟件的設(shè)計(jì)由程序輸入檢測(cè)、軟件的處理和輸出的刷新三個(gè)部分組成。基本任務(wù):能夠?qū)崿F(xiàn)無(wú)線(xiàn)防丟的功能;實(shí)現(xiàn)轉(zhuǎn)向燈的按鍵控制;實(shí)現(xiàn)心率檢測(cè),同時(shí)通過(guò)按鍵改變心率預(yù)設(shè)值的加減。第3章 硬件設(shè)計(jì)3.1 硬件系統(tǒng)選型3.1.1 控制芯片的選擇 本次的芯片使用STC12C5A60S22單片機(jī)。STC12C5A60S2有256
12、字節(jié)的RAM和64 K單周期的Flash可以為一個(gè)周期的工作。STC12C5A60S2單片機(jī)的引腳和編程與傳統(tǒng)的8051單片機(jī)是兼容的,同時(shí)擁有豐富的應(yīng)用程序編程基礎(chǔ)和經(jīng)驗(yàn),當(dāng)P0口作為輸出時(shí),不要像傳統(tǒng)的單片機(jī)一樣外接上拉電阻,使系統(tǒng)的設(shè)計(jì)會(huì)更加的簡(jiǎn)單、輕松。同時(shí)在單個(gè)周期模式的條件下運(yùn)行時(shí),它的運(yùn)行速度比傳統(tǒng)的51單片機(jī)快8至12倍左右的速度。STC12C5A60S2單片機(jī)即可滿(mǎn)足本次設(shè)計(jì)需求,同時(shí)價(jià)格低,外圍電路簡(jiǎn)單,系統(tǒng)整體制作性?xún)r(jià)比較高。具體的管腳圖如圖3-1所示。圖3-1 STC12C5A60S2引腳圖3.1.2 無(wú)線(xiàn)通信模塊選擇本次的無(wú)線(xiàn)通信采用的是2.4G技術(shù)進(jìn)行的短距離傳輸?shù)?/p>
13、NRF24L01無(wú)線(xiàn)接收與發(fā)送模塊。NRF24L01無(wú)線(xiàn)發(fā)送和接收模塊具有成本低、體積較小、功耗低、穩(wěn)定性好、運(yùn)行的速度較快、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。同時(shí)該模塊結(jié)構(gòu)簡(jiǎn)單,功能強(qiáng)大,能夠?qū)崿F(xiàn)雙向的報(bào)警。3.1.3 心率檢測(cè)傳感器的選擇 本次的心率檢測(cè)采用的是pulse sensor心率傳感器,此傳感器采用的是觀點(diǎn)容積法對(duì)人體中的血管波動(dòng)是造成的透光率的變化來(lái)檢測(cè)脈搏的值。此傳感器容易開(kāi)發(fā),能夠快速的完成心率脈搏的檢測(cè)。同時(shí),該傳跟其體積小,便于攜帶,功耗低等特點(diǎn)。3.2 系統(tǒng)硬件設(shè)計(jì)3.2.1 單片機(jī)控制電路設(shè)計(jì)本次設(shè)計(jì)中的單片機(jī)選用的是STC12C5A60S2單片機(jī),該單片機(jī)運(yùn)行的最基本的條件分別
14、是振蕩電路和電源。在本次的設(shè)計(jì)中采用的是外部石英晶振作為單片機(jī)系統(tǒng)的時(shí)鐘源,在晶振兩側(cè)分別連接這一個(gè)22pF的獨(dú)石電容來(lái)幫助晶振起到起振的作用。單片機(jī)的外部電路連接圖如圖3-2所示。圖3-2 單片機(jī)外部電路接線(xiàn)圖單片機(jī)有共有4組的I/O口,分別是P0口、P1口、P2口和P3口。其中主機(jī)中的按鍵分別連接單片機(jī)的P3.3-P3.6口,同時(shí)無(wú)線(xiàn)通信模塊NRF24L01的6個(gè)引腳分別連接單片機(jī)的P2.0-P2.5口。3.2.2 無(wú)線(xiàn)通信模塊電路設(shè)計(jì)本設(shè)計(jì)采用NRF24L01無(wú)線(xiàn)通信模塊實(shí)現(xiàn)主機(jī)和副機(jī)之間的通信,它是利用nRF24L01芯片制作而成的,nRF24L01無(wú)線(xiàn)收發(fā)器是一個(gè)工作在2.4GHz2
15、.5GHz,同時(shí)能夠?qū)嚯x的信號(hào)進(jìn)行發(fā)送和接收。同時(shí)NRF24L01芯片體積較小,功率損耗低,性能穩(wěn)定,實(shí)用能力強(qiáng)等特點(diǎn)。NRF24L01芯片可實(shí)現(xiàn)自動(dòng)應(yīng)答、循環(huán)冗余校驗(yàn)碼檢測(cè)、自動(dòng)重發(fā)等功能。NRF24L01芯片可以設(shè)置的幾個(gè)主要模式分別為接收模式、發(fā)送模式、待機(jī)模式、待機(jī)模式和斷電模式。NRF24L01模塊外接有8個(gè)管腳,如表3-1所示。表3-1 NRF24L01模塊引腳說(shuō)明引腳功能說(shuō)明CSN芯片的片選線(xiàn),CSN為低電平芯片工作SCK芯片控制的時(shí)鐘線(xiàn)(SPI時(shí)鐘)MISOSPI輸出MISISPI輸入IRQ中斷輸出CE工作模式選擇VCC電源GND接地 將NRF24L01模塊的8個(gè)引腳與單片
16、機(jī)的P2.0-P2.5口相連接,VCC接電源,GND接地,接線(xiàn)圖有圖3-3所示圖3-3 NRF24L01模塊接線(xiàn)圖在NRF24L01模塊的無(wú)線(xiàn)發(fā)送和接收過(guò)程中,對(duì)數(shù)據(jù)包的處理方式有兩種模式,分別是ShockBurstTM模式和增強(qiáng)型ShockBurstTM模式。這兩種模式都是將單片機(jī)與NRF24L01無(wú)線(xiàn)發(fā)送和接收模塊通過(guò)串行外圍接收SPI進(jìn)行連接起來(lái)。增強(qiáng)型ShockBurstTM模式在保持與單片機(jī)工作的同時(shí),還能夠?qū)崿F(xiàn)自動(dòng)應(yīng)答和自動(dòng)重發(fā)的功能,這樣在一定程度上比ShockBurstTM模式更為方便,收發(fā)功能更為自動(dòng)。本次的設(shè)計(jì)中采用了的是增強(qiáng)型ShockBurstTM模式。增強(qiáng)型Shock
17、BurstTM模式的主要工作流程如下:首先是由發(fā)送端發(fā)出信號(hào),然后當(dāng)接收端接收到發(fā)出的信號(hào),則會(huì)通過(guò)自動(dòng)應(yīng)答功能對(duì)發(fā)送端進(jìn)行反饋,由發(fā)送端對(duì)反饋的信息進(jìn)行檢測(cè)。當(dāng)信息檢測(cè)無(wú)誤時(shí),則發(fā)送端就會(huì)繼續(xù)發(fā)送下一條信息;如果信息檢測(cè)有誤時(shí),則會(huì)執(zhí)行自動(dòng)重發(fā)功能,一直到信息傳輸無(wú)誤為止。3.2.3 按鍵模塊電路在本次的設(shè)計(jì)中,按鍵模塊主要用于主機(jī)上,它的工作原理主要是當(dāng)按下按鍵時(shí),就會(huì)在單片機(jī)的輸入、輸出接口輸入低電平,其主要的功能是用于控制兩個(gè)LED燈的閃爍和關(guān)閉,同時(shí)也用于對(duì)心率預(yù)設(shè)值的增減。其中,按下K1的按鍵,LED3會(huì)一直處于閃爍狀態(tài),當(dāng)再次按下K1按鍵后,LED3燈滅。K3和K4按鈕連接著單片
18、機(jī)的P3.4口和P3.5口,通過(guò)軟件設(shè)計(jì)來(lái)對(duì)心率預(yù)設(shè)值進(jìn)行增減。按鍵模塊的接線(xiàn)圖如圖3-4所示。圖3-4 按鍵模塊的接線(xiàn)圖同時(shí),在按鍵按下的過(guò)程中會(huì)出現(xiàn)了抖動(dòng)的現(xiàn)象。為了解決這種現(xiàn)象,一般采用的方式分為硬件去抖動(dòng)和軟件去抖動(dòng)。硬件抖動(dòng)就是電平的不穩(wěn)定,這種抖動(dòng)持續(xù)的時(shí)間范圍在10200ms之間。硬件消抖就是能夠及時(shí)的對(duì)硬件電路進(jìn)行處理;軟件消抖是跳過(guò)抖動(dòng)的時(shí)間,等到按鍵保持穩(wěn)定的時(shí)候,再對(duì)其進(jìn)行處理。本設(shè)計(jì)采用的是軟件去抖動(dòng)的方式。3.2.4 心率檢測(cè)模塊設(shè)計(jì)在本次的設(shè)計(jì)中,心率檢測(cè)采用的Pules sensor傳感器,它是一款用于脈搏心率測(cè)量的光電反射式模擬傳感器,此傳感器較小,可以佩戴在手
19、指或者耳垂處。它可以通過(guò)導(dǎo)線(xiàn)與單片機(jī)連接,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),再通過(guò)單片機(jī)進(jìn)行簡(jiǎn)單的計(jì)算后得心率的值。此傳感器共有三個(gè)借口,分別是S口,+極口和極口,其中S口是脈搏信號(hào)輸出口,需要與單片機(jī)的AD口相連接,在本次的設(shè)計(jì)中,S口連接單片機(jī)的P1.7口。傳統(tǒng)的脈搏檢測(cè)有三種方法:第一種是在心電信號(hào)中提取;第二種是對(duì)血壓測(cè)量的時(shí)候壓力傳感器測(cè)得到的波動(dòng)來(lái)計(jì)算脈搏;第三種是采用光電容積法。前面兩種測(cè)量的方法會(huì)限制了測(cè)量人員的活動(dòng)范圍,如果長(zhǎng)時(shí)間的測(cè)量會(huì)給測(cè)量人員造成不適,而第三種方法具有測(cè)量方法簡(jiǎn)單、佩戴方便等特點(diǎn)。Pulse sensor心率傳感器的接線(xiàn)圖如圖3-5所示圖3-5 心率傳感器接線(xiàn)圖
20、光電容積法是利用人體組織在血管搏動(dòng)時(shí)造成透光率的不同而進(jìn)行脈搏測(cè)量的,此傳感器有光電變換器和光源兩個(gè)部分所組成,通過(guò)繃帶固定在測(cè)量人員的手指上來(lái)進(jìn)行測(cè)量。光源采用的是動(dòng)脈血中氧和血紅蛋白有選擇性的一定波長(zhǎng)(500nm700nm)的發(fā)光二極管。當(dāng)光束透過(guò)人體血管時(shí),由于動(dòng)脈搏動(dòng)從學(xué)容積變化導(dǎo)致光束透光率的變化,此時(shí)的觀點(diǎn)傳感器接收到人體組織反射的光線(xiàn),從而轉(zhuǎn)變?yōu)殡娦盘?hào)并將其放大和輸出。由于脈搏波動(dòng)是隨著周期性變化的,所以動(dòng)脈血管容積也是隨著周期性變化的,因此光電變化器的變化周期就是脈搏率。3.2.5 報(bào)警電路設(shè)計(jì)本次設(shè)計(jì)中的主機(jī)和副機(jī)中都采用了報(bào)警電路,其中主機(jī)的報(bào)警電路主要是用于當(dāng)心率超過(guò)預(yù)設(shè)
21、值時(shí),蜂鳴器發(fā)出聲響;副機(jī)中的報(bào)警電路主要是用于當(dāng)主機(jī)與副機(jī)斷開(kāi)連接時(shí),副機(jī)上的蜂鳴器發(fā)出聲響。報(bào)警電路如圖3-6所示。圖3-6 報(bào)警電路圖第4章 軟件設(shè)計(jì)4.1 系統(tǒng)功能介紹本次的設(shè)計(jì)是基于單片機(jī)的多功能無(wú)線(xiàn)防丟系統(tǒng),主要包括自行車(chē)無(wú)線(xiàn)防丟功能、自行車(chē)轉(zhuǎn)向燈以及心率檢測(cè)這三個(gè)功能。主要分為主機(jī)和副機(jī),當(dāng)主機(jī)斷電時(shí),副機(jī)上的蜂鳴器會(huì)發(fā)出聲音,代表主機(jī)丟失;或者是當(dāng)副機(jī)斷電是,主機(jī)上的LCD1602顯示屏上會(huì)顯示LOST字樣,表示副機(jī)丟失。當(dāng)主機(jī)和副機(jī)在接通電源的情況下,兩塊超過(guò)一定的距離,副機(jī)上的蜂鳴器會(huì)發(fā)出聲響或主機(jī)上的LCD1602顯示屏?xí)@示LOST字樣表示丟失。同時(shí)將手指放在Pulse
22、 sensor心率傳感器時(shí),會(huì)檢測(cè)到心率,同時(shí)心率的值會(huì)顯示在顯示屏上,同時(shí)顯示屏上還有心率的預(yù)設(shè)值,當(dāng)檢測(cè)到心率的值超過(guò)了預(yù)設(shè)值,主機(jī)上的蜂鳴器會(huì)發(fā)出聲響。主機(jī)上還設(shè)有四個(gè)按鍵,兩個(gè)按鍵表示左右轉(zhuǎn)向燈的,第一次按下左轉(zhuǎn)向燈的按鈕時(shí),左邊的LED燈會(huì)閃爍,再次按下,LED燈滅。右轉(zhuǎn)向燈同左轉(zhuǎn)向燈的方法是一樣的。剩下的兩個(gè)按鈕分別是心率預(yù)設(shè)值的增與減,按下按鈕就可以設(shè)置預(yù)設(shè)值。4.2 程序總體框圖4.2.1 主機(jī)的程序框圖 由于本次設(shè)計(jì)中分為了主機(jī)和副機(jī),其中主機(jī)的程序框圖如圖4-1所示時(shí)鐘電路Pulse sensor心率傳感器復(fù)位電路NRF24L01無(wú)線(xiàn)通信模塊圖4-1 主機(jī)的程序框圖4.2.
23、2 副機(jī)的程序框圖副機(jī)的程序框圖如圖4-2所示圖4-2 副機(jī)的程序框圖4.3 程序設(shè)計(jì)的總體思路4.3.1 NRF24L01無(wú)線(xiàn)通信模塊的設(shè)計(jì)思路使用NRF24L01無(wú)線(xiàn)通信模塊,首先要對(duì)此模塊進(jìn)行初始化,在初始化完畢后,要此模塊配置發(fā)送地址和接收地址,并且將CE為配置為高電平后,讀取NRF24L01模塊中的STATUS寄存器中的數(shù)據(jù)。同時(shí)配置TX_DS和RX_DS后,兩個(gè)NRF24L01模塊進(jìn)行連接。這樣就可以達(dá)到無(wú)線(xiàn)通信的功能。4.3.2 自行車(chē)轉(zhuǎn)向燈模塊的設(shè)計(jì)思路自行車(chē)轉(zhuǎn)向燈模塊采用的是兩個(gè)按鍵控制兩個(gè)LED燈,將兩個(gè)LED燈連接到P1.5口和P1.6口,按鍵分別連接P3.3口和P3.4
24、口,通過(guò)對(duì)單片機(jī)的程序編程,當(dāng)按鍵按下時(shí),LED燈會(huì)發(fā)生0.5s閃爍,若再次按下后,LED燈滅。4.3.3 心率檢測(cè)模塊的設(shè)計(jì)思路本次的設(shè)計(jì)中,采用的是Pules sensor心率傳感器,在使用此傳感器是,首先要I/O口、串口、中斷進(jìn)行初始化,定義變量,建立時(shí)間去讀脈沖信號(hào)傳感器,將檢測(cè)到的信號(hào)進(jìn)行計(jì)算后得到心率值,并顯示在LCD1602顯示屏上,同時(shí)將測(cè)得的值與預(yù)設(shè)值進(jìn)行比較,如果超過(guò)預(yù)設(shè)值,蜂鳴器會(huì)發(fā)出聲響。在心率檢測(cè)中,還有兩個(gè)按鍵就預(yù)設(shè)值進(jìn)行增減。4.4 部分程序流程圖4.4.1 NRF24L01無(wú)線(xiàn)收發(fā)模塊的程序流程圖設(shè)計(jì) NRF24L01模塊流程圖如圖4-3所示圖4-3 NRF24
25、L01無(wú)線(xiàn)通信模塊流程圖4.4.2 主機(jī)流程圖設(shè)計(jì)主機(jī)流程圖如圖4-4所示圖4-4 主機(jī)流程圖4.4.2 副機(jī)流程圖設(shè)計(jì)主機(jī)流程圖如圖4-4所示圖4-4 主機(jī)流程圖第5章 系統(tǒng)調(diào)試5.1 硬件系統(tǒng)調(diào)試5.1.1 基本電路檢測(cè) 在前期的硬件設(shè)計(jì)中完成了電路圖的繪制,同時(shí)將電路板塊制作出來(lái)并進(jìn)行焊接,在焊接成功后,對(duì)焊接好的電路板進(jìn)行檢查,主要分為以下幾個(gè)步驟:(1)查看電路板在制作過(guò)程中有沒(méi)有出現(xiàn)線(xiàn)路的出現(xiàn)短路,或者是焊盤(pán)后有沒(méi)有松動(dòng)或脫離而造成電路板在后期焊接上的錯(cuò)誤。(2)檢查線(xiàn)路是否與設(shè)計(jì)的相符合,并用萬(wàn)用表檢查看在斷電的情況下有沒(méi)有焊接上的錯(cuò)誤,以免在后期通電時(shí)發(fā)生的短路。(3)雖然在前
26、期采用萬(wàn)用表檢查了電路,但是在后期通電狀態(tài)下,用手指觸摸下芯片看芯片是否發(fā)熱,若發(fā)熱,應(yīng)立即斷開(kāi)電源,對(duì)電路再次進(jìn)行檢測(cè),如果線(xiàn)路正常,也可查看芯片的是否插反,若插反應(yīng)立即插好。 5.1.2 基本連線(xiàn)檢查在硬件調(diào)試的過(guò)程中,要對(duì)所設(shè)計(jì)的每一個(gè)部分有清楚的了解,并且知道它的工作特性和優(yōu)缺點(diǎn),便于在檢查和調(diào)試過(guò)程中出現(xiàn)的問(wèn)題進(jìn)行更好的解決。硬件調(diào)試時(shí),必須對(duì)每一部分的部件清楚了解,明白他的工作特性,知道它的優(yōu)點(diǎn)、缺點(diǎn),以便在檢查和后續(xù)的調(diào)試過(guò)程中對(duì)出現(xiàn)問(wèn)題很好的解決。若問(wèn)題不是很大的話(huà),可以在電路板上直接加焊或者搭線(xiàn)焊接。在本次的設(shè)計(jì)中,我謹(jǐn)記這幾個(gè)要求,認(rèn)真的焊接,在焊接中節(jié)省了不少的時(shí)間。電路
27、板焊接完成后,如圖5-1和圖5-2所示。在焊接完成后,先不急著上電,首先打開(kāi)設(shè)計(jì)原理圖,然后用萬(wàn)用表對(duì)應(yīng)著設(shè)計(jì)原理圖認(rèn)真的檢查焊接好的板是否有焊接錯(cuò)誤的,或者出現(xiàn)虛焊的。同時(shí)使用萬(wàn)用表檢查無(wú)線(xiàn)通信模塊與單片圖5-2 焊接好的正面圖圖5-2 焊接好后的反面圖對(duì)應(yīng)引腳是否接通;然后再檢測(cè)兩塊板的電源、地線(xiàn)是否和單片機(jī)連通;再檢測(cè)板上的按鍵是否焊接正常,按下時(shí)按鍵兩側(cè)是否能導(dǎo)通;最后檢測(cè)板上其他的引出腳是否與單片機(jī)正常連接。經(jīng)過(guò)檢查,主機(jī)的板和副機(jī)的板焊接正常,與單片機(jī)I/O引腳均正常接通。5.2 軟件系統(tǒng)調(diào)試5.2.1 基本輸入輸出調(diào)試在硬件系統(tǒng)制作和調(diào)試完成后,下一步要進(jìn)行的就是軟件程序的編寫(xiě)。
28、首先是對(duì)于一整個(gè)軟件系統(tǒng)的編程,也需要分部、分塊進(jìn)行編寫(xiě)調(diào)試。在本次調(diào)試過(guò)程中,首先調(diào)試的是兩個(gè)轉(zhuǎn)向燈是否可以按照預(yù)初設(shè)計(jì)的那樣正常顯示,當(dāng)編好程序好,將程序?qū)氲礁睓C(jī)的單片機(jī)中,按下與單片機(jī)P3.3相連接的按鍵,與單片機(jī)P1.5口相連的LED燈是否正常閃爍;再次按下這個(gè)按鍵,LED燈滅。經(jīng)過(guò)檢測(cè),P3.3口和P3.4口的兩個(gè)按鍵按下的現(xiàn)象正常。然后檢查P3.5口和P3.6口,分別按下按鍵,然后觀察顯示屏上的預(yù)設(shè)值是否能夠進(jìn)行增、減,經(jīng)過(guò)檢測(cè),按鍵的程序正常。5.2. 基本功能的調(diào)試在程序變成好后分別下載到主機(jī)模塊和副機(jī)模塊的單片機(jī)中,然后檢查L(zhǎng)CD1602顯示屏能夠正常顯示程序中所設(shè)計(jì)的字幕
29、,如果顯示屏的對(duì)比度過(guò)低,調(diào)節(jié)板上的調(diào)節(jié)電阻,使顯示屏上的字幕更加的清晰。然后檢查一下無(wú)線(xiàn)通信模塊和心率檢測(cè)模塊在通電的狀態(tài)下是否能夠正常的連接,數(shù)據(jù)能夠正常的顯示在液晶顯示屏上,經(jīng)過(guò)檢測(cè),能夠正常的連接和顯示。轉(zhuǎn)向燈的設(shè)計(jì)在基本輸入輸出調(diào)試中對(duì)按鍵和LED燈進(jìn)行了調(diào)試,所以轉(zhuǎn)向燈的功能也能夠正常的顯示出來(lái)。第6章 結(jié)論6.1 基本成果經(jīng)過(guò)多次的實(shí)驗(yàn)和調(diào)試,最后成功完成了多功能自行車(chē)防丟系統(tǒng)的設(shè)計(jì)與制作,實(shí)現(xiàn)了自行車(chē)在轉(zhuǎn)向時(shí)的閃爍提醒、自行車(chē)在騎行后的心率檢測(cè)以及自行車(chē)的無(wú)線(xiàn)防丟的設(shè)計(jì)。這樣給以往傳統(tǒng)的自行車(chē)有了更多的輔助功能。6.2 改進(jìn)展望在多功能自行車(chē)的設(shè)計(jì)完成后,實(shí)現(xiàn)了預(yù)期設(shè)想的設(shè)。但
30、是這樣還是不足的,比如這次的無(wú)線(xiàn)防丟功能,它的功能是有局限性的,在超過(guò)一定的范圍距離,無(wú)論副機(jī)是否丟失,主機(jī)上都會(huì)發(fā)出聲響。在今后的學(xué)習(xí)和生活中,我會(huì)繼續(xù)努力學(xué)習(xí)和研究,并對(duì)此進(jìn)行改進(jìn)。在無(wú)線(xiàn)防丟功能上進(jìn)行更近一步的改進(jìn)。同時(shí),最為本次系統(tǒng)的設(shè)計(jì)這,我的目的是希望讓大家在騎自行車(chē)的時(shí)候,對(duì)自己的人身安全有了保障,并且在停放自行車(chē)的時(shí)候不要再對(duì)自行車(chē)的丟失而發(fā)愁。同時(shí)這次的設(shè)計(jì)也是對(duì)我在學(xué)校中的一個(gè)學(xué)習(xí)成功的展示。希望我的多功能自行車(chē)無(wú)線(xiàn)防丟系統(tǒng)的設(shè)計(jì)能夠應(yīng)用在現(xiàn)實(shí)的生活中,被更多的人所接受。6.3 經(jīng)驗(yàn)總結(jié)畢業(yè)設(shè)計(jì)就是考察學(xué)生在大學(xué)中所學(xué)習(xí)到的知識(shí)進(jìn)行一次綜合性的考察,以及對(duì)學(xué)生的動(dòng)手能力的檢
31、驗(yàn)。通過(guò)設(shè)計(jì)能夠體現(xiàn)出學(xué)生在對(duì)學(xué)習(xí)過(guò)的對(duì)知識(shí)掌握能力和發(fā)現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題和實(shí)踐能力。在本次的設(shè)計(jì)、制作和論文的撰寫(xiě)中然我學(xué)習(xí)到了很多的東西,首先是對(duì)單片機(jī)有了更深一步的認(rèn)識(shí),同時(shí)繪圖的能力有明顯提高。在本次的畢業(yè)設(shè)計(jì)的過(guò)程中,起初開(kāi)始是沒(méi)有頭緒的,也不知道從何下手,但是在設(shè)計(jì)的過(guò)程中讓我明白了,分步、分模塊的設(shè)計(jì)和調(diào)試,能夠讓設(shè)計(jì)變得更為的簡(jiǎn)單。所以我認(rèn)為分步、分模塊的設(shè)計(jì)這個(gè)是尤為重要的。同時(shí)在本次的設(shè)計(jì)中先查閱資料,從芯片選型到電路的設(shè)計(jì),再到硬件焊接的檢查,最后到程序的編程和調(diào)試,分步的進(jìn)行讓我的設(shè)計(jì)過(guò)程更為的順利。同時(shí)在寫(xiě)論文的時(shí)候,我發(fā)現(xiàn)以我一個(gè)人的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,在此過(guò)
32、程中,記住了網(wǎng)絡(luò)和同學(xué)之間的幫忙、同時(shí)到圖書(shū)館翻閱資料來(lái)完成自己的論文,在此過(guò)程中,學(xué)到了不少的東西。 在做畢業(yè)設(shè)計(jì)的這段時(shí)間里,不斷的查閱的相關(guān)資料,于此同時(shí)增強(qiáng)了自己對(duì)知識(shí)的理解,其中很多以前不是很懂的問(wèn)題現(xiàn)在都解決了,也豐富了自己,也讓我受益匪淺。致謝經(jīng)過(guò)這段時(shí)間的忙碌和學(xué)習(xí),本次的設(shè)計(jì)也已經(jīng)接近了尾聲,在這里,非常感謝這段時(shí)間以來(lái)幫助我的同學(xué)和老師。同時(shí)在曾瑋老師的指導(dǎo)下,我的畢業(yè)設(shè)計(jì)和畢業(yè)論文能夠如期完成,在此我對(duì)增瑋老師給予的幫助表示衷心的感謝。除了指導(dǎo)老師,也要感謝在我大學(xué)生活中所以的老師和同學(xué),感謝老師們?cè)谄綍r(shí)悉心的教導(dǎo)和同學(xué)們?cè)谄綍r(shí)中對(duì)我的幫助。大學(xué)的生活即將結(jié)束,我們也即將
33、步入社會(huì),我會(huì)老師們平時(shí)對(duì)我們的教導(dǎo),在今后的工作和生活中要更加的努力和認(rèn)真,同時(shí)也祝老師們今后的工作順利,身體健康。參考文獻(xiàn)1 宏晶科技(深圳).STC12C5A60S2系列單片機(jī)器件手冊(cè)M. 2006, 1-22 王嘯東. 尤鳳翔. 基于單片機(jī)的智能防丟器系統(tǒng)設(shè)計(jì)J. 河南科技, 2011, (21): 61-61. 3郭天祥. 新概念51單片機(jī)C語(yǔ)言教程M北京:電子工業(yè)出版社,2009, 240-258 4李蛟, 楊仁錕. 肖峻. 2.4GHz無(wú)線(xiàn)技術(shù)標(biāo)準(zhǔn)及ZigBee抗干擾性能J. 電信工程技術(shù)與標(biāo)準(zhǔn)化, 2006, 19(3): 31-35. 5劉雅琨;冷劉偉;汽車(chē)尾燈智能控制電路設(shè)
34、計(jì)J;科技經(jīng)濟(jì)市場(chǎng);2011年05期6 朱勇.單片機(jī)原理與應(yīng)用技術(shù)M.清華大學(xué)出版社.2005, 200-2207李朝青.單片機(jī)原理及接口技術(shù)M.第三版.北京:北京航空航天大學(xué)出社.2005, 86-748沈勇, 蔣文雄, 段勇. 基于nRF24L01的通用無(wú)線(xiàn)通信模塊設(shè)計(jì)J. 電子設(shè)計(jì)工程, 2013, 21(18): 84-86. 9 元增民,張文希.單片機(jī)原理與應(yīng)用基礎(chǔ).長(zhǎng)沙M:國(guó)防科技大學(xué)出版社. 2006.6,112-11910 陶國(guó)正.單片機(jī)與接口應(yīng)用技術(shù)M.蘇州:蘇州大學(xué)出版社,2004:137-146,190202.11Maxim.+5V Single-Supply,IMsps
35、,16-Bit Self-Calibrating ADCDB/CD,2000.附錄附錄一:基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)的電路原理圖主機(jī)原理圖:副機(jī)原理圖:附錄二:基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)的PCB圖主機(jī)PCB圖:副機(jī)PCB圖:附錄三:基于單片機(jī)的多功能自行車(chē)防丟系統(tǒng)設(shè)計(jì)的部分程序主機(jī)主程序:#include common.h#include uart.h#include nRF24L01P.h#define false 0#define true 1#define FOSC 11059200L#define T0MS (65536-FOSC/12/500)/500HZ in
36、12T MODE#define ADC_POWER 0 x80/ADC POWER CONTROL BIT#define ADC_FLAG 0 x10/ADC COMPLETE FLAG#define ADC_START 0 x08;/ADC START CONTROL BIT#define ADC_SPEEDLL 0 x00/540 CLOCKS#define ADC_SPEEDL 0 x20/360 CLOCKS#define ADC_SPEEDH 0 x40/180 CLOCKS#define ADC_SPEEDHH 0 x60/90 CLOCKS#define ADC_MASK 0 x
37、01sbit beep_alarm =P27;sbit loft_alarm_led=P15;sbit init_alarm_led=P14;unsigned char PulsePin = 7; / Pulse Sensor purple wire connected to analog pin 0(P1.0?aAD?)/sbit blinkPin = P20; / pin to blink led at each beat/sbit fadePin = P23; / pin to do fancy classy fading blink at each beat/sbit led1 = P
38、21;/sbit led2 = P22;int fadeRate = 0; / used to fade LED on with PWM on fadePin/ these variables are volatile because they are used during the interrupt service routine!volatile unsigned int BPM; / used to hold the pulse ratevolatile unsigned int Signal; / holds the incoming raw datavolatile unsigne
39、d int IBI = 600; / holds the time between beats, must be seeded!volatile bit Pulse = false; / true when pulse wave is high, false when its lowvolatile bit QS = false; / becomes true when Arduoino finds a beat.volatile int rate10; / array to hold last ten IBI valuesvolatile unsigned long sampleCounte
40、r = 0; / used to determine pulse timingvolatile unsigned long lastBeatTime = 0; / used to find IBIvolatile int Peak =512; / used to find peak in pulse wave, seededvolatile int Trough = 512; / used to find trough in pulse wave, seededvolatile int thresh = 512; / used to find instant moment of heart b
41、eat, seededvolatile int amp = 100; / used to hold amplitude of pulse waveform, seededvolatile bit firstBeat = true; / used to seed rate array so we startup with reasonable BPMvolatile bit secondBeat = false; / used to seed rate array so we startup with reasonable BPMstatic unsigned char order=0;unsi
42、gned char DisBuff4= 0;unsigned int xdata heart_rate = 0;unsigned int xdata loft_time = 0;void ADC_init(unsigned char channel);void T0_init(void);void main(void) char ret; unsigned char RX_BUFTX_PLOAD_WIDTH; unsigned char TX_BUFTX_PLOAD_WIDTH; ADC_init(PulsePin); uart_init(UART_B9600); printf(OKrn);
43、T0_init(); / sets up to read Pulse Sensor signal every 2mS while (NRF24L01_Check() init_alarm_led = init_alarm_led; delay_ms(500); NRF24L01_RT_Init(); init_alarm_led = 0; while(1) if (QS = true) / Quantified Self flag is true when arduino finds a heartbeat fadeRate = 255; / Set fadeRate Variable to
44、255 to fade LED with pulse QS = false; / reset the Quantified Self flag for next time heart_rate = BPM; printf(B:%srn,DisBuff); ret = NRF24L01_RxPacket(RX_BUF,250); if (!ret) if (RX_BUF0 = 0 xaa & RX_BUF1 = 0 xbb & RX_BUF2 = 0 xcc & RX_BUF3 = 0 xdd) delay_ms(100); loft_time = 0; TX_BUF0 = heart_rate
45、 & 0 xFF; / 數(shù)據(jù)送到緩存 TX_BUF1 = (heart_rate 8 )& 0 xFF;/ 數(shù)據(jù)送到緩存 TX_BUF2 = (heart_rate 16 )& 0 xFF; / 數(shù)據(jù)送到緩存 TX_BUF3 = (heart_rate 24 )& 0 xFF; / 數(shù)據(jù)送到緩存 ret =NRF24L01_TxPacket(NRF_DEFAULT_CH,TX_BUF,200); NRF24L01_RX_Mode(NRF_DEFAULT_CH);/ 配置為接收模式 if (loft_time + 8) loft_alarm_led = 0; beep_alarm = 0; el
46、se loft_alarm_led = 1; beep_alarm = 1; delay_ms(1); ;void T0_init(void) / Initializes Timer0 to throw an interrupt every 2mS. TMOD |= 0 x01;/16bit TIMER TL0=T0MS; TH0=T0MS8; TR0=1;/start Timer 0 ET0=1;/enable Timer Interrupt EA=1; / MAKE SURE GLOBAL INTERRUPTS ARE ENABLEDvoid ADC_init(unsigned char
47、channel) P1ASF=ADC_MASKchannel;/enable PlusePin as ADC INPUT ADC_RES=0;/clear former ADC result ADC_RESL=0;/clear former ADC result AUXR1 |= 0 x04;/adjust the format of ADC result ADC_CONTR=channel|ADC_POWER|ADC_SPEEDLL|ADC_START;/power on ADC and start conversionunsigned int analogRead(unsigned cha
48、r channel)unsigned int result; ADC_CONTR &=!ADC_FLAG;/clear ADC FLAG result=ADC_RES; result=result8;/reload 16 bit TIMER0 Signal = analogRead(PulsePin); / read the Pulse Sensor sampleCounter += 2; / keep track of the time in mS with this variable N = sampleCounter - lastBeatTime; / find the peak and
49、 trough of the pulse waveif(Signal (IBI/5)*3)/ avoid dichrotic noise by waiting 3/5 of last IBI if (Signal thresh & Signal Peak) / thresh condition helps avoid noise Peak = Signal; / P is the peak if (N 250) / avoid high frequency noise if ( (Signal thresh) & (Pulse = false) & (N (IBI/5)*3) ) Pulse
50、= true; / set the Pulse flag when we think there is a pulse /blinkPin=0; / turn on pin 13 LED IBI = sampleCounter - lastBeatTime; / measure time between beats in mS lastBeatTime = sampleCounter; / keep track of time for next pulse if(secondBeat) / if this is the second beat, if secondBeat = TRUE sec
51、ondBeat = false; / clear secondBeat flag for(i=0; i=9; i+) / seed the running total to get a realisitic BPM at startup ratei = IBI; if(firstBeat) / if its the first time we found a beat, if firstBeat = TRUE firstBeat = false; / clear firstBeat flag secondBeat = true; / set the second beat flag EA=1;
52、 / enable interrupts again return; / IBI value is unreliable so discard it for(i=0; i200)BPM=200; if(BPM30)BPM=30; DisBuff2 = BPM%10+48; DisBuff1 = BPM%100/10+48; DisBuff0 = BPM/100+48; if(DisBuff0=48) DisBuff0=32; QS = true; / set Quantified Self flag / QS FLAG IS NOT CLEARED INSIDE THIS ISR if (Signal 2500) / if 2.5 seconds go by without a beat thresh = 512; / set thres
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案