任 帥 李葒娜 楊添福 吳宏亮
(天津理工大學(xué)海運(yùn)學(xué)院,天津 300384)
基于STC89C51的溫測(cè)型多功能電子萬(wàn)年歷設(shè)計(jì)
任帥 李葒娜 楊添福 吳宏亮
(天津理工大學(xué)海運(yùn)學(xué)院,天津 300384)
本文介紹了基于STC89C51單片機(jī)的多功能電子萬(wàn)年歷的硬件結(jié)構(gòu)和軟硬件設(shè)計(jì)方法。本設(shè)計(jì)由數(shù)據(jù)顯示模塊、溫度采集模塊、時(shí)間處理模塊和調(diào)整設(shè)置模塊4部分組成。系統(tǒng)以STC89C51單片機(jī)為主控芯片;以串行時(shí)鐘日歷芯片DS1302作為時(shí)間信號(hào)源,可以完成對(duì)年、月、日、等進(jìn)行計(jì)時(shí)的任務(wù);選用DS18B20數(shù)字溫度傳感器進(jìn)行溫度采集。采用1602液晶顯示模塊可同時(shí)顯示年、月、日等及溫度信息。此萬(wàn)年歷結(jié)合測(cè)溫功能具有功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),具有廣闊的市場(chǎng)前景。
單片機(jī);溫度顯示;萬(wàn)年歷
時(shí)間的記錄工具經(jīng)歷了不同的發(fā)展歷史,從日晷,擺鐘逐漸發(fā)展為今天的電子萬(wàn)年歷。單片機(jī)的出現(xiàn),使各個(gè)領(lǐng)域的思維方式也發(fā)生了劇烈轉(zhuǎn)變,當(dāng)然也應(yīng)用到了電子萬(wàn)年歷方面。結(jié)合單片機(jī)技術(shù)開發(fā)的多功能電子萬(wàn)年歷功能多樣,不僅可做為時(shí)鐘工具具備傳統(tǒng)的走時(shí)功能,更將許多常見(jiàn)的功能融入,如鬧鐘、溫/濕度顯示、語(yǔ)音報(bào)時(shí)、圖片展示等,當(dāng)然由于單片機(jī)強(qiáng)大的控制功能,還可在原有基礎(chǔ)上擴(kuò)展其他功能,并可朝智能家居的方向發(fā)展。
圖1所示為本設(shè)計(jì)的系統(tǒng)框圖,選用單片機(jī)STC89C51。DS1302做為集成式時(shí)鐘芯片提供數(shù)字時(shí)間信息;數(shù)字溫度傳感器DS18B20產(chǎn)生實(shí)時(shí)數(shù)字溫度信息;按鍵模塊用于校準(zhǔn)時(shí)間;顯示器LCD1602提供人機(jī)交互界面。
圖 1 系統(tǒng)框圖
圖2 DS1302電路圖
(1)DS1302時(shí)鐘電路設(shè)計(jì)
DS1302是一款實(shí)時(shí)時(shí)鐘芯片,可提供時(shí)間日期信息,如圖2所示。DS1302與單片機(jī)采用SPI通信協(xié)議,此為串行方式,只需3根數(shù)據(jù)線即可完成通信。通過(guò)此協(xié)議,單片機(jī)可獲取時(shí)鐘芯片內(nèi)部的年、月、日、時(shí)、分、秒等信息。另外DS1302還具備掉電走時(shí)功能,其擁有兩個(gè)電源引腳,主電源和備份電源引腳,在主電源關(guān)閉情況下,備用電源持續(xù)供電,也能保持時(shí)鐘的連續(xù)運(yùn)行,當(dāng)再次供電時(shí),自動(dòng)切換至主電源。
DS1302芯片的X1和X2引腳外接32.768kHz的晶體振蕩器,用于產(chǎn)生內(nèi)部時(shí)鐘脈沖,脈沖驅(qū)動(dòng)電路進(jìn)經(jīng)過(guò)濾波整形,可得標(biāo)準(zhǔn)的1Hz的精準(zhǔn)信號(hào),將標(biāo)準(zhǔn)的脈沖方波信號(hào)送實(shí)時(shí)時(shí)鐘,即可將產(chǎn)生的時(shí)間信息以二進(jìn)制形式通過(guò)數(shù)據(jù)總線存放到內(nèi)部RAM中。
(2)DS18B20測(cè)溫電路設(shè)計(jì)
DS18B20是美國(guó)Dallas公司生產(chǎn)的“1-Wire”單總線測(cè)溫器件,圖3為其引腳圖,體積小,線路簡(jiǎn)單,不需額外的A/D轉(zhuǎn)換器及外圍元件,可直接讀取溫度數(shù)字值。測(cè)溫范圍-55℃~+125℃,可設(shè)置上下限溫度告警。DS18B20內(nèi)部有兩個(gè)溫度系數(shù)不同的晶體,外界溫度發(fā)生變化時(shí),兩個(gè)晶體發(fā)生不同的反應(yīng),經(jīng)過(guò)計(jì)數(shù)器的比對(duì)產(chǎn)生數(shù)字溫度信息,然后存儲(chǔ)在溫度寄存器中。
DS18B20的核心功能為直接讀取數(shù)字的溫度傳感器。溫度傳感器的精度可由用戶編程設(shè)置為9,10,11或12位(精度的控制位在配置寄存器的R1和R0位),分別以0.5℃,0.25℃,0.125℃和0.0625℃增量遞增。在上電狀態(tài)下默認(rèn)精度為12位。DS18B20啟動(dòng)后保持低功耗待機(jī)狀態(tài);當(dāng)需要執(zhí)行溫度測(cè)量和AD轉(zhuǎn)換時(shí),微處理器通過(guò)總線控制器發(fā)出[44h]命令,然后DS18B20執(zhí)行溫度轉(zhuǎn)換,產(chǎn)生的溫度數(shù)據(jù)以兩個(gè)字節(jié)的形式存儲(chǔ)到高速暫存器的溫度寄存器中,微處理器即可通過(guò)總線訪問(wèn)該溫度寄存器,總線控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時(shí)序”,可獲取該寄存器的數(shù)字溫度信息。
(3)LCD1602顯示電路設(shè)計(jì)
在LCD1602接口電路中,5腳為L(zhǎng)CD1602的讀/寫選擇端,本次設(shè)計(jì)中,并不需要從液晶顯示器中讀取信息,只需向液晶顯示器發(fā)送數(shù)據(jù)顯示,可將這個(gè)引腳設(shè)置為寫狀態(tài),即低電平接地。6腳為使能端,每次操作液晶時(shí)必須保證其有效,操作完畢后為了保證顯示穩(wěn)定,再將其關(guān)閉。
D0~D7為液晶顯示器的并行數(shù)據(jù)接口,可將其接到單片機(jī)的P0口,作為數(shù)據(jù)通信接口,P0口做為單片機(jī)的普通I/O口并沒(méi)有內(nèi)置上拉電阻,則需焊接4.7k的上拉電阻以保證正常使用;P2.5、P2.6、P2.7分別接1602的第4、5、6腳實(shí)現(xiàn)控制功能;BLK、BLA為液晶顯示器背光的正、負(fù)極,若不需背光功能,可將兩端懸空。液晶顯示器的VL端接電阻分壓,可進(jìn)行對(duì)比度調(diào)節(jié)。16腳接三極管放大端,激活背光功能,背光點(diǎn)亮后延時(shí)一段時(shí)間自動(dòng)關(guān)閉,從而降低功耗。
圖3 DS18B20電路圖
主程序流程圖如圖4所示。該系統(tǒng)的軟、硬件設(shè)計(jì)相對(duì)應(yīng),按整體功能分成多個(gè)不同的程序模塊,分別進(jìn)行設(shè)計(jì)、編程和調(diào)試,最后通過(guò)主程序?qū)⒏鞒绦蚰K連接起來(lái),有利于程序修改和調(diào)試,增強(qiáng)了程序的可移植性。
本系統(tǒng)的軟件主要進(jìn)行公歷計(jì)算程序設(shè)計(jì),溫度測(cè)量程序設(shè)計(jì),按鍵掃描輸入等。程序開始后先將單片機(jī)初始化,運(yùn)行溫度測(cè)量程序,讀取溫度傳感器的測(cè)量值;運(yùn)行公歷計(jì)算程序,得到公歷時(shí)間、日期信息;再運(yùn)行按鍵掃描程序,檢測(cè)有無(wú)鍵按下:若無(wú)鍵按下則直接調(diào)用節(jié)日計(jì)算程序,根據(jù)得到的公歷日期信息計(jì)算出節(jié)日,若有鍵按下則將按鍵修改后的變量更新,送節(jié)日計(jì)算程序,由此程序根據(jù)修改后的變量計(jì)算出對(duì)應(yīng)的節(jié)假日,計(jì)算完成后運(yùn)行顯示程序,顯示程序?qū)⒌玫降臏囟葦?shù)據(jù)、公歷信息、節(jié)假日信息送給對(duì)應(yīng)的數(shù)碼管顯示。
圖4 主程序流程圖
圖5為實(shí)際效果圖。經(jīng)測(cè)試,系統(tǒng)能正常運(yùn)行。按鍵按所示位置,從左到右依次為K1、K2、K3、K4。對(duì)其作簡(jiǎn)要說(shuō)明:
K1——切換鍵,K2——DOWN鍵,K3——UP鍵,K4——SET鍵。
K1:按下可顯示不同的模式,待機(jī)頁(yè)面為公歷時(shí)間,第一次按下為農(nóng)歷時(shí)間,第二次按下為鬧鐘時(shí)間,再按一次回到待機(jī)界面。
K2:用于設(shè)置模式下對(duì)所選項(xiàng)的減操作。
K3:用于設(shè)置模式下對(duì)所選項(xiàng)的加操作。若處于非設(shè)置模式下,此鍵用于喚醒屏幕背光。
K4:用于時(shí)間日期的設(shè)定,按下后依次進(jìn)入秒、分、時(shí)、日、月、年的設(shè)定。
在調(diào)試過(guò)程中出現(xiàn)了液晶屏幕不能顯示的情況,經(jīng)排查是對(duì)比度調(diào)節(jié)端連接錯(cuò)誤。本設(shè)計(jì)共占用23個(gè)I/O口資源,其余9個(gè)I/O口,可進(jìn)行二次開發(fā),增加其他功能。
圖5 實(shí)際效果圖
在整體設(shè)計(jì)過(guò)程中,硬件主要設(shè)計(jì)了STC89C51單片機(jī)的最小系統(tǒng)、DS1302接口電路、DS18B20接口電路及LCD顯示電路;軟件借助各個(gè)渠道資料,主要設(shè)計(jì)了陽(yáng)歷數(shù)據(jù)讀取程序、陽(yáng)歷轉(zhuǎn)陰歷程序、溫度采集程序以及LCD顯示程序;通過(guò)單片機(jī)開發(fā)板進(jìn)行系統(tǒng)調(diào)試,再借助于Keil、STC以及少許自己搭建的外圍電路實(shí)現(xiàn)。在此過(guò)程中,分步調(diào)試時(shí)顯示出陽(yáng)歷日期及時(shí)間,還有實(shí)時(shí)溫度。此萬(wàn)年歷具有顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。
[1]譚浩強(qiáng).C程序設(shè)計(jì)(第三版).北京:清華大學(xué)出版社,2007.
[2]郭天翔.新概念51單片機(jī)C語(yǔ)言教程:入門、提高、開發(fā)、拓展.北京:電子工業(yè)出版社,2009.
[3]馮博琴,吳寧.微型計(jì)算機(jī)原理與接口技術(shù)(第三版).北京:清華大學(xué)出版社,2013.
[4]萬(wàn)勝前.基于keilC51軟件的的電子鐘設(shè)計(jì)與制作[M].鄂州:鄂州大學(xué)出版社,2007.
[5]李陪金.C語(yǔ)言程序設(shè)計(jì)案例教程[M].西安:西安電子科技大學(xué)出版社,2008.
[6] M.I.Elmasry. BiCMOS Integrated Circuit Design with Analog Digitaland Smart Power Applications [M]. IEEE Press, 1994.
[7] Verghese G C, Lang H, Casey L F. Analysis of instability in electrical machines. IEEE Trans on IA, 1986.
This paper introduces the hardware structure and the software design method of the electronic calendar based on STC89C51 single-chip microcomputer. This design made up of four modules: the data display module, temperature acquisition module, time processing module and the settings module. This system use STC89C51 single-chip microcomputer as the controller,serial clock chip DS1302 to record the time, it can be for years, months, days, hours and etc. With DS18B20 temperature acquisition, the display unit(LCD1602) can show temperature at the same time. The functional is diversity, it has a broad market prospect.
single chip microcomputer;temperature;display calendar
TP216
A
天津市大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(201610060058);天津理工大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(201610060085)。