999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的電子萬年歷系統設計

2015-04-29 00:00:00劉磊
科技資訊 2015年1期

摘 要:電子萬年歷是集時間、日期、星期和溫度功能于一身,讀取直觀方便,市場發展前景廣闊的一個實用系統。本系統利用STM32內部RTC實時時鐘模塊,通過相應的軟件配置和算法設計,實現電子萬年歷的功能,可以在LCD12864顯示屏上實時顯示當前的年、月、日、時、分、秒、星期等信息,具有閏年補償功能,硬件實現簡單,界面友好,系統可靠程度高。本系統就是利用這個模塊,配合LCD12864顯示屏幕,來實時顯示當前時間。下面從理論分析、硬件電路、軟件設計等幾個方面分別說明。

關鍵詞:時鐘電路 萬年歷 STM32 LCD12864

中圖分類號:TN873 文獻標識碼:A 文章編號:1672-3791(2015)01(a)-0000-00

作者簡介:劉磊(1993-),男,漢族,河北蔚縣人,學歷:本科,研究方向:電氣工程及其自動化。

1 理論分析

RTC主要由兩部分組成。第一部分一是與APB1總線相連的APB1接口,它由APB1總線時鐘驅動,主要用于用戶通過APB1總線對其進行讀寫操作。第二部分是一組可編程計數器,它又由RTC預分頻模塊和RTC可編程計數模塊組成,前者用于產生1秒時間基準,后者主要用于初始化當前時鐘時間和進行時鐘計數。RTC內核完全獨立于APB1接口,軟件可以通過APB1接口來訪問預分頻值和時鐘計數器值。

要實現萬年歷功能,必須對RTC的寄存器進行相應的配置。RTC的控制寄存器有兩個,分別為RTC_CRH和RTC_CRL。對RTC_CRH的最低位置1可以允許秒中斷,這也是我們系統所需要的。在RTC_CRL中,位5到位0是有效位,分別是關于RTC關閉、配置標志、寄存器同步標志、溢出標志、鬧鐘標志和秒標志的設置。這其中也有些是需要我們注意的,比如位5為RTC操作位,該位只能由硬件操作,軟件只讀,在進行完一次RTC操作后,必須判斷該位來確定操作是否完成,若未完成,進行等待。RTC的預分頻裝載寄存器也是十分重要的寄存器之一,由RTC_PRLH和RTC_PRLL組成,主要用來配置RTC的分頻數。RTC最重要的寄存器是計數寄存器RTC_CNT,由兩個16位寄存器組成用來進行秒鐘的計數,最大計數值折合成年大概為136年。在修改RTC_CNT時需要進入配置模式。

2 硬件電路

STM32最小系統需要搭建好兩個晶振模塊,分別為32768HZ的低速晶振和8MMZ的高速晶振。然后接入復位電路,用于實現系統的復位功能。最后接入JTAG電路,就可以進行程序的下載和硬件仿真了。

LCD12864液晶顯示屏可以顯示較多的漢字和字符,程序簡單,支持串行和并行通信。在本設計中由于IO口的使用并不是很緊張,故選擇八位并行通信方式。在硬件連接方面需要注意,將顯示屏的DB0-DB7與單片機定義的八位數據口相連,并將RS、RW、EN與單片機定義的相應控制端口相連,最后根據液晶的說明書正確連接電源和背光引腳。

3 軟件設計

軟件方面首先要對STM32的RTC進行相關配置。第一步,使能電源時鐘和備份區域的時鐘,這樣這些區域才能開始正常工作。第二步,要取消備份區域的寫保護,方便對備份區域的數據進行讀寫。同時要標記時鐘已經經過配置,避免每次復位之后需要重新配置時鐘。第三步,使能外部低速振蕩器并為RTC選擇時鐘源,為萬年歷的運行提供基本的時鐘信號。第四步,使能RTC并進行相關的配置,主要包括分頻、RTC的允許配置位、更新配置和設置中斷等。這些配置為RTC按我們的需求工作提供了基礎。第五步也是十分重要的一步,編寫中斷服務函數,在中斷中需要讀出當前的時間值實現時間的實時刷新。

