《基于STM32的多功能數(shù)字時(shí)鐘設(shè)計(jì)》12000字_第1頁
《基于STM32的多功能數(shù)字時(shí)鐘設(shè)計(jì)》12000字_第2頁
《基于STM32的多功能數(shù)字時(shí)鐘設(shè)計(jì)》12000字_第3頁
《基于STM32的多功能數(shù)字時(shí)鐘設(shè)計(jì)》12000字_第4頁
《基于STM32的多功能數(shù)字時(shí)鐘設(shè)計(jì)》12000字_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

[20]。組件的調(diào)用和基本操作被寫入固件庫的通用子功能中,為復(fù)雜的硬件操作實(shí)現(xiàn)了功能封裝,這使程序編寫者能夠獲得更高的透明度,不用顧及底層設(shè)計(jì)。在以51單片機(jī)為代表的8位機(jī)由于硬件系統(tǒng)相對(duì)簡(jiǎn)單,通??梢圆捎弥苯优渲眉拇嫫鞯姆绞絹磉M(jìn)行應(yīng)用開發(fā);而32位處理器內(nèi)核系統(tǒng)復(fù)雜,外設(shè)資源比較豐富,如果應(yīng)用系統(tǒng)仍舊采用傳統(tǒng)的寄存器設(shè)計(jì)方式,直接操作寄存器來控制外圍設(shè)備,操作困難、可移植性差,不太可能適應(yīng)較為復(fù)雜的工程應(yīng)用。意法半導(dǎo)體官方提供的技術(shù),即基于固件庫的技術(shù)思想提供了新思路用以解決以上的問題。程序編寫者按照CMSIS標(biāo)準(zhǔn)(CortexMicrocontrollerSoftwareInterfaceStandard)構(gòu)建工程以實(shí)現(xiàn)具體任務(wù)要求,利用固件庫提供的函數(shù)等,應(yīng)用和改造相關(guān)函數(shù)以實(shí)現(xiàn)對(duì)單片機(jī)內(nèi)部寄存器的操作,運(yùn)用了透明化的思想,讓程序編寫者不用再在底層設(shè)計(jì)知根知底,只需要參照固件庫進(jìn)行函數(shù)的調(diào)用即可達(dá)到相同的功能設(shè)計(jì),有力緩解了程序編寫者的壓力。本文結(jié)合本次設(shè)計(jì),首先介紹庫函數(shù)中主要涉及的定時(shí)器和LCD顯示驅(qū)動(dòng)的基本結(jié)構(gòu)和工作原理,在此基礎(chǔ)上利用現(xiàn)有庫函數(shù)進(jìn)行系統(tǒng)構(gòu)建和功能設(shè)計(jì),操作方便,易于檢查。4.2主程序主程序負(fù)責(zé)把控各個(gè)模塊運(yùn)行的先后順序,確保關(guān)鍵功能模塊順序執(zhí)行或者并發(fā)執(zhí)行,從而保證整個(gè)系統(tǒng)運(yùn)行穩(wěn)定。首先對(duì)控制系統(tǒng)和對(duì)應(yīng)外圍模塊等進(jìn)行初始化,隨后時(shí)鐘計(jì)數(shù)和溫度檢測(cè)同步進(jìn)行。利用定時(shí)器來進(jìn)行同步操作,進(jìn)行溫度檢測(cè)、按鍵檢測(cè)、檢測(cè)鬧鐘等功能。最后再通過TFTLCD顯示屏幕進(jìn)行時(shí)間顯示,鬧鈴設(shè)置顯示。主程序的主要流程如下圖4-1所示:圖4SEQ圖\*ARABIC\s11主程序流程圖4.3溫度檢測(cè)系統(tǒng)設(shè)計(jì)設(shè)計(jì)使用DS18B20進(jìn)行溫度檢測(cè)。DS18B20是單總線設(shè)備,需要嚴(yán)格的信號(hào)時(shí)序以確保數(shù)據(jù)格式正確。DS18B20具有六種信號(hào)類型:復(fù)位脈沖,響應(yīng)脈沖,寫0,寫1,讀0和讀1。所有這些信號(hào)(響應(yīng)脈沖除外)均由微控制器同步。并且發(fā)送字節(jié)低位在前的命令和數(shù)據(jù)用以通信。復(fù)位脈沖和應(yīng)答脈沖先初始化序列,然后開始進(jìn)行通信。微控制器輸出低電平,保持480us低電平時(shí)間,隨后產(chǎn)生RESET脈沖。接著微控制器釋放總線,47K的上拉電阻將單總線拉高,隨后軟件延時(shí)15~60us,微控制器進(jìn)入Rx模式。接著DS18B20拉低總線100~240us,以產(chǎn)生低電平應(yīng)答脈沖。寫時(shí)序?qū)憰r(shí)序包括寫0時(shí)序和寫1時(shí)序。寫1時(shí)序:微控制器輸出低電平,2~3us延時(shí)后,微控制器釋放總線,再進(jìn)行50us延時(shí)。寫0時(shí)序:微控制器輸出低電平,40~50us延時(shí)后,然后微控制器釋放總線,延時(shí)5us,微控制器寫入數(shù)據(jù)。讀時(shí)序DS18B20傳輸數(shù)據(jù)前,需要微控制器發(fā)出讀時(shí)序信號(hào)。所以,在微控制器發(fā)出讀數(shù)據(jù)指令后,馬上產(chǎn)生讀時(shí)序,以便DS18B20能夠傳輸數(shù)據(jù)給微控制器。所有讀時(shí)序至少需要50~60us的延遲時(shí)間,且在2次獨(dú)立的讀時(shí)序之間至少需要1~2us的延時(shí),由微控制器發(fā)起讀時(shí)序。微控制器在讀時(shí)序期間必須釋放總線,并且在時(shí)序起始后的15us之內(nèi)采樣狀態(tài)。典型的讀時(shí)序過程為:微控制器輸出低電平延時(shí)2us,然后微控制器轉(zhuǎn)入輸入模式延時(shí)12us,然后讀取單總線當(dāng)前的電平,然后延時(shí)50us。微控制器獲取詳細(xì)的溫度數(shù)據(jù)流程如下圖4-2所示。獲取溫度數(shù)據(jù)后得到實(shí)際溫度如公式4-1所示,其中變量Realtmp為實(shí)際溫度值,data為所獲取的數(shù)據(jù)值。圖4SEQ圖\*ARABIC\s12DS18B20讀取數(shù)據(jù)流程圖Rea

