版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
I·目錄TOC\o"1-3"\h\u28704引言 123621緒論 2261071.1選題背景及意義 2174011.2國(guó)內(nèi)外研究現(xiàn)狀 2184181.3設(shè)計(jì)任務(wù)和要求 4128291.4本章小結(jié) 4249692系統(tǒng)各模塊器件介紹 6227652.1STM32F103C8T6主控芯片簡(jiǎn)介 6131742.1.1STM32F103C8T6內(nèi)部結(jié)構(gòu) 6114342.1.2STM32F103C8T6芯片引腳功能 714932.1.3STM32F103C8T6外圍硬件 8200812.2LD3320語(yǔ)音識(shí)別模塊 8207242.2.1語(yǔ)音識(shí)別芯片介紹 8272282.2.2語(yǔ)音識(shí)別芯片引腳功能介紹 9229092.2.3LD3320外圍硬件介紹 9162502.3OLED顯示模塊 97872.3.1概述 9267612.3.2OLED顯示模塊接口方式 10134592.4本章小結(jié) 11173003硬件電路的原理與設(shè)計(jì) 1321153.1概述 13186713.2STM32F103C8T6主控模塊 1356833.2.1STM32F103C8T6部分引腳說(shuō)明 1436483.2.2STM32F103C8T6單片機(jī)的中斷系統(tǒng) 1475493.2.3STM32F103C8T6單片機(jī)最小系統(tǒng)設(shè)計(jì) 1512253.3LD3320語(yǔ)音識(shí)別模塊 16241453.3.1概述 16307513.3.2LD3320工作電路 17310863.3.3STC11L08XE工作電路 179033.4OLED顯示電路模塊 1832293.4.1OLED顯示工作原理介紹 18181553.4.2OLED驅(qū)動(dòng)方式 19297553.4.3OLED顯示部分與STM32F103C8T6的接口 202113.5按鍵電路設(shè)計(jì) 20250633.6復(fù)位電路設(shè)計(jì) 2073643.7電源輸入電路設(shè)計(jì) 21148003.8晶振電路設(shè)計(jì) 224973.9下載電路設(shè)計(jì) 22294923.10啟動(dòng)方式選擇電路 2331093.11LED燈組電路設(shè)計(jì) 24240783.12本章小結(jié) 24325214系統(tǒng)軟件設(shè)計(jì) 26102634.1概述 26317884.2程序代碼的編寫(xiě)環(huán)境和燒錄 26267184.2.1程序代碼編寫(xiě)環(huán)境 26102144.2.2程序代碼的燒寫(xiě) 28257654.3主函數(shù)設(shè)計(jì) 29259434.4OLED液晶顯示程序設(shè)計(jì) 319294.4.1顯示初始化程序設(shè)計(jì) 31143524.4.2顯示取模程序設(shè)計(jì) 32234394.5語(yǔ)音識(shí)別程序流程設(shè)計(jì) 3488604.6PWM波程序設(shè)計(jì) 3774284.7外部中斷程序設(shè)計(jì) 40211394.8本章小結(jié) 42187555系統(tǒng)調(diào)試 44199765.1概述 44144465.2硬件調(diào)試 44137045.3軟件調(diào)試 45220245.4調(diào)試結(jié)果 4518065.5誤差分析 46283135.6本章小結(jié) 4729076結(jié)論 4832637參考文獻(xiàn) 491576致謝 5016930附錄1語(yǔ)音識(shí)別LED柔光臺(tái)燈的硬件原理圖 5115025附錄2語(yǔ)音識(shí)別模塊電路圖 5213890附錄3取模截圖 53引言隨著科技的快速發(fā)展和人民生活質(zhì)量的不斷提升,智能家居產(chǎn)品日漸成為現(xiàn)代生活的重要組成部分,智能臺(tái)燈作為其中的典型代表,不僅滿足了基礎(chǔ)照明需求,更是通過(guò)集成物聯(lián)網(wǎng)技術(shù),為用戶提供更加個(gè)性化、智能化的照明體驗(yàn)。物聯(lián)網(wǎng)技術(shù)的廣泛應(yīng)用為智能臺(tái)燈的設(shè)計(jì)與實(shí)現(xiàn)創(chuàng)造了無(wú)限可能,使其能夠?qū)崿F(xiàn)遠(yuǎn)程操控、智能調(diào)節(jié)亮度和色溫、實(shí)時(shí)狀態(tài)監(jiān)測(cè)等功能,極大增強(qiáng)了臺(tái)燈的便利性與實(shí)用性,同時(shí)也促使其向著更加節(jié)能和環(huán)保的方向發(fā)展。本文聚焦于基于物聯(lián)網(wǎng)技術(shù)的智能臺(tái)燈設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,旨在通過(guò)系統(tǒng)闡述其硬件設(shè)計(jì)原理、軟件編程邏輯以及綜合調(diào)試方法,呈現(xiàn)一款集語(yǔ)音識(shí)別、OLED顯示、PWM控制等多種先進(jìn)技術(shù)于一體的智能臺(tái)燈的研發(fā)全過(guò)程。文章詳細(xì)介紹了如何選取STM32F103C8T6單片機(jī)作為主控芯片,利用LD3320語(yǔ)音識(shí)別模塊實(shí)現(xiàn)語(yǔ)音指令控制,并結(jié)合PWM波形調(diào)整LED光源的亮度與色溫,同時(shí)配備OLED顯示屏實(shí)時(shí)反饋臺(tái)燈工作狀態(tài),以滿足用戶多樣化、人性化的照明需求。在研究過(guò)程中,本項(xiàng)目密切關(guān)注用戶需求與使用習(xí)慣,通過(guò)一系列用戶調(diào)研與產(chǎn)品測(cè)試不斷優(yōu)化智能臺(tái)燈的各項(xiàng)功能與性能,最終成功設(shè)計(jì)并制造出一款功能強(qiáng)大、易于操控、穩(wěn)定性高的智能臺(tái)燈產(chǎn)品。本研究的意義不僅在于提供了一種可行的智能臺(tái)燈設(shè)計(jì)方案,更是對(duì)物聯(lián)網(wǎng)技術(shù)在智能家居領(lǐng)域應(yīng)用的一次積極探索,對(duì)未來(lái)智能照明設(shè)備的研發(fā)、生產(chǎn)及市場(chǎng)推廣有著重要的實(shí)踐指導(dǎo)價(jià)值。同時(shí),隨著智能技術(shù)的進(jìn)一步普及,預(yù)期此類(lèi)智能臺(tái)燈將廣泛應(yīng)用于家庭、辦公場(chǎng)所等多個(gè)場(chǎng)景,引領(lǐng)智能照明的新潮流,切實(shí)提升用戶的照明體驗(yàn),為實(shí)現(xiàn)更加便捷、舒適、智能的生活環(huán)境貢獻(xiàn)力量。緒論選題背景及意義臺(tái)燈,作為一種可移動(dòng)的照明設(shè)備,是我們?nèi)粘I钪谐S玫碾娖髦?。它主要用于需要局部照明的?chǎng)合,如學(xué)習(xí)、閱讀、工作、戶外活動(dòng)或停電等,能夠照亮需要照明的地方,而不會(huì)影響其他地方的光線。隨著社會(huì)和經(jīng)濟(jì)的持續(xù)進(jìn)步,人們對(duì)美好生活的追求也日益增強(qiáng),這也催生了臺(tái)燈技術(shù)的飛速發(fā)展。智能產(chǎn)品已經(jīng)成為現(xiàn)代社會(huì)的一大趨勢(shì)。我國(guó)的智能家居正在經(jīng)歷一個(gè)飛速的發(fā)展時(shí)期,其普及率也在穩(wěn)步上升。市場(chǎng)上涌現(xiàn)出了眾多種類(lèi)的智能臺(tái)燈產(chǎn)品,如遠(yuǎn)程遙控、手勢(shì)控制、人臉識(shí)別、指紋識(shí)別和語(yǔ)音識(shí)別等。這些創(chuàng)新產(chǎn)品為人們的日常生活帶來(lái)了巨大的便捷性??萍嫉牟粩噙M(jìn)步也激發(fā)了人們對(duì)更高生活品質(zhì)的追求。因此,許多研究者開(kāi)始深入研究如何實(shí)現(xiàn)人與機(jī)器的交互。語(yǔ)音識(shí)別技術(shù)為人機(jī)交互研究帶來(lái)了新的突破。這些基于語(yǔ)音識(shí)別技術(shù)的智能產(chǎn)品為人們提供了巨大的便利,例如臺(tái)燈等。盡管市場(chǎng)上已有多種語(yǔ)音識(shí)別的臺(tái)燈,但大部分僅僅是通過(guò)語(yǔ)音來(lái)控制臺(tái)燈的開(kāi)啟和關(guān)閉,這與一般的節(jié)能燈并無(wú)太大的區(qū)別。展望未來(lái),隨著智能制造業(yè)的快速發(fā)展,語(yǔ)音識(shí)別技術(shù)也將隨之飛速發(fā)展。未來(lái)的臺(tái)燈將為人們的生活帶來(lái)更多的便利,使用壽命更長(zhǎng),更加節(jié)能環(huán)保,而且能更好的模擬自然光線,給人們來(lái)帶更加舒適自然的照明體驗(yàn)。傳統(tǒng)的臺(tái)燈由于使用時(shí)需要人為手動(dòng)操作,不僅費(fèi)時(shí)費(fèi)力還存在著很多不安全因素。基于物聯(lián)網(wǎng)技術(shù)的智能臺(tái)燈利用語(yǔ)音識(shí)別技術(shù)來(lái)調(diào)整其工作狀況,這使得人們能夠輕松地調(diào)整燈的工作模式,特別是對(duì)于行動(dòng)受限和社會(huì)弱勢(shì)群體,這無(wú)疑提高了他們的生活品質(zhì)。同時(shí)該臺(tái)燈還具有良好的穩(wěn)定性和可靠性,不會(huì)因?yàn)橥饨绛h(huán)境或其他因素造成故障。通過(guò)使用LED燈進(jìn)行照明,不僅可以規(guī)避多種安全風(fēng)險(xiǎn)和高能耗問(wèn)題,而且其光線更為柔和,對(duì)眼睛造成的損害也相對(duì)較小,這在一定程度上有助于減緩青少年近視率的逐漸增加。國(guó)內(nèi)外研究現(xiàn)狀在過(guò)去的幾年中,語(yǔ)音識(shí)別技術(shù)的飛速進(jìn)步為國(guó)內(nèi)外智能產(chǎn)品的發(fā)展提供了強(qiáng)大的推動(dòng)力。市場(chǎng)上涌現(xiàn)出許多不同類(lèi)型的語(yǔ)音識(shí)別智能產(chǎn)品,其中,基于語(yǔ)音識(shí)別技術(shù)的智能臺(tái)燈是一個(gè)與時(shí)代進(jìn)步和人們追求相匹配的產(chǎn)品。然而,與此相比,目前關(guān)于智能柔光燈的研究相對(duì)較少,因此它具有更高的研究?jī)r(jià)值。在當(dāng)前背景下,本研究以語(yǔ)音識(shí)別技術(shù)為核心,充分利用其獨(dú)特優(yōu)勢(shì),旨在設(shè)計(jì)并實(shí)現(xiàn)一種創(chuàng)新型智能柔光燈。本研究致力于開(kāi)發(fā)一款集語(yǔ)音識(shí)別技術(shù)與智能LED柔光臺(tái)燈于一體的產(chǎn)品,其研究領(lǐng)域廣泛,包括語(yǔ)音識(shí)別技術(shù)、語(yǔ)音識(shí)別模塊、光亮度與色度調(diào)節(jié)技術(shù)、芯片選型以及模塊間的連接方式等多個(gè)方面。通過(guò)綜合應(yīng)用這些技術(shù),我們期望能夠?yàn)橛脩魩?lái)更加便捷、智能和舒適的光照體驗(yàn)。在2009年發(fā)布的《LED燈具—未來(lái)節(jié)能燈具的發(fā)展方向》[1]報(bào)告中,指出社會(huì)經(jīng)濟(jì)的迅猛增長(zhǎng)導(dǎo)致了大量的電力消耗,其中傳統(tǒng)照明燈的耗電量占到了總耗電量的20%,這不僅浪費(fèi)了寶貴的電力資源,而且LED節(jié)能燈因其高效率、低耗電、低成本和對(duì)環(huán)境友善的特點(diǎn),顯示出LED燈具有巨大的發(fā)展?jié)摿?,并且其滲透率預(yù)計(jì)將持續(xù)上升。在2017年發(fā)布的《非特定人語(yǔ)音識(shí)別關(guān)鍵技術(shù)研究》報(bào)告中[3],描述了一個(gè)由STM32F103系列開(kāi)發(fā)板、LD3320語(yǔ)音識(shí)別芯片和LP2303模塊構(gòu)成的非特定人語(yǔ)音識(shí)別系統(tǒng)。這一系統(tǒng)能在極低的環(huán)境干擾下,在極短的時(shí)間內(nèi)完成內(nèi)容識(shí)別,并且識(shí)別成功率高達(dá)95%。本文將詳細(xì)介紹此系統(tǒng)硬件電路及軟件流程。嵌入式非特定人語(yǔ)音識(shí)別系統(tǒng)以其高性能、低功耗和低成本等優(yōu)點(diǎn),能夠非常有效地滿足大部分語(yǔ)音識(shí)別產(chǎn)品的性能需求。在2018年發(fā)布的《基于STM32單片機(jī)的家居設(shè)備語(yǔ)音控制系統(tǒng)設(shè)計(jì)》[4]一書(shū)中,描述了一個(gè)以STM32F103單片機(jī)為主控模塊的家居系統(tǒng)設(shè)計(jì)。本系統(tǒng)主要由STM32F103主控模塊、ZigBee無(wú)線模塊以及LD3320語(yǔ)音模塊構(gòu)成。通過(guò)運(yùn)用先進(jìn)的語(yǔ)音信號(hào)識(shí)別技術(shù),該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)家居設(shè)備的精確控制。其不僅具備較高的語(yǔ)音識(shí)別率,而且在功能和性能上也表現(xiàn)出相當(dāng)?shù)姆€(wěn)定性。因此,本系統(tǒng)成功實(shí)現(xiàn)了家居智能化,極大地提升了人們的日常生活品質(zhì),為現(xiàn)代家居生活帶來(lái)了極大的便利。在2018年發(fā)布的《OLED屏崛起——2019年將超越LCD屏》[5]這篇文章中,詳細(xì)描述了OLED顯示屏幕的當(dāng)前發(fā)展?fàn)顩r和未來(lái)趨勢(shì)。文章指出,OLED顯示器的主要優(yōu)點(diǎn)包括高圖像分辨率、薄厚度和快速響應(yīng)。這些優(yōu)點(diǎn)使得OLED顯示器在國(guó)內(nèi)外都得到了廣泛應(yīng)用,并且其滲透率也在逐步上升,特別是在智能手機(jī)屏幕方面表現(xiàn)得尤為明顯。在2019年,《基于PWM的三基色LED智能語(yǔ)音控制調(diào)光調(diào)色系統(tǒng)設(shè)計(jì)》采用了SPCE061A單片機(jī)語(yǔ)音識(shí)別技術(shù),通過(guò)調(diào)整PWM波的占空比來(lái)達(dá)到顯示LED燈亮度和色度的目的[6]。在本文中,將主要介紹如何使用這種控制系統(tǒng),以達(dá)到對(duì)燈具的智能化調(diào)整。在市場(chǎng)上,許多可調(diào)節(jié)的照明系統(tǒng)主要關(guān)注亮度的調(diào)整,但這個(gè)系統(tǒng)不僅可以調(diào)整亮度,還具備調(diào)整光的色度的功能,從而滿足了對(duì)多種燈光效果的需求;此外,由于該系統(tǒng)使用了低功率LED燈,因此也滿足了節(jié)能發(fā)展的需求;另外在使用語(yǔ)音控制系統(tǒng)時(shí),可以將語(yǔ)音信息與當(dāng)前場(chǎng)景相結(jié)合,從而使得系統(tǒng)更具智能化和人性化。利用語(yǔ)音識(shí)別技術(shù)已經(jīng)適應(yīng)了當(dāng)前時(shí)代的進(jìn)步方向。在2019年,一款名為《基于PWM調(diào)光的多功能LED臺(tái)燈設(shè)計(jì)》的臺(tái)燈被設(shè)計(jì)出來(lái)[7],其主要功能是通過(guò)調(diào)整PWM波的占空比來(lái)改變光的亮度和色度。這款臺(tái)燈的主控芯片是STC89C52RC。該電路具有結(jié)構(gòu)簡(jiǎn)單,性能穩(wěn)定可靠等優(yōu)點(diǎn),而且可以實(shí)現(xiàn)多種功能。利用PWM波,我們可以精確地調(diào)整燈光的亮度和色度,確保亮度在一個(gè)合適的區(qū)間內(nèi),這不僅可以為眼睛提供良好的保護(hù),還能實(shí)現(xiàn)節(jié)能和減少排放,具有很高的實(shí)用價(jià)值。在2014年,《Deepspeech:Scalingupend-to-endspeechrecognition》介紹了當(dāng)時(shí)國(guó)外最尖端的語(yǔ)音識(shí)別技術(shù)[8]。這套系統(tǒng)主要依賴多個(gè)圖形處理器和數(shù)據(jù)合成技術(shù)來(lái)收集大量的詞匯訓(xùn)練數(shù)據(jù)。即使在大的環(huán)境干擾下,該語(yǔ)音識(shí)別系統(tǒng)也能維持出色的工作性能,表現(xiàn)為強(qiáng)大的抗干擾能力、更高的識(shí)別準(zhǔn)確性,以及更高的可靠性和實(shí)用性,這對(duì)于語(yǔ)音識(shí)別技術(shù)的進(jìn)一步發(fā)展具有巨大的推動(dòng)作用。設(shè)計(jì)任務(wù)和要求本研究項(xiàng)目是一個(gè)基于物聯(lián)網(wǎng)技術(shù)開(kāi)發(fā)的智能臺(tái)燈,主要內(nèi)容涵蓋了語(yǔ)音識(shí)別模塊的應(yīng)用、使用PWM波來(lái)控制LED柔光燈的亮度,以及0.96寸OLED屏幕來(lái)展示當(dāng)前LED柔光臺(tái)燈的工作狀況,還包括了軟件和硬件的聯(lián)合調(diào)試工作。在此背景下,本文將以語(yǔ)音識(shí)別技術(shù)為基礎(chǔ),結(jié)合語(yǔ)音識(shí)別技術(shù)的優(yōu)勢(shì),通過(guò)設(shè)計(jì)一種新型智能柔光燈來(lái)實(shí)現(xiàn)該目標(biāo)。以下是各個(gè)模塊的功能實(shí)現(xiàn):1.本設(shè)計(jì)在語(yǔ)音識(shí)別領(lǐng)域采用了廣泛認(rèn)可的LD3320語(yǔ)音識(shí)別模塊,并結(jié)合尖端的非特定人語(yǔ)音識(shí)別(ASR)技術(shù)進(jìn)行了精細(xì)化的調(diào)整,以保證能夠準(zhǔn)確無(wú)誤地辨識(shí)臺(tái)燈所需的特定指令。這些指令涵蓋了喚醒詞、開(kāi)啟燈光、關(guān)閉燈光、提升亮度、降低亮度等。主控芯片方面,我們選用了性能卓越的STM32F103C8T6與LD3320語(yǔ)音識(shí)別模塊,通過(guò)串口通信進(jìn)行數(shù)據(jù)交互,從而確保主芯片能夠迅速響應(yīng)并處理接收到的各類(lèi)指令。2.在按鍵控制模塊方面:采用靈敏的按鍵中斷機(jī)制來(lái)調(diào)節(jié)燈光亮度,并實(shí)現(xiàn)了燈具的開(kāi)關(guān)控制操作。3.本設(shè)計(jì)在調(diào)控LED柔光燈亮度時(shí),采用PWM波進(jìn)行控制。為實(shí)現(xiàn)精準(zhǔn)調(diào)控,設(shè)計(jì)充分利用了STM32F103C8T6微控制器內(nèi)置的定時(shí)器功能,以輸出穩(wěn)定的PWM信號(hào)。通過(guò)與外部電路的精確連接,實(shí)現(xiàn)對(duì)多個(gè)LED燈的精細(xì)控制,確保亮度的準(zhǔn)確調(diào)節(jié)。4.在顯示模塊部分部分,主控芯片采用了高效的SPI協(xié)議,驅(qū)動(dòng)一個(gè)0.96寸的OLED顯示屏,能夠清晰的展示燈具的亮度級(jí)別和其他相關(guān)信息,屏幕尺寸為128*64像素。本章小結(jié)這一章節(jié)詳盡地闡述了設(shè)計(jì)研究的背景和重要性,以及國(guó)內(nèi)外在這一領(lǐng)域內(nèi)的發(fā)展?fàn)顩r、所面臨的任務(wù)和需求。通過(guò)對(duì)各個(gè)功能模塊進(jìn)行設(shè)計(jì)和測(cè)試,最終得到了滿足實(shí)際需求的設(shè)計(jì)方案。隨著社會(huì)經(jīng)濟(jì)的持續(xù)進(jìn)步和人們的持續(xù)探索與研究,臺(tái)燈也經(jīng)歷了一系列的技術(shù)革新。從傳統(tǒng)的手動(dòng)控制方式,到遙控控制,再到現(xiàn)在主要研究的語(yǔ)音控制技術(shù),從高能耗的傳統(tǒng)燈具進(jìn)化到節(jié)能的LED燈,為人們提供了更為便捷和環(huán)保的生活方式。特別是對(duì)于老年人、兒童和行動(dòng)不便的人群,他們可以根據(jù)自己的實(shí)際需要,通過(guò)語(yǔ)音來(lái)調(diào)整臺(tái)燈的工作狀態(tài)。柔光臺(tái)燈的使用在某種程度上有助于減緩青少年近視發(fā)病率的增長(zhǎng),并有助于緩解資源過(guò)度消耗和污染物排放的問(wèn)題。同時(shí),還能起到保護(hù)眼睛、預(yù)防疾病的作用。因此,本次設(shè)計(jì)的產(chǎn)品設(shè)計(jì)的這款智能LED柔光臺(tái)燈以STM32F103C8T6作為核心控制芯片,并采用語(yǔ)音識(shí)別技術(shù)。最終,本課題的設(shè)計(jì)任務(wù)和要求得到了詳細(xì)的闡述,主要涵蓋了四大模塊:語(yǔ)音識(shí)別模塊的應(yīng)用、按鍵識(shí)別技術(shù)、PWM波用于控制LED柔光燈亮度、0.96寸OLED用于顯示當(dāng)前LED柔光臺(tái)燈工作狀況,以及軟硬件聯(lián)合調(diào)試的相關(guān)內(nèi)容。系統(tǒng)各模塊器件介紹該設(shè)計(jì)由STM32F103C8T6主控芯片模塊為核心,輔以0.96寸OLED顯示模塊、LD3320語(yǔ)音模塊、按鍵模塊以及LED燈組模塊等多個(gè)關(guān)鍵組件共同構(gòu)成。具體細(xì)節(jié)可參見(jiàn)REF_Ref8299185\h圖STYLEREF1\s2.1。圖STYLEREF1\s2.SEQ圖\*ARABIC\s11系統(tǒng)整體設(shè)計(jì)圖本章將詳盡闡述主要采用的電子元器件,其中包括STM32F103C8T6微控制器、OLED顯示屏,以及為其供電的驅(qū)動(dòng)芯片SSD1306、LD3320語(yǔ)音識(shí)別芯片和內(nèi)置增強(qiáng)型51微控制器等。這些元器件的特性和功能將在本章中得到全面展示。STM32F103C8T6主控芯片簡(jiǎn)介STM32F103C8T6內(nèi)部結(jié)構(gòu)STM32單片機(jī)系列多樣,包括基本型、USB基本型、增強(qiáng)型和互聯(lián)型等核心系列。這些單片機(jī)均以卓越性能、超低功耗和經(jīng)濟(jì)成本為顯著特點(diǎn)。在本文中,筆者將以一款高性能的智能控制芯片為例來(lái)詳細(xì)闡述它的工作原理及其應(yīng)用設(shè)計(jì)方法。REF_Ref7027180\h圖STYLEREF1\s2.2展示了其內(nèi)部的結(jié)構(gòu)圖。圖STYLEREF1\s2.SEQ圖\*ARABIC\s12STM32內(nèi)部結(jié)構(gòu)圖本研究項(xiàng)目使用的是STM32F103C8T6單片機(jī)芯片,這是一款基于ARMM3內(nèi)核的增強(qiáng)型微控制器。該內(nèi)核的工作頻率可以達(dá)到72MHz,并且它具有128K字節(jié)的閃存和非常豐富的外部設(shè)備,例如GPIO口、串口、定時(shí)器、中斷、數(shù)模轉(zhuǎn)換、實(shí)時(shí)時(shí)鐘、看門(mén)狗、SPI、IIC、CAN總線等。在本文中,筆者將以一款高性能的智能控制芯片為例來(lái)詳細(xì)闡述它的工作原理及其應(yīng)用設(shè)計(jì)方法。STM32F103系列的單片機(jī)在同類(lèi)產(chǎn)品中表現(xiàn)最為出色,它可以在-40℃-85℃的溫度范圍內(nèi)穩(wěn)定運(yùn)行,其工作電壓介于2V至3.6V之間,并且擁有低能耗的節(jié)能模式,其閃存存儲(chǔ)器的存儲(chǔ)容量達(dá)到64K字節(jié)。STM32F103C8T6芯片引腳功能STM32F103C8T6單片機(jī)的芯片包含了48個(gè)引腳,這些引腳的圖示可以在REF_Ref7027193\h圖STYLEREF1\s2.3中找到。這些引腳包括電源引腳、晶振引腳、通用型輸入輸出引腳和模塊功能引腳。關(guān)于這些引腳的詳細(xì)信息,我們將在后續(xù)的內(nèi)容中進(jìn)行進(jìn)一步的闡述。圖STYLEREF1\s2.SEQ圖\*ARABIC\s13STM32F103XX增強(qiáng)型LQPFP48管腳圖STM32F103C8T6外圍硬件STM32F103C8T6的外部組件主要涵蓋了單片機(jī)的復(fù)位電路、晶體振動(dòng)電路、選擇啟動(dòng)模式的電路以及電源電路等部分。其核心部分就是復(fù)位電路,它是整個(gè)程序中最重要的組成部分。在這個(gè)系統(tǒng)中,復(fù)位電路負(fù)責(zé)對(duì)單片機(jī)進(jìn)行復(fù)位操作,而晶振電路則確保整個(gè)系統(tǒng)能夠按照預(yù)定的順序正常運(yùn)行。電源電路負(fù)責(zé)為單片機(jī)提供必要的電源,下載電路則負(fù)責(zé)將程序代碼下載到電路板上。另外,STM32單片機(jī)提供三種不同的啟動(dòng)選項(xiàng),具體選擇哪一種將取決于BOOT0和BOOT1兩個(gè)引腳的電平配置。LD3320語(yǔ)音識(shí)別模塊語(yǔ)音識(shí)別芯片介紹LD3320是一種在語(yǔ)音識(shí)別中常用的芯片,由其組成的語(yǔ)音模塊具有很高的識(shí)別靈敏度。該芯片采用的是非特定人語(yǔ)音識(shí)別(ARS)技術(shù),能夠識(shí)別漢字小寫(xiě)拼音的內(nèi)容。本課題的語(yǔ)音識(shí)別模塊是由LD3320和STC11L08XE單片機(jī)組成的識(shí)別系統(tǒng),如REF_Ref8299118\h圖STYLEREF1\s2.4所示。圖STYLEREF1\s2.SEQ圖\*ARABIC\s14語(yǔ)音識(shí)別系統(tǒng)原理框圖語(yǔ)音識(shí)別芯片具有將咪頭輸入的語(yǔ)音信息內(nèi)容進(jìn)行頻譜分析后提取其特征的能力,然后將這些識(shí)別出的信息傳輸?shù)秸Z(yǔ)音識(shí)別器中,與預(yù)先設(shè)定的關(guān)鍵詞進(jìn)行比對(duì)。接著,它可以識(shí)別出與已識(shí)別信息最相似的關(guān)鍵詞,并將其輸出。在此過(guò)程當(dāng)中使用到了語(yǔ)音識(shí)別系統(tǒng)中的核心部分——語(yǔ)音芯片和主控模塊以及存儲(chǔ)模塊等。用戶只需將已識(shí)別的關(guān)鍵詞內(nèi)容以漢字拼音字符串的方式發(fā)送到語(yǔ)音芯片中,便可以實(shí)現(xiàn)有效的識(shí)別。在此過(guò)程中還可以利用語(yǔ)音指令來(lái)控制相關(guān)電路的開(kāi)關(guān)和運(yùn)行狀態(tài)。在本課題中,語(yǔ)音識(shí)別模塊在每一次識(shí)別任務(wù)完成后,都會(huì)通過(guò)中斷方式向主控模塊發(fā)出處理請(qǐng)求。然后,它會(huì)利用SPI協(xié)議從語(yǔ)音識(shí)別芯片中讀取相關(guān)信息,并根據(jù)這些識(shí)別出的信息,通過(guò)串口通信的手段,將這些信息傳送到STM32F103C8T6單片機(jī)中。語(yǔ)音識(shí)別芯片引腳功能介紹STM32F103C8T6芯片配備了48個(gè)引腳,如REF_Ref7027219\h圖STYLEREF1\s2.5展示的那樣。這些引腳包括電源引腳、咪頭輸入引腳、SPI通信引腳、復(fù)位信號(hào)引腳、中斷信號(hào)引腳以及讀寫(xiě)信號(hào)功能引腳。關(guān)于這些引腳的詳細(xì)功能,我們將在接下來(lái)的章節(jié)中詳細(xì)描述。圖STYLEREF1\s2.SEQ圖\*ARABIC\s15LD3320引腳圖LD3320外圍硬件介紹在本課題中,本次設(shè)計(jì)的產(chǎn)品選擇了LD3320語(yǔ)音識(shí)別模塊,該模塊由外部電路控制喇叭音量、咪頭增益輔助電路、電源穩(wěn)定電路、模擬信號(hào)輔助電路和電源指示燈等多個(gè)外圍硬件組成。OLED顯示模塊概述OLED顯示屏,作為一種先進(jìn)的有機(jī)發(fā)光二極管技術(shù),具備諸多顯著優(yōu)勢(shì)。其自發(fā)光的特性使得顯示效果更為真實(shí),同時(shí)反應(yīng)速度迅捷,為用戶帶來(lái)流暢的視覺(jué)體驗(yàn)。此外,OLED顯示屏還擁有超薄的外形設(shè)計(jì),廣泛的溫度適應(yīng)性,以及出色的對(duì)比度,無(wú)需背光源即可實(shí)現(xiàn)高亮度的顯示。其結(jié)構(gòu)簡(jiǎn)潔,分辨率卓越,為現(xiàn)代電子設(shè)備提供了理想的顯示解決方案。然而,值得注意的是,OLED顯示屏在大型化方面仍面臨一定的技術(shù)挑戰(zhàn)。在本研究項(xiàng)目中,我們選用了中景園電子提供的OLED顯示屏作為核心組件。該模塊提供藍(lán)色、黃藍(lán)色和白色三種顏色選擇,每種顯示屏只能展現(xiàn)這三種顏色之一。具體而言,該模塊的尺寸為2.7cm*2.6cm,顯示尺寸為0.96英寸,屏幕分辨率高達(dá)128*64,工作電壓為3.3V。這一選擇旨在確保產(chǎn)品的顯示效果與性能達(dá)到最佳平衡,同時(shí)滿足實(shí)際應(yīng)用場(chǎng)景的需求。下面的REF_Ref7027232\h圖STYLEREF1\s2.6展示了其結(jié)構(gòu)圖。圖STYLEREF1\s2.SEQ圖\*ARABIC\s160.96寸7針OLED顯示屏結(jié)構(gòu)圖OLED顯示模塊接口方式這款顯示屏提供了五種不同的接口選項(xiàng),包括兩種并行接口和三種串行接口發(fā)送方式。這些接口模式的選擇是通過(guò)在OLED顯示模塊上配置BS0、BS1和BS2三個(gè)管腳來(lái)實(shí)現(xiàn)的,具體的管腳與模塊接口模式之間的關(guān)系可以參見(jiàn)REF_Ref7027589\h表STYLEREF1\s2.1。表STYLEREF1\s2.SEQ表\*ARABIC\s11OLED模塊接口方式設(shè)置表接口方式串行接口并行接口SPII2C8位3線4線68008080BS010000BS100101BS200011課題上采用的是7針4線SPI串行接口方式,即BS0、BS1和BS2三個(gè)管腳都為0,如REF_Ref7027245\h圖STYLEREF1\s2.7REF_Ref7027245\h所示,圖STYLEREF1\s2.SEQ圖\*ARABIC\s17OLED模塊外觀圖接口的定義如下REF_Ref7027717\h表STYLEREF1\s2.2所示。表STYLEREF1\s2.SEQ表\*ARABIC\s12模塊接口定義接口定義GND電源地VCC電源正(3~5.5V)D0OLED的D0腳,在SPI和IIC通信中為時(shí)鐘管腳D1OLED的D1腳,在SPI和IIC通信中為數(shù)據(jù)管腳RESOLED的RES#腳,用來(lái)復(fù)位(低電平復(fù)位)DCOLED的D/C#E腳,數(shù)據(jù)和命令控制管腳CSOLED的CS#腳,也就是片選管腳從外部設(shè)計(jì)圖中,我們可以清晰地觀察到模塊上的電阻R1、R2和R8并未進(jìn)行焊接。這種設(shè)計(jì)使得在需要采用其他接口方式時(shí),可以輕松地調(diào)整BS0、BS1和BS2的連接策略,從而進(jìn)一步改變模塊的接口設(shè)計(jì)。例如,當(dāng)需要使用I2C串行接口時(shí),可以將電阻R3焊接到電阻R1的位置,而電阻R8則選擇焊接。本章小結(jié)在本章中,本次設(shè)計(jì)的產(chǎn)品對(duì)課題設(shè)計(jì)中使用的各個(gè)模塊、相應(yīng)的器件以及相關(guān)的技術(shù)進(jìn)行了深入的闡述,這包括了本次設(shè)計(jì)的產(chǎn)品選擇的STM32F103C8T6主控模塊、LD3320語(yǔ)音識(shí)別模塊和OLED顯示模塊。在第四章中,本文將分別從整體電路結(jié)構(gòu)及各部分電路設(shè)計(jì)兩個(gè)方面來(lái)分析本系統(tǒng)的設(shè)計(jì)方案,并給出具體實(shí)現(xiàn)方法。本文詳細(xì)描述了STM32主控芯片的內(nèi)部構(gòu)造、其引腳的作用以及與之相關(guān)的外部硬件配置;對(duì)于語(yǔ)音識(shí)別部分,本次設(shè)計(jì)的產(chǎn)品詳細(xì)描述了其語(yǔ)音芯片、芯片的引腳功能以及相關(guān)的外部硬件配置;文章最后簡(jiǎn)要描述了顯示模塊OLED,并對(duì)該模塊的接口設(shè)計(jì)和驅(qū)動(dòng)機(jī)制進(jìn)行了說(shuō)明。第四章為系統(tǒng)實(shí)現(xiàn)部分,首先給出了本論文中所使用到的軟硬件環(huán)境和軟件流程圖,然后對(duì)系統(tǒng)各個(gè)功能模塊分別進(jìn)行闡述。在接下來(lái)的章節(jié)中,詳細(xì)探討硬件間的連接方式。硬件電路的原理與設(shè)計(jì)概述在課題的設(shè)計(jì)過(guò)程中,我們根據(jù)硬件的不同功能將其劃分為多個(gè)模塊。整體的硬件設(shè)計(jì)主要包括STM32F103C8T6單片機(jī)的控制模塊、LD3320語(yǔ)音模塊、電源輸入模塊、OLED顯示模塊以及按鍵模塊等關(guān)鍵部分。在第四章中,本文將分別從整體電路結(jié)構(gòu)及各部分電路設(shè)計(jì)兩個(gè)方面來(lái)分析本系統(tǒng)的設(shè)計(jì)方案,并給出具體實(shí)現(xiàn)方法。REF_Ref7027256\h圖STYLEREF1\s3.1展示了設(shè)計(jì)的基本原理框架。圖STYLEREF1\s3.SEQ圖\*ARABIC\s11LED臺(tái)燈總體框架STM32F103C8T6主控模塊在本研究課題中,本次設(shè)計(jì)的產(chǎn)品選擇了STM32F103C8T6單片機(jī)芯片作為主控模塊的核心芯片。該芯片所具備的資源已經(jīng)足夠滿足課題設(shè)計(jì)的各種需求,包括但不限于:20KBSRAM、64KBFLASH、兩個(gè)IIC、兩個(gè)SPI、三個(gè)通用定時(shí)器、一個(gè)高級(jí)定時(shí)器、三個(gè)串口、一個(gè)CAN、一個(gè)USB、32個(gè)通用IO口以及兩個(gè)12位ADC等。由此可見(jiàn),該芯片具有極高的性價(jià)比。主控模塊的部分原理圖可以在REF_Ref7027262\h圖STYLEREF1\s3.2中找到。圖STYLEREF1\s3.SEQ圖\*ARABIC\s12STM32核心板部分原理圖STM32F103C8T6部分引腳說(shuō)明STM32F103C8T6芯片由48個(gè)引腳組成,如REF_Ref7027270\h圖STYLEREF1\s3.3展示,這些引腳包括電源引腳、晶振引腳、燒錄引腳、通用型輸入輸出引腳以及模塊功能引腳。圖STYLEREF1\s3.SEQ圖\*ARABIC\s13STM32F103C8T6主控芯片引腳原理圖部分引腳功能介紹如下REF_Ref22947\h表STYLEREF1\s3.1所示。電源引腳8腳:模擬地;23\35\47\44腳:數(shù)字地;9腳:模擬電源;24\36\48腳:數(shù)字電源。晶振引腳5腳:主晶振輸入引腳;6腳:主晶振輸出引腳;3\4腳:32.768KHz晶振接口。燒錄引腳40\38\34\37\39\7腳:JTAG接口;34/37腳:SWD接口BOOT電路引腳20\43引腳串口外設(shè)引腳30\31引腳其他外設(shè)和通用輸入輸出引腳(除上面之外的引腳)表STYLEREF1\s3.SEQ表\*ARABIC\s11芯片引腳說(shuō)明STM32F103C8T6單片機(jī)的中斷系統(tǒng)CM3的內(nèi)核可以處理256個(gè)中斷,但STM32單片機(jī)僅能處理其中的68個(gè)中斷。本次設(shè)計(jì)的產(chǎn)品經(jīng)常使用的中斷類(lèi)型是可屏蔽的。而在課題中,本次設(shè)計(jì)的產(chǎn)品選擇的STM32F103C8T6是一個(gè)小容量的芯片,只有60個(gè)中斷可以被屏蔽。其內(nèi)部的寄存器AIRCR主要負(fù)責(zé)控制中斷的優(yōu)先級(jí)分組。在中斷事件頻繁的場(chǎng)合,這種優(yōu)先級(jí)分組顯得尤為關(guān)鍵。寄存器AIRC中的bit10~8負(fù)責(zé)對(duì)其進(jìn)行分組管理,而bit7~4則負(fù)責(zé)控制這些分組的分配。具體的分組方式可以參考REF_Ref7027730\h表STYLEREF1\s3.2。表STYLEREF1\s3.SEQ表\*ARABIC\s12AIRCR中斷分組設(shè)置表組別bit[10:8]Bit[7:4]分配情況分配結(jié)果01110:40位搶占優(yōu)先級(jí),4位響應(yīng)優(yōu)先級(jí)11101:31位搶占優(yōu)先級(jí),3位響應(yīng)優(yōu)先級(jí)21012:22位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)31003:13位搶占優(yōu)先級(jí),1位響應(yīng)優(yōu)先級(jí)40114:04位搶占優(yōu)先級(jí),0位響應(yīng)優(yōu)先級(jí)值得一提的是,具有高優(yōu)先級(jí)的中斷事件具有優(yōu)先執(zhí)行權(quán),這使得它有能力中斷正在進(jìn)行的、優(yōu)先級(jí)相對(duì)較低的中斷事件;另外,當(dāng)兩個(gè)具有相同搶占優(yōu)先級(jí)的中斷事件同時(shí)發(fā)生時(shí),響應(yīng)優(yōu)先級(jí)會(huì)發(fā)揮作用。在這種情況下,具有高響應(yīng)優(yōu)先級(jí)的中斷事件有資格獲得優(yōu)先響應(yīng)。相反,如果這兩個(gè)事件不是同時(shí)發(fā)生的,那么無(wú)論它們的優(yōu)先級(jí)如何,都是不允許互相中斷的。STM32F103C8T6單片機(jī)最小系統(tǒng)設(shè)計(jì)STM32F103C8T6最小系統(tǒng)包括:電源電路,復(fù)位電路,晶振電路,下載電路,啟動(dòng)方式選擇電路等,這些電路的連接方式如下REF_Ref7027278\h圖STYLEREF1\s3.4所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s14最小系統(tǒng)原理圖本課題研究涉及的電源電路,通過(guò)USB接口穩(wěn)定提供5V直流電源,確保設(shè)備正常運(yùn)行。復(fù)位電路方面,用戶只需簡(jiǎn)單按下SW1鍵,并使其與STM32的內(nèi)部NRST引腳相連。當(dāng)NRST引腳上的脈沖持續(xù)時(shí)間超過(guò)300納秒時(shí),單片機(jī)將啟動(dòng)復(fù)位操作,從而恢復(fù)到初始狀態(tài)。在晶振電路方面,設(shè)備外部連接了8M的晶振,并通過(guò)倍頻方式產(chǎn)生了高達(dá)72MHz的工作頻率,為單片機(jī)的穩(wěn)定、高效運(yùn)行提供了堅(jiān)實(shí)的基礎(chǔ)。關(guān)于下載電路,本課題采用了SWD下載方式。用戶只需導(dǎo)出SWDIO、SWCLK、VCC3.3V、GND等接口,并在MDK下載選項(xiàng)中選擇SWD模式,即可輕松將程序下載到單片機(jī)中。此外,在啟動(dòng)方式選擇方面,STM32單片機(jī)提供了三種不同的啟動(dòng)模式。經(jīng)過(guò)深入研究與對(duì)比,本課題選擇了啟動(dòng)方式0,以滿足實(shí)際需求和優(yōu)化設(shè)備性能。這一選擇確保了設(shè)備在啟動(dòng)過(guò)程中的穩(wěn)定性和可靠性,為整體功能的實(shí)現(xiàn)提供了有力保障。在接下來(lái)的章節(jié)中,本次設(shè)計(jì)的產(chǎn)品將詳細(xì)描述具體的連接電路。LD3320語(yǔ)音識(shí)別模塊概述語(yǔ)音識(shí)別模塊的核心構(gòu)成部分包括增強(qiáng)型51單片機(jī)STC11L08XE與LD3320語(yǔ)音芯片。STC11L08XE作為模塊的核心控制芯片,全面主導(dǎo)LD3320在語(yǔ)音識(shí)別流程中的各項(xiàng)操作。其關(guān)鍵職責(zé)在于配置語(yǔ)音芯片內(nèi)部的寄存器,包括標(biāo)志位設(shè)定、狀態(tài)讀取以及識(shí)別結(jié)果獲取等。此外,單片機(jī)還需將識(shí)別出的關(guān)鍵詞字符串(小寫(xiě)拼音形式)傳輸至語(yǔ)音芯片的寄存器BA中。寄存器BA會(huì)對(duì)識(shí)別信息進(jìn)行1至4的評(píng)分,并將評(píng)分結(jié)果輸送至相應(yīng)的寄存器中。用戶可根據(jù)實(shí)際需求,靈活選擇所需的評(píng)分信息。例如,評(píng)分最高的信息會(huì)被發(fā)送到寄存器C5,評(píng)分最低的則會(huì)被發(fā)送到寄存器CB。最后,用戶可以根據(jù)自己的需求進(jìn)行編輯操作。LD3320工作電路STC11L08XE的P0^0~P0^7和LD3320的P0~P7以及控制線都是通過(guò)串行方式連接的。此外,還包括復(fù)位(RSTB)和中斷信號(hào)的連接。STC11L08XE發(fā)出RSTB,并接收LD3320發(fā)出的中斷信號(hào)。還包括咪頭的偏置和電源去耦等輔助型電路。這些外圍電路均采用了較低頻率,且具有一定精度的元器件,使得本設(shè)計(jì)能夠滿足對(duì)高精度要求的設(shè)備使用需求。如REF_Ref7784902\h圖STYLEREF1\s3.5展示的是部分電路的連接方式,具體的電路圖可以在附錄2中查看。圖STYLEREF1\s3.SEQ圖\*ARABIC\s15語(yǔ)音模塊部分電路原理圖STC11L08XE工作電路在本研究課題中,語(yǔ)音識(shí)別系統(tǒng)的核心控制芯片是STC11L08XE,而STC11L08XE單片機(jī)則是一種增強(qiáng)型的51單片機(jī)。該單片機(jī)作為語(yǔ)音模塊的主控芯片,與LD3320芯片共同組成了一個(gè)語(yǔ)音信號(hào)識(shí)別系統(tǒng)。具體的工作電路可以參見(jiàn)REF_Ref7027301\h圖STYLEREF1\s3.6。圖STYLEREF1\s3.SEQ圖\*ARABIC\s16最小系統(tǒng)原理圖在模塊內(nèi)部,STC11L08XE單片機(jī)主要由單片機(jī)的最小系統(tǒng)、串行接口以及與LD3320相連的并行電路組成。在最小系統(tǒng)中,晶振使用的是22.1184M晶振,而LD_P0--LD_P7則是通過(guò)并口模式與LD3320相連,并利用并口模式對(duì)寄存器執(zhí)行讀寫(xiě)操作。數(shù)據(jù)采集部分采用了電壓電流雙通道采樣方式。串口電路是通過(guò)排針連接的,能夠與其他的單片機(jī)建立通訊。OLED顯示電路模塊OLED顯示工作原理介紹在本研究中,本次設(shè)計(jì)的產(chǎn)品選擇了0.96寸OLED作為顯示屏幕,這個(gè)顯示屏是由128*64個(gè)點(diǎn)陣構(gòu)成的。其核心驅(qū)動(dòng)芯片SSD1306是通過(guò)點(diǎn)亮相應(yīng)的液晶點(diǎn)來(lái)實(shí)現(xiàn)字符或圖片的顯示效果。SSD1306利用SPI協(xié)議來(lái)接收STM32F103C8T6的數(shù)據(jù),并按照STM32F103C8T6的指令來(lái)設(shè)定頁(yè)面坐標(biāo)、列坐標(biāo)以及顯示的內(nèi)容和范圍,控制示意圖如REF_Ref7907596\h圖STYLEREF1\s3.7展示:圖STYLEREF1\s3.SEQ圖\*ARABIC\s17單片機(jī)控制OLED示意圖SSD1306將128*64個(gè)像素點(diǎn)細(xì)分為8個(gè)頁(yè)面,每一頁(yè)都包含128*8個(gè)像素點(diǎn),正如REF_Ref7907243\h圖STYLEREF1\s3.8展示的那樣。SSD1306在屏幕上展示一個(gè)字母P是通過(guò)坐標(biāo)設(shè)置,然后根據(jù)接收到的顯示數(shù)據(jù)逐個(gè)點(diǎn)亮或熄滅,顯示的方向是從上到下,從左到右。圖STYLEREF1\s3.SEQ圖\*ARABIC\s18顯示方式示意圖OLED驅(qū)動(dòng)方式在本研究課題中,本次設(shè)計(jì)的產(chǎn)品選擇了SSD1306驅(qū)動(dòng)IC作為OLED顯示屏的驅(qū)動(dòng)方式。這種驅(qū)動(dòng)方式分為兩種:內(nèi)部升壓和外部升壓。如果選擇內(nèi)部升壓,那么在設(shè)計(jì)階段就可以避免使用升壓電路。本文介紹了一種新的驅(qū)動(dòng)方法——基于像素陣列結(jié)構(gòu)的外部升壓式驅(qū)動(dòng),并對(duì)該方法進(jìn)行了詳細(xì)說(shuō)明,給出了具體實(shí)現(xiàn)過(guò)程中需要注意的問(wèn)題以及改進(jìn)方案。SSD1306的內(nèi)容共有8頁(yè),每一頁(yè)的字節(jié)都是128K字節(jié),這使得它能夠形成一個(gè)128*64的點(diǎn)陣,通過(guò)激活不同的點(diǎn)來(lái)實(shí)現(xiàn)內(nèi)容的展示。OLED顯示部分與STM32F103C8T6的接口在本研究中,本次設(shè)計(jì)的產(chǎn)品使用STM32單片機(jī),并通過(guò)SPI協(xié)議與SSD1306進(jìn)行通信。所要展示的內(nèi)容是通過(guò)SPI協(xié)議在SSD1306的顯示內(nèi)存中記錄下來(lái)的。本文介紹了一種新的驅(qū)動(dòng)方法——基于像素陣列結(jié)構(gòu)的外部升壓式驅(qū)動(dòng),并對(duì)該方法進(jìn)行了詳細(xì)說(shuō)明,給出了具體實(shí)現(xiàn)過(guò)程中需要注意的問(wèn)題以及改進(jìn)方案。所使用的通信協(xié)議是基于4線SPI協(xié)議,涉及的引腳包括片選(CS)、時(shí)鐘線(D0)、數(shù)據(jù)線(D1)以及數(shù)據(jù)和命令控制管腳(DC),具體的連接方式如REF_Ref7907741\h圖STYLEREF1\s3.9展示:圖STYLEREF1\s3.SEQ圖\*ARABIC\s19OLED與STM32F103C8T6管腳連接圖按鍵電路設(shè)計(jì)本課題按鍵模塊由兩個(gè)輕觸型按鍵組成,如REF_Ref7027330\h圖STYLEREF1\s3.10所示,按鍵一端連接電路GND,一端連接STM32單片機(jī)。STM32通過(guò)外部中斷檢測(cè)按鍵是否按下,做出相應(yīng)的反應(yīng)。圖STYLEREF1\s3.SEQ圖\*ARABIC\s110按鍵電路原理圖復(fù)位電路設(shè)計(jì)本研究選擇了按鍵(低電平)復(fù)位作為復(fù)位方法,即通過(guò)按鍵為相應(yīng)的引腳提供一個(gè)低電平來(lái)實(shí)現(xiàn)自動(dòng)復(fù)位。復(fù)位電路的功能是將系統(tǒng)的工作狀態(tài)恢復(fù)到初始狀態(tài),具體的連接電路如REF_Ref7027341\h圖STYLEREF1\s3.11展示。按鍵SW1的功能是將高電平連接至STM32內(nèi)部的NRST引腳。當(dāng)NRST引腳上的脈沖寬度超過(guò)300納秒時(shí),將激活單片機(jī)的復(fù)位機(jī)制。當(dāng)需要對(duì)該內(nèi)容進(jìn)行修改時(shí),可以將其寫(xiě)入到新的存儲(chǔ)空間中去,從而實(shí)現(xiàn)了一個(gè)完整的系統(tǒng)。在此電路設(shè)計(jì)中,電容的充電時(shí)間計(jì)算公式為:T=1.1RC=1.1*10000*0.0000001=0.0011s=1.1ms圖STYLEREF1\s3.SEQ圖\*ARABIC\s111復(fù)位電路原理圖電源輸入電路設(shè)計(jì)本研究項(xiàng)目的電源是由USB輸入的5V電源提供的,D9和R13共同組成了電源指示燈電路,其中D9作為發(fā)光二極管,而R13則負(fù)責(zé)分壓保護(hù)功能。本設(shè)計(jì)主要介紹了復(fù)位電路的原理、實(shí)現(xiàn)方法和注意事項(xiàng)。AMS1117-3.3被定義為一個(gè)正向低壓穩(wěn)定降壓器,也被稱(chēng)作電平轉(zhuǎn)換設(shè)備,它的輸入電壓范圍是5~12V,而輸出電壓則是3.3V。在設(shè)計(jì)中主要考慮到了低功耗、低成本以及與其他芯片接口簡(jiǎn)單等問(wèn)題。AMS1117-3.3提供了固定輸出與可調(diào)輸出兩種不同的版本供用戶選擇。本課題選擇了AMS1117-3.3的固定輸出版本,該版本具有高穩(wěn)壓精度和內(nèi)部限流、過(guò)熱斷流功能,工作溫度范圍從-40℃~125℃,電源輸入電路如REF_Ref7979072\h圖STYLEREF1\s3.12所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s112電源輸入電路原理圖C4與C6、C5與C7構(gòu)成了兩套濾波電容器,它們各自去除了5V的輸入端和3.3V的輸出端電路中的干擾電壓,以避免進(jìn)一步的干擾。在本設(shè)計(jì)中,經(jīng)過(guò)深思熟慮與精細(xì)計(jì)算,本次產(chǎn)品設(shè)計(jì)中選用了電容值為100nf的電容,用以濾除電路中可能產(chǎn)生的高頻與低頻干擾。為了有效防止瞬時(shí)電壓過(guò)高對(duì)電容造成損害,我們采用了電容耐壓值為工作電壓一倍,即10V或更高的設(shè)計(jì)方案,以確保產(chǎn)品的穩(wěn)定性與可靠性。晶振電路設(shè)計(jì)晶振,亦稱(chēng)為晶體振蕩器,為單片機(jī)提供必要的時(shí)鐘頻率。此時(shí)鐘在單片機(jī)內(nèi)部起著至關(guān)重要的作用,確保系統(tǒng)電路的有序、穩(wěn)定運(yùn)行。如果一個(gè)單片機(jī)沒(méi)有了這個(gè)晶振就無(wú)法運(yùn)行,所以晶振對(duì)單片機(jī)來(lái)說(shuō)非常重要,它不僅關(guān)系著單片機(jī)能否正常工作而且還會(huì)影響到單片機(jī)的其他功能。STM32單片機(jī)內(nèi)置了3個(gè)時(shí)鐘源,但為了確保整個(gè)電路的正常運(yùn)行,還需額外增設(shè)兩個(gè)外部晶振電路,具體的電路圖可以參考REF_Ref8299583\h圖STYLEREF1\s3.13和REF_Ref19048\h圖STYLEREF1\s3.14。圖STYLEREF1\s3.SEQ圖\*ARABIC\s113外部低速晶振電路原理圖圖STYLEREF1\s3.SEQ圖\*ARABIC\s114外部高速晶振電路原理圖這是一個(gè)高速的外部時(shí)鐘電路,它與外部時(shí)鐘源相連,其頻率范圍為4-16MHz。在本研究中,本次設(shè)計(jì)的產(chǎn)品選擇了8M的高速晶振,經(jīng)過(guò)倍頻處理后,它可以達(dá)到最高72MHz的工作頻率;此外,低速的外部時(shí)鐘通常連接在石英晶體上,其頻率大約是32.7kHz;通過(guò)對(duì)這兩種不同類(lèi)型的外部時(shí)鐘進(jìn)行分析比較,選擇出一種適合本系統(tǒng)使用的內(nèi)部時(shí)鐘源。在電路設(shè)計(jì)中,電容的主要功能是確保輸出的震動(dòng)頻率更為穩(wěn)定。下載電路設(shè)計(jì)在本課題中,本次設(shè)計(jì)的產(chǎn)品選擇了KEIL平臺(tái)下的SWD下載模式作為下載系統(tǒng)。這種模式只需連接四條線,從而節(jié)省了PCB板上的資源并減少了接線,具體的連接方法可以參考REF_Ref8070965\h圖STYLEREF1\s3.15。圖STYLEREF1\s3.SEQ圖\*ARABIC\s115下載電路原理圖這類(lèi)下載系統(tǒng)通常都要求安裝一個(gè)調(diào)試器,其中J-link和ST-link是比較常見(jiàn)的調(diào)試器。在使用過(guò)程中發(fā)現(xiàn)這兩種燒寫(xiě)設(shè)備存在一些問(wèn)題,如不能實(shí)現(xiàn)多線程同時(shí)運(yùn)行,且只能通過(guò)文件訪問(wèn)模式進(jìn)行數(shù)據(jù)讀取,操作較為復(fù)雜等。在這個(gè)設(shè)計(jì)中,本次設(shè)計(jì)的產(chǎn)品選擇了ST-LINK燒寫(xiě)器,并且下載電路的接口與燒寫(xiě)器的3.3V、SWDIO、SWCLK和GND進(jìn)行了連接。燒寫(xiě)時(shí)將下載到燒寫(xiě)器中的數(shù)據(jù)寫(xiě)入存儲(chǔ)器里,再通過(guò)燒寫(xiě)器與外部設(shè)備進(jìn)行通信。完成連接后,你可以選擇MDKKeil5的下載模式,點(diǎn)擊“魔棒”選項(xiàng)卡后,選擇Debug選項(xiàng),并在下拉菜單中選擇ST-LINKDegbug選項(xiàng)。完成選擇后,你可以點(diǎn)擊旁邊的setting選項(xiàng)。當(dāng)出現(xiàn)故障時(shí),首先將燒寫(xiě)器中的所有數(shù)據(jù)都保存到內(nèi)存里,然后打開(kāi)燒寫(xiě)器的電源鍵即可進(jìn)行燒寫(xiě)。在MDKKeil5中,如果連接狀態(tài)良好且最小系統(tǒng)正常運(yùn)行,你會(huì)發(fā)現(xiàn)一個(gè)十六進(jìn)制的序列號(hào),這表明燒寫(xiě)電路是正常的,可以進(jìn)行正常的燒寫(xiě)操作。啟動(dòng)方式選擇電路STM32單片機(jī)有三種啟動(dòng)方式,是通過(guò)復(fù)位時(shí)BOOT0和BOOT1不同的電平來(lái)確定啟動(dòng)方式,3種方式的引腳配置電平如REF_Ref8071537\h表STYLEREF1\s3.3所示。表STYLEREF1\s3.SEQ表\*ARABIC\s13啟動(dòng)方式引腳配置介紹方式引腳配置介紹BOOT1BOOT00X0該程序是從用戶的閃存(flash)中啟動(dòng)的。在利用SWD或JTAG模式進(jìn)行下載時(shí),下載內(nèi)容將直接存入此閃存。啟動(dòng)程序時(shí),亦是直接從該閃存中啟動(dòng)。111從內(nèi)置SRAM(內(nèi)存)啟動(dòng)的,這種模式一般很少使用,因?yàn)槠涑绦蚬δ苁翘崆霸O(shè)置好的,通常STM32在出廠就內(nèi)置了一段bootloader,即ISP程序,存放在一塊掉電存儲(chǔ)內(nèi)存,這個(gè)在出廠之后是無(wú)法進(jìn)行修改,這種啟動(dòng)模式是為了從串口下載程序,因?yàn)閺S家提供bootLoader中,可以通過(guò)bootloader將程序下載到系統(tǒng)Flash中。201該系統(tǒng)存儲(chǔ)器啟動(dòng)的調(diào)試方法,既適用于全局調(diào)試,也適用于局部代碼修改后的調(diào)試工作。本課題使用SWD模式下載,所以選用的是啟動(dòng)方式0,將兩個(gè)引腳置為低電平,電路連接如下REF_Ref7027470\h圖STYLEREF1\s3.16所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s116啟動(dòng)方式選擇原理圖LED燈組電路設(shè)計(jì)本課題由6個(gè)LED燈珠組成LED燈組模塊,電路連接如REF_Ref7027480\h圖STYLEREF1\s3.17所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s117LED燈組連接電路燈珠的一端連接著STM32F103定時(shí)器1,以及四個(gè)定時(shí)器的6個(gè)PWM波輸出引腳,而另一端則與電路GND相連。STM32單片機(jī)利用定時(shí)器產(chǎn)生不同的PWM波占空比,從而實(shí)現(xiàn)對(duì)LED燈亮度的精確控制。本章小結(jié)在本章中,本次設(shè)計(jì)的產(chǎn)品詳盡地探討了與課題相關(guān)的硬件電路設(shè)計(jì),包括STM32單片機(jī)主控模塊、語(yǔ)音識(shí)別模塊、顯示模塊、按鍵模塊、復(fù)位電路和晶振電路等。首先,本次設(shè)計(jì)的產(chǎn)品描述了所選擇的STM32F103C8T6單片機(jī)的核心特性、一些關(guān)鍵的引腳和最小系統(tǒng)的組成;接下來(lái),本次設(shè)計(jì)的產(chǎn)品將詳細(xì)介紹LD3320語(yǔ)音模塊的電路設(shè)計(jì)、工作機(jī)制,以及內(nèi)置的增強(qiáng)型51單片機(jī)STC11L80XE芯片等相關(guān)內(nèi)容;接下來(lái),本次設(shè)計(jì)的產(chǎn)品將深入探討OLED顯示屏模塊的工作機(jī)制和驅(qū)動(dòng)方法。在文末,我們將簡(jiǎn)潔地闡述各個(gè)電路部分的設(shè)計(jì)思路。在進(jìn)行硬件設(shè)計(jì)時(shí),必須仔細(xì)考慮每個(gè)組件的特性,這樣在連接時(shí)才能確保操作的嚴(yán)謹(jǐn)性。特別是在處理語(yǔ)音信號(hào)或識(shí)別連接的微小差異時(shí),可能會(huì)對(duì)語(yǔ)音信息的識(shí)別產(chǎn)生不良影響。具體的調(diào)試方法將在接下來(lái)的章節(jié)中詳細(xì)描述。系統(tǒng)軟件設(shè)計(jì)概述整個(gè)程序的設(shè)計(jì)主要分為STM32F103C8T6單片機(jī)IO的初始化程序設(shè)計(jì)、OLED顯示程序設(shè)計(jì)、PWM波輸出程序設(shè)計(jì)、LD3320語(yǔ)音識(shí)別程序設(shè)計(jì)等,設(shè)計(jì)的框架如下REF_Ref7985666\h圖4.1所示。圖4.SEQ圖\*ARABIC\s11總體設(shè)計(jì)框架程序代碼的編寫(xiě)環(huán)境和燒錄程序代碼編寫(xiě)環(huán)境在國(guó)內(nèi),Keil<unk>MDK<unk>IAR這兩大集成開(kāi)發(fā)環(huán)境是STM32單片機(jī)程序編寫(xiě)的常見(jiàn)選擇。首先,讓我們來(lái)了解一下RealViewMDK,也被稱(chēng)為KeilMDK,它是眾多開(kāi)發(fā)環(huán)境中的一個(gè)常見(jiàn)選擇,同時(shí)也有MDK-ARM、uVision5等別名(之前的版本包括uVision4、uVision3、uVision2)。KEIL,一家德國(guó)的軟件公司,將其作為單片機(jī)軟件的開(kāi)發(fā)平臺(tái)。目前,ARM,一家英國(guó)著名的公司,已經(jīng)收購(gòu)了它。ARM公司與其他代理商合作,為其提供了一系列的開(kāi)發(fā)技術(shù)支持和服務(wù)。完成收購(gòu)后,他們開(kāi)發(fā)的軟件被命名為KeilMDK,而最新的版本是KeilMDK5.27,它由MDKCore和SoftwarePacks兩部分構(gòu)成。在這個(gè)版本中,主要增加了一些新的功能模塊,如串口擴(kuò)展模塊,以及對(duì)程序進(jìn)行編譯后可以直接安裝到單片機(jī)上的一個(gè)插件,使得整個(gè)系統(tǒng)更加方便靈活。經(jīng)過(guò)對(duì)KeilMDK5版本的深入研究,我們發(fā)現(xiàn)其與過(guò)往版本存在顯著區(qū)別。具體而言,MDK5將軟件運(yùn)行的核心代碼與單片機(jī)支持包代碼進(jìn)行了明確劃分,形成了兩個(gè)獨(dú)立且相互協(xié)作的模塊。這種創(chuàng)新的設(shè)計(jì)思路使得MDK5的支持包進(jìn)一步細(xì)化為deviceCMSIS和Mdidleware兩部分,從而提升了代碼的可讀性和可維護(hù)性。除此之外,KeilMDK5還引入了全新的管理器功能,并對(duì)LWIP提供了全面支持。這些新增功能不僅豐富了MDK5的功能模塊,還進(jìn)一步提升了其在實(shí)際應(yīng)用中的性能表現(xiàn)。值得一提的是,KeilMDK5的SWD下載速度相較于Keil4提升了整整5倍。這一顯著的提升將為用戶帶來(lái)更加流暢和高效的編程體驗(yàn)。與此同時(shí),MDK5依然保留了過(guò)往版本中的諸多實(shí)用功能,如編譯器、安裝包、調(diào)試跟蹤等,從而為用戶提供了全方位的功能服務(wù)。接下來(lái),我要為大家詳細(xì)介紹IARforARM(也稱(chēng)為IAREmbeddedWorkbenchforARM)。這是由IARSystems公司專(zhuān)門(mén)研發(fā)的一個(gè)開(kāi)發(fā)平臺(tái),專(zhuān)為微處理器設(shè)計(jì)。它能夠兼容多種芯片內(nèi)核,如ARM、MSP430、AVR等,確實(shí)是一個(gè)非常實(shí)用的開(kāi)發(fā)環(huán)境。另外還提供一些相關(guān)的應(yīng)用開(kāi)發(fā)包以及測(cè)試平臺(tái)。最新推出的IARforARM8.1版本擁有更緊湊、更快速、更高度智能化的開(kāi)發(fā)環(huán)境,能為用戶提供更優(yōu)質(zhì)的使用體驗(yàn)。此外,該版本還配備了C/C++編譯器、匯編器以及全面繼承的調(diào)試和性能分析工具。在調(diào)試過(guò)程中,也進(jìn)行了一系列優(yōu)化措施,以提升調(diào)試效率。所有這些新增和優(yōu)化的功能都能有效地協(xié)助用戶在學(xué)習(xí)和開(kāi)發(fā)過(guò)程中,編寫(xiě)出更為規(guī)范和標(biāo)準(zhǔn)化的軟件程序。STM32CubeMX是ST公司專(zhuān)為STM32系列單片機(jī)設(shè)計(jì)的,它能夠迅速地構(gòu)建新的工程項(xiàng)目,并通過(guò)圖形化編程方式簡(jiǎn)化了STM32外設(shè)的使用難度。這些外設(shè)的配置非常直觀,使得在熟練掌握的前提下,可以迅速地初始化所需的外設(shè)、GPIO等,從而顯著減少了開(kāi)發(fā)和使用的時(shí)間。同時(shí)它也提供了多種接口供用戶選擇,包括串行/并行方式以及總線式連接等等。STM32CubeMX對(duì)其代碼的結(jié)構(gòu)和設(shè)計(jì)風(fēng)格進(jìn)行了統(tǒng)一,經(jīng)過(guò)二次開(kāi)發(fā),STM32CubeMX能夠直接產(chǎn)生代碼。本文介紹了基于這種設(shè)計(jì)思想開(kāi)發(fā)出來(lái)的一款軟件。這款軟件存在一個(gè)明顯的缺陷,那就是它對(duì)底層功能進(jìn)行了屏蔽。由于屏蔽了底層,大部分編程任務(wù)只能在抽象層上完成。因此,一旦遇到任何問(wèn)題,定位問(wèn)題的根源將變得異常困難。另外,這款軟件沒(méi)有專(zhuān)門(mén)針對(duì)硬件接口進(jìn)行編寫(xiě)的功能,對(duì)于不同類(lèi)型的接口函數(shù)不能通用。此外,這個(gè)軟件對(duì)于初學(xué)者來(lái)說(shuō)不太友好,也不容易讓他們理解單片機(jī)的工作機(jī)制。綜合考慮,本次設(shè)計(jì)的產(chǎn)品選擇了ARM公司子公司KeilMDK作為本課題的編譯器,正如REF_Ref7027493\h圖4.2展示的那樣。圖4.SEQ圖\*ARABIC\s12KeilMDK編譯器界面選擇KeilMDK的主要原因在于其兩大優(yōu)勢(shì):一是STM32單片機(jī)采用了ARM公司的M3內(nèi)核,而KeilMDK能夠?qū)ζ溥M(jìn)行優(yōu)化,因此更適合STM32系列單片機(jī);二是MDK支持多種單片機(jī)配置包的安裝,具備廣泛的兼容性,同時(shí)提供了大量成熟且實(shí)用的工程代碼,為開(kāi)發(fā)者提供了寶貴的學(xué)習(xí)和參考資源。在本次課題中,采用了多個(gè).c文件分別編寫(xiě)不同的硬件底層程序。其中,lib文件夾存放STM32固件庫(kù)文件,cmsis文件夾包含M3內(nèi)核啟動(dòng)文件及STM32f10x系列啟動(dòng)文件,而hardware文件夾則涵蓋了主要硬件模塊的底層程序,如OLEDLD3320、定時(shí)器PWM波輸出、按鍵和外部中斷等。經(jīng)過(guò)對(duì)各進(jìn)程的細(xì)致調(diào)試,成功完成了整個(gè)系統(tǒng)的開(kāi)發(fā)工作,并將其應(yīng)用于實(shí)際產(chǎn)品中,成功實(shí)現(xiàn)了既定目標(biāo)。System文件夾負(fù)責(zé)初始化延時(shí)函數(shù)、中斷分級(jí)處理以及串口初始化等重要任務(wù)。程序代碼的燒寫(xiě)STM32F103C8T6提供了眾多的下載選項(xiàng),如USB、串口、JTAG、SDW等。在本研究中,本次設(shè)計(jì)的產(chǎn)品采用了MDK編譯器進(jìn)行下載,并通過(guò)ST-Link下載器的SWD模式將其導(dǎo)入單片機(jī)。具體的燒寫(xiě)界面可以參考REF_Ref7984261\h圖4.3。圖4.SEQ圖\*ARABIC\s13MDK燒寫(xiě)設(shè)置主函數(shù)設(shè)計(jì)在主程序中,首要步驟是順序執(zhí)行各模塊的初始化程序,確保OLED顯示、定時(shí)器以及串口通信等組件均正確初始化。隨后,程序?qū)⑦M(jìn)入一個(gè)持續(xù)循環(huán),執(zhí)行switchcase函數(shù)。在此循環(huán)中,程序?qū)⒄{(diào)用PWM波生成模塊以控制LED燈的亮度,并調(diào)用OLED顯示屏顯示模塊以更新界面內(nèi)容。為了確保程序的靈活性和可擴(kuò)展性,對(duì)各種可能的命令進(jìn)行了明確定義,并實(shí)現(xiàn)了相應(yīng)的處理邏輯。通過(guò)監(jiān)聽(tīng)串口接收的數(shù)據(jù)和按鍵輸入,程序能夠?qū)崟r(shí)響應(yīng)外部事件,并根據(jù)需要調(diào)整switch的控制參數(shù)。這種機(jī)制使得PWM波輸出和OLED顯示內(nèi)容能夠根據(jù)用戶的操作或外部觸發(fā)事件進(jìn)行動(dòng)態(tài)調(diào)整,從而提供了豐富的交互性和適應(yīng)性。以下是其主要函數(shù)的程序描述,而主要程序的流程圖可以在REF_Ref7906307\h圖4.4中找到。圖4.SEQ圖\*ARABIC\s14主程序流程圖主程序代碼如下所示:intmain(void){ delay_init(); //延時(shí)函數(shù)初始化 NVIC_Configuration(); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí) LED_Init(); //LED端口初始化 OLED_Init(); //初始化OLED OLED_Clear(); TIM1_PWM_Init();//TIM1PWM波輸出初始化,并使能TIM1PWM輸出 usart2_Init(9600); //初始化串口2 EXTIX_Init(); intj; show_name(); My_USART2_SendData("123"); while(1) { j=ld3320_uart_receive();//得到接受函數(shù)的字符串buff pwm_led_out_test(lighter); switch(j) { case1:show_name();break;//小陳 case2://亮一點(diǎn) My_USART2_SendData("ligther"); if(lighter<5)//如果亮度還不滿5 {lighter++;show_light(lighter);}//顯示亮度 else {show_zuida();}break;//屏幕提示已達(dá)最大亮度 case3://變暗 if(lighter>0) {lighter--;show_light(lighter);}//顯示亮度 else {show_zuidi();}break;//屏幕提示已達(dá)最低亮度 case4:lighter=3;show_light(lighter);break;//開(kāi)燈,默認(rèn)亮度等級(jí)3,60% case5:lighter=0;show_ling();break;//關(guān)燈 case6:lighter=1;show_ershi();break;//亮度20 case7:lighter=3;show_liushi();break;//亮度60 case8:lighter=5;show_yibai();break; //亮度100 case9:show_chongfa();break;//顯示請(qǐng)重新發(fā)口令 case10:show_chongfa(); break;//顯示請(qǐng)重新發(fā)口令 default:break; } }}OLED液晶顯示程序設(shè)計(jì)顯示初始化程序設(shè)計(jì)在主程序中,首要任務(wù)是順序調(diào)用各個(gè)模塊的初始化程序,包括OLED顯示初始化、定時(shí)器設(shè)置以及串口通信配置等關(guān)鍵步驟。隨后,主程序?qū)⑦M(jìn)入一個(gè)持續(xù)循環(huán),執(zhí)行switch-case函數(shù)邏輯。在這個(gè)過(guò)程中,主程序?qū)⒄{(diào)用PWM波輸出控制LED燈的程序,以及負(fù)責(zé)更新OLED顯示屏顯示內(nèi)容的函數(shù)。為確保程序功能的準(zhǔn)確實(shí)現(xiàn),預(yù)先定義了各種命令,并為每個(gè)命令編寫(xiě)了相應(yīng)的處理邏輯。通過(guò)串口接收數(shù)據(jù)和按鍵輸入產(chǎn)生的中斷信號(hào),主程序能夠動(dòng)態(tài)地調(diào)整switch的控制參數(shù)。這種靈活的配置方式,使得PWM波的輸出以及OLED顯示屏的展示內(nèi)容能夠根據(jù)實(shí)際需求進(jìn)行實(shí)時(shí)調(diào)整。以下是其主要函數(shù)的程序描述,而主要程序的流程圖可以在REF_Ref7905053\h圖4.5中找到。圖4.SEQ圖\*ARABIC\s15初始化流程圖部分代碼如下所示://初始化SSD1306通信引腳 voidOLED_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能A端口時(shí)鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度50MHz GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_4); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能A端口時(shí)鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度50MHz GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8);OLED_RST_Set(); delay_ms(100); OLED_RST_Clr(); delay_ms(200); OLED_RST_Set();//復(fù)位過(guò)程顯示取模程序設(shè)計(jì)為了實(shí)現(xiàn)在OLED屏幕上顯示字符,首要步驟是獲取這些待顯示字符的字模數(shù)據(jù)。這些字模數(shù)據(jù)可通過(guò)PCtoLCD2002這款專(zhuān)業(yè)軟件獲取。該軟件不僅支持字符模式,還能處理圖片模式,并允許用戶自定義字模大小。在本課題中,選用了字符模式,每個(gè)字符的尺寸設(shè)定為16*16像素。在取模方式上,采用了逆向列行式,即從頂部到底部、從左至右、從高位至低位進(jìn)行。同時(shí),為了確保數(shù)據(jù)兼容性和可讀性,選擇了C51格式來(lái)生成字模數(shù)據(jù),并以16進(jìn)制形式進(jìn)行輸出。這樣的處理方式確保了字模數(shù)據(jù)的準(zhǔn)確性和顯示效果的高質(zhì)量。具體設(shè)置如下REF_Ref7806665\h圖4.6所示:圖4.SEQ圖\*ARABIC\s16取模設(shè)置這款軟件允許用戶直接創(chuàng)建數(shù)字、字母和漢字的模型。若有特定的顯示內(nèi)容,用戶可以選擇使用圖片模式或自己設(shè)計(jì)的取模方法。獲取的模將被保存在oledfont.h文件中,并為其分配編號(hào),以方便后續(xù)的選擇。以下是本課題中部分取模的示例:{0x00,0xFE,0x22,0x5A,0x86,0x08,0x88,0x68,0x18,0x0F,0xE8,0x08,0x08,0x08,0x08,0x00},{0x00,0xFF,0x04,0x08,0x07,0x20,0x11,0x0D,0x41,0x81,0x7F,0x01,0x05,0x09,0x30,0x00},/*"陳",16*/{0x02,0x02,0x0A,0xEA,0xAA,0xAA,0xAA,0xAF,0xAA,0xAA,0xAA,0xEA,0x0A,0x02,0x02,0x00},{0x82,0x4A,0x2A,0x1E,0x0B,0x4A,0x8A,0x7A,0x02,0xFA,0x4B,0x4A,0x4A,0xFA,0x02,0x00},/*"嘉",17*/{0x80,0x70,0x00,0xFF,0x08,0x10,0x40,0x60,0x50,0x4C,0x43,0x40,0x50,0x60,0xC0,0x00},{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00},/*"怡",18*/通過(guò)調(diào)用OLED_ShowCHinese函數(shù),可以讀取字符的二維數(shù)組數(shù)值。在此函數(shù)內(nèi)部,使用了OLED_Set_Pos函數(shù)來(lái)設(shè)置字符的起始坐標(biāo)。接著,利用OLED_WR_Byte函數(shù),我們可以對(duì)特定字符及其對(duì)應(yīng)的字模進(jìn)行掃描并顯示在OLED屏幕上。這一流程確保了字符能夠準(zhǔn)確、穩(wěn)定地顯示在預(yù)定的位置上。部分代碼如下所示:OLED_ShowCHinese(0,0,0);//智OLED_ShowCHinese(18,0,1);//能OLED_ShowCHinese(36,0,2);//語(yǔ)OLED_ShowCHinese(54,0,3);//音OLED_ShowCHinese(72,0,4);//柔OLED_ShowCHinese(90,0,5);//光OLED_ShowCHinese(108,0,6);//燈OLED_ShowCHinese(0,3,7);//導(dǎo)OLED_ShowCHinese(18,3,8);//師OLED_ShowCHinese(36,3,9);//:OLED_ShowCHinese(54,3,10);//王OLED_ShowCHinese(72,3,11);//玉OLED_ShowCHinese(90,3,12);//青OLED_ShowCHinese(0,6,13);//學(xué)OLED_ShowCHinese(18,6,14);//生OLED_ShowCHinese(36,6,15);//:OLED_ShowCHinese(54,6,16);//陳OLED_ShowCHinese(72,6,17);//嘉OLED_ShowCHinese(90,6,18);//怡voidOLED_ShowCHinese(u8x,u8y,u8no){ u8t,adder=0; OLED_Set_Pos(x,y); for(t=0;t<16;t++) { OLED_WR_Byte(Hzk[2*no][t],OLED_DATA); adder+=1;} OLED_Set_Pos(x,y+1); for(t=0;t<16;t++) { OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA); adder+=1;} }語(yǔ)音識(shí)別程序流程設(shè)計(jì)LD3320模塊設(shè)有兩種工作模式:語(yǔ)音識(shí)別與MP3播放。在本課題的產(chǎn)品設(shè)計(jì)中,選擇了語(yǔ)音識(shí)別模式作為主要功能。軟件設(shè)計(jì)方面,涵蓋了初始化程序設(shè)計(jì)、關(guān)鍵字列表程序設(shè)計(jì)、語(yǔ)音識(shí)別程序啟動(dòng)設(shè)計(jì)以及中斷響應(yīng)程序設(shè)計(jì)等多個(gè)關(guān)鍵環(huán)節(jié)。需要特別注意的是,在編寫(xiě)關(guān)鍵字及中斷響應(yīng)程序時(shí),每個(gè)關(guān)鍵字均分配有一個(gè)唯一編號(hào),這些編號(hào)按特定順序排列,但無(wú)需連續(xù)。系統(tǒng)支持最多50個(gè)關(guān)鍵字,每個(gè)關(guān)鍵字漢字的拼音字符應(yīng)以空格分隔。本課題的關(guān)鍵字共有8個(gè),如REF_Ref7809727\h表4.1所示。表4.SEQ表\*ARABIC\s11語(yǔ)音識(shí)別關(guān)鍵字列表序號(hào)識(shí)別指令字符串1小陳xiaochen2變暗kaideng3亮一點(diǎn)guandeng4開(kāi)燈liangyidian5關(guān)燈bianan6亮度20liangduershi7亮度60liangduliushi8亮度100liangduyibai為確保操作的精確性與穩(wěn)定性,將對(duì)需要識(shí)別的關(guān)鍵字進(jìn)行編號(hào),隨后依照編號(hào)的次序,將這些關(guān)鍵字逐一寫(xiě)入寄存器05中。當(dāng)寄存器05成功識(shí)別這些關(guān)鍵字的字符長(zhǎng)度后,會(huì)將長(zhǎng)度信息妥善保存在寄存器B9中。緊接著,將寄存器B2配置為0xff,即DSP忙時(shí)狀態(tài),以確保數(shù)據(jù)處理的連續(xù)性與穩(wěn)定性。隨后,通過(guò)配置寄存器37為0x04,向DSP發(fā)出添加關(guān)鍵字的準(zhǔn)備指令。若在操作過(guò)程中遇到任何異常,將立即對(duì)語(yǔ)音識(shí)別芯片進(jìn)行復(fù)位,并重新啟動(dòng)芯片工作,以確保整體系統(tǒng)的穩(wěn)健運(yùn)行。具體的流程如下REF_Ref7811909\h圖STYLEREF1\s4.7所示。圖4.SEQ圖\*ARABIC\s17語(yǔ)音識(shí)別關(guān)鍵字編寫(xiě)程序流程圖關(guān)鍵字編號(hào)排序代碼如下所示:#defineCODE_XC0x00//小陳#defineCODE_BA0x01 //變暗#defineCODE_LYD 0x02 //亮一點(diǎn)#defineCODE_KD0x04 //開(kāi)燈#defineCODE_GD0x05 //關(guān)燈#defineCODE_LDES0x16 //亮度20#defineCODE_LDLS0x17 //亮度60#defineCODE_LDYB0x2f //亮度100uint8codesRecog[DATE_A][DATE_B]={ "xiaochen",\ "bianan",\ "liangyidian",\ "kaideng",\ "guandeng",\ "liangduershi",\ "liangduliushi",\ "liangduyibai"}在咪頭采集語(yǔ)音數(shù)據(jù)時(shí),無(wú)論識(shí)別結(jié)果如何,中斷程序均會(huì)觸發(fā)一次響應(yīng)。為評(píng)估識(shí)別信息的準(zhǔn)確性,寄存器BA將對(duì)識(shí)別出的信息分配一個(gè)1至4的評(píng)分。評(píng)分越高,信息被正確識(shí)別的可能性越大。在此過(guò)程中,最高評(píng)分的內(nèi)容將被優(yōu)先選擇,并存放于寄存器C5、C7、C9和CB中。本研究的核心目標(biāo)是選定評(píng)分最高的答案,即寄存器C5中的信息作為最終答案。隨后,本產(chǎn)品將把這些答案與預(yù)設(shè)的關(guān)鍵詞列表進(jìn)行比對(duì),輸出與答案最相近的詞的編號(hào),進(jìn)而執(zhí)行相應(yīng)的操作。詳細(xì)內(nèi)容如下REF_Ref8299739\h圖STYLEREF1\s4.8展示。圖4.SEQ圖\*ARABIC\s18語(yǔ)音識(shí)別系統(tǒng)中斷服務(wù)程序流程部分代碼如下所示:voidProcessInt0(void){ uint8nAsrResCount=0; EX0=0;//外部中斷0允許位:不允許 ucRegVal=LD_ReadReg(0x2B); LD_WriteReg(0x29,0);//中斷允許寄存器 LD_WriteReg(0x02,0);//FIFO中斷允許位 if((ucRegVal&0x10)&&LD_ReadReg(0xb2)==0x21&&LD_ReadReg(0xbf)==0x35)//b2:DSP忙閑狀態(tài),0x21表閑,可以進(jìn)行下一步ASR動(dòng)作;bf:ASR狀態(tài)報(bào)告寄存器,確定一次語(yǔ)音識(shí)別流程正常結(jié)束,識(shí)別成功 { nAsrResCount=LD_ReadReg(0xba); if(nAsrResCount>0&&nAsrResCount<=4)//BA寄存器對(duì)內(nèi)容進(jìn)行評(píng)分 { nAsrStatus=LD_ASR_FOUNDOK;//0x10一次識(shí)別結(jié)束后有一個(gè)識(shí)別結(jié)果 } else { nAsrStatus=LD_ASR_FOUNDZERO;//0x11一次識(shí)別結(jié)束后沒(méi)有識(shí)別結(jié)果 } } else
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 天津海運(yùn)職業(yè)學(xué)院《展示設(shè)計(jì)基礎(chǔ)》2024-2025學(xué)年第一學(xué)期期末試卷
- 河西學(xué)院《數(shù)字化產(chǎn)品設(shè)計(jì)與工藝(二)》2024-2025學(xué)年第一學(xué)期期末試卷
- 湖北工程職業(yè)學(xué)院《苗(侗)銀飾設(shè)計(jì)與制作》2024-2025學(xué)年第一學(xué)期期末試卷
- 天津工程職業(yè)技術(shù)學(xué)院《趣味體操》2024-2025學(xué)年第一學(xué)期期末試卷
- 2025版二手房買(mǎi)賣(mài)合同分期支付傭金范本
- XX醫(yī)療器械企業(yè)簡(jiǎn)稱(chēng)2022年度社會(huì)責(zé)任報(bào)告:NGO倡導(dǎo)下的醫(yī)療器械行業(yè)ESG責(zé)任履行
- 2025年微光器件行業(yè)當(dāng)前競(jìng)爭(zhēng)格局與未來(lái)發(fā)展趨勢(shì)分析報(bào)告
- 2025年煉化一體化行業(yè)當(dāng)前發(fā)展趨勢(shì)與投資機(jī)遇洞察報(bào)告
- 2025年紡織機(jī)械行業(yè)當(dāng)前市場(chǎng)規(guī)模及未來(lái)五到十年發(fā)展趨勢(shì)報(bào)告
- 2025年高等教育機(jī)構(gòu)招生行業(yè)當(dāng)前發(fā)展趨勢(shì)與投資機(jī)遇洞察報(bào)告
- 破碎崗位安全管理制度
- 2025電氣設(shè)計(jì)強(qiáng)條
- 2025年中國(guó)城市禮物發(fā)展白皮書(shū)
- 中國(guó)LNG船用低溫泵行業(yè)市場(chǎng)占有率及投資前景預(yù)測(cè)分析報(bào)告
- 山東藝術(shù)學(xué)院招聘筆試真題2024
- AI人工智能教學(xué)課件工具
- ab股股權(quán)協(xié)議書(shū)
- 專(zhuān)題12 文言文閱讀02 《醉翁亭記》-三年(2022-2024)中考語(yǔ)文真題匯編(全國(guó))(含解析)
- 婦科疾病超聲診斷課件:深入解析超聲影像在婦科疾病診斷中的應(yīng)用
- 部編版二上語(yǔ)文第一單元教材解讀
- 鍋爐作業(yè)考試試題及答案
評(píng)論
0/150
提交評(píng)論