張濤
摘要:電子萬年歷是一種非常廣泛日常計時工具,對現代社會越來越流行。它可以對年、月、日、周日、時、分、秒進行計時,還具有閏年補償等多種功能,而且DS1302的使用壽命長,誤差小。對于數字電子萬年歷采用直觀的數字顯示,可以同時顯示年、月、日、周日、時、分、秒和溫度等信息,還具有時間校準等功能。該電路采用AT89S52單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電。
關鍵詞:單片機;萬年歷;系統設計
1. 概述
隨著微電子技術的高速發(fā)展,單片機在國民經濟的個人領域得到了廣泛的運用。單片機以體積小、功能全、性價比高等諸多優(yōu)點,在工業(yè)控制、家用電器、通信設備、信息處理、尖端武器等各種測控領域的應用中獨占鰲頭,單片機開發(fā)技術已成為電子信息、電氣、通信、自動化、機電一體化等專業(yè)技術人員必須掌握的技術。而電子萬年歷作為電子類小設計不僅是市場上的寵兒,也是是單片機實驗中一個很常用的題目。因為它的有很好的開放性和可發(fā)揮性,因此對作者的要求比較高,不僅考察了對單片機的掌握能力更加強調了對單片機擴展的應用。而且在操作的設計上要力求簡潔,功能上盡量齊全,顯示界面也要出色。數字顯示的日歷鐘已經越來越流行,特別是適合在家庭居室、辦公室、大廳、會議室、車站和廣場等使用,壁掛式LED數碼管顯示的日歷鐘逐漸受到人們的歡迎。LED數字顯示的日歷鐘顯示清晰直觀、走時準確、可以進行夜視,并且還可以擴展出多種功能。所以,電子萬年歷無論作為比賽題目還是練習題目都是很有價值。
2. 單片機的發(fā)展歷程
單片機是微型計算機的一個重要分支,也是一種非?;钴S和頗具生命力的機種,特別適用于工業(yè)控制領域。1971年微處理器研制成功不久,就出現了單片機,但最早的單片機是1位的,處理能力有限。單片機的發(fā)展共分四個階段:第一階段是初級階段,功能非常簡單;第二階段是低性能階段,以INTEL公司制造的MSC-48系列單片機為代表。第三階段為高性能單片機階段,這個階段推出的單片機普遍帶有穿行接口,多級中斷系統,16位定時器/計數器,片內ROM、RAM容量加大,直到現在仍被廣泛應用,是目前應用數量較多的單片機。第四階段是8位單片機鞏固發(fā)展以及16位單片機、32位單片機推出階段,以滿足不同的用戶需要??v觀單片機幾十年的發(fā)展歷程,單片機的今后發(fā)展方向將向多功能、高性能、高速度、低功耗、低價格、外圍電路內裝化以及內存儲器容量增加和FLASH存儲器化方向發(fā)展。
3. 設計思路
(1)采用單片機常用的時鐘芯片。以前,通常采用并行的實時時鐘芯片計時、EEPROM作為存儲器,但對一些微小型智能控制設備而言,并行實時時鐘芯片封裝形式大,再加上EEPROM,占用擴展線多,使電路結構很難進一專門的液晶驅動接口,且成本高。因此,本設計控制器采用數碼管顯示方式。數碼管作為一種主動顯示器件,具有亮度高、價格便宜等優(yōu)點,而且市步簡化。Dallas公司生產的串行實時時鐘芯片DS1302具有實時時鐘和靜態(tài)RAM,采用串行通信,可方便地與單片機接口。除了在工業(yè)控制中使用外,還可以應用到一般的時鐘計數上。本章正是采用了DS1302芯片與AT89C51單片機的串行通信。
(2)顯示電路。就時鐘而言,通??刹捎靡壕э@示或數碼管顯示。對于一般的段式液晶屏,需要專門的驅動電路,而且液晶顯示作為一種被動顯示,可視性相對較差;對于具有驅動電路和微處理器接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對微處理的接口要求較高,占用資源多。另外,AT89C51本身無場上也有專門的時鐘顯示組合數碼管。
(3)按鍵電路
本設計采用了三個按鍵對公歷年、月、日和時、分、秒進行調整。
①當按下“調日歷”鍵,首先年的兩位數碼管閃爍顯示,表示在調整“年”狀態(tài)。再按“調日歷”鍵則確認“年”,同時進入調整“月”狀態(tài),“月”的兩位數碼管閃爍顯示,再按“調日歷”鍵則確認“月”,同時進入調整“日”狀態(tài),“日”的兩位數碼管閃爍顯示,再按“調日歷”鍵則確認“日”,同時調整年、月、日結束?!罢{時”鍵與“調日歷”鍵有類似的功能。
②當按下“加一”鍵時,與前面對應的調整到期望的年、月、日和時、分、秒。時間設置完成時,進入正常的走時狀態(tài)。
4. 功能要求
一個完整的電子萬年歷的實現步驟,在硬件方面,要求可以按照硬件電路原理圖的設計,與芯片的正確選取,完成準確的年、月、日和時、分、秒顯示;并且我們通過對“調日歷”鍵和“調時鍵”的設置,能夠實現對日期和時間的調整,當按下“加一”鍵時,也可以與前面對應地,調整到期望的年、月、日和時、分、秒。在軟件設計方面,采用Keil軟件來實現對電子萬年歷程序的正確調試與仿真,最終將其生成Hex文件;再運用Proteus軟件,一步一步地完成萬年歷原理圖的繪制,最后便能夠利用Proteus進行功能的仿真,實現設計中萬年歷所有的功能要求。
5. 系統總體設計
按照系統設計功能的要求,初步確定設計系統由主控模塊、時鐘模塊、顯示模塊按鍵電路模塊共4個模塊組成,電路系統構成框圖如圖1-1所示。主控芯片使用51系列AT89C51單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘DS1302。采用DS1302作為主要計時芯片,可以做到計時準確。更重要的是,DS1302可以在很小電流的后備電源(2.5~5.5V電源,在2.5V時耗電小于300 nA)下繼續(xù)計時,并可編程選擇多種充電電源來對后備電源進行慢速充電,可以保證后備電源基本不耗電。
6. 硬件調試
硬件調試的調試比較困難。因為是調試所以不能對元件進行焊接,只能把各個元件用導線連接起來。調試的整體過程是:各個系統逐個調試,各部分調試成功后再進行組裝后的整體調試。
調試過程包括:
1. 顯示部分的調試
問題:數碼管的顯示不穩(wěn)定,不停的閃爍。
分析:沒有考慮到干擾及環(huán)境的制約。于是我們把在面包板上連好的電路焊接在印刷板上,并采用電容濾波盡可能去除紋波和干擾。
2. 控制部分的調試
問題:按下按鍵后數據有時正常有時又不正常,數據的加減不穩(wěn)定。
分析:根據分析有兩個問題可以導致此種現象,一是按鍵接觸不良可能有短路,二是程序部分有問題。用萬用表測量后發(fā)現按鍵按下后不穩(wěn)定,更換質量更好的按鍵后故障即排除。
7. 軟件調試
程序的調試分幾個步驟,首先要在WAVE6000軟件中編譯通過,然后通過Keil軟件把程序下載到單片機中最終調試出滿意的效果才算成功。
1.WAVE6000調試
首先,啟動WAVE6000新建一個項目,輸入一個名字保存,然后打開“真器設置”,在“語言”選項下選擇“偉福匯編器”,“缺省顯示格式”選擇“混合十、十六進制”?!胺抡嫫鳌边x項下選擇“使用偉福軟件模擬器”?!巴ㄐ旁O置”選項下選擇“使用偉福軟件模擬器”。
打開已經寫好的程序,選擇“項目”菜單下的“編譯”命令,根據Message窗口的編譯信息修改程序中的錯誤地方。直到Message窗口中不再出現錯誤符號,全部顯示正確符號為止。
雖然程序在WAVE6000中編譯通過了,但并不代表程序就沒有錯誤,只有最終出現效果才說明沒問題。endprint