4.4時(shí)鐘系統(tǒng)設(shè)計(jì)4.4.1時(shí)鐘系統(tǒng)初始化時(shí)鐘系統(tǒng)采用單片機(jī)STM32內(nèi)部的RTC,RTC模塊和時(shí)鐘配置系統(tǒng)(RCC_BDCR寄存器)位于STM32單片機(jī)的后備區(qū)域。兩個(gè)寄存器能保證單片機(jī)在系統(tǒng)重置和待機(jī)模式喚醒后,RTC的寄存器的設(shè)置和存儲(chǔ)時(shí)間能夠保持不變。單片機(jī)在復(fù)位系統(tǒng)后,需要自動(dòng)禁止訪問備份寄存器和RTC,以防止數(shù)據(jù)意外寫入備份區(qū)域(BKP),造成讀入臟數(shù)據(jù);系統(tǒng)在設(shè)置時(shí)間之前,必須先取消備份區(qū)域(BKP)的寫保護(hù),再進(jìn)行對(duì)備份區(qū)域的寫入。如圖4-3所示,兩個(gè)主要部分組成了RTC,其中第一部分為APB1接口,用來和APB1總線相連,APB1總線時(shí)鐘驅(qū)動(dòng)APB1接口。RTC單元還包含一組16位寄存器,微控制器可通過APB1總線對(duì)其進(jìn)行讀寫操作。另一部分(RTC內(nèi)核)由一組可編程計(jì)數(shù)器組成,分為兩個(gè)主要模塊。第一個(gè)模塊是RTC的預(yù)分頻器模塊,RTC預(yù)分頻器模塊包含一個(gè)20位可編程分頻器(RTC預(yù)分頻器),可以對(duì)其進(jìn)行編程以生成1秒的RTC時(shí)間脈沖TR_CLK。如果將RTC_CR寄存器中對(duì)應(yīng)的位置1,則RTC會(huì)在每個(gè)TRCLK周期中都會(huì)產(chǎn)生一個(gè)中斷。第二個(gè)模塊是32位可編程計(jì)數(shù)器,用于設(shè)置當(dāng)前的系統(tǒng)時(shí)間,這個(gè)以秒為單位的計(jì)數(shù)器可以記錄4萬秒,作為本次設(shè)計(jì)足以夠用。圖4SEQ圖\*ARABIC\s13RTC框圖在初始時(shí)間設(shè)置中,最重要的寄存器是計(jì)數(shù)器寄存器RTC_CNT,該寄存器由2個(gè)16位的寄存器RTC_CNTH和RTC_CNTL組成,分別負(fù)責(zé)高低位,總共32位,用來記錄當(dāng)前的準(zhǔn)確秒鐘值。以1970年為基點(diǎn),通過得到具體的秒鐘值,即可通過基點(diǎn)來計(jì)算得到具體的年份月份和日期。RTC工作的配置步驟一般如下:激活電源和備份區(qū)域的時(shí)鐘取消備份區(qū)域?qū)懕Wo(hù)權(quán)限開啟外部低速振蕩器,開放備份區(qū)域選擇RTC時(shí)鐘設(shè)置RTC的分頻,以及配置RTC時(shí)鐘更新配置,設(shè)置RTC中斷分組編寫中斷服務(wù)函數(shù)具體流程圖如圖4-4所示,通過圖中的流程可以對(duì)微控制器中的RTC進(jìn)行準(zhǔn)確的配置,配置初始時(shí)間,以及保證斷電后不丟失數(shù)據(jù),完成對(duì)RTC的初始化。圖4SEQ圖\*ARABIC\s14RTC初始化設(shè)置流程圖4.4.2時(shí)間計(jì)算軟件設(shè)計(jì)中變量Timecount獲取了RTC計(jì)數(shù)的秒鐘數(shù),即可通過下面公式得出具體的天數(shù)。Day=得到具體的天數(shù)后,從1970年開始計(jì)數(shù),隨后進(jìn)行閏年的排查,最后可以得到準(zhǔn)確的年份月份和日期,其流程圖如圖4-5所示。之后通過以下的公式即可獲得具體的小時(shí)分鐘和秒鐘,從而通過所計(jì)數(shù)的秒鐘值獲得準(zhǔn)確的時(shí)間。temp=TimCalendaCalendaCalenda圖4SEQ圖\*ARABIC\s15時(shí)鐘年月日計(jì)算流程圖4.4.3鬧鐘設(shè)置鬧鐘設(shè)置通過鍵盤來切換時(shí)間設(shè)置界面和鬧鐘設(shè)置界面,設(shè)置鬧鐘時(shí)間,利用STM32中的BKP備份寄存器來存儲(chǔ)鬧鐘所設(shè)的小時(shí)和分鐘,當(dāng)斷電后仍然存在微控制器中,上電時(shí),單片機(jī)通過BKP寄存器來恢復(fù)鬧鐘具體設(shè)置。并且通過單片機(jī)內(nèi)部的定時(shí)器中斷來做到實(shí)時(shí)掃描并發(fā)執(zhí)行,每500ms掃描一次當(dāng)前時(shí)間是否與所設(shè)鬧鐘時(shí)間相匹配。當(dāng)時(shí)間匹配時(shí),微控制器驅(qū)動(dòng)蜂鳴器電路,蜂鳴器開始蜂鳴。4.4.4時(shí)間設(shè)置當(dāng)設(shè)置時(shí)間時(shí),通過鍵盤進(jìn)行實(shí)時(shí)時(shí)鐘設(shè)置,按鍵KEY_UP進(jìn)行模式的切換,KEY1和KEY2分別對(duì)小時(shí)和分鐘的加減作用。設(shè)置好后直接對(duì)RTC_CNT寄存器進(jìn)行寫入,完成實(shí)時(shí)更新時(shí)間的功能。流程圖如下圖4-6所示:圖4SEQ圖\*ARABIC\s16時(shí)間設(shè)置流程圖4.5顯示系統(tǒng)設(shè)計(jì)本文采用TFTLCD屏幕作為顯示,用于顯示字符和數(shù)字。其中TFTLCD顯示的具體流程如下所示:初始化STM32F103ZET6與TFTLCD屏幕相連接的I/O口在STM32中,所有的I/O口在使用前,必須對(duì)其進(jìn)行初始化。先將微控制器與TFTLCD模塊連接的I/O口進(jìn)行初始化,同時(shí)本文采用STM32的FSMC功能來進(jìn)行IO調(diào)控,相比于傳統(tǒng)的I/O調(diào)控更為簡(jiǎn)便。初始化TFTLCD模塊初始化序列,就是向TFTLCD控制器寫入一系列的設(shè)置值,一般TFTLCD供應(yīng)商會(huì)提供給客戶初始化序列,直接使用初始化序列來進(jìn)行TFTLCD模塊的初始化。屏幕顯示字符串和數(shù)字屏幕顯示字符的主要流程是,設(shè)置字符的初始坐標(biāo),然后對(duì)TFTLCD顯示屏幕發(fā)送GRAM指令,最后寫入GRAM來實(shí)現(xiàn)。通過多次使用這個(gè)流程,就可以要顯示一連串的字符/數(shù)字。本文設(shè)計(jì)一個(gè)函數(shù)來實(shí)現(xiàn)連串的數(shù)字/字符的顯示。只需要在程序編寫過程中調(diào)用該函數(shù),對(duì)函數(shù)輸入所需的數(shù)字或者字符串,就可以實(shí)現(xiàn)連串?dāng)?shù)字/字符的顯示了。圖4SEQ圖\*ARABIC\s17TFTLCD處理流程圖4.6本章小結(jié)本章將軟件部分分為不同的程序,著重講解主程序以及不同子程序的主要功能、原理以及流程圖,通過講解這些部分得以了解本設(shè)計(jì)的軟件設(shè)計(jì)核心思想以及功能。本章著重講解了STM32單片機(jī)內(nèi)部RTC時(shí)鐘的初始化流程和用法,以及DS18B20的初始化流程以及實(shí)際溫度轉(zhuǎn)換流程。

