李彩龍 王一凡 馬千里
摘 要:電子萬年歷是一種非常廣泛的日常計(jì)時(shí)工具,在現(xiàn)代社會(huì)越來越流行。它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能。對(duì)于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周、時(shí)、分、秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。系統(tǒng)軟件設(shè)計(jì)采用C語言來完成,C語言語法簡(jiǎn)潔,使用方便,用于完成軟件設(shè)計(jì)非常方便。程序采用模塊化設(shè)計(jì),使得邏輯關(guān)系簡(jiǎn)單明了,維護(hù)方便。
關(guān)鍵詞:AT89S52;時(shí)鐘芯片DS1302;液晶顯示屏LCD1602;溫度采集芯片DS18B20
本系統(tǒng)為硬件、軟件相結(jié)合的一組設(shè)計(jì)。除了采用集成化的時(shí)鐘芯片外,還有采用MCU的方案,利用AT89系列單片機(jī)微機(jī)制成萬年歷電路,采用軟件和硬件相結(jié)合的方法,控制液晶輸出顯示。其最大的特點(diǎn)是:硬件電路簡(jiǎn)單,安裝方便易于實(shí)現(xiàn),軟件設(shè)計(jì)獨(dú)特、可靠。
一、系統(tǒng)總體功能
本系統(tǒng)以AT89S52單片機(jī)為控制核心,通過與DS1302和DS18B20通信獲取實(shí)時(shí)時(shí)間和實(shí)時(shí)環(huán)境溫度,并將得到的數(shù)據(jù)通過LCD1602液晶顯示出來。因此本設(shè)計(jì)可分為以下模塊:控制模塊、LCD顯示模塊、實(shí)時(shí)時(shí)鐘模塊、實(shí)時(shí)環(huán)境溫度采集模塊。
基本功能:采用LCD為顯示器并能夠顯示年、月、日、時(shí)、分、秒、星期,同時(shí)具備以下特殊功能:
(1)能夠完成掉電保護(hù);
(2)具有溫度顯示功能。
二、硬件結(jié)構(gòu)設(shè)計(jì)框架
設(shè)計(jì)主要分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分。硬件設(shè)計(jì)包括AT89S52單片機(jī)、DS1302時(shí)鐘芯片、LCD1602顯示模塊、DS18B20溫度采集模塊等組成。各個(gè)部分以單片機(jī)為主體協(xié)調(diào)工作,以完成各種功能。軟件采用C語言編寫,整個(gè)軟件系統(tǒng)采用模塊化的程序設(shè)計(jì)方法,設(shè)計(jì)程序共分為DS1302程序模塊、LCD1602程序模塊、DS18B20程序模塊和主程序模塊四個(gè)模塊。軟件系統(tǒng)的主要特點(diǎn)是在硬件的支持之下,實(shí)現(xiàn)了完全的友好的人機(jī)交互功能。最后將代碼編譯成HEX文件燒寫入單片機(jī),讓它可以向各個(gè)部分收發(fā)指令和數(shù)據(jù),整體實(shí)現(xiàn)數(shù)字萬年歷的設(shè)計(jì)。本系統(tǒng)的結(jié)構(gòu)框圖如下圖1所示:
三、硬件部分
(一)控制系統(tǒng)模塊
使用AT89S52作為萬年歷的主控芯片,AT89S52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3,每一條I/O線都能獨(dú)立地作輸出或輸入。
單片機(jī)的最小系統(tǒng)如圖2所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外部電容和晶振的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部電容和晶振的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后構(gòu)成上電復(fù)位電路,20引腳為接地端,40引腳為電源端,如圖2所示:
(二)時(shí)鐘電路模塊
DS1302是美國DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。
圖3為DS1302的引腳排列,其中VCC1為后備電源,VCC2為主電源,在主電源關(guān)閉的情況下,VCC1為芯片供電,使其能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由VCC1或VCC2兩者中的較大者供電,當(dāng)VCC2高于VCC1 0.2V時(shí),VCC2給DS1302供電,當(dāng)VCC2小于VCC1時(shí)候VCC1供電。X1和X2是振蕩源,外接32.768KHz晶振,RST是復(fù)位信號(hào)線, I/O為串行數(shù)據(jù)輸入端,SCLK是時(shí)鐘輸入端。
(三)LCD顯示模塊
1602液晶也叫1602字符型液晶 它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。圖5是其在Proteus中的連接電路。
(四)溫度采集模塊
1.DS18B20特性和引腳介紹
1)DS18B20單線數(shù)字溫度傳感器,采用單總線的接口方式與微處理器連接時(shí)僅需要一條線即可實(shí)現(xiàn)微處理器與DS18B20 的雙向通訊。單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。
2)測(cè)量溫度范圍寬,測(cè)量精度高,DS18B20 的測(cè)量范圍為 -55 ℃ ~+ 125 ℃ ;在 -10~+ 85℃范圍內(nèi),精度為 ± 0.5℃。
3)在使用中不需要任何外圍元件。
4)支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在唯一的單線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。
5)供電方式靈活,DS18B20可以通過內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外部電源,從而 使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。
6)測(cè)量參數(shù)可配置,DS18B20的測(cè)量分辨率可通過程序設(shè)定 9~12 位。
7)負(fù)壓特性電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。
8)掉電保護(hù)功能DS18B20內(nèi)部含有EEPROM ,在系統(tǒng)掉電以后,它仍可保存分辨率及報(bào)警溫度的設(shè)定值。
9)DS18B20具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。
2.下載模塊采用USB接口,使用CH341A芯片
CH341A是南京沁恒電子有限公司生產(chǎn)的USB轉(zhuǎn)串、并口的芯片,芯片只需幾個(gè)周邊元件就可工作,只要在電腦上安裝個(gè)小小的驅(qū)動(dòng)就可以對(duì)單片機(jī)進(jìn)行程序下載。
四、軟件設(shè)計(jì)
軟件設(shè)計(jì)是本設(shè)計(jì)的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運(yùn)行情況的良好。因本程序涉及的模塊較多,所以程序編寫也采用模塊化設(shè)計(jì)。C語言具有編寫靈活、移植方便、便于模塊化設(shè)計(jì)的特點(diǎn),所以本系統(tǒng)的軟件采用C51編寫。
主程序流程圖:
五、仿真
六、結(jié)語
本系統(tǒng)以AT89S52為核心部件,使用串行時(shí)鐘芯片DS1302實(shí)現(xiàn)時(shí)間計(jì)時(shí)的功能。在該系統(tǒng)設(shè)計(jì)調(diào)試完成之后,對(duì)最后的成功進(jìn)行分析,同時(shí)結(jié)合在調(diào)試過程中出現(xiàn)的錯(cuò)誤進(jìn)行綜合分析,總結(jié)在實(shí)際系統(tǒng)設(shè)計(jì)和調(diào)試過程中的經(jīng)驗(yàn)。
在系統(tǒng)硬件設(shè)計(jì)之前,要結(jié)合當(dāng)前系統(tǒng)的發(fā)展趨勢(shì)和現(xiàn)狀對(duì)系統(tǒng)功能進(jìn)行定位,使系統(tǒng)在實(shí)際應(yīng)用中具有競(jìng)爭(zhēng)力。該系統(tǒng)最大的特點(diǎn)就是界面友好,走時(shí)準(zhǔn)確,和現(xiàn)在使用LED顯示數(shù)據(jù)的萬年歷相比,體積更小,可以作為轎車車載顯示裝置,系統(tǒng)采用液晶顯示器,可以使系統(tǒng)應(yīng)用到更加現(xiàn)代化的地方,使系統(tǒng)采用模塊化程序設(shè)計(jì)法,同時(shí)保留了很多的微控制器I/O口,擴(kuò)展十分方便,以往的采用LED顯示數(shù)據(jù)的萬年歷要想實(shí)現(xiàn)的功能擴(kuò)展,除需要對(duì)系統(tǒng)程序進(jìn)行修改,還必須增加或減少LED數(shù)碼管,硬件改動(dòng)較大。該系統(tǒng)的顯示部分界面改動(dòng)非常靈活,僅僅改動(dòng)程序就能實(shí)現(xiàn)界面的修改,用戶還可以選擇自己喜歡的界面,這是以LED作為顯示裝置的數(shù)字萬年歷所不能實(shí)現(xiàn)的。
參考文獻(xiàn):
[1]牛昱光.單片機(jī)原理與接口技術(shù)(第三版).北京:電子工業(yè)出版社,2008.
[2]史建芳.智能儀器設(shè)計(jì)基礎(chǔ),電子工業(yè)出版社,2007.
[3]郁有文.傳感器原理及工程應(yīng)用(第三版),西安電子科技大學(xué)出版社,2008.
[4]胡振宇,劉魯源,杜振輝.DS18B20接口的C語言程序設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002.
作者簡(jiǎn)介:李彩龍(1988-),男,漢族,山西呂梁人,本科,助教,研究方向:電子信息工程。