在程序設計方面有幾個重要的函數。首先是time_set函數,這個函數主要功能是以軟件的方式設定一個時間的起始值,也相當于現實生活中的時鐘校準。time_set函數有六個參數分別為year、month、day、hour、min、sec,用來表示用戶欲設定的年、月、日、時、分、秒,返回值為0表示設置失敗,1表示設置成功。程序算法是:若設置年份大于1970年,則將該年份減去1970再乘以一年時間對應的秒數存入某一變量,若設置月份大于1月,則將該月份減去1月乘以一月對應的秒數存入另一變量,依次類推,最后將每一個參數對應的變量相加即得到當前時間相對于1970年1月1日0時0分0秒所走過的秒數。最后將這個秒數寫入到RTC的RTC_CNT寄存器中,作為計數初值。當然在程序中也要對閏年和閏年的2月做特殊處理,不再贅述。

還有一個重要的函數是time_get函數,這個函數的主要功能是將計數器中的值讀出來并轉化為當前的時間,類似于time_set函數的逆過程。首先要將RTC_CNT寄存器中的值存入變量,用這個變量進行關于時間換算的計算。并且我們要定義一個結構體calendar來存放轉換完成后的各個變量的值。換算的方法也是簡單的數學問題,用取商和取余運算就可以得到秒數對應的年、月、日等變量的值。

對于中斷服務函數的處理也很簡單,只需要判斷標志位來確定產生的中斷是不是我們需要的秒中斷,若是則調用time_get函數刷新當前時間。

在主函數中首先要注意的是各個模塊的初始化,包括STM32系統、RTC模塊和LCD12864顯示模塊等。由于沒有外擴鍵盤,所以在下載程序時候需要進行一次時間的校準,即手動更改time_set函數的參數值。然后程序便可以進入while(1)死循環,在循環中不斷執行LCD顯示程序,因為時間是在中斷中刷新,故LCD12864也可以實時顯示當前時間,達到萬年歷的效果。

4 結論

本系統硬件電路簡單,成本低,性價比高,以軟件的方式充分利用STM32片上資源實現了萬年歷的功能,能精確顯示當前時間,系統可靠性高。

參考文獻

[1] 滕振芳,張昆.基于單片機的電子萬年歷的設計.價值工程.2010(6)056.

[2] 何乃味.基于LED點陣顯示的電子萬年歷的設計與實現.安徽電子信息職業技術學院學報.2014(1)19

主站蜘蛛池模板: 欧美a在线看| 亚洲色图在线观看| 亚洲第一成网站| 免费激情网址| 国产在线啪| 国产拍揄自揄精品视频网站| 国产AV无码专区亚洲A∨毛片| 欧美一区二区三区不卡免费| 国产亚洲精品va在线| 国产99热| 白浆视频在线观看| 尤物特级无码毛片免费| 搞黄网站免费观看| 青青操视频免费观看| 91亚洲视频下载| 国产 日韩 欧美 第二页| 中国一级特黄视频| 欧美日韩免费| 日本在线免费网站| 欧美专区日韩专区| 免费精品一区二区h| 干中文字幕| 精品国产网站| 精品综合久久久久久97超人| 久久精品丝袜| 色老头综合网| 亚洲色婷婷一区二区| 国产在线八区| 青草国产在线视频| 久久久受www免费人成| 成人午夜久久| 国产免费高清无需播放器| 国产福利微拍精品一区二区| 九九这里只有精品视频| 亚洲国产AV无码综合原创| 国产精品国产主播在线观看| 91福利免费视频| 97亚洲色综久久精品| 亚洲性网站| 91九色视频网| 久久女人网| 亚洲大学生视频在线播放| 亚洲最大福利视频网| 国产精品一区二区国产主播| 免费在线看黄网址| 国产在线观看人成激情视频| 免费看黄片一区二区三区| 91亚洲免费视频| 国产18在线播放| 午夜a视频| 亚洲精品午夜无码电影网| 日韩无码黄色网站| 毛片a级毛片免费观看免下载| 国产日本一区二区三区| 伊人激情久久综合中文字幕| 呦女精品网站| 色网站免费在线观看| 全部无卡免费的毛片在线看| 五月丁香伊人啪啪手机免费观看| 国产一区免费在线观看| 日韩欧美国产成人| 五月天香蕉视频国产亚| 99久视频| 国产av剧情无码精品色午夜| 波多野结衣一区二区三区88| 国产精品嫩草影院av| 中字无码av在线电影| 国产区免费| 国产玖玖视频| 成人在线天堂| 欧美精品一区二区三区中文字幕| 国产高清在线丝袜精品一区| 四虎成人在线视频| 色天堂无毒不卡| 亚洲第一福利视频导航| 日本不卡在线| 亚洲欧美日韩中文字幕在线一区| 露脸国产精品自产在线播| 亚洲午夜天堂| 青青国产视频| 国产97视频在线观看| 国产免费精彩视频|