系統(tǒng)調(diào)試與結(jié)果分析前文通過對(duì)單片機(jī)以及時(shí)鐘系統(tǒng)的分析,結(jié)合項(xiàng)目需求,設(shè)計(jì)了多功能數(shù)字時(shí)鐘的方案,并完成了對(duì)應(yīng)的軟硬件開發(fā),本章將致力于對(duì)已完成的多功能時(shí)鐘是否完成了應(yīng)有的功能以及其的穩(wěn)定性進(jìn)行驗(yàn)證,測(cè)試系統(tǒng)的穩(wěn)定性、溫度準(zhǔn)確性和時(shí)間準(zhǔn)確性進(jìn)行詳細(xì)的分析,并有意識(shí)的測(cè)試系統(tǒng)的盲區(qū)。5.1時(shí)鐘精準(zhǔn)度實(shí)驗(yàn)5.1.1實(shí)驗(yàn)?zāi)康臏y(cè)試本次設(shè)計(jì)時(shí)鐘系統(tǒng)的精確度和誤差值,判斷時(shí)鐘誤差值是否處于合理區(qū)間之中,是否滿足設(shè)計(jì)需求。5.1.2實(shí)驗(yàn)內(nèi)容以及方法在經(jīng)過不同的時(shí)間段分別來測(cè)試時(shí)間的準(zhǔn)確性,在經(jīng)過1天、2天、5天、7天以及9天的情況下分別測(cè)試機(jī)器時(shí)間和顯示時(shí)間的誤差。利用測(cè)量的數(shù)據(jù)用于判斷本次設(shè)計(jì)時(shí)鐘系統(tǒng)的誤差值以及準(zhǔn)確性。5.1.3測(cè)量的結(jié)果分析測(cè)量結(jié)果分析如下表5-1所示,可見表中數(shù)據(jù),表中的時(shí)間對(duì)比由拍照記錄得出,表中時(shí)間誤差均在五秒之內(nèi),屬于可接受的范圍,達(dá)到了系統(tǒng)設(shè)計(jì)的精度要求。表5SEQ表\*ARABIC\s11時(shí)鐘實(shí)驗(yàn)所測(cè)得數(shù)據(jù)天數(shù)時(shí)間第1天第2天第5天第7天第9天測(cè)量時(shí)間10:18:2615:11:2317:11:2510:21:2510:21:25實(shí)際時(shí)間10:18:2815:11:2517:11:2710:21:2710:21:28誤差(s)22223圖5SEQ圖\*ARABIC\s11對(duì)時(shí)示意圖5.2溫度精準(zhǔn)度實(shí)驗(yàn)5.2.1實(shí)驗(yàn)?zāi)康臏y(cè)試設(shè)計(jì)的溫度檢測(cè)系統(tǒng)的精確度如何,測(cè)量溫度與實(shí)際溫度的誤差大小。5.2.2實(shí)驗(yàn)方法中國大部分地區(qū)平時(shí)室溫為-10℃到30℃之間,針對(duì)這一溫度區(qū)間進(jìn)行相應(yīng)的度數(shù)測(cè)量,再采用水銀溫度計(jì)進(jìn)行測(cè)量,對(duì)比測(cè)量溫度與實(shí)際溫度的誤差值,從而了解該設(shè)計(jì)的溫度系統(tǒng)的準(zhǔn)確性,判斷是否滿足設(shè)計(jì)需求。5.2.3實(shí)驗(yàn)結(jié)果與分析實(shí)驗(yàn)數(shù)據(jù)如表5-2所示,測(cè)量溫度數(shù)據(jù)和實(shí)際溫度數(shù)據(jù)由DS18B20和水銀溫度計(jì)獲得,從表中可知測(cè)量溫度與實(shí)際溫度差別不大,誤差區(qū)間均在1℃以內(nèi),成功滿足了設(shè)計(jì)的標(biāo)準(zhǔn)和需要,在中國大部分環(huán)境的室溫下可以準(zhǔn)確測(cè)量溫度。表5SEQ表\*ARABIC\s12溫度精準(zhǔn)實(shí)驗(yàn)所測(cè)得數(shù)據(jù)擬測(cè)量溫度(℃)實(shí)測(cè)0510152025測(cè)量溫度(℃)2.359.215.62125.2實(shí)際溫度(℃)25.69.51621.325.7誤差(℃)5.3本章小結(jié)本章撰寫了對(duì)多功能數(shù)字時(shí)鐘這一設(shè)計(jì)進(jìn)行的實(shí)驗(yàn),其目的是為了測(cè)試設(shè)計(jì)是否達(dá)成要求。蓋章內(nèi)容包括了實(shí)驗(yàn)?zāi)康?、方法以及結(jié)果。根據(jù)實(shí)驗(yàn)結(jié)果可以得出此次設(shè)計(jì)滿足一般的日常生活使用的情況。

