葉飛
摘要:該文設(shè)計了一款多功能的電子數(shù)字時鐘,其核心主要是硬件設(shè)計和軟件編程兩個大方面。硬件設(shè)計主要以單片機STC89C51為核心,結(jié)合相關(guān)的外圍電路如時鐘芯片DS1302電路、溫度測量芯片DS18B20電路、顯示液晶1602電路、獨立按鍵電路。電路實現(xiàn)了顯示時間、調(diào)整時間、測量并顯示溫度等功能,實際測試該系統(tǒng)達到了設(shè)計的要求和目的。
關(guān)鍵詞:單片機;數(shù)字時鐘
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2018)09-0285-02
單片機技術(shù)是從事嵌入式開發(fā)的基本技術(shù),是各高校嵌入式與物聯(lián)網(wǎng)相關(guān)專業(yè)的專業(yè)核心課程。同時,單片機又是一門實用技術(shù),學(xué)習(xí)它本質(zhì)不是為了應(yīng)付考試,而是切實掌握一項開發(fā)工具,為以后從事項目開發(fā)提供幫助。基于此,設(shè)計各種符合實際需求的項目,可以為學(xué)生學(xué)習(xí)提供更直觀的視角,而數(shù)字時鐘無疑是一個經(jīng)典應(yīng)用場景。
1 系統(tǒng)設(shè)計
1.1 需求分析
本次設(shè)計中根據(jù)實際需要,結(jié)合STC89C51單片機的特點,完成電子時鐘的系統(tǒng)設(shè)計。在設(shè)計中,除了基本的走時(包括時間、日期、星期)、板載的按鍵校對時間功能外,還提供溫度測量功能。本系統(tǒng)由單片機最小系統(tǒng)、LCD顯示模塊、DS1302時鐘模塊、按鍵模塊、溫度傳感器模塊等相關(guān)模塊構(gòu)成,由STC89C51單片機為控制核心,時鐘電路由DS1302提供,溫度的采集由DS18B20芯片完成,通過主控模塊實時讀取時鐘芯片和溫度芯片發(fā)送的數(shù)據(jù)并將讀取到的數(shù)據(jù)進行處理顯示到LCD屏幕上,當用戶按下了按鍵則會觸發(fā)中斷系統(tǒng),根據(jù)判斷用戶按下的哪個按鍵進行對應(yīng)的響應(yīng)完成調(diào)時以及其他功能的控制與校準。
1.2 系統(tǒng)設(shè)計方案
需求分析和硬件模塊規(guī)劃已經(jīng)確定,就需要進行系統(tǒng)設(shè)計,軟件部分需要分層,一層是底層驅(qū)動,一層是上層應(yīng)用,底層驅(qū)動使相應(yīng)的模塊正常工作,上層應(yīng)用控制底層模塊具體工作方式,例如從時鐘存儲模塊讀取時間信息,溫度檢測模塊讀取溫度信息,按鍵輸入模塊校準新的時間。其具體工作方式如圖1。
2 硬件電路設(shè)計
本系統(tǒng)中硬件系統(tǒng)包括STC89C51最小系統(tǒng)設(shè)計、LCD顯示模塊、溫度檢測模塊、時鐘存儲模塊。采用模塊化設(shè)計的思想對以上模塊進行設(shè)計。
2.1 單片機最小系統(tǒng)
單片機最小系統(tǒng)三要素:電源電路、復(fù)位電路、和晶振電路。電源電路給單片機提供+5V的工作電壓,復(fù)位電路可以為單片機提供復(fù)位信號,晶振電路為單片機提供工作用的時鐘信號,STC89C51系列單片機時鐘信號采用11.0592MHz的時鐘頻率。
2.2 LCD顯示電路
LCD采用傳統(tǒng)的1602型液晶,其16管腳的管腳信號說明如下表1。
按表1將LCD1602與STC89C51連接。
2.3 時鐘存儲電路
時鐘存儲電路選用實時時鐘芯片DS1302,其是DALLAS(達拉斯)公司推出的一款涓流充電時鐘芯片,可以提供秒、分、小時、日期、月、年等信息,并且有軟件自動調(diào)整能力,可以通過配置AM/PM來決定是采用24小時格式還是12小時格式。
其與STC89C51的連接方式如圖2,DS1302的CE引腳與單片機的P3^7連接,數(shù)據(jù)I/O引腳與單片機的P3^6連接,通信時鐘引腳和單片機的P3^5連接:
2.4 溫度傳感器
溫度傳感器選擇DS18B20,其管腳如圖3。
DS18B20是美信公司的一款溫度傳感器,單片機可以通過1-wire協(xié)議與DS18B20進行通信,最終將溫度讀出。1-wire總線的硬件接口很簡單,只需要把DS18B20的數(shù)據(jù)引腳和單片機的一個IO口接上就可以了。
2.5 按鍵設(shè)計
設(shè)計三個按鍵,一個調(diào)整模式,兩個校準時間,其與單片機STC89C51的連接方式如圖4。
3 軟件設(shè)計
3.1 軟件流程圖
主程序開始后,先對LCD1602進行清屏,之后對DS1302時鐘芯片進行初始化,初始化后對時鐘芯片DS1302的時鐘信息進行讀寫,讀寫后將其打印到LCD1602上,同時,通過按鍵掃描中斷判斷是否有時間校準鍵按下,如果按下,進入時間調(diào)整模式,通過按鍵的鍵值來調(diào)整時間并顯示出來,主程序流程圖如圖5所示。
3.2 DS1302時鐘芯片工作流程
首先對DS1302時鐘芯片上電,之后對DS1302的寄存器進行讀取,讀操作利用時間數(shù)據(jù)所在寄存器地址相鄰的特點,對年、星期、月、日、時、分等時間信息依次讀出,讀取方式類似SPI總線。
4 綜合調(diào)試
使用proteus仿真工具進行硬件搭配和軟件編譯,結(jié)果如下:
5 結(jié)論
自此,一個涉及單片機與其他芯片通信、控制、顯示的具體實踐項目完成。而多進行類似項目的開發(fā),對在校大學(xué)生真正理解和掌握STC89C51單片機,乃至進一步掌握類似ARM、FPGA等嵌入式控制器有著重要的意義。
參考文獻:
[1] 張偉.Protel DXP 高級應(yīng)用[M].北京:人民郵電出版社,2002.
[2] 譚浩強.C程序設(shè)計[M].北京:清華大學(xué)出版社,2004.
[3] 宋雪松.手把手教你學(xué)51單片機[M].北京:清華大學(xué)出版社,2014.