




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-1-多功能視力檢測(cè)系統(tǒng)設(shè)計(jì)研究目錄TOC\o"1-2"\h\u19428多功能視力檢測(cè)系統(tǒng)設(shè)計(jì) -1-140831引言 -2-249792概述 -4-106952.1視力檢測(cè)系統(tǒng)概述 -4-57462.2本設(shè)計(jì)方案思路 -5-270812.3研發(fā)方向和技術(shù)關(guān)鍵 -5-102882.4主要技術(shù)指標(biāo) -5-303103總體設(shè)計(jì) -6-60083.1檢測(cè)系統(tǒng)工作內(nèi)容設(shè)計(jì) -6-228683.2檢測(cè)系統(tǒng)工作流程設(shè)計(jì) -6-30643.3檢測(cè)系統(tǒng)結(jié)構(gòu)框架設(shè)計(jì) -8-53994硬件設(shè)計(jì) -8-147274.1微處理器模塊設(shè)計(jì) -9-256024.2復(fù)位電路及電源電路設(shè)計(jì) -10-224304.3調(diào)試接口和語(yǔ)音模塊設(shè)計(jì) -10-133954.4按鍵輸入模塊設(shè)計(jì) -11-14124.5顯示模塊設(shè)計(jì) -11-292355軟件設(shè)計(jì) -12-22605.1總體方案 -12-303595.2程序流圖 -13-3335.3模塊說(shuō)明 -15-272276制作與調(diào)試 -22-174226.1硬件電路的制作 -22-100026.2調(diào)試 -22-249917結(jié)論 -23-摘要中國(guó)是當(dāng)今世界上近視人口數(shù)目最多的國(guó)家,我國(guó)的近視人口數(shù)目還在不斷攀升。但是,當(dāng)今社會(huì)上廣泛使用的視力測(cè)量方法都有些許不方便,基于此,本畢業(yè)設(shè)計(jì)研究了一種自助式的視力檢測(cè)系統(tǒng),該系統(tǒng)是一款主從一體系統(tǒng),主機(jī)用于檢測(cè)視力,從機(jī)可以收到視力結(jié)果,在實(shí)際應(yīng)用中從機(jī)可用于醫(yī)生或其他檢測(cè)人員進(jìn)行其他操作,該系統(tǒng)擁有較大的市場(chǎng)潛力和前景。本畢業(yè)設(shè)計(jì)主要設(shè)計(jì)自主研發(fā)的基于STM32的自助式視力檢測(cè)系統(tǒng),繼而確保一個(gè)人即可實(shí)現(xiàn)視力較為精準(zhǔn)的測(cè)試。該視力檢測(cè)系統(tǒng)主要包括STM32控制器、OLED顯示模塊、HC05藍(lán)牙模塊以及SYN6288語(yǔ)音合成模塊,對(duì)遙控器輸入的方向信號(hào)的處理過(guò)程是整個(gè)系統(tǒng)的關(guān)鍵。視力檢測(cè)的檢測(cè)過(guò)程,首先由STM32單片機(jī)從大到小隨機(jī)產(chǎn)生字符‘E’,將該字符顯示到OLED屏幕上,檢測(cè)者可以通過(guò)手中的遙控器輸入個(gè)人所認(rèn)為看到的‘E’的方向,單片機(jī)接收來(lái)自遙控器的信號(hào),通過(guò)處理該信號(hào),對(duì)比顯示的字符方向與輸入的方向,判斷其輸入的方向是否正確。檢測(cè)算法簡(jiǎn)化為從1.0開(kāi)始逐級(jí)增加到5.0,過(guò)程中出現(xiàn)兩次錯(cuò)誤后即終止測(cè)試,錯(cuò)誤的前一次值即為視力值,并語(yǔ)音播報(bào)其最終視力檢測(cè)的結(jié)果。關(guān)鍵詞:視力檢測(cè);OLED顯示;語(yǔ)音合成;藍(lán)牙通信1引言中國(guó)隨著歷史的發(fā)展已經(jīng)成為世界上的人口大國(guó),并且在各個(gè)領(lǐng)域都在不斷進(jìn)步,經(jīng)濟(jì)實(shí)力的不斷提高,社會(huì)文明的不斷進(jìn)步,除了在國(guó)防科技和經(jīng)濟(jì)文化等方面不斷取得巨大成就外,我國(guó)國(guó)民對(duì)自身的身體健康素質(zhì)也在快速的往好的方向發(fā)展變化。其中,視力作為人們?nèi)粘I钪薪邮沼嵪⒌淖钪匾姆绞?,在我們的生活中起到關(guān)鍵性的作用,因此,對(duì)視力方面也愈加重視。相關(guān)的調(diào)查研究顯示出,中國(guó)的近視人口大約占國(guó)家總?cè)丝诘?3%,因此,針對(duì)視力檢測(cè)方面的研究更具有迫切性,關(guān)于視力檢測(cè)儀器的發(fā)展也具有廣闊的前景和巨大的市場(chǎng)潛力。在市面上主要有兩種視力檢測(cè)的方法,一種是人工棒點(diǎn)的簡(jiǎn)易測(cè)試裝置,該方法需要配備一名專(zhuān)業(yè)人員,按照所指方向與被檢測(cè)者指向的方向,來(lái)變換字符E的大小,該方法在一些小城市和發(fā)展水平較為落后的地方使用較廣,但是其準(zhǔn)確度易受光線(xiàn)和醫(yī)務(wù)人員的專(zhuān)業(yè)程度的影響,在當(dāng)代逐漸被淘汰掉,發(fā)展為更為先進(jìn)的人工燈光定位視力檢測(cè)裝置,用高級(jí)的背投光技術(shù)替代長(zhǎng)棍點(diǎn)擊,既減輕了工作人員的工作負(fù)擔(dān),也在一定程度上減輕了光線(xiàn)的干擾,從而提高了視力檢測(cè)的準(zhǔn)確程度;另一種方法是利用精密儀器的驗(yàn)光儀器的屈光檢查,它主要是一種利用電子光學(xué)技術(shù)來(lái)準(zhǔn)確地測(cè)量人類(lèi)眼球的彎曲和半徑,并通過(guò)圖像投影技術(shù)來(lái)準(zhǔn)確地測(cè)得人類(lèi)的視力結(jié)果的技術(shù),測(cè)試的過(guò)程中全程都是由儀器完成,不必被測(cè)試者一起進(jìn)行判斷,該方法雖然具有測(cè)量速度快,精確性高的特點(diǎn),但是這種儀器價(jià)格高昂,適合在專(zhuān)業(yè)的眼鏡商店和大型醫(yī)院等場(chǎng)合所為使用。因此,雖然視力檢測(cè)儀器具有廣大的市場(chǎng)潛力,但是在檢測(cè)儀器的方便程度和檢測(cè)質(zhì)量方面都有著許多的問(wèn)題,基于此,這是本課題研究的根本原因,即為了設(shè)計(jì)出方便快捷且檢測(cè)結(jié)果良好的視力檢測(cè)儀器,從而推動(dòng)全民視力檢測(cè),有助于緩解社會(huì)目前日益嚴(yán)重的視力問(wèn)題。本課題設(shè)計(jì)的多功能視力檢測(cè)系統(tǒng)采用STM32單片機(jī)芯片系統(tǒng)及相關(guān)的控制程序來(lái)實(shí)現(xiàn)自助式的視力檢測(cè),能對(duì)被檢測(cè)者的近視程度進(jìn)行檢測(cè),并采用語(yǔ)音播報(bào)其視力檢測(cè)結(jié)果。采用STM32單片機(jī)主要是由于其產(chǎn)品具有良好的特點(diǎn)和性能品質(zhì)價(jià)格比,集成程序化程度高,方便于攜帶,可控性好,低功耗,便于生產(chǎn)嵌入式小型產(chǎn)品等優(yōu)良特點(diǎn);以及在現(xiàn)代,單片機(jī)控制電路技術(shù)成熟,外設(shè)模塊多,方便獲取等優(yōu)點(diǎn),因此,可以普遍適用于家庭、各類(lèi)診所和眼鏡店等等場(chǎng)所。2概述2.1視力檢測(cè)系統(tǒng)概述多功能視力檢測(cè)系統(tǒng)的工作原理是綜合運(yùn)用電子模塊實(shí)現(xiàn)一個(gè)較為智能化的電子設(shè)備,從而更新取代傳統(tǒng)的視力測(cè)試方法,該系統(tǒng)一般包括STM32單片機(jī)控制部分、OLED顯示模塊、HC-05藍(lán)牙模塊和SYN6288語(yǔ)音播報(bào)模塊。如圖2-1所示,當(dāng)輸入用戶(hù)信息后即可進(jìn)入視力檢測(cè),首先單片機(jī)模塊從大到小依次產(chǎn)生隨機(jī)方向的字符‘E’,并將其顯示到OLED屏上,被檢測(cè)者站在距離屏幕五米的地方,通過(guò)遙控器,輸入自己所認(rèn)為的‘E’的方向,藍(lán)牙模塊接收該方向信號(hào)之后,并將該信號(hào)發(fā)送給單片機(jī),STM32單片機(jī)處理該信號(hào),并比對(duì)與顯示的方向是否一致,若是,則將顯示的隨機(jī)字符‘E’變小,并繼續(xù)測(cè)試,若不是,則將顯示的隨機(jī)字符‘E’變大,總共檢測(cè)十次,若同一字符大小錯(cuò)兩次,則視力檢測(cè)的結(jié)果為該錯(cuò)誤字符的上一個(gè)較大字符。最終該視力結(jié)果將由語(yǔ)音播報(bào)出來(lái)。藍(lán)牙發(fā)射器藍(lán)牙發(fā)射器藍(lán)牙接收器存儲(chǔ)器單片機(jī)單片機(jī)按鍵輸入液晶顯示用戶(hù)信息作答結(jié)果語(yǔ)音播報(bào)圖2-1系統(tǒng)總體框圖本視力檢測(cè)系統(tǒng)可以用于家庭或者小型眼鏡店等場(chǎng)所,它可以較為準(zhǔn)確的測(cè)量出用戶(hù)的視力信息,并且具有能量消耗低、方便快捷等優(yōu)勢(shì)特點(diǎn)。目前的該視力檢測(cè)系統(tǒng)采用STM32單片機(jī)為主控制器,因?yàn)槠湓谑褂蒙媳容^普遍,可連接的外設(shè)也多,功能比較豐富,而且功耗和體積都比較小,不但可以省去又大又重的檢測(cè)儀器,整個(gè)系統(tǒng)本身也可以制作得又小又輕,非常方便使用和搬移。我認(rèn)為視力檢測(cè)儀應(yīng)有以下幾個(gè)方面的發(fā)展趨勢(shì):(1)可以實(shí)現(xiàn)的功能越來(lái)越多,視力檢測(cè)系統(tǒng)應(yīng)朝著系列化、功能化的方向發(fā)展,一個(gè)視力檢測(cè)系統(tǒng)應(yīng)不僅可以測(cè)量近視程度,還有散光,色覺(jué)等其他方面的功能。系列化、功能化的好處是便于使用、更新和維修,同時(shí)價(jià)格也較為實(shí)惠。(2)采用各種新的科學(xué)技術(shù)增加功能的豐富性和有趣性,例如用計(jì)算機(jī)來(lái)采集數(shù)據(jù),同時(shí)操控整個(gè)視力檢測(cè)的進(jìn)程,分析視力檢測(cè)的結(jié)果并提出相關(guān)的、有益的建議等。2.2本設(shè)計(jì)方案思路整個(gè)視力檢測(cè)系統(tǒng)是以個(gè)人自助式檢測(cè)為主要目的,使用可以調(diào)整控制的軟件和硬件結(jié)構(gòu)所進(jìn)行構(gòu)建的,使其具有明確詳細(xì)的使用功能,且就其現(xiàn)實(shí)意義而言,其具有可控制行、價(jià)格低廉、體型小、能耗低的優(yōu)良特點(diǎn),是一種集實(shí)用性和便捷性一體的視力檢測(cè)專(zhuān)用系統(tǒng)。在方向信號(hào)接收方面設(shè)計(jì)HC-05藍(lán)牙模塊電路;在方向信號(hào)的處理和解析方面,采用ARM先進(jìn)架構(gòu)的32位MCU的STM32F103VE型單片機(jī)芯片;在字符E的顯示上采用0.96寸,像素大小為128x64的OLED顯示屏;在最終的結(jié)果處理上,采用SYN6288語(yǔ)音合成芯片,因?yàn)槠湔Z(yǔ)音合成效果大概率是清楚可靠且較為標(biāo)準(zhǔn)的。該處理系統(tǒng)的硬件視力圖像檢測(cè)處理系統(tǒng)的硬件設(shè)計(jì)過(guò)程可以大致分為應(yīng)用硬件和集成電路兩個(gè)基本方面的硬件設(shè)計(jì)與應(yīng)用軟件的可編程設(shè)計(jì),在硬件設(shè)計(jì)上,采用分模塊設(shè)計(jì)電路,先設(shè)計(jì)調(diào)試好各個(gè)模塊,再將所有模塊連接起來(lái),進(jìn)行聯(lián)調(diào);在軟件設(shè)計(jì)上,也同樣按照子模塊劃分,設(shè)計(jì)好各個(gè)模塊的可執(zhí)行代碼,調(diào)試成功后,最后進(jìn)行軟硬件聯(lián)調(diào)。2.3研發(fā)方向和技術(shù)關(guān)鍵(1)合理劃分視力檢測(cè)的等級(jí),提高檢測(cè)的精度;(2)對(duì)接受到的方向信號(hào)的處理;(3)視力檢測(cè)的算法設(shè)計(jì),檢測(cè)次數(shù)越多越精確;(4)最終檢測(cè)結(jié)果的語(yǔ)音播報(bào)。2.4主要技術(shù)指標(biāo)(1)測(cè)試距離:5米(2)功耗:<0.5W(3)電壓:5V3總體設(shè)計(jì)3.1檢測(cè)系統(tǒng)工作內(nèi)容設(shè)計(jì)本課題計(jì)劃對(duì)市場(chǎng)上現(xiàn)存的視力檢測(cè)工具進(jìn)行更加智能化的設(shè)計(jì),使其更加便于使用以及功能豐富。本課題設(shè)計(jì)的多功能視力檢測(cè)系統(tǒng),是以STM32為主控制器,其他外部模塊相連接而成的,在系統(tǒng)中,單片機(jī)是核心,連接著藍(lán)牙模塊、OLED顯示模塊、語(yǔ)音合成模塊,各個(gè)模塊的體積都偏小,單片機(jī)也是使用的正點(diǎn)原子的Mini板,該板子是市面上所有板子中體積較小的一種。該視力檢測(cè)系統(tǒng)首先在OLED顯示屏上顯示最大號(hào)的字符‘E’,方向是隨機(jī)的,然后被檢測(cè)者手持遙控器,輸入自己所認(rèn)為看到的‘E’的方向,通過(guò)遙控器的紅外傳輸,將該方向信號(hào)傳回單片機(jī)中,單片機(jī)處理該信號(hào),并將其與顯示的E的方向進(jìn)行比較,正確,則將字符變小,否則,將字符變大,錯(cuò)誤兩次則推出檢測(cè)過(guò)程,視力結(jié)果即為錯(cuò)誤的前一次視力值,顯示屏?xí)@示該視力結(jié)果,并語(yǔ)音播報(bào)該視力值,整體檢測(cè)過(guò)程較為簡(jiǎn)單方便,非常適合個(gè)人自助式檢測(cè)視力。此外,除了進(jìn)行視力檢測(cè)的基本功能外,該系統(tǒng)應(yīng)具備初始化系統(tǒng),對(duì)各個(gè)儀器部件進(jìn)行初始化和檢查,以及若測(cè)試者遲遲不應(yīng)答或出現(xiàn)意外的情況,系統(tǒng)應(yīng)具備一定的保護(hù)措施。3.2檢測(cè)系統(tǒng)工作流程設(shè)計(jì)根據(jù)上部分的工作內(nèi)容設(shè)計(jì)視力檢測(cè)系統(tǒng),我們對(duì)該自助式視力檢測(cè)系統(tǒng)進(jìn)行工作步驟上的進(jìn)一步細(xì)分,總的來(lái)看可以劃分為隨機(jī)字符E的生成—遙控器的輸入—判斷輸入的正誤—程序處理—結(jié)果顯示及語(yǔ)音播報(bào)這幾個(gè)關(guān)鍵的部分。為了更加科學(xué)的完成本課題的實(shí)驗(yàn)功能,我們不僅要對(duì)各部分工作進(jìn)行相應(yīng)的模塊化分析,又要兼顧整個(gè)系統(tǒng)的性能的合理性。我們對(duì)視力檢測(cè)系統(tǒng)在一個(gè)檢測(cè)周期中的工作步驟進(jìn)行了合理的設(shè)定,也即對(duì)被檢測(cè)者在進(jìn)行自主測(cè)試時(shí),檢測(cè)系統(tǒng)需要完成的工作內(nèi)容進(jìn)行科學(xué)的設(shè)計(jì),如下:初始化階段:當(dāng)測(cè)試即將開(kāi)始時(shí),系統(tǒng)上電,系統(tǒng)開(kāi)始進(jìn)行初始化,為視力檢測(cè)做好準(zhǔn)備工作,當(dāng)系統(tǒng)初始化順利時(shí),才繼續(xù)進(jìn)行測(cè)試工作,當(dāng)初始化錯(cuò)誤時(shí),則系統(tǒng)報(bào)錯(cuò),設(shè)計(jì)者來(lái)解決該錯(cuò)誤。此后,輸入測(cè)試者信息,測(cè)試即可開(kāi)始。隨機(jī)字符生成階段:在整個(gè)檢測(cè)過(guò)程中,都是由STM32單片機(jī)生成隨機(jī)字符E,該字符是從其存儲(chǔ)器中調(diào)出。開(kāi)始時(shí),控制器調(diào)出最大號(hào)的字符E,方向隨機(jī),同時(shí)將它顯示在OLED顯示屏上,然后等待被檢測(cè)者遙控輸入自己認(rèn)為的字符E的方向。隨機(jī)字符方向判斷階段:當(dāng)被檢測(cè)者通過(guò)遙控器輸入方向后,藍(lán)牙接收該方向信號(hào),并將其傳送到控制器里,檢測(cè)進(jìn)入判斷階段,系統(tǒng)會(huì)根據(jù)接收到的測(cè)試者輸入的符號(hào)方向與原來(lái)顯示的方向信息進(jìn)行對(duì)比。若檢測(cè)到方向一致,則說(shuō)明被檢測(cè)者判斷正確,否則說(shuō)明判斷有錯(cuò)。檢測(cè)控制階段:在整個(gè)視力檢測(cè)的過(guò)程中,系統(tǒng)要逐個(gè)對(duì)隨機(jī)字符E從大到小的顯示,也即每一個(gè)新顯示在OLED屏上的字符都比上一個(gè)字符要小一號(hào)。此外,還有判斷正誤的步驟,只有當(dāng)輸入的方向判斷為真,系統(tǒng)才會(huì)繼續(xù)顯示小一號(hào)的字符,若系統(tǒng)判斷為假,則顯示大一號(hào)的字符,若同一字符大小兩次判斷為假,則被檢測(cè)者的視力結(jié)果為該錯(cuò)誤字符的上一個(gè)字符大小進(jìn)行輸出。結(jié)果生成階段:系統(tǒng)將上一階段的判斷結(jié)果的字符大小作為被檢測(cè)者的視力結(jié)果進(jìn)行輸出,并將結(jié)果顯示在OLED屏上,同時(shí)語(yǔ)音播報(bào)其視力大小。其中,下面的流程框圖是檢測(cè)系統(tǒng)在一個(gè)周期內(nèi)的工作流程框圖:輸入測(cè)試者信輸入測(cè)試者信息輸入E的方向輸入E的方向藍(lán)牙發(fā)射上述信息藍(lán)牙發(fā)射上述信息圖3-1遙控模塊流程圖生成隨機(jī)方向的E生成隨機(jī)方向的E判斷輸入是否正確判斷輸入是否正確檢測(cè)結(jié)果并播報(bào)檢測(cè)結(jié)果并播報(bào)圖3-2生成E和接受判斷方向模塊流程圖3.3檢測(cè)系統(tǒng)結(jié)構(gòu)框架設(shè)計(jì)自助式視力檢測(cè)系統(tǒng)的兩大構(gòu)成部分:硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)。本課題所研究的自助式視力檢測(cè)系統(tǒng)結(jié)構(gòu)較為簡(jiǎn)單、使用上也較為方便,同時(shí),由于檢測(cè)次數(shù)足夠,所以檢測(cè)結(jié)果準(zhǔn)確可靠。根據(jù)自助式視力檢測(cè)的技術(shù)要求,為了更好地使得系統(tǒng)各個(gè)部分的功能得到完善,我們將檢測(cè)系統(tǒng)各個(gè)部分按照在整個(gè)系統(tǒng)中的功能分別進(jìn)行相應(yīng)的模塊和劃分,整體上我們可以將其劃分為以下幾個(gè)部分,STM32主控制器模塊、藍(lán)牙傳輸模塊、OLED顯示模塊、語(yǔ)音合成模塊。同時(shí)為了使得檢測(cè)系統(tǒng)在整體上性能穩(wěn)定、可以控制,還要保證各個(gè)小的模塊在功能上較為完整,在結(jié)構(gòu)上緊湊,這樣才能實(shí)現(xiàn)系統(tǒng)的完整功能,保證其體積不過(guò)于大。從系統(tǒng)的緊湊性上來(lái)說(shuō),過(guò)于復(fù)雜的電路結(jié)構(gòu)不僅有可能導(dǎo)致電路混亂而且會(huì)造成電路原件的浪費(fèi),因此,我們要盡可能減少外部單元的使用,精簡(jiǎn)模塊結(jié)構(gòu),以此來(lái)增加整個(gè)系統(tǒng)的可靠程度;從系統(tǒng)的穩(wěn)定性來(lái)說(shuō),自助式視力檢測(cè)系統(tǒng)在使用上要存在必要的可調(diào)節(jié)性,來(lái)減少外界環(huán)境帶來(lái)的不可抗拒的影響。綜合上述考慮,我們最終在硬件模塊的主控制器模塊選的是STM32F10系列,正點(diǎn)原子的Mini板,總共有兩塊板子,一塊用于作主機(jī)處理信號(hào),一塊用于作從機(jī),接收信號(hào)并作其他用途,如打印或分析等;用于顯示隨機(jī)字符E的顯示屏選的是4.3寸的OLED顯示屏,用于語(yǔ)音播報(bào)其視力結(jié)果的語(yǔ)音合成模塊采用的是SYN6288,進(jìn)行信號(hào)傳輸?shù)乃{(lán)牙傳輸模塊選用的是HC-05。4硬件設(shè)計(jì)針對(duì)上述關(guān)于自助式視力檢測(cè)系統(tǒng)的硬件設(shè)計(jì)與選擇的分析,我們采用硬件模塊化的設(shè)計(jì)方法,在前文已經(jīng)對(duì)系統(tǒng)的功能框架和工作內(nèi)容有了見(jiàn)到的分析。本章將有機(jī)會(huì)就如何檢測(cè)操作系統(tǒng)應(yīng)用中的各個(gè)硬件主要組成部分問(wèn)題做更為詳細(xì)的硬件設(shè)計(jì)與應(yīng)用分析。根據(jù)上述基于前文的案例分析,我們將整個(gè)自助式視力檢測(cè)系統(tǒng)模塊劃分調(diào)整為以下幾個(gè)集成模塊:數(shù)字微處理器集成模塊,復(fù)位控制電路和驅(qū)動(dòng)控制器集成模塊,語(yǔ)音信號(hào)合成控制模塊,按鍵信號(hào)輸入控制模塊,OLED顯示模塊。考慮這幾個(gè)模塊的各自特點(diǎn)進(jìn)行了相對(duì)獨(dú)立的分析設(shè)計(jì),又同時(shí)要保證各個(gè)模塊之間的協(xié)調(diào)和整個(gè)系統(tǒng)的平穩(wěn)運(yùn)轉(zhuǎn)。具體的控制方案見(jiàn)下圖4-1。STMSTM32微處理器運(yùn)算單元JTAG調(diào)試電路復(fù)位電路按鍵鍵盤(pán)電源模塊OLED顯示屏語(yǔ)音合成模塊圖4-1STM32微處理器控器4.1微處理器模塊設(shè)計(jì)結(jié)合上述對(duì)硬件設(shè)計(jì)總體的設(shè)計(jì),檢測(cè)系統(tǒng)的主控制器模塊的設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的核心之處。根據(jù)微處理器的定義可知,微處理器是一種具有處理和控制功能的半導(dǎo)體芯片,它具有CPU的功能,是一種較小規(guī)模和體積的集成電路器件。它可以實(shí)現(xiàn)指令的調(diào)用和執(zhí)行,以及與外設(shè)的信息傳輸和操控功能,是嵌入式系統(tǒng)中最為重要的運(yùn)算和控制中心單元。且微處理器具有體積小、可控性好、模塊化簡(jiǎn)單等優(yōu)異性能,因此其應(yīng)用更為廣泛。我們從功耗、性能、成本的角度上綜合考慮后,最終選出最適合該課題的微控制器模塊,即意法半導(dǎo)體公司的微處理器模塊,叫STM32F103VE,該芯片在市場(chǎng)上流通較廣,具有32位的高端處理性能,具有較高的集成度和優(yōu)秀的運(yùn)算能力,不僅能滿(mǎn)足本課題所需的全部設(shè)計(jì)的功能需要,而且其優(yōu)異的性能可以大大的緩解我們的工作難度。所以最后選擇STM32單片機(jī)作為我們自助式視力檢測(cè)系統(tǒng)的主控制器模塊。關(guān)于STM32F103VE的配置和特點(diǎn),我們下面作較為詳細(xì)的介紹。這款核心芯片不僅采用基于ARM公司的Cortex-M3處理器的32位的RISC三內(nèi)核核心微控制器,而且對(duì)于CM3的核心內(nèi)核硬件架構(gòu)非常精工細(xì)作,且其代碼的可移植性強(qiáng),非常方便優(yōu)質(zhì)C語(yǔ)言代碼的升級(jí)和移植。該核心芯片的CPU模塊在內(nèi)核上的工作頻率可以達(dá)到72MHz,擁有128K個(gè)字節(jié)的Flash和20K個(gè)字節(jié)的SRAM;它們還擁有兩條點(diǎn)的APB外部?jī)?nèi)設(shè)接口總線(xiàn)及80個(gè)點(diǎn)的I/O輸出接口。如圖4-2為該芯片的系統(tǒng)結(jié)構(gòu)。對(duì)STM32芯片的設(shè)計(jì)時(shí),我們要做好下述準(zhǔn)備,電源供給方式,外設(shè)連接方式,復(fù)位電路設(shè)置和晶振電路的設(shè)置。在時(shí)鐘晶振方面,我們利用STM32的內(nèi)部系統(tǒng)時(shí)鐘SYSCLK,并通過(guò)PLL鎖存器電路,為整個(gè)系統(tǒng)的各個(gè)部分提供正常的工作頻率;在接口調(diào)試方面,我們采用芯片提供的JTAG調(diào)試接口對(duì)系統(tǒng)進(jìn)行調(diào)試工作;關(guān)于信息傳輸部分,通過(guò)紅外遠(yuǎn)程發(fā)送遙控信息和藍(lán)牙傳輸信息,將信號(hào)傳輸?shù)絾纹瑱C(jī)中進(jìn)行控制,最后根據(jù)接收到的信息,分析實(shí)驗(yàn)數(shù)據(jù),并按照算法設(shè)定進(jìn)行相應(yīng)的步驟,最終通過(guò)GPIO接口和SPI外設(shè)接口向顯示屏發(fā)送相關(guān)的數(shù)據(jù)信息,從而將檢測(cè)結(jié)果顯示在OLED屏幕上,并且語(yǔ)音播報(bào)該結(jié)果。4.2復(fù)位電路及電源電路設(shè)計(jì)在復(fù)位電路和電源供給方面,首先,復(fù)位電路必須有科學(xué)合理的設(shè)計(jì)方案,否則系統(tǒng)可能出現(xiàn)錯(cuò)誤,比如系統(tǒng)突然死機(jī)等,尤其是對(duì)于32位的ARM芯片,其運(yùn)算速度高,功耗較低,所以在設(shè)計(jì)電路的過(guò)程中,必須設(shè)置一種合理科學(xué)的復(fù)位電路,不僅要考慮外部環(huán)境因素如溫度、濕度等的影響,還要考慮電路內(nèi)部本身可能產(chǎn)生的影響,如電路的延遲和波動(dòng)等等。該STM32芯片有三種主要的復(fù)位方式,即系統(tǒng)復(fù)位、上電復(fù)位和按鍵復(fù)位。在這里我們簡(jiǎn)單地介紹了復(fù)位的具體工作流程,當(dāng)我們按下一個(gè)復(fù)位鍵RST時(shí),芯片的NRST便會(huì)向其發(fā)出一個(gè)高電平的復(fù)位信號(hào)并向其輸出一個(gè)該高電平的復(fù)位信號(hào),這時(shí)整個(gè)系統(tǒng)便可以對(duì)其進(jìn)行高電平的復(fù)位操作,如下圖4-3所示。其次,在系統(tǒng)的電源和供給設(shè)備方面,因?yàn)殡娫垂?yīng)是整個(gè)系統(tǒng)非常重要的一環(huán),它不僅關(guān)于整個(gè)系統(tǒng)的功耗,還與整個(gè)系統(tǒng)平穩(wěn)運(yùn)轉(zhuǎn)有關(guān),所以我們對(duì)于電源和集成器的設(shè)計(jì)必須認(rèn)真謹(jǐn)慎;在本研究課題中,除了對(duì)單片機(jī)供電,還可能需對(duì)OLED顯示模塊即OLED顯示屏和語(yǔ)音合成模塊進(jìn)行供電;STM32單片機(jī)的額定工作頻率是3.3V/5.0V,我們可以直接通過(guò)使用STM32單片機(jī)的USB接口與計(jì)算機(jī)直接相連供電,因?yàn)殡娔X能提供最大500mV的直流電,可以實(shí)現(xiàn)本課題的電源需要。OLED的一個(gè)顯示屏幕模塊直接將其外部連接在一臺(tái)新的單片化主機(jī)上,則通過(guò)片機(jī)的供電系統(tǒng)向顯示屏幕內(nèi)部供電,不再外加供電模塊。4.3調(diào)試接口和語(yǔ)音模塊設(shè)計(jì)在調(diào)試電路與外設(shè)連接方式的選擇上,我們采用了JTAG電路,該調(diào)試電路的設(shè)計(jì)基礎(chǔ)上就是一種IEEE1149.1兼容的國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,其主要作用之一就是被廣泛應(yīng)用來(lái)對(duì)整個(gè)芯片內(nèi)部進(jìn)行調(diào)試。相關(guān)的JTAG引腳有TCK,TMS,TDI,TDO以及TRST,在使用JTAG接口時(shí),可以對(duì)芯片內(nèi)部的各個(gè)部件進(jìn)行調(diào)試訪(fǎng)問(wèn),還可以通過(guò)該接口進(jìn)行在線(xiàn)編程等工作。在各種語(yǔ)音音頻合成四個(gè)模塊的技術(shù)選擇和芯片設(shè)計(jì)上,本文的研究課題主要研究選擇了SYN6288語(yǔ)音音頻合成四個(gè)模塊,它們所采用的芯片是一款技術(shù)性能和應(yīng)用品質(zhì)上性?xún)r(jià)比較高的音頻語(yǔ)音合成芯片,不僅完全具備了各種語(yǔ)音音頻合成的應(yīng)用效果好,聲音圓潤(rùn)的特點(diǎn),且其體積小,非常符合本課題對(duì)于模塊的要求。它通過(guò)UART異步串口進(jìn)行通信的方式,實(shí)現(xiàn)將所有需要編寫(xiě)和合成的文字轉(zhuǎn)換為語(yǔ)音或者TTS對(duì)各種語(yǔ)音格式的數(shù)字化和切換,允許不同類(lèi)型的文字,如GB2312、GBK、BIG5等,且可以支持多種命令,同時(shí)具有休眠的功能。4.4按鍵輸入模塊設(shè)計(jì)在自助式視力檢測(cè)系統(tǒng)的設(shè)計(jì)中,為了實(shí)現(xiàn)人機(jī)一體化,達(dá)到由被檢測(cè)者引導(dǎo)檢測(cè)系統(tǒng)的進(jìn)程的目的,本課題使用了遙控器按鍵輸入模塊,來(lái)輸入所看到的隨機(jī)字符的方向,該過(guò)程時(shí)紅外遠(yuǎn)程發(fā)送實(shí)現(xiàn)的,在購(gòu)買(mǎi)正點(diǎn)原子的STM32開(kāi)發(fā)板的時(shí)候,同時(shí)購(gòu)買(mǎi)了其配套的紅外遙控器。紅外遙控具有諸多優(yōu)點(diǎn),如功耗低,抗干擾能力強(qiáng),成本低等,非常適合本實(shí)驗(yàn)的研究,在本課題中,雖然該款紅外遙控器有其他按鍵,較多的附加功能,但在使用時(shí),只需用到上下左右四個(gè)按鍵功能,用于輸入檢測(cè)者看到的上下左右四個(gè)方向信息,其余的按鍵均閑置下來(lái),這可以有助于整個(gè)測(cè)試過(guò)程的順利完成和設(shè)計(jì)功能的實(shí)現(xiàn)。除了紅外遙控按鍵的輸入外,本系統(tǒng)中還有一個(gè)STM32單片機(jī)上的遙控按鍵輸入,以初始化單片機(jī)以及進(jìn)行開(kāi)始檢測(cè)的過(guò)程,用的就是WK_UP這個(gè)按鍵,來(lái)自動(dòng)喚醒這個(gè)STM32單片機(jī),這個(gè)按鍵通常都是由一個(gè)高電平來(lái)進(jìn)行自動(dòng)開(kāi)啟的。注意使用該鍵的過(guò)程中,一定要同時(shí)斷開(kāi)PA0和DS18B20的跳線(xiàn)帽,因?yàn)?8B20是有上拉電阻的,會(huì)影響WK_UP的按鍵輸入過(guò)程。4.5顯示模塊設(shè)計(jì)在本課題中,為了給被檢測(cè)者提供清晰有效的隨機(jī)字符E的圖片,我們需要對(duì)顯示屏進(jìn)行深入仔細(xì)的設(shè)計(jì),以使其滿(mǎn)足課題的要求。從OLED的亮度上來(lái)看,為了保證整個(gè)測(cè)試系統(tǒng)在不同亮度環(huán)境下的顯示效果,同時(shí)也要節(jié)約功耗,所以選擇的顯示屏不可過(guò)暗,也不可過(guò)亮,否則,要么會(huì)導(dǎo)致被檢測(cè)者難以看清字符,要么會(huì)導(dǎo)致能耗過(guò)高,造成電能的浪費(fèi);從顯示屏色彩的飽和度上來(lái)看,在顯示時(shí),隨機(jī)字符E的顏色必修飽滿(mǎn),看起來(lái)清晰,且字符本身與背景要有較大的顏色差,增加顏色的層次感和豐富度,不僅使得顯示效果清晰可辨,同時(shí)可以增加美感,有助于檢測(cè)的順利進(jìn)行;從使用壽命上來(lái)看,顯示屏的穩(wěn)定年限較長(zhǎng)一點(diǎn),否則更替起來(lái)會(huì)在一定程度上影響整個(gè)系統(tǒng)的穩(wěn)定性和協(xié)調(diào)性;最后從尺寸上來(lái)看,尺寸不可過(guò)小,必須足夠顯示所需顯示的最大隨機(jī)字符,顯示屏也不可過(guò)大,過(guò)大會(huì)導(dǎo)致功耗過(guò)高,同時(shí)導(dǎo)致整個(gè)檢測(cè)系統(tǒng)的體積過(guò)大。綜合以上幾個(gè)方面因素的分析,最終選擇了0.96寸的ATK-OLED顯示屏作為顯示模塊。該OLED顯示模塊主要具有以下幾個(gè)特點(diǎn):第一,它主要具有兩種顏色,純藍(lán)色或者是藍(lán)黃雙色兩種顯示模塊,在本研究課題中,選擇了純藍(lán)色;第二,該顯示模塊在屏幕上具有很好的分辨率,其特點(diǎn)是分辨率范圍為128*64,第三,該OLED顯示屏本身具有0.96寸的超小尺寸,是目前市面上所有的顯示屏模塊中最小的一類(lèi),而且該顯示屏模塊的尺寸僅大約為27mm*26mm;第四,它擁有了比較多的五線(xiàn)網(wǎng)絡(luò)接口設(shè)備,支持8086、6800、4線(xiàn)SPI等五種網(wǎng)絡(luò)接口。第五,它是一個(gè)集成DC/DC,無(wú)需外部輸出高壓,僅只要向其提供3.3V的電源,就能正常運(yùn)行;最后,該模塊的額定電壓是低電壓,所以它是一個(gè)低功耗的器材,非常符合我們的課題設(shè)計(jì)的要求。5軟件設(shè)計(jì)5.1總體方案完成上述硬件電路的設(shè)計(jì)以及硬件模塊的選型之后,就到了軟件程序開(kāi)發(fā)的階段。對(duì)該產(chǎn)品視力顯示檢測(cè)控制系統(tǒng)的設(shè)計(jì)軟件進(jìn)行程序設(shè)計(jì)部分中,我們將整個(gè)檢測(cè)系統(tǒng)過(guò)程劃分為形成六個(gè)基本部分并從進(jìn)行設(shè)計(jì)入手,分別為該檢測(cè)系統(tǒng)基本工作原理內(nèi)容、初始化程序和系統(tǒng)軟件設(shè)計(jì)、OLED視力顯示控制模塊的設(shè)計(jì)、語(yǔ)音合成模塊的設(shè)計(jì)、隨機(jī)字符判斷程序的設(shè)計(jì)、遙控按鍵程序的設(shè)計(jì),這樣就將較大的整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程細(xì)分為較為具體的小塊的工作內(nèi)容。整個(gè)軟件設(shè)計(jì)都以Keil5作為開(kāi)發(fā)平臺(tái),在Keil5上開(kāi)發(fā)比較簡(jiǎn)單并不復(fù)雜,首先按照使用說(shuō)明,根據(jù)該課題進(jìn)行實(shí)驗(yàn)時(shí),先創(chuàng)建一個(gè)自助式視力檢測(cè)系統(tǒng)的工程,之后按照要求配置好環(huán)境,選擇合適的路徑保存起來(lái)即可。使用的是C語(yǔ)言進(jìn)行編寫(xiě)代碼,一是因?yàn)镃語(yǔ)言具有強(qiáng)大的代碼功能實(shí)現(xiàn),二是因?yàn)槲覀冊(cè)诖髮W(xué)期間學(xué)習(xí)過(guò)C語(yǔ)言,對(duì)此的編程有一定的了解。在整個(gè)代碼編寫(xiě)的過(guò)程中,為了化繁為簡(jiǎn),我們進(jìn)行模塊化編寫(xiě),先由之前分好的小模塊,編寫(xiě)相應(yīng)的函數(shù)功能,并且為了增加代碼的可移植性和可讀性,與硬件相關(guān)的部分程序均以宏定義的方式去寫(xiě)。關(guān)于模塊中的主程序部分是如何實(shí)現(xiàn),因?yàn)槟K中的主程序主要是起到了控制和管理決策的重要作用,可以負(fù)責(zé)管理整個(gè)程序運(yùn)行,讓每一個(gè)程序按照自己制定和設(shè)計(jì)的程序思路去正常運(yùn)行,而各個(gè)模塊的小操作功能都是通過(guò)在每一個(gè)主程序中分別調(diào)用函數(shù)和子程序來(lái)完成實(shí)現(xiàn)的,基本的子程序部分的函數(shù)有:按鍵掃描Key_Scan子程序函數(shù),隨機(jī)字符生成函數(shù),OLED顯示函數(shù)等等。5.2程序流圖當(dāng)系統(tǒng)開(kāi)機(jī)上電后,整個(gè)程序首先執(zhí)行初始化代碼,之后進(jìn)入視力檢測(cè)系統(tǒng)的主頁(yè)面,并顯示課題設(shè)計(jì)的名稱(chēng)即《多功能視力檢測(cè)系統(tǒng)》以及其他的相關(guān)信息,然后根據(jù)按鍵指示選擇是否開(kāi)始視力檢測(cè),檢測(cè)過(guò)程首先是產(chǎn)生最大號(hào)的隨機(jī)字符E,被檢測(cè)者通過(guò)遙控器使用無(wú)線(xiàn)紅外技術(shù)輸入該字符的方向,系統(tǒng)程序會(huì)比對(duì)輸入的字符和顯示的字符的方向,來(lái)進(jìn)行下一步操作。程序流圖可以幫助更好的理解整個(gè)系統(tǒng)的過(guò)程,整個(gè)軟件部分分為主函數(shù)部分和子罕虎部分,子函數(shù)部分又細(xì)分為各個(gè)小函數(shù),這樣在程序代碼的編寫(xiě)時(shí)會(huì)更加有條理性。如下圖5-1所示,是整個(gè)軟件過(guò)程的系統(tǒng)框架,如圖5-2所示,是整個(gè)代碼核心算法部分流程圖。Keil軟件系統(tǒng)框架Keil軟件系統(tǒng)框架主函數(shù)部分實(shí)現(xiàn)對(duì)整個(gè)程序的進(jìn)行控制和管理,設(shè)置主要參數(shù)以及調(diào)用子函數(shù)程序子函數(shù)部分OLED顯示函數(shù)隨機(jī)字符產(chǎn)生函數(shù)初始化函數(shù)語(yǔ)音合成函數(shù)遙控按鍵函數(shù)圖5-1軟件系統(tǒng)框架生成不同方向的E生成不同方向的E接收判斷的方向兩個(gè)方向是否一致生成小一號(hào)的E生成大一號(hào)的E最小E最大E輸出結(jié)果輸出結(jié)果語(yǔ)音播報(bào)結(jié)果YNYYNN圖5-2判斷算法流程圖5.3模塊說(shuō)明通過(guò)上述對(duì)視力檢測(cè)系統(tǒng)的工作流程以及選擇好的開(kāi)發(fā)環(huán)境的分析,我們開(kāi)始對(duì)各模塊進(jìn)行程序設(shè)計(jì),為了更加清楚的展示分析過(guò)程,我們?cè)敿?xì)價(jià)紹該檢測(cè)系統(tǒng)的各個(gè)模塊的功能是如何實(shí)現(xiàn)的。(1)主程序設(shè)計(jì):在主程序部分中,首先,為了使得各個(gè)子程序部分的順利運(yùn)行,需要進(jìn)行初始化和調(diào)取各種頭文件庫(kù),配置相關(guān)的結(jié)構(gòu)和配置程序,以及其他與硬件相關(guān)的宏定義等。HSE:4--16MHzHSI:8MHzLSE:32.768KHzLSI:40KHzPLLCLKAHB預(yù)分頻器APB1APB2其他(2)初始化程序設(shè)計(jì):在上述的介紹當(dāng)中,我們都講道理初始化及其重要的作用,是為了保證課題實(shí)驗(yàn)的正常運(yùn)轉(zhuǎn)設(shè)計(jì)的,我們?cè)谡麄€(gè)系統(tǒng)工作之前,要通過(guò)初始化程序來(lái)使得各個(gè)模塊先回到原始狀態(tài),為了方便后續(xù)程序的運(yùn)行。首先,眾所周知,時(shí)鐘檢測(cè)器和系統(tǒng)就像是如同整個(gè)系統(tǒng)的一塊心臟一樣,所以為了能夠使得檢測(cè)到的系統(tǒng)有序地工作,我們就需要對(duì)所有的時(shí)鐘進(jìn)行合理配置,所有外設(shè)想要進(jìn)行工作,都必須得有一個(gè)時(shí)鐘,而STM32本身在系統(tǒng)啟動(dòng)的這個(gè)時(shí)候,會(huì)自動(dòng)執(zhí)行一個(gè)匯編文件,該匯編文件中我們會(huì)自動(dòng)調(diào)用SystemInit()的函數(shù),HSE:4--16MHzHSI:8MHzLSE:32.768KHzLSI:40KHzPLLCLKAHB預(yù)分頻器APB1APB2其他圖5-3STM32大概時(shí)鐘系統(tǒng)圖可以看出,這是一個(gè)時(shí)鐘樹(shù),這里面有很多的時(shí)鐘,下面我們介紹一下,這些時(shí)鐘具體的怎么配置的。首先我們了解以下是HSE時(shí)鐘,它采用的是高速的外部晶振,使用的是無(wú)源晶振,通常都是8MHz,通過(guò)一個(gè)OSC_OUT和一個(gè)OSC_IN與整個(gè)單片機(jī)芯片進(jìn)行連接,通過(guò)RCC_CR中的時(shí)鐘寄存器的HSEON這個(gè)位置進(jìn)行控制;與HSE相對(duì)的叫LSE,它也是高速的,也是8MHz,兩者之間的主要區(qū)別就是,HSE比LSE的工作精度高,LSE受溫度的變化影響較大,會(huì)有一定的溫漂;HSE時(shí)鐘,比較高速的內(nèi)部時(shí)鐘,頻率也是8MHz,當(dāng)HSE發(fā)生了故障的時(shí)候,可以通過(guò)CSS系統(tǒng),即時(shí)鐘安全系統(tǒng)等方式來(lái)進(jìn)行控制,這時(shí)系統(tǒng)的時(shí)鐘就會(huì)自動(dòng)地切換到HSI,直至HSE啟動(dòng)成功,HSI也就是有了對(duì)應(yīng)RCC_CR時(shí)鐘寄存器的HSI這個(gè)位置來(lái)進(jìn)行控制;下面簡(jiǎn)單地介紹一下PLLSRC即鎖相環(huán)的時(shí)鐘源,PLL有兩個(gè)輸入倍頻時(shí)鐘,為HSE和HSI,PLL主要是用作倍頻,可以選擇倍頻因子,從2倍輸入到16倍,倍頻后的輸入時(shí)鐘叫做PLLCLK,由PLLXTPRE和PLLMUL兩個(gè)因子來(lái)進(jìn)行控制;還有一個(gè)重要的系統(tǒng)時(shí)鐘,叫做SYSCLK系統(tǒng)的時(shí)鐘,它是來(lái)源于HSI、HSE和PLLCLK,由SW位即系統(tǒng)中的時(shí)鐘切換位來(lái)進(jìn)行控制。配置好系統(tǒng)的運(yùn)行時(shí)鐘之后,單片機(jī)就開(kāi)始會(huì)分別有很多條外設(shè)總線(xiàn),例如一條AHB總線(xiàn),在每條AHB總線(xiàn)上會(huì)分別有兩個(gè)外設(shè)預(yù)分頻器,是APB1和APB2,在這兩條外設(shè)總線(xiàn)上已經(jīng)分別掛載了許多的常用單片機(jī)外設(shè),所以我們?cè)陂_(kāi)始考慮到如何使用具體外設(shè)時(shí),只需要配置好AHB、APB1和APB2即可。還有其他的時(shí)鐘,如RTC、LSI等,在這里就不多介紹了。在我們系統(tǒng)編寫(xiě)代碼的這個(gè)時(shí)候,默認(rèn)宏定義為72MHz。到此,整個(gè)STM32的時(shí)鐘系統(tǒng)即介紹完了,在編寫(xiě)程序的過(guò)程中,一定要按照上述說(shuō)明仔細(xì)參考,才能不出錯(cuò)。串口通信程序的設(shè)計(jì):一個(gè)處理器和外部設(shè)備之間所進(jìn)行的通信一般主要有兩種形式,并行通信和串行通訊,兩者各自都有其優(yōu)劣點(diǎn);串行通信也可以劃分為多個(gè)同步通信,如SPI、IIC等,以及異步通信,如UART。串口的通訊過(guò)程可以劃分為數(shù)據(jù)接收和數(shù)據(jù)發(fā)送兩個(gè)過(guò)程,再將數(shù)據(jù)接收的過(guò)程中,外部設(shè)備先將該數(shù)據(jù)傳入單片機(jī)的一個(gè)串行輸入移位寄存器,再將該移位寄存器的數(shù)據(jù)直接傳給一個(gè)數(shù)據(jù)緩沖寄存器,最后將其發(fā)送給MCU內(nèi)核,數(shù)據(jù)傳輸?shù)倪^(guò)程剛好恰恰相反。與串口類(lèi)型相關(guān)的寄存器主要有三個(gè):狀態(tài)寄存器、數(shù)據(jù)寄存器和波特率寄存器;對(duì)于串口操作常見(jiàn)的庫(kù)函數(shù)主要有:USART_Init()串口初始化函數(shù),USART_Cmd()可以使得所有能夠進(jìn)行串口操作的函數(shù)、USART_Cmd()可以使得所有能夠進(jìn)行相關(guān)的串口操作中斷、USART_SendData()可以將發(fā)送的數(shù)據(jù)轉(zhuǎn)換成串口函數(shù)、USART_SendData()接收的數(shù)據(jù)函數(shù)等等,下圖5-4是串口配置的相關(guān)軟件程序流圖:串口時(shí)鐘使能,串口復(fù)位串口時(shí)鐘使能,串口復(fù)位GPIO端口模式設(shè)置,串口參數(shù)初始化開(kāi)啟中斷并且初始化NVIC使能串口并編寫(xiě)中斷處理函數(shù)串口數(shù)據(jù)收發(fā)并獲取串口傳輸狀態(tài)圖5-4串口配置流程圖復(fù)位SSD1306,RST=0,延時(shí)10ms后,RST=1驅(qū)動(dòng)IC初始化代碼開(kāi)啟顯示清0顯存開(kāi)始顯示OLED顯示模塊程序的設(shè)計(jì):我們所需要選擇的一個(gè)顯示模塊就是OLED模塊,它的主要控制器選擇的是SSD1306,為了更好地使得這個(gè)OLED顯示模塊的正常運(yùn)行工作,我們首先必須需要通過(guò)設(shè)置STM32與OLED模塊相互進(jìn)行連接的IO,將其設(shè)置成為一個(gè)輸出,然后才是對(duì)OLED模塊進(jìn)行初始化,這一部分在上一小節(jié)已經(jīng)完成了,最后可以通過(guò)函數(shù)將隨機(jī)字符E顯示到OLED模塊上。值得注意的一點(diǎn)就是,該模塊并沒(méi)有與5.0v的接口相互兼容,所以不能夠直接連到5.0v的操作系統(tǒng),否則很有可能會(huì)燒壞這個(gè)模塊。此外,我們選取了直接訪(fǎng)問(wèn)的端口連接方式,而且還需對(duì)顯示模塊的驅(qū)動(dòng)進(jìn)行相應(yīng)的編程。下面是利用重要函數(shù):畫(huà)點(diǎn)函數(shù),voidOLED_DrawPoint();接著是顯示字符函數(shù),OLED_ShowChar(),顯示字符,同時(shí)還需用到字符集的點(diǎn)陣數(shù)據(jù),這里我們使用了PCtoLCD2010完美版。至此,關(guān)于通OLED如何顯示各個(gè)模塊的詳細(xì)介紹也就到此結(jié)束,下面我們講的是部分關(guān)于通過(guò)OLED如何顯示各個(gè)模塊的程序代碼進(jìn)行程序優(yōu)化流程圖復(fù)位SSD1306,RST=0,延時(shí)10ms后,RST=1驅(qū)動(dòng)IC初始化代碼開(kāi)啟顯示清0顯存開(kāi)始顯示圖5-5OLED初始化過(guò)程O(píng)LED初始化,配置其為推挽輸出OLED初始化,配置其為推挽輸出清OLED屏,調(diào)用函數(shù):OLED_Clear()清OLED屏,調(diào)用函數(shù):OLED_Clear()OLED顯示,調(diào)用各種顯示函數(shù):OLED_DrawPoint()、OLED_Fill()等等OLED顯示,調(diào)用各種顯示函數(shù):OLED_DrawPoint()、OLED_Fill()等等圖5-6OLED顯示程序流程(5)隨機(jī)字符判斷程序設(shè)計(jì):在前文關(guān)于工作內(nèi)容的設(shè)計(jì)中,我們了解到并畫(huà)出了隨機(jī)字符E的判斷流程圖,這是整個(gè)系統(tǒng)設(shè)計(jì)最核心的部分,我們不僅需要對(duì)遙控器傳來(lái)的方向信號(hào)和顯示的方向進(jìn)行比較,還要關(guān)注比較之后的下一步操作。整個(gè)判斷算法可以分為兩個(gè)部分,循環(huán)和判斷,檢測(cè)過(guò)程可簡(jiǎn)化為從1.0開(kāi)始,逐漸增加到5.0,出現(xiàn)2次錯(cuò)誤后即中止測(cè)試,錯(cuò)誤的前一次值即為視力值。這部分判斷程序的代碼流程圖在上文的圖5-2。紅外遙控初始化,開(kāi)啟定時(shí)器對(duì)應(yīng)通道為輸入捕獲功能。頻率為1MHz開(kāi)啟定時(shí)器輸入捕獲更新中斷和捕獲中斷捕獲到上升沿時(shí),設(shè)置捕獲極性為下降沿捕獲,同時(shí)設(shè)置計(jì)數(shù)值為0,變量RmtSta的位4為1當(dāng)捕獲到下降沿時(shí),讀取定時(shí)器的值賦值給Dval,然后設(shè)置捕獲極性為上升沿捕獲定時(shí)器發(fā)生溢出中斷,且是第一次溢出,標(biāo)記完成一次按鍵采集(6)紅外遙控程序設(shè)計(jì):紅外遙控一般采用的程序編碼方法主要有PWM的NEC協(xié)議和PhilipsPPM的RC-5協(xié)議,而我們所用的STM32開(kāi)發(fā)板是正點(diǎn)原子的,他們所配套使用的是NEC協(xié)議,該協(xié)議的載波頻率是38KHz。在單片機(jī)上連接紅外接收頭,該紅外接收頭連接著定時(shí)器的輸入,對(duì)紅外遙控進(jìn)行解碼的時(shí)候,用的是定時(shí)器的輸入捕獲功能,主要解析接收到載波信號(hào)的高電平持續(xù)時(shí)間來(lái)判斷該信號(hào)。在我們的工程中,該模塊添加的是remote.c和remote.h文件,里面包含了一個(gè)Remote_Init()的函數(shù),這個(gè)函數(shù)主要是專(zhuān)門(mén)用來(lái)對(duì)IO口進(jìn)行初始化,并且在文件中配置了TIM5_CH2定時(shí)器作為對(duì)輸入的捕獲,還有一個(gè)是TIM5_IRQHandler()的函數(shù),它也就是TIM5的一個(gè)中斷服務(wù)函數(shù),最后就是Remote_Scan函數(shù),該函數(shù)主要是專(zhuān)門(mén)用來(lái)傳遞輸出解碼鍵的值,來(lái)判斷對(duì)應(yīng)遙控器的按鍵位置是哪個(gè),即一種類(lèi)似于按鍵掃描紅外遙控初始化,開(kāi)啟定時(shí)器對(duì)應(yīng)通道為輸入捕獲功能。頻率為1MHz開(kāi)啟定時(shí)器輸入捕獲更新中斷和捕獲中斷捕獲到上升沿時(shí),設(shè)置捕獲極性為下降沿捕獲,同時(shí)設(shè)置計(jì)數(shù)值為0,變量RmtSta的位4為1當(dāng)捕獲到下降沿時(shí),讀取定時(shí)器的值賦值給Dval,然后設(shè)置捕獲極性為上升沿捕獲定時(shí)器發(fā)生溢出中斷,且是第一次溢出,標(biāo)記完成一次按鍵采集圖5-7紅外遙控程序流程圖(7)按鍵控制程序設(shè)計(jì):在本課題設(shè)計(jì)中,要配置按鍵控制,首先要使能按鍵對(duì)應(yīng)的IO口時(shí)鐘,調(diào)用相關(guān)的函數(shù)使能,接著是對(duì)按鍵IO進(jìn)行相應(yīng)的初始化操作,需要把按鍵IO配置成輸入模式,有兩種輸入方式,上拉輸入和下拉輸入方式,最后是對(duì)按鍵進(jìn)行掃描,監(jiān)控其是否被按下。關(guān)于按鍵操作程序部分,主要說(shuō)明它包含兩個(gè)基本的函數(shù),KEY_Init()和KEY_Scan()兩個(gè)基本函數(shù),前者主要是一種用來(lái)對(duì)與按鍵輸入相連接的硬件電路進(jìn)行了初始化,后者主要是一種用來(lái)掃描IO口中有無(wú)按鍵的輸入,然后根據(jù)按下的按鍵信號(hào)來(lái)對(duì)其進(jìn)行一些相應(yīng)的動(dòng)作,關(guān)于按鍵掃描的方式主要有兩種,支持長(zhǎng)按和不支持長(zhǎng)按,在本文研究課題中,我們可以選擇不支持長(zhǎng)按的模式,將mode設(shè)置為0,即表示不支持長(zhǎng)按;不支持連續(xù)按的按鍵掃描思路是只認(rèn)為第一次按下是有效的,后面即使有按下的操作,沒(méi)有松開(kāi),也認(rèn)為這個(gè)按下信號(hào)是無(wú)效的,下面是關(guān)于按鍵操作程序的部分關(guān)鍵代碼的操作流程圖5-8:使能按鍵對(duì)應(yīng)的IO口時(shí)鐘。調(diào)用函數(shù):RCC_APB2PeriphClockCmd()使能按鍵對(duì)應(yīng)的IO口時(shí)鐘。調(diào)用函數(shù):RCC_APB2PeriphClockCmd()初始化IO模式:上拉/下拉輸入。調(diào)用函數(shù):GPIO_Init()掃描IO口電平。調(diào)用函數(shù):KEY_Scan()圖5-8按鍵控制程序流程圖藍(lán)牙通信程序設(shè)計(jì):為了實(shí)現(xiàn)主機(jī)和從機(jī)之間的信息傳輸,我們選擇藍(lán)牙模塊進(jìn)行通信,以便將測(cè)試結(jié)果傳輸給醫(yī)生或者檢測(cè)者,擴(kuò)展該系統(tǒng)的應(yīng)用。首先要選擇好配置藍(lán)牙通信的方式,在本課題中,我們選擇了串口配置,用到了XCOM這個(gè)配置軟件,還有藍(lán)牙串口助手這個(gè)APP下載在安卓手機(jī)上,藍(lán)牙配置過(guò)程中,會(huì)用到較多的指令集,如下表5-1所示:表5-1藍(lán)牙指令集指令響應(yīng)參數(shù)ATOK無(wú)AT+RESETOK無(wú)AT+VERSION?OK軟件版本號(hào)續(xù)表5-1藍(lán)牙指令集AT+ADDR?+ADDR:<Param>OKParam藍(lán)牙模塊地址AT+NAME?+NAME:<Param>OKParam藍(lán)牙設(shè)備名稱(chēng)AT+ROLE?+ROLE:<Param>OK從角色(Slave)主角色(Master)本文的研究課題主要選擇的藍(lán)牙接口模塊是一個(gè)HC-05藍(lán)牙接口模塊,是與中國(guó)正點(diǎn)原子藍(lán)牙開(kāi)發(fā)板配套的一個(gè)引腳藍(lán)牙接口模塊,總共分別設(shè)計(jì)了六個(gè)引腳藍(lán)牙接口:VCC、GND、TXD、RXD、KEY、LED;LED指的是一種藍(lán)牙指示燈,當(dāng)一個(gè)新的藍(lán)牙模塊處于不同的藍(lán)牙工作環(huán)境狀態(tài)時(shí),Led兩種指示燈燈光閃爍的表現(xiàn)方式就可能會(huì)不一樣,當(dāng)該燈慢閃,即一秒閃一次時(shí),模塊進(jìn)入AT狀態(tài),這是可以使用上表的AT指令集進(jìn)行相關(guān)的配置,當(dāng)該燈快閃時(shí),即一秒閃兩次時(shí),該燈已經(jīng)進(jìn)入了可配對(duì)狀態(tài),當(dāng)該燈出現(xiàn)雙閃時(shí),即一次配對(duì)燈閃兩下,兩秒后再閃一次,表示該燈與藍(lán)牙模塊的配對(duì)成功,該燈非常方便判斷該燈所在狀態(tài),使用上很方便;KEY是讓每個(gè)藍(lán)牙模塊都會(huì)進(jìn)入不同模式的控制引腳,高電平有效,當(dāng)進(jìn)入AT狀態(tài)指令,低電平時(shí),就會(huì)進(jìn)入串口透?jìng)魍ㄐ拍J?,這兩個(gè)模式的通信波特率也許不一樣;RXD/TXD位于藍(lán)牙模塊串口接收/發(fā)送引腳,這兩個(gè)都是TTL電平,不過(guò)我們也可以直接接RS232電平,這點(diǎn)需要非常小心注意,容易導(dǎo)致出錯(cuò),RXD接單片機(jī)的TXD,txd接單片機(jī)的RXD;VCC是一個(gè)電源,電壓范圍是3.3V-5.0V。該藍(lán)牙的波特率支持范圍很廣,從4800到138200中,常用的波特率都支持。該藍(lán)牙模塊的應(yīng)用場(chǎng)景可以有兩個(gè),即模塊跟手機(jī)通信和模塊之間通信,后者需配置藍(lán)牙模塊的角色,才可用于數(shù)據(jù)透析通信。下圖5-9為該模塊的使用流程圖:初始化相應(yīng)的IO口,配置好時(shí)鐘和工作方式。初始化相應(yīng)的IO口,配置好時(shí)鐘和工作方式。配置好兩個(gè)藍(lán)牙模塊的角色,并使其進(jìn)入通信模式初始化相應(yīng)的IO口,配置好時(shí)鐘和工作方式。單片機(jī)監(jiān)聽(tīng)并處理藍(lán)牙模塊接收到的數(shù)據(jù)圖5-9藍(lán)牙模塊使用流程圖(9)觸摸屏顯示程序設(shè)計(jì):在整個(gè)系統(tǒng)最后,我加了一個(gè)附加的內(nèi)容,就是在與STM32配套的4.3觸摸屏上顯示出本課題的名稱(chēng)和其他信息。觸摸屏其實(shí)分為電容型和電阻型觸摸屏,我們使用的是電容型的。觸摸屏實(shí)際上就是一種能夠直接接受到觸頭等各種輸入信號(hào)的傳感器裝置,本質(zhì)上是負(fù)責(zé)的是檢測(cè)觸摸點(diǎn),與液晶屏有所區(qū)別,它有兩個(gè)電極,X和Y電極,所摸到的點(diǎn)就是兩個(gè)極的交匯點(diǎn),來(lái)檢測(cè)觸摸。該新型觸摸屏幕是采用串口IIC三個(gè)接口用來(lái)進(jìn)行寫(xiě)入輸出各種觸摸傳感數(shù)據(jù)的,所需要采用的觸摸傳感器參數(shù)IC為GT9147。在軟件編程的時(shí)候,我們首先需要將該觸摸屏進(jìn)行初始化操作,串口需要初始化為600,然后是對(duì)按鍵初始化,真正用于顯示的函數(shù),其實(shí)與OLED顯示的函數(shù)類(lèi)似,首先也是對(duì)觸摸屏進(jìn)行清屏,然后使用各種畫(huà)點(diǎn)和畫(huà)圖函數(shù)進(jìn)行畫(huà)圖的,如LCD_ShowString()函數(shù)。還要在定時(shí)器上編寫(xiě)一個(gè)觸摸屏的驅(qū)動(dòng)程序代碼,在對(duì)該觸摸屏的驅(qū)動(dòng)程序進(jìn)行編寫(xiě)時(shí),首先也要對(duì)定時(shí)器進(jìn)行初始化,然后把該定時(shí)器的坐標(biāo)初始化成10ms,接著根據(jù)需要分別映射定時(shí)器的中斷矢量和該觸摸屏的中斷矢量,然后讓定時(shí)器的坐標(biāo)使得所有的電機(jī)都可以,使得定時(shí)器啟動(dòng)后就開(kāi)始對(duì)電機(jī)進(jìn)行計(jì)時(shí),采樣在得到了該觸摸屏的位置和坐標(biāo)數(shù)據(jù)之后,將該電機(jī)的位置變成了觸摸屏轉(zhuǎn)變成了一個(gè)顯示的坐標(biāo)。如下圖5-10為觸摸屏顯示程序流程圖
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版高中物理選擇性必修第一冊(cè)動(dòng)量守恒在幾類(lèi)模型中的應(yīng)用課件
- 樁間土高壓灌漿施工方案
- 燒烤角色游戲階段計(jì)劃
- 2025至2030年中國(guó)小區(qū)聯(lián)網(wǎng)可視對(duì)講系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年春人教版英語(yǔ)八年級(jí)下冊(cè)教學(xué)課件 Unit 5 第2課時(shí)(A 3a-3c)
- 2025至2030年中國(guó)包塑鏈輪曲柄數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)凳腳套數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 仿制皮膚科用藥企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 玻璃纖維增強(qiáng)塑料坐具企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 女式?jīng)鐾闲髽I(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 三年級(jí)數(shù)學(xué)下冊(cè)期末測(cè)試卷及答案【可打印】
- 蘇教版小學(xué)語(yǔ)文上冊(cè)教學(xué)研究論文
- 片狀鋅粉行業(yè)分析!中國(guó)片狀鋅粉行業(yè)市場(chǎng)發(fā)展前景研究報(bào)告(2024版)
- 公鐵兩用牽引車(chē)市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 兒童繪本故事《我的情緒小怪獸》
- 部編版六年級(jí)下冊(cè)道德與法治全冊(cè)教案
- 3.1 導(dǎo)數(shù)的概念 課件 《高等數(shù)學(xué)》
- 2024版《供電營(yíng)業(yè)規(guī)則》學(xué)習(xí)考試題庫(kù)500題(含答案)
- 供貨送貨服務(wù)承諾書(shū)
- G -B- 43630-2023 塔式和機(jī)架式服務(wù)器能效限定值及能效等級(jí)(正式版)
- EPC項(xiàng)目質(zhì)量保證措施
評(píng)論
0/150
提交評(píng)論