結(jié)論嵌入式技術(shù)是一項(xiàng)具有廣泛應(yīng)用的前景的技術(shù),廣泛運(yùn)用在自動(dòng)化、控制工程以及工業(yè)應(yīng)用等領(lǐng)域。本文利用STM32F103ZET6單片機(jī)作為主控制器來設(shè)計(jì)一個(gè)多功能數(shù)字時(shí)鐘達(dá)到了出其不意的效果。在論文中完成的主要工作包括以后幾個(gè)方面:1.充分考慮了多功能數(shù)字時(shí)鐘系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,利用ALTIUMDESIGN軟件繪制硬件原理圖,對(duì)其硬件部分進(jìn)行詳細(xì)的剖析,各功能模塊主要包括:電源模塊、控制器模塊、溫度傳感器模塊、時(shí)鐘系統(tǒng)模塊。2.在軟件設(shè)計(jì)方面,詳細(xì)的介紹了設(shè)計(jì)中涉及的軟件方法,結(jié)合硬件實(shí)際進(jìn)行了系統(tǒng)的軟件模塊設(shè)計(jì),確保各個(gè)模塊各司其職、互不干擾。采用了單片機(jī)內(nèi)部的RTC時(shí)鐘源進(jìn)行了時(shí)鐘系統(tǒng)軟件層面的設(shè)計(jì)。3.使用ARM7開發(fā)工具KEILMD5進(jìn)行相關(guān)系統(tǒng)設(shè)計(jì)和相關(guān)編程錯(cuò)誤的排查,使用了模塊化的編程,便于后續(xù)維護(hù)和代碼升級(jí)。4.進(jìn)行了對(duì)多功能數(shù)字時(shí)鐘關(guān)于時(shí)間和溫度準(zhǔn)確性的測(cè)試,詳細(xì)測(cè)試了誤差值,均在合理的范圍之內(nèi)。參考文獻(xiàn)何立民.嵌入式系統(tǒng)的定義與發(fā)展歷史[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(01):6-8.HungChungWen,ZengShiXuan,LeeChingHung,LiWeiTing.End-to-EndDeepLearningbyMCUImplementation:AnIntelligentGripperforShapeIdentification[J].Sensors,2021,21(3).Yu-JuLin,Chih-FanTan,Chin-YinHuang.IntegrationofLogicControllerwithIoTtoFormaManufacturingEdgeComputingEnvironment:APremise[J].ProcediaManufacturing,2019,39.Physics;FindingsfromRenesasElectronicCorporationinPhysicsReported(RevisitedStudyofFluorineImplantationImpactOnNegativeBiasTemperatureInstabilityforInput/outputDeviceofAutomotiveMicroControllerUnit)[J].JournalofTransportation,2019.Cui,Xiangyu,etal."State‐of‐chargeestimationofpowerlithium‐ionbatteriesbasedonanembeddedmicrocontrolunitusingasquarerootcubatureKalmanfilteratvariousambienttemperatures."InternationalJournalofEnergyResearch43.8(2019):3561-3577.張雄偉、陳亮,曹鐵勇.DSP芯片的原理與開發(fā)應(yīng)用.北京:電子工業(yè)出版社,2009.孫書鷹,陳志佳,寇超.新一代嵌入式微處理器STM32F103開發(fā)與應(yīng)用[J].微計(jì)算機(jī)應(yīng)用,2010,31(12):59-63.吳進(jìn),羅忠,冉全.基于ARM的溫度測(cè)量系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].湖北第二師范學(xué)院學(xué)報(bào),2011,000(008):88-90.楊久河.基于DS18B20的多點(diǎn)式無線溫度測(cè)量?jī)x的設(shè)計(jì)與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論