【基于單片機(jī)的自動校時(shí)電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)(論文)8600字】_第1頁
【基于單片機(jī)的自動校時(shí)電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)(論文)8600字】_第2頁
【基于單片機(jī)的自動校時(shí)電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)(論文)8600字】_第3頁
【基于單片機(jī)的自動校時(shí)電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)(論文)8600字】_第4頁
【基于單片機(jī)的自動校時(shí)電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)(論文)8600字】_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于單片機(jī)的自動校時(shí)電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)目錄TOC\o"1-3"\h\u283351前言 120731.1引言 1240731.2本論文的研究內(nèi)容以及意義 243221.3發(fā)展前景 2186372自動校時(shí)電子時(shí)鐘的校時(shí)方案選取與功能實(shí)現(xiàn) 293082.1自動校時(shí)電子時(shí)鐘的校時(shí)方案 2270542.2自動校時(shí)電子時(shí)鐘功能實(shí)現(xiàn) 3112383自動校時(shí)電子時(shí)鐘的總設(shè)計(jì)和基本工作原理 482313.1自動校時(shí)電子時(shí)鐘的總設(shè)計(jì)方案 4323503.2自動校時(shí)電子時(shí)鐘的基本工作原理 4122173.3系統(tǒng)總電路圖 52134系統(tǒng)的硬件設(shè)計(jì) 5169984.1數(shù)據(jù)處理控制模塊 6291104.2WiFi傳輸模塊 840174.3溫度傳感器模塊 9230844.4顯示模塊 10217364.5報(bào)警提示模塊 12163444.6按鍵模塊 12288135系統(tǒng)的軟件設(shè)計(jì) 13166575.1軟件開發(fā)環(huán)境 13169055.2系統(tǒng)的軟件設(shè)計(jì)以及軟件系統(tǒng)流程圖 13225965.2.1主程序設(shè)計(jì)思路 13143645.2.2軟件系統(tǒng)流程圖 15100285.3子程序設(shè)計(jì) 1629785.3.1WiFi時(shí)間處理子程序 16289255.3.2溫度采集數(shù)據(jù)子程序 16209005.3.3OLED顯示子程序 17252725.3.4單片機(jī)內(nèi)部RTC時(shí)鐘子程序 1899365.5.5農(nóng)歷時(shí)間子程序 198296自動校時(shí)電子時(shí)鐘系統(tǒng)的調(diào)試與分析 2119946.1校時(shí)時(shí)間誤差測試 21125066.2溫度采集數(shù)據(jù)誤差測試 22176556.3.1硬件調(diào)試 221036.3.2軟件調(diào)試 22137457.結(jié)論 23【內(nèi)容摘要】本論文將介紹基于STM32F103C8T6單片機(jī)最小系統(tǒng)和外圍模塊電路構(gòu)成的WiFi自動校時(shí)電子時(shí)鐘。本設(shè)計(jì)的電子時(shí)鐘具有WiFi自動校時(shí),顯示陽歷和農(nóng)歷日期、星期、環(huán)境溫度以及手動調(diào)節(jié)鬧鐘時(shí)間的功能。主要核心數(shù)據(jù)控制電路選取STM32F103C8T6單片機(jī)作為最小系統(tǒng)、ESP8266WiFi模塊、0.96寸中景園OLED液晶屏顯示模塊、DS18B20溫度傳感器、蜂鳴器等常見器件。經(jīng)過單片機(jī)核心處理器控制自動校時(shí)電子時(shí)鐘來調(diào)整時(shí)間,為了避免自動校時(shí)電子溫度超過程序設(shè)定的最大值,選擇DS18B20溫度傳感器及時(shí)檢查系統(tǒng)的工作溫度,當(dāng)外界溫度超過系統(tǒng)設(shè)置的最大值,則報(bào)警模塊會主動發(fā)出聲響。[1]本設(shè)計(jì)的主要實(shí)現(xiàn)的功能是通過網(wǎng)絡(luò)更新時(shí)間,實(shí)現(xiàn)電子時(shí)鐘自動校時(shí)。具體方式是利用WiFi模塊讀取網(wǎng)絡(luò)服務(wù)器時(shí)間數(shù)據(jù),通過串口向單片機(jī)發(fā)送數(shù)據(jù),用于單片機(jī)內(nèi)部時(shí)鐘RTC校時(shí),從而滿足自動校時(shí)的功能。本設(shè)計(jì)的電子時(shí)鐘具有電路簡單、成本廉價(jià)、制作容易、校時(shí)時(shí)間準(zhǔn)確的特點(diǎn)?!娟P(guān)鍵詞】WiFi;自動校時(shí);電子時(shí)鐘;溫度報(bào)警1前言1.1引言隨著現(xiàn)代人們的生活方式和工作節(jié)奏正在加快,安排時(shí)間的方式也變得越來越棘手,這樣的快節(jié)奏生活使得人們意識到時(shí)間的寶貴,進(jìn)入21世紀(jì)快餐式的生活方式,現(xiàn)代人工作忙忙碌碌的步伐和嘈雜的工作環(huán)境,很容易使得我們忘記時(shí)間的快慢,因此,與時(shí)間賽跑成為了我們?nèi)粘I畹囊徊糠?。時(shí)鐘已經(jīng)變成人們平常和工作不可分割的工具。傳統(tǒng)的電子時(shí)鐘只能顯示出時(shí)間但是不能保證每個(gè)時(shí)鐘都能夠達(dá)到彼此同步時(shí)間校對,這樣給人們的生活帶來不必要的困擾。當(dāng)前的社會,很多事情都是離不開用到精確的時(shí)間,,不僅可以準(zhǔn)確并迅速讀取時(shí)間,而且也可以精確到秒。而電子時(shí)鐘具備的功能正好能夠提供用戶的需求。[1]1.2本論文的研究內(nèi)容以及意義在本文中,我將設(shè)計(jì)一個(gè)無線WiFi自動校時(shí)電子時(shí)鐘設(shè)計(jì)方案以STM32F103C8T6單片機(jī)芯片作為最小系統(tǒng)連接外圍模塊電路。與此同時(shí),為了避免系統(tǒng)溫度超過設(shè)定的溫度,采取DS18B20溫度傳感器實(shí)時(shí)檢查系統(tǒng)的工作溫度,當(dāng)外溫超過系統(tǒng)設(shè)置的最大值,那么報(bào)警模塊主動發(fā)出響聲[2]。通過WiFi模塊連接手機(jī)熱點(diǎn),訪問網(wǎng)絡(luò)服務(wù)器,以聯(lián)網(wǎng)的方式獲取時(shí)間,實(shí)現(xiàn)電子時(shí)鐘自動校對,可以消除系統(tǒng)積累的時(shí)間誤差,與實(shí)時(shí)時(shí)間同步。電子鐘可靠、準(zhǔn)確,我們?nèi)粘I鐣?jīng)濟(jì)生活的各個(gè)領(lǐng)域得到了普及電子時(shí)鐘有其他的可擴(kuò)展性,例如獲取天氣預(yù)報(bào)、PM2.5質(zhì)量檢測等。[3]因此,電子時(shí)鐘的功能進(jìn)一步研究功對未來生活的發(fā)展有很越來越來重要的意義[1]。1.3發(fā)展前景如今微型處理器使用領(lǐng)域不斷擴(kuò)大,許多程序微型處理器都是可以運(yùn)行,比如讀寫硬盤、內(nèi)存以及CPU等等。[4]同時(shí),單片機(jī)的運(yùn)行程序是可以按照自己的需求來修改。目前的社會生活以STM32F103C8T6單片機(jī)作為最小系統(tǒng)的電子時(shí)鐘等產(chǎn)品越來越受到民眾的追捧。[4]自動校時(shí)電子時(shí)鐘等產(chǎn)品,方便人們的生活方式。2自動校時(shí)電子時(shí)鐘的校時(shí)方案選取與功能實(shí)現(xiàn)2.1自動校時(shí)電子時(shí)鐘的校時(shí)方案方案一:采用GPS自動校時(shí)方式。從GPS衛(wèi)星直接接受信號,信號接收到以后經(jīng)過接口傳輸給客戶設(shè)備進(jìn)行校時(shí),進(jìn)行時(shí)間同步。GPS整個(gè)延遲時(shí)間約幾十微妙,精度可以達(dá)到毫秒級的時(shí)間誤差要求。方案二:采用藍(lán)牙校時(shí)。手機(jī)客戶端連接的藍(lán)牙,點(diǎn)擊校準(zhǔn)時(shí)間按鈕,手機(jī)向設(shè)備發(fā)送手機(jī)上面獲取的時(shí)間,設(shè)備接收到時(shí)間后,按照一定的時(shí)間格式,寫到藍(lán)牙模塊芯片當(dāng)中,這樣就完成了一次時(shí)間校準(zhǔn)。方案三:WiFi校時(shí)ESP8266WiFi聯(lián)網(wǎng)方式讀取服務(wù)器時(shí)間數(shù)據(jù),進(jìn)行網(wǎng)絡(luò)時(shí)間解析,再經(jīng)過串口發(fā)送單片機(jī),單片機(jī)接收到的時(shí)間數(shù)據(jù)用于單片機(jī)內(nèi)部時(shí)鐘RTC校時(shí),完成時(shí)間的校對。本設(shè)計(jì)的自動校時(shí)電子時(shí)鐘,要求校時(shí)時(shí)間精準(zhǔn),數(shù)據(jù)傳輸速率高的特點(diǎn)。藍(lán)牙和WIFI都是無線通信網(wǎng)絡(luò)。WiFi最主要的優(yōu)勢就是能夠使得電子設(shè)備連接與局域網(wǎng)之間進(jìn)行連接并且11Mbps高傳送速率。帶寬輸送為1Mbps的藍(lán)牙設(shè)備,其通信距離在10米范圍。在時(shí)間精度方面,GPS的精度相比藍(lán)牙以及WiFi,它是三者中最高的,采用原始的GPS時(shí)鐘源,而WiFi是從GPS里面讀取時(shí)間數(shù)據(jù),稍微有些時(shí)間延時(shí)。但是WiFi適合室內(nèi)、傳輸距離比較短,信號強(qiáng),而GPS在室內(nèi)的接受信號相對弱,考慮到室內(nèi)演示,故本設(shè)計(jì)選用WiFi模塊進(jìn)行校時(shí)。2.2自動校時(shí)電子時(shí)鐘功能實(shí)現(xiàn)(1)實(shí)現(xiàn)陽歷農(nóng)歷的日期、星期顯示(2)可以實(shí)現(xiàn)調(diào)節(jié)鬧鐘功能(3)當(dāng)溫度達(dá)到閾值,可以實(shí)現(xiàn)溫度報(bào)警功能(4)可以實(shí)現(xiàn)WiFi模塊自動校時(shí)的功能3自動校時(shí)電子時(shí)鐘的總設(shè)計(jì)和基本工作原理3.1自動校時(shí)電子時(shí)鐘的總設(shè)計(jì)方案本設(shè)計(jì)是由外圍模塊電路連接STM32F103C8T6微控制器最小系統(tǒng)共同構(gòu)成。自動校時(shí)電子時(shí)鐘由核心數(shù)據(jù)控制模塊STM32F103C8T6單片機(jī)芯片、ESP8266WiFi模塊、0.96寸的中景園OLED液晶顯示、蜂鳴器提示模塊、溫度傳感器模塊和按鍵調(diào)節(jié)時(shí)間模塊共同組成。以STM32F103C8T6單片機(jī)為數(shù)據(jù)控制處理器,經(jīng)過程序操縱WiFi模塊,STM32微控制器微通過串口ESP8266WiFi聯(lián)網(wǎng)方式解析并獲取服務(wù)器的時(shí)間,接收到的時(shí)間數(shù)據(jù)用于單片機(jī)內(nèi)部時(shí)鐘RTC校時(shí),再通過軟件程序控制電子時(shí)鐘的功能。[1]自動校時(shí)電子時(shí)鐘方案系統(tǒng)的整體設(shè)計(jì)框圖如圖3-1所示

