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

下載本文檔

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

文檔簡介

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

圖3-1自動校時電子時鐘系統(tǒng)框圖3.2自動校時電子時鐘的基本工作原理STM32單片機(jī)串口RTC3、TXD對應(yīng)連接ESP8266WIFI模塊TXD3、RTC3口。ESP8266WIFI模塊以聯(lián)網(wǎng)方式獲取服務(wù)器時間,然后通過串口發(fā)送給STM32微控制器,STM32微控制器接收到時間信號,用于STM32微控制器內(nèi)部的RTC時鐘校時,再將時間數(shù)據(jù)傳送給OLED液晶顯示屏顯示相應(yīng)日期,由日期來自動轉(zhuǎn)農(nóng)歷的數(shù)據(jù)。自動校時電子時鐘的校準(zhǔn)實(shí)現(xiàn)方式是通過網(wǎng)絡(luò)來更新時間數(shù)據(jù),由WiFi模塊獲取網(wǎng)絡(luò)服務(wù)器數(shù)據(jù),單片機(jī)內(nèi)部時鐘RTC進(jìn)行校時,從而滿足自動校時的功能。3.3系統(tǒng)總電路圖WiFi自動校時電子時鐘總電路圖,如圖3-3所示。圖3-3WiFi自動校時電子時鐘總電路圖4系統(tǒng)的硬件設(shè)計根據(jù)自動校時電子時鐘的要實(shí)現(xiàn)的基本功能,硬件電路包括STM32F103C8T6單片機(jī)芯片核心處理器、ESP8266WiFi無線傳輸模塊、DS18B20溫度采集數(shù)據(jù)傳感器模塊、0.96寸OLED液晶顯示屏顯示模塊、獨(dú)立按鍵模塊、蜂鳴器模塊以及電源模塊這些硬件模組成,自動校時電子時鐘解決方案設(shè)計的硬件電路框圖如圖3-3所示。4.1數(shù)據(jù)處理控制模塊方案一:選用SCT89C52單片機(jī),該單片機(jī)是51系列單片機(jī)的增強(qiáng)型,擁有抗干擾能力大、傳輸高速、功耗消耗少等優(yōu)勢。傳統(tǒng)51單片機(jī)指令代碼該單片機(jī)都能夠全部兼容,能夠隨意在6時鐘機(jī)器周期和12周期中選用。此單片機(jī)的部分參數(shù)見表4-1-1。表4-1-1SCT89C52單片機(jī)處理器參數(shù)表參數(shù)類型具體參數(shù)內(nèi)部RAM512字節(jié)定時器/計數(shù)器3個,T0/T1/T2工作電壓3.3V-5V存儲器大小8K全靜態(tài)工作頻率0~40MHz低功耗模式空閑、掉電通信方式串行通信可編程的I/O線21個方案二:選用STM32F103C8T6單片機(jī)作為自動校時電子時鐘最小工作系統(tǒng)。可以外接直插,方便手工焊接。同時,外接一個電壓大小為3V的紐扣電池充當(dāng)單片機(jī)內(nèi)部RTC時鐘電源備用電池,確保RTC時鐘的走時準(zhǔn)確性。[5]STM32系列單片機(jī)是新型的處理器,運(yùn)行速度快,同樣也設(shè)置了充足的內(nèi)置資源。[6]在供電方面,計算機(jī)與數(shù)據(jù)線相連,就可以進(jìn)行充電,這樣保證保持其正常的工作模式和運(yùn)行。[6]正是因?yàn)榫邆淞诉@些優(yōu)點(diǎn),也適用于本次設(shè)計電子時鐘系統(tǒng)的需求。同樣,通過該芯片能夠自由選擇需要的控制模塊,這種做法可以電子時鐘實(shí)現(xiàn)多種功能,獲取時間數(shù)據(jù)精確和實(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è)計采用ESP8266WIFI模塊作為網(wǎng)絡(luò)校時模塊,ESP8266WiFi模塊和其他程序模塊加起來的空間存儲已經(jīng)超過了8K,因此SCT89C52單片機(jī)在程序存儲方面顯然不適合。WiFi網(wǎng)絡(luò)校時傳輸數(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ī)時在200uA以下。使用過程中,除了電源以及通信端口,使能引腳上拉,剩余未使用的引腳應(yīng)保持懸掛。[7]本設(shè)計中,WiFi模塊要實(shí)現(xiàn)的功能是網(wǎng)絡(luò)校時。具體實(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è)計的溫度傳感器模塊選型考慮用的溫度采集模塊有:DHT11濕溫度傳感器和DS18B20傳感器:方案一:選用DHT11溫度傳感器,DHT11溫度傳感器模塊同時擁有NTC測溫器件和電容式感溫器件。接口選擇單線式串行方式,簡化了系統(tǒng)操作步驟,功耗較小,長期穩(wěn)定并且超長的傳送間隔。該模塊的60uA的待機(jī)時間,供電電壓是DC3.3V~5.5V,0.3mA的供電電流,0~50℃的溫度測量范圍,1℃的溫度分辨率。方案二:選用DS1820溫度傳感器作為溫度報警模塊,該模塊擁有9位A/D精度轉(zhuǎn)換,溫度測量值在-55℃~+125℃之間,將溫度更改為數(shù)字通過1s范圍就可以實(shí)現(xiàn)。DS1820具有測溫操作簡易、精度高的特點(diǎn)。實(shí)際應(yīng)用中要注意(1)讀寫程序DS820時,確保讀寫時序的規(guī)范,不然不能得到準(zhǔn)確數(shù)據(jù);(2)測溫程序階段,DS1820接受到溫度轉(zhuǎn)換指示后,程序需要延時,該模塊才能返回數(shù)據(jù),當(dāng)出現(xiàn)接觸出現(xiàn)問題時,程序讀取無法返回數(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è)計中,DS18B20溫度傳感器的功能是及時檢查自動校子時鐘系統(tǒng)的工作溫度,溫度達(dá)到程序設(shè)置的閾值,然后蜂鳴器模塊會出現(xiàn)響聲。[9]硬件電路的具體設(shè)計由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個字符芯片工作電壓4.5~5.5V模塊最佳電壓5.0V字符尺寸2.95×4.35(W×H)mm方案二:本設(shè)計采用中景園0.96寸的4針OLED液晶顯示屏。該模塊采用的內(nèi)部驅(qū)動芯片是SSD1306,模塊供電方式可以是3.3V。通信時,采用IIC電路接口,電路接口分別做時鐘接口和數(shù)據(jù)接口,時鐘引腳是SCL,數(shù)據(jù)引腳為SDA。不需要修改模塊路,OLED屏具有多個控制指令,功能豐富,漢字展現(xiàn)、ASCII、圖片等。OLED技術(shù)具有自發(fā)光的特點(diǎn),當(dāng)系統(tǒng)上電時不會點(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è)計。故在選擇顯示屏?xí)r,優(yōu)先考慮OLED液晶顯示屏。4.5報警提示模塊本設(shè)計方案用蜂鳴器當(dāng)報警提醒模式。電路主控制芯片選擇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引腳位被拉低,處于低電平時,蜂鳴器是正常的工作模式狀態(tài)發(fā)出報警聲音,相反,如果引腳是高電平模式,電路則相當(dāng)于斷開狀態(tài),這時蜂鳴器是不發(fā)出報警聲。在本設(shè)計電路中,蜂鳴器發(fā)揮作用有兩個模式:當(dāng)處于鬧鐘模式,蜂鳴器是否導(dǎo)通由輸出電平變化來控制,當(dāng)使用者定時鬧鐘和當(dāng)前時間相同時,蜂鳴器則發(fā)出響聲。處于溫度報警模式,為了避免自動校時電子時鐘系統(tǒng)溫度超過程序設(shè)置的最高溫度,DS18B20溫度傳感器及時監(jiān)察系統(tǒng)的工作溫度是否超過程序設(shè)置的最高值30℃,如果超過本設(shè)計方案中的這個溫度,那么蜂鳴器模塊將會主動發(fā)出聲音。4.6按鍵模塊本設(shè)計方案電路硬件設(shè)計中設(shè)置了3個調(diào)節(jié)時間的按鍵。[2]這三個按鍵分別實(shí)現(xiàn)不同的功能,分別接在STM32F103C8T6單片機(jī)的PA0、PA1和PA2引腳,按鍵輸入模塊實(shí)現(xiàn)時陽歷陰歷日期、星期、鬧鐘和溫度數(shù)據(jù)的循環(huán)切換模式。[2]。第一個按鍵為設(shè)置鍵,進(jìn)入日期、星期、鬧鐘數(shù)據(jù)的設(shè)置,第二個按鍵實(shí)現(xiàn)時間數(shù)據(jù)的減1操作,第三個按鍵實(shí)現(xiàn)時間數(shù)據(jù)的加1操作。按鍵模塊電路如圖4-6所示。圖4-6按鍵電路5系統(tǒng)的軟件設(shè)計5.1軟件開發(fā)環(huán)境軟件部分本設(shè)計方案采用了KEIL5進(jìn)行編譯。其開發(fā)周期大致如下:(1)首先建立工程文件,選用芯片進(jìn)行方案設(shè)計,然后進(jìn)行設(shè)置(2)進(jìn)行C源文件和程序集源文件的編寫,輸出程序集源文件。(3)編譯應(yīng)用代碼并且找出程序代碼中的錯誤點(diǎn)。(4)當(dāng)文件中出現(xiàn)編譯錯誤時,返回程序并糾正(5)進(jìn)行調(diào)試。[15]5.2系統(tǒng)的軟件設(shè)計以及軟件系統(tǒng)流程圖5.2.1主程序設(shè)計思路進(jìn)入初始化程序,首先進(jìn)入平臺初始化,,然后設(shè)置NVIC中斷,打開WiFi的串口中斷,依次進(jìn)行溫度、WiFi、OLED液晶屏、RTC時鐘和按鍵初始化。再進(jìn)行采集RTC時間、農(nóng)歷程序、溫度采集程序,經(jīng)過延時,進(jìn)入WiFi程序,延時為1秒,發(fā)送指令,網(wǎng)絡(luò)解析獲取時間數(shù)據(jù),服務(wù)器返回時間數(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è)計以及各個模塊子程序設(shè)計。[10]系統(tǒng)的軟件總流程如圖5-2-2。圖5-2-2軟件系統(tǒng)流程5.3子程序設(shè)計5.3.1WiFi時間處理子程序網(wǎng)絡(luò)校時的實(shí)現(xiàn)可以通過ESP8266WiFi模塊能夠?qū)崿F(xiàn)一種網(wǎng)絡(luò)授時終端。[7]本設(shè)計的ESP8266WiFi模塊時間處理程序在系統(tǒng)通電之后,程序開始進(jìn)行系統(tǒng)初始化過程,獲取WiFi網(wǎng)絡(luò)名稱和密碼是通過讀取EEPROM得到的。本設(shè)計程序WiFi網(wǎng)絡(luò)名是PhoneA以及網(wǎng)絡(luò)密碼是123456789,WiFi模塊通過連接NTP服務(wù)器的IP地址(1.)和端口(123),通過發(fā)送指令.服務(wù)器返回網(wǎng)絡(luò)時間數(shù)據(jù)指令,獲得網(wǎng)絡(luò)時間數(shù)據(jù)之后進(jìn)行解析時間,然后進(jìn)行時間校準(zhǔn)。WiFi時間處理子程序流程圖如圖4-2-1所示。圖5-3-1WiFi時間處理子程序流程5.3.2溫度采集數(shù)據(jù)子程序系統(tǒng)開始供電使用時,單總線直接讀取數(shù)據(jù),OLED液晶顯示溫度數(shù)據(jù)。與系統(tǒng)設(shè)定的溫度限制進(jìn)行比較。如果溫度超過系統(tǒng)程序設(shè)定的最大值,蜂鳴器會發(fā)出提示響聲。采集溫度子程序如圖5-3-2所示。圖5-3-2溫度采集流程5.3.3OLED顯示子程序OLED屏是一個液晶屏的驅(qū)動程序,采用I2C的接口,本文的設(shè)計用到的是使用0.96寸中景園OLED屏顯示,I2C接口一個用于時鐘接口,一個用與數(shù)據(jù)接口。其流程如圖5-3-3。圖5-3-3OLED液晶顯示5.3.4單片機(jī)內(nèi)部RTC時鐘子程序SIM32單片機(jī)微型處理器內(nèi)部RTC驅(qū)動時鐘應(yīng)用外部晶振32.768KHZ的振蕩器,此外,可以輸入152Hz的信號來校準(zhǔn)RTC的時鐘。一般來說,32.768kHz時鐘可以形成1秒長的時間標(biāo)準(zhǔn)。程序進(jìn)入按鍵初始化,設(shè)置IO口,通過按鍵S1和按鍵S2分別調(diào)節(jié)鬧鐘的增加或減少,如果時間與定時鬧鐘時間相應(yīng)則進(jìn)入報警程序來提示。使用單片機(jī)內(nèi)部的RTC時鐘來獲取時間,再通過按鍵來調(diào)整時鐘。其流程圖如圖5-3-4所示。圖5-3-4RTC實(shí)時時鐘程序流程5.5.5農(nóng)歷時間子程序陽歷和陰歷是兩套不同的歷法,所以要將公歷的年月日數(shù)據(jù)進(jìn)行轉(zhuǎn)換,才能相應(yīng)的陰歷日期。[11]實(shí)現(xiàn)功能要用到農(nóng)歷陽歷的時間轉(zhuǎn)換?;緦?shí)現(xiàn)的方式是首先查找并讀取存儲在計算機(jī)內(nèi)存的基本數(shù)據(jù)表,經(jīng)過程序轉(zhuǎn)換得到所需的數(shù)據(jù)信息,然后按照算法實(shí)現(xiàn)對陽歷和陰歷之間的轉(zhuǎn)換。首先要創(chuàng)建月份數(shù)據(jù)表,當(dāng)輸入BCD公歷時間數(shù)據(jù)則輸出BCD農(nóng)歷時間數(shù)據(jù)(只允許1901-2099年的范圍),如:計算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é)公歷月的時間,計算當(dāng)年元旦離當(dāng)年春年之間的天數(shù)差值,陽歷日距離春節(jié)的天數(shù)計算方法是通過兩者相減得到的。計算星期用到的算法是:日期+年份+所過閏年數(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自動校時電子時鐘系統(tǒng)的調(diào)試與分析6.1校時時間誤差測試自動校時電子時鐘,要求校時精準(zhǔn),通過按鍵調(diào)整時間和0.96英寸OLED顯示時間。完成實(shí)物圖時候通過萬用表檢查的電路各個器件之間的的連接情況,調(diào)試好硬件電路之后對軟件程序也依次進(jìn)行調(diào)試檢測。選用ESP8266WiFi進(jìn)行校時,WiFi模塊獲取網(wǎng)絡(luò)時間本身存在的誤差之外,程序校時的時間誤差在10s的范圍之間。以下是本設(shè)計實(shí)際操作中的誤差見表6-1。表6-1自動校時電子時鐘誤差數(shù)據(jù)表調(diào)節(jié)電子時鐘顯示時間標(biāo)準(zhǔn)時間誤差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í)際溫度誤差環(huán)境溫度電子時鐘顯示的溫度誤差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自動校時電子時鐘系統(tǒng)整體調(diào)試6.3.1硬件調(diào)試在硬件部分,發(fā)現(xiàn)核心處理器的單片機(jī)不能正常工作,進(jìn)過不斷調(diào)試和排除各個元器件的電路連接,發(fā)現(xiàn)單片機(jī)的晶振壞掉了,于是通過更換代替解決了問題。6.3.2軟件調(diào)試網(wǎng)絡(luò)通訊:網(wǎng)絡(luò)時鐘部分,調(diào)試無法實(shí)現(xiàn)正確獲取數(shù)據(jù),經(jīng)過長時間分析和調(diào)試,在程序的調(diào)試過程中,發(fā)現(xiàn)解析數(shù)據(jù)的一個函數(shù)出現(xiàn)了錯誤,經(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論