圖3-1自動校時(shí)電子時(shí)鐘系統(tǒng)框圖3.2自動校時(shí)電子時(shí)鐘的基本工作原理STM32單片機(jī)串口RTC3、TXD對應(yīng)連接ESP8266WIFI模塊TXD3、RTC3口。ESP8266WIFI模塊以聯(lián)網(wǎng)方式獲取服務(wù)器時(shí)間,然后通過串口發(fā)送給STM32微控制器,STM32微控制器接收到時(shí)間信號,用于STM32微控制器內(nèi)部的RTC時(shí)鐘校時(shí),再將時(shí)間數(shù)據(jù)傳送給OLED液晶顯示屏顯示相應(yīng)日期,由日期來自動轉(zhuǎn)農(nóng)歷的數(shù)據(jù)。自動校時(shí)電子時(shí)鐘的校準(zhǔn)實(shí)現(xiàn)方式是通過網(wǎng)絡(luò)來更新時(shí)間數(shù)據(jù),由WiFi模塊獲取網(wǎng)絡(luò)服務(wù)器數(shù)據(jù),單片機(jī)內(nèi)部時(shí)鐘RTC進(jìn)行校時(shí),從而滿足自動校時(shí)的功能。3.3系統(tǒng)總電路圖WiFi自動校時(shí)電子時(shí)鐘總電路圖,如圖3-3所示。圖3-3WiFi自動校時(shí)電子時(shí)鐘總電路圖4系統(tǒng)的硬件設(shè)計(jì)根據(jù)自動校時(shí)電子時(shí)鐘的要實(shí)現(xiàn)的基本功能,硬件電路包括STM32F103C8T6單片機(jī)芯片核心處理器、ESP8266WiFi無線傳輸模塊、DS18B20溫度采集數(shù)據(jù)傳感器模塊、0.96寸OLED液晶顯示屏顯示模塊、獨(dú)立按鍵模塊、蜂鳴器模塊以及電源模塊這些硬件模組成,自動校時(shí)電子時(shí)鐘解決方案設(shè)計(jì)的硬件電路框圖如圖3-3所示。4.1數(shù)據(jù)處理控制模塊方案一:選用SCT89C52單片機(jī),該單片機(jī)是51系列單片機(jī)的增強(qiáng)型,擁有抗干擾能力大、傳輸高速、功耗消耗少等優(yōu)勢。傳統(tǒng)51單片機(jī)指令代碼該單片機(jī)都能夠全部兼容,能夠隨意在6時(shí)鐘機(jī)器周期和12周期中選用。此單片機(jī)的部分參數(shù)見表4-1-1。表4-1-1SCT89C52單片機(jī)處理器參數(shù)表參數(shù)類型具體參數(shù)內(nèi)部RAM512字節(jié)定時(shí)器/計(jì)數(shù)器3個(gè),T0/T1/T2工作電壓3.3V-5V存儲器大小8K全靜態(tài)工作頻率0~40MHz低功耗模式空閑、掉電通信方式串行通信可編程的I/O線21個(gè)方案二:選用STM32F103C8T6單片機(jī)作為自動校時(shí)電子時(shí)鐘最小工作系統(tǒng)。可以外接直插,方便手工焊接。同時(shí),外接一個(gè)電壓大小為3V的紐扣電池充當(dāng)單片機(jī)內(nèi)部RTC時(shí)鐘電源備用電池,確保RTC時(shí)鐘的走時(shí)準(zhǔn)確性。[5]STM32系列單片機(jī)是新型的處理器,運(yùn)行速度快,同樣也設(shè)置了充足的內(nèi)置資源。[6]在供電方面,計(jì)算機(jī)與數(shù)據(jù)線相連,就可以進(jìn)行充電,這樣保證保持其正常的工作模式和運(yùn)行。[6]正是因?yàn)榫邆淞诉@些優(yōu)點(diǎn),也適用于本次設(shè)計(jì)電子時(shí)鐘系統(tǒng)的需求。同樣,通過該芯片能夠自由選擇需要的控制模塊,這種做法可以電子時(shí)鐘實(shí)現(xiàn)多種功能,獲取時(shí)間數(shù)據(jù)精確和實(shí)時(shí)性更強(qiáng)。[1]STM32F103C8T6單片機(jī)參數(shù)見表4-2-2。表4-2-2STM32F103C8T6單片機(jī)參數(shù)表參數(shù)類型具體參數(shù)存儲器容量RAM:20KB工作電壓2V~3.6V程序存儲器容量64KB(64k×8)工作頻率72MHz振蕩器型內(nèi)部RAM容量20K×8兩種方案對比發(fā)現(xiàn),SCT89C52單片機(jī)存儲容量比較小,內(nèi)部存儲容量是8K,而32單片機(jī)程序容量達(dá)到64K。本設(shè)計(jì)采用ESP8266WIFI模塊作為網(wǎng)絡(luò)校時(shí)模塊,ESP8266WiFi模塊和其他程序模塊加起來的空間存儲已經(jīng)超過了8K,因此SCT89C52單片機(jī)在程序存儲方面顯然不適合。WiFi網(wǎng)絡(luò)校時(shí)傳輸數(shù)據(jù)需要很高的運(yùn)行速度,32單片機(jī)的工作頻率高達(dá)72KHz而52單片機(jī)的實(shí)際工作頻率在40KHz左右,所以SCT89C52單片機(jī)不可以勝任此工作。4.2WiFi傳輸模塊ESP8266WiFi模塊是實(shí)現(xiàn)網(wǎng)絡(luò)解決的一種方案。[7]實(shí)現(xiàn)聯(lián)網(wǎng)功能的手段是將使用者的電子設(shè)備連接到WIFI無線網(wǎng)絡(luò)上,然后在與其他設(shè)備Internet或LAN通信。[8]該模塊的串口透傳傳輸速率高達(dá)110-921600bps,選用IEEE802.11b/g/n的無線標(biāo)準(zhǔn),15ma是GPIO驅(qū)動能力最大值,3.3V的電壓供電,持續(xù)發(fā)送的情況下,工作電流是70mA的范圍,最大的值可以達(dá)到200mA;正常模式下電流達(dá)到12mA且最大值為200mA;當(dāng)處于待機(jī)時(shí)在200uA以下。使用過程中,除了電源以及通信端口,使能引腳上拉,剩余未使用的引腳應(yīng)保持懸掛。[7]本設(shè)計(jì)中,WiFi模塊要實(shí)現(xiàn)的功能是網(wǎng)絡(luò)校時(shí)。具體實(shí)現(xiàn)的功能是ESP8266WiFi模塊以聯(lián)網(wǎng)的方式讀取網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù),通過串口發(fā)送給STM32微型控制器。電路連接方式是串口用USART3,ESP8266WiFi模塊電路的端口TXD發(fā)送模式和單片機(jī)的RXD接收模式PB11腳相連,引腳三、引腳七以及GPIO接高電平3.3V,腳2接地。模塊電路原理圖如圖4-2所示。圖4-2ESP8266WiFi電路原理4.3溫度傳感器模塊本設(shè)計(jì)的溫度傳感器模塊選型考慮用的溫度采集模塊有:DHT11濕溫度傳感器和DS18B20傳感器:方案一:選用DHT11溫度傳感器,DHT11溫度傳感器模塊同時(shí)擁有NTC測溫器件和電容式感溫器件。接口選擇單線式串行方式,簡化了系統(tǒng)操作步驟,功耗較小,長期穩(wěn)定并且超長的傳送間隔。該模塊的60uA的待機(jī)時(shí)間,供電電壓是DC3.3V~5.5V,0.3mA的供電電流,0~50℃的溫度測量范圍,1℃的溫度分辨率。方案二:選用DS1820溫度傳感器作為溫度報(bào)警模塊,該模塊擁有9位A/D精度轉(zhuǎn)換,溫度測量值在-55℃~+125℃之間,將溫度更改為數(shù)字通過1s范圍就可以實(shí)現(xiàn)。DS1820具有測溫操作簡易、精度高的特點(diǎn)。實(shí)際應(yīng)用中要注意(1)讀寫程序DS820時(shí),確保讀寫時(shí)序的規(guī)范,不然不能得到準(zhǔn)確數(shù)據(jù);(2)測溫程序階段,DS1820接受到溫度轉(zhuǎn)換指示后,程序需要延時(shí),該模塊才能返回?cái)?shù)據(jù),當(dāng)出現(xiàn)接觸出現(xiàn)問題時(shí),程序讀取無法返回?cái)?shù)據(jù),程序?qū)⑾萑霟o限循環(huán)。方案三:選用DS18B20溫度傳感器,作為一款1-wire數(shù)字的單總線器件,具備抗干擾能力強(qiáng),體積輕便,成本低,精度準(zhǔn)確的優(yōu)點(diǎn)。9位~12位A/D轉(zhuǎn)換的編程范疇,3.0V~5.5/DC的工作電源,-55℃~+125℃的溫度周圍[12],-10~+85°C之間,精度的相對誤差是正負(fù)0.5℃。對比三種方案,DS18B20溫度傳感器與DHT11溫度傳感器都是一根數(shù)據(jù)口,都可以測試溫度而DHT11的測溫范圍是在0℃~50℃,溫度誤差為2℃,精度是2,而DS18B20的固有溫度誤差是1℃,精度是0.5。從A/D轉(zhuǎn)換精度的角度來看,DS18B20最多可以達(dá)到12位,DS1820達(dá)到9位,在精度選擇方面,DS18B20比DS1820的精度更高一些。測溫范圍比較,DS18B20比DHT11測溫更精確。對比三種溫度傳感器,S18B20體積相對輕便,成本相對低。更加符合電子時(shí)鐘的要求。本設(shè)計(jì)中,DS18B20溫度傳感器的功能是及時(shí)檢查自動校子時(shí)鐘系統(tǒng)的工作溫度,溫度達(dá)到程序設(shè)置的閾值,然后蜂鳴器模塊會出現(xiàn)響聲。[9]硬件電路的具體設(shè)計(jì)由DS18B20數(shù)字溫度傳感器的腳2通過大小為10K的上拉電阻R1和單片機(jī)STM32F103C8T6的PB0端口相連接,溫度傳感器的腳1和腳3分別接GND和電源3.3V。4.4顯示模塊本方案的液晶屏顯示模塊考慮1602液晶顯示屏或者0.96英寸的中景園OLED液晶顯示屏。方案一:1602液晶顯示字符模塊,該模塊的特點(diǎn):(1)接口為數(shù)字式,操作起來簡單方便;(2)體積微小而且重量也很輕巧;(3)功耗消耗少,由于功耗大部分消耗在驅(qū)動IC以及內(nèi)部的電極,所以損失的電量相對比較少。通??梢詫?shí)現(xiàn)的方式是段式、字和點(diǎn)陣式。該模塊技術(shù)參數(shù)見表4-4-1。表4-4-11602液晶主要的技術(shù)參數(shù)參數(shù)類型具體參數(shù)顯示容量16×2個(gè)字符芯片工作電壓4.5~5.5V模塊最佳電壓5.0V字符尺寸2.95×4.35(W×H)mm方案二:本設(shè)計(jì)采用中景園0.96寸的4針OLED液晶顯示屏。該模塊采用的內(nèi)部驅(qū)動芯片是SSD1306,模塊供電方式可以是3.3V。通信時(shí),采用IIC電路接口,電路接口分別做時(shí)鐘接口和數(shù)據(jù)接口,時(shí)鐘引腳是SCL,數(shù)據(jù)引腳為SDA。不需要修改模塊路,OLED屏具有多個(gè)控制指令,功能豐富,漢字展現(xiàn)、ASCII、圖片等。OLED技術(shù)具有自發(fā)光的特點(diǎn),當(dāng)系統(tǒng)上電時(shí)不會點(diǎn)亮,點(diǎn)亮?xí)r要求有接線以及驅(qū)動程序無誤,厚度薄,反應(yīng)的速度快,功耗小。4針的OLED顯示屏產(chǎn)品參數(shù)見表4-4-2.表4-4-2OLED顯示屏產(chǎn)品參數(shù)參數(shù)類型具體參數(shù)控制芯片SSD1306分辨率128*64接口類型IIC接口工作電壓3.3V管腳數(shù)量4視角方向全視角工作溫度-40~70度通過對比,LCD都需要背光OLED擁有自發(fā)光源的特點(diǎn),因此,同樣的顯示效果,OLED的顯示結(jié)果更加可觀。兩者的功耗相比,OLED比LCD消耗更少,因此OLED更加適合本次自動校時(shí)電子時(shí)鐘的方案設(shè)計(jì)。故在選擇顯示屏?xí)r,優(yōu)先考慮OLED液晶顯示屏。4.5報(bào)警提示模塊本設(shè)計(jì)方案用蜂鳴器當(dāng)報(bào)警提醒模式。電路主控制芯片選擇SH69P43,4MHz晶振大小的主振蕩器電路結(jié)構(gòu)。該模塊的供電形式選用直流電壓,蜂鳴器的工作電流范圍比較高,STM32F103C8T6單片機(jī)的I/O不可以直接用來啟動蜂鳴器,需要進(jìn)行放大電路才能驅(qū)動,因此我選用S9015三極管作為電流放大器就達(dá)到放大電流的作用。本文電路方案中,STM32F103C8T6單片機(jī)PB9引腳和S9015三極管基級相互連接,根據(jù)低電平驅(qū)動模式,當(dāng)STM32F103C8T6單片機(jī)的PB9引腳位被拉低,處于低電平時(shí),蜂鳴器是正常的工作模式狀態(tài)發(fā)出報(bào)警聲音,相反,如果引腳是高電平模式,電路則相當(dāng)于斷開狀態(tài),這時(shí)蜂鳴器是不發(fā)出報(bào)警聲。在本設(shè)計(jì)電路中,蜂鳴器發(fā)揮作用有兩個(gè)模式:當(dāng)處于鬧鐘模式,蜂鳴器是否導(dǎo)通由輸出電平變化來控制,當(dāng)使用者定時(shí)鬧鐘和當(dāng)前時(shí)間相同時(shí),蜂鳴器則發(fā)出響聲。處于溫度報(bào)警模式,為了避免自動校時(shí)電子時(shí)鐘系統(tǒng)溫度超過程序設(shè)置的最高溫度,DS18B20溫度傳感器及時(shí)監(jiān)察系統(tǒng)的工作溫度是否超過程序設(shè)置的最高值30℃,如果超過本設(shè)計(jì)方案中的這個(gè)溫度,那么蜂鳴器模塊將會主動發(fā)出聲音。4.6按鍵模塊本設(shè)計(jì)方案電路硬件設(shè)計(jì)中設(shè)置了3個(gè)調(diào)節(jié)時(shí)間的按鍵。[2]這三個(gè)按鍵分別實(shí)現(xiàn)不同的功能,分別接在STM32F103C8T6單片機(jī)的PA0、PA1和PA2引腳,按鍵輸入模塊實(shí)現(xiàn)時(shí)陽歷陰歷日期、星期、鬧鐘和溫度數(shù)據(jù)的循環(huán)切換模式。[2]。第一個(gè)按鍵為設(shè)置鍵,進(jìn)入日期、星期、鬧鐘數(shù)據(jù)的設(shè)置,第二個(gè)按鍵實(shí)現(xiàn)時(shí)間數(shù)據(jù)的減1操作,第三個(gè)按鍵實(shí)現(xiàn)時(shí)間數(shù)據(jù)的加1操作。按鍵模塊電路如圖4-6所示。圖4-6按鍵電路5系統(tǒng)的軟件設(shè)計(jì)5.1軟件開發(fā)環(huán)境軟件部分本設(shè)計(jì)方案采用了KEIL5進(jìn)行編譯。其開發(fā)周期大致如下:(1)首先建立工程文件,選用芯片進(jìn)行方案設(shè)計(jì),然后進(jìn)行設(shè)置(2)進(jìn)行C源文件和程序集源文件的編寫,輸出程序集源文件。(3)編譯應(yīng)用代碼并且找出程序代碼中的錯(cuò)誤點(diǎn)。(4)當(dāng)文件中出現(xiàn)編譯錯(cuò)誤時(shí),返回程序并糾正(5)進(jìn)行調(diào)試。[15]5.2系統(tǒng)的軟件設(shè)計(jì)以及軟件系統(tǒng)流程圖5.2.1主程序設(shè)計(jì)思路進(jìn)入初始化程序,首先進(jìn)入平臺初始化,,然后設(shè)置NVIC中斷,打開WiFi的串口中斷,依次進(jìn)行溫度、WiFi、OLED液晶屏、RTC時(shí)鐘和按鍵初始化。再進(jìn)行采集RTC時(shí)間、農(nóng)歷程序、溫度采集程序,經(jīng)過延時(shí),進(jìn)入WiFi程序,延時(shí)為1秒,發(fā)送指令,網(wǎng)絡(luò)解析獲取時(shí)間數(shù)據(jù),服務(wù)器返回時(shí)間數(shù)據(jù)。關(guān)鍵代碼如下。1.intmain(void)2.u16times=0;3.Init_Platform();4.DS18B20_Init();5.ESP8266_Init();6.OLED_Init();7.RTC_Init();8.Key_Time_Init();9.while(1)10.{11.RTC_Work();12.Lunar_work();13.Tempt();14.OLED_Scan();15.times++;16.if(times>=200)17.{18.times=0;19.ESP8266();20.delay_ms(1000);21.Get_NTP_Time();22.}23.if(times==20)24.{25.ESP8266_Link_Server(enumUDP,"1.","123",Single_ID);26.}27.}28.}5.2.2軟件系統(tǒng)流程圖微控制器的軟件部分主要包括軟件的主程序設(shè)計(jì)以及各個(gè)模塊子程序設(shè)計(jì)。[10]系統(tǒng)的軟件總流程如圖5-2-2。圖5-2-2軟件系統(tǒng)流程5.3子程序設(shè)計(jì)5.3.1WiFi時(shí)間處理子程序網(wǎng)絡(luò)校時(shí)的實(shí)現(xiàn)可以通過ESP8266WiFi模塊能夠?qū)崿F(xiàn)一種網(wǎng)絡(luò)授時(shí)終端。[7]本設(shè)計(jì)的ESP8266WiFi模塊時(shí)間處理程序在系統(tǒng)通電之后,程序開始進(jìn)行系統(tǒng)初始化過程,獲取WiFi網(wǎng)絡(luò)名稱和密碼是通過讀取EEPROM得到的。本設(shè)計(jì)程序WiFi網(wǎng)絡(luò)名是PhoneA以及網(wǎng)絡(luò)密碼是123456789,WiFi模塊通過連接NTP服務(wù)器的IP地址(1.)和端口(123),通過發(fā)送指令.服務(wù)器返回網(wǎng)絡(luò)時(shí)間數(shù)據(jù)指令,獲得網(wǎng)絡(luò)時(shí)間數(shù)據(jù)之后進(jìn)行解析時(shí)間,然后進(jìn)行時(shí)間校準(zhǔn)。WiFi時(shí)間處理子程序流程圖如圖4-2-1所示。圖5-3-1WiFi時(shí)間處理子程序流程5.3.2溫度采集數(shù)據(jù)子程序系統(tǒng)開始供電使用時(shí),單總線直接讀取數(shù)據(jù),OLED液晶顯示溫度數(shù)據(jù)。與系統(tǒng)設(shè)定的溫度限制進(jìn)行比較。如果溫度超過系統(tǒng)程序設(shè)定的最大值,蜂鳴器會發(fā)出提示響聲。采集溫度子程序如圖5-3-2所示。圖5-3-2溫度采集流程5.3.3OLED顯示子程序OLED屏是一個(gè)液晶屏的驅(qū)動程序,采用I2C的接口,本文的設(shè)計(jì)用到的是使用0.96寸中景園OLED屏顯示,I2C接口一個(gè)用于時(shí)鐘接口,一個(gè)用與數(shù)據(jù)接口。其流程如圖5-3-3。圖5-3-3OLED液晶顯示5.3.4單片機(jī)內(nèi)部RTC時(shí)鐘子程序SIM32單片機(jī)微型處理器內(nèi)部RTC驅(qū)動時(shí)鐘應(yīng)用外部晶振32.768KHZ的振蕩器,此外,可以輸入152Hz的信號來校準(zhǔn)RTC的時(shí)鐘。一般來說,32.768kHz時(shí)鐘可以形成1秒長的時(shí)間標(biāo)準(zhǔn)。程序進(jìn)入按鍵初始化,設(shè)置IO口,通過按鍵S1和按鍵S2分別調(diào)節(jié)鬧鐘的增加或減少,如果時(shí)間與定時(shí)鬧鐘時(shí)間相應(yīng)則進(jìn)入報(bào)警程序來提示。使用單片機(jī)內(nèi)部的RTC時(shí)鐘來獲取時(shí)間,再通過按鍵來調(diào)整時(shí)鐘。其流程圖如圖5-3-4所示。圖5-3-4RTC實(shí)時(shí)時(shí)鐘程序流程5.5.5農(nóng)歷時(shí)間子程序陽歷和陰歷是兩套不同的歷法,所以要將公歷的年月日數(shù)據(jù)進(jìn)行轉(zhuǎn)換,才能相應(yīng)的陰歷日期。[11]實(shí)現(xiàn)功能要用到農(nóng)歷陽歷的時(shí)間轉(zhuǎn)換?;緦?shí)現(xiàn)的方式是首先查找并讀取存儲在計(jì)算機(jī)內(nèi)存的基本數(shù)據(jù)表,經(jīng)過程序轉(zhuǎn)換得到所需的數(shù)據(jù)信息,然后按照算法實(shí)現(xiàn)對陽歷和陰歷之間的轉(zhuǎn)換。首先要?jiǎng)?chuàng)建月份數(shù)據(jù)表,當(dāng)輸入BCD公歷時(shí)間數(shù)據(jù)則輸出BCD農(nóng)歷時(shí)間數(shù)據(jù)(只允許1901-2099年的范圍),如:計(jì)算2004年10月16日程序編寫基本思路是:Conversion(0,0x4,0x10,0x16);c_sun,year_sun,month_sun,day_sun均為BCD數(shù)據(jù),世紀(jì)標(biāo)志位c_sun規(guī)定c_sun=0是21世紀(jì),c_sun=1是19世紀(jì)。[12]十進(jìn)制轉(zhuǎn)換數(shù)據(jù)為十六進(jìn)制,選用當(dāng)年春節(jié)公歷月的時(shí)間,計(jì)算當(dāng)年元旦離當(dāng)年春年之間的天數(shù)差值,陽歷日距離春節(jié)的天數(shù)計(jì)算方法是通過兩者相減得到的。計(jì)算星期用到的算法是:日期+年份+所過閏年數(shù)+月較正數(shù)之和除7的余數(shù)就是星期但如果是在閏年又不到3月份上述之和要減一天再除7星期數(shù)為0。關(guān)鍵代碼如下:1.voidLunar_work(void)2.{3.u8c_sun,year_sun,month_sun,day_sun;4.u8tmp=0;5.c_sun=0;//21世紀(jì)6.year_sun=distime.tm_year-2000;7.tmp=(year_sun/10)*16+year_sun%10;8.year_sun=tmp;9.month_sun=distime.tm_mon+1;10.tmp=(month_sun/10)*16+month_sun%10;11.month_sun=tmp;12.day_sun=distime.tm_mday;13.tmp=(day_sun/10)*16+day_sun%10;14.day_sun=tmp;15.Conver_week(c_sun,year_sun,month_sun,day_sun);16.Conversion(c_sun,year_sun,month_sun,day_sun);17.lunartime.tm_year=2000+year_moon/16*10+year_moon%16;18.lunartime.tm_mon=month_moon/16*10+month_moon%16;19.lunartime.tm_mday=day_moon/16*10+day_moon%16;20.lunartime.tm_wday=week/16*10+week%16;21.}6自動校時(shí)電子時(shí)鐘系統(tǒng)的調(diào)試與分析6.1校時(shí)時(shí)間誤差測試自動校時(shí)電子時(shí)鐘,要求校時(shí)精準(zhǔn),通過按鍵調(diào)整時(shí)間和0.96英寸OLED顯示時(shí)間。完成實(shí)物圖時(shí)候通過萬用表檢查的電路各個(gè)器件之間的的連接情況,調(diào)試好硬件電路之后對軟件程序也依次進(jìn)行調(diào)試檢測。選用ESP8266WiFi進(jìn)行校時(shí),WiFi模塊獲取網(wǎng)絡(luò)時(shí)間本身存在的誤差之外,程序校時(shí)的時(shí)間誤差在10s的范圍之間。以下是本設(shè)計(jì)實(shí)際操作中的誤差見表6-1。表6-1自動校時(shí)電子時(shí)鐘誤差數(shù)據(jù)表調(diào)節(jié)電子時(shí)鐘顯示時(shí)間標(biāo)準(zhǔn)時(shí)間誤差2017/5/0111:222021/5/01/11:2214s2022/5/0214:302022/5/0214:3016s2021/4/0216:402021/5/0216:4018s2021/5/024:402021/5/0216:4615s6.2溫度采集數(shù)據(jù)誤差測試選用DS18B20溫度傳感器,-10~+85°C的相對誤差是正負(fù)0.5℃。在進(jìn)行物理測試中,實(shí)際溫度差如表6-2。表6-2自動校時(shí)電子時(shí)鐘溫度實(shí)際溫度誤差環(huán)境溫度電子時(shí)鐘顯示的溫度誤差27℃(廣西師范大學(xué)十五舍4月28)26℃(廣西師范大學(xué)十五舍4月28)1℃28℃(廣西師范大學(xué)圖書館二樓5月1)30℃(廣西師范大學(xué)圖書館二樓5月1)2℃29℃(廣西師范大學(xué)圖書館二樓5月2)30℃(廣西師范大學(xué)圖書館二樓5月2)1℃30℃(廣西師范大學(xué)圖書館室外5月2)30℃(廣西師范大學(xué)圖書館室外5月2)0℃6.3自動校時(shí)電子時(shí)鐘系統(tǒng)整體調(diào)試6.3.1硬件調(diào)試在硬件部分,發(fā)現(xiàn)核心處理器的單片機(jī)不能正常工作,進(jìn)過不斷調(diào)試和排除各個(gè)元器件的電路連接,發(fā)現(xiàn)單片機(jī)的晶振壞掉了,于是通過更換代替解決了問題。6.3.2軟件調(diào)試網(wǎng)絡(luò)通訊:網(wǎng)絡(luò)時(shí)鐘部分,調(diào)試無法實(shí)現(xiàn)正確獲取數(shù)據(jù),經(jīng)過長時(shí)間分析和調(diào)試,在程序的調(diào)試過程中,發(fā)現(xiàn)解析數(shù)據(jù)的一個(gè)函數(shù)出現(xiàn)了錯(cuò)誤,經(jīng)過更改數(shù)據(jù)。ESP8266-01模塊調(diào)試:遇到有以下這些困難(1)拿到ESP8266-01模塊后,按照ESP8266新手入門調(diào)試指導(dǎo)測試,發(fā)現(xiàn)有些指令回復(fù)不正確,通過服務(wù)器連接后沒有返回link;(2)懷疑是固件版本不符合,于是從安信可官方查找燒寫固件方法,運(yùn)用最新的FLASH_DOWNLOAD_TOOLS_V,燒寫官方最新固定8M版本,始終不成功,后來發(fā)現(xiàn)是因?yàn)槟K是4M,而非8M,找到老固件ESP_8266_BIN0.92.bin,燒

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論