摘要:AVR" title="AVR">AVR系列ATmega128L" title="ATmega128L">ATmega128L單片機作為主控芯片,,該芯片可通過ISP接口方便地對其內建Flash進行擦除和寫入操作;采用 DALLAS公司的具有涓細電流充電功能的低功耗的DS1302作為實時時鐘芯片,,該芯片可以對年,、月、日,、周日,、時、分,、秒進行計時,,還具有閏年補償?shù)榷喾N功能,而且其使用壽命長,,誤差?。徊捎肈S18B20獲得當前環(huán)境溫度,;采用128×64像素的LCD用漢字直觀顯示年月日,、時分秒、農(nóng)歷,、生肖,、室溫等豐富內容;采用四顆獨立式按鍵可修改當前時間和設定鬧鈴時間,;采用ISDN110語音模塊和蜂鳴器實現(xiàn)音樂提示定時鬧鈴,;通過農(nóng)歷算法,可將公歷日期轉換為農(nóng)歷年月日并可獲取天干地支紀年,、生肖,、節(jié)氣等相關農(nóng)歷信息。
關鍵詞:DS1302,;DS18B20,;單片機,;LCD;農(nóng)歷算法
0 引言
隨著信息技術的發(fā)展和生活水平的提高電子萬年歷正逐步走進人民大眾的生活,,其因壽命長,、誤差小而且用漢字直觀顯示年月日、時分秒,、農(nóng)歷,、生肖、室溫等豐富的內容,。
1 設計要求與采用方案
1.1 系統(tǒng)實現(xiàn)功能
(1)基本功能:a.LCD漢字顯示年月日,、時分秒、星期,;b.LCD漢字顯示天干地支紀年,、農(nóng)歷日期、24節(jié)氣,,12生肖,;c.LCD顯示室溫;d.整點蜂鳴器報時,,定時鬧鈴時間到則蜂鳴器提示,;e.通過4個按鍵,用來設置時間和進行定時設置,。
(2)創(chuàng)新設計:a.采用128×64的LCD顯示萬年歷內容,;b.采用ISD111O語音模塊播放鬧鈴鈴聲。
1.2 系統(tǒng)基本方案選擇
1.2.1 單片機
系統(tǒng)的單片機采用高性能,、低功耗的AVRATmegal28L微控制器,。系統(tǒng)利用4個外部中斷接4個獨立式按鍵來進行參數(shù)、功能的設置,,蜂鳴器用來整點提示和鬧鈴提示,。程序下載可通過預留ISP接口方便地對系統(tǒng)軟件進行升級、添加或裁剪系統(tǒng)功能,。
1.2.2 顯示模塊
液晶顯示模塊是128×64點陣的漢字圖形型液晶顯示模塊,,可顯示漢字及圖形,內置國標GB2312碼簡體中文字庫(16×16點陣),、128個字符 (8×16點陣)及64×256點陣顯示RAM(GDRAM)??膳c單片機直接接口,,提供兩種接口來連接微處理機:8-位并行及串行兩種連接方式。具有多種功能:光標顯示,、畫面移位,、睡眠模式等,。
1.2.3 時鐘芯片
采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,,可自動對秒,、分、時,、日,、周、月,、年以及閏年補償?shù)哪赀M行計數(shù),,而且精度高,工作電壓2.5V~5.5V范圍內,,2.5V時耗電小于300nA,。
1.2.4 溫度傳感器
采用數(shù)字式溫度傳感器DS18B20,其僅需一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,,易于與單片機連接,,可以去除A/D漠塊,降低硬件成本,,簡化系統(tǒng)電路,。另外,數(shù)字式溫度傳感器還具有測量精度高,、測量范圍廣等優(yōu)點,。
2 系統(tǒng)的硬件設計與實現(xiàn)
2.1 系統(tǒng)硬件設計框圖
2.2 系統(tǒng)硬件概述
本電路由AVR ATmegal28L單片機為控制核心,具有在線編程功能,,低功耗,,能在3V超低壓工作;時鐘電路由DS1302提供,,它是一種高性能,、低功耗、帶RAM的實時時鐘電路,,可以對年,、月、日,、周日,、時、分,、秒進行計時,,具有閏年補償功能,工作電壓為2.5V~5.5V,。采用三線接口與單片機進行同步通信,,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù),。DS1302內部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM 寄存器??僧a(chǎn)生年,、月、日,、周日,、時、分,、秒,,具有使用壽命長,精度高和低功耗等特點,,同時具有掉電自動保存功能,,本設計中為DS1302增加了備用電池,當主電源掉電時,,備用電池自動為其供電,;溫度的采集由DS18B20構成;顯示部份由128×64點陣的漢字圖形型LCD模塊來完成顯示功能,;當鬧鈴時間到時,,通過ISD111O語音錄放模塊播放鬧鈴鈴聲。系統(tǒng)硬件實物圖見圖2,。
2.3 主要單元電路的設計
2.3.1 單片機主控制模塊的設計
AVR ATmegal28L單片機為64引腳TQFP封裝,,系統(tǒng)的ISP下載接口、晶振電路,、復位電路,、蜂鳴器電路如圖3所示。
2.3.2 時鐘電路模塊的設計
圖4為DS1302的引腳排列,,其中Vcc1為后備電源,,Vcc2為主電源。在主電源關閉的情況下,,也能保持時鐘的連續(xù)運行,。DS1302由Vcc1或 Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,,Vcc2給DS1302供電,。當Vcc2小于Vcc1時,DS1302由Vcc1供電,。X1和X2是振蕩源,,外接32.768 kHz晶振。RST是復位/片選線,,通過把RST輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送,。RST輸入有兩種功能:首先,RST接通控制邏輯,,允許地址/命令序列送入移位寄存器,;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段,。當RST為高電平時,,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作,。如果在傳送過程中RST置為低電平,,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài),。上電運行時,,在Vcc大于等于2.5V之前,RST必須保持低電平,。只有在SCLK為低電平時,,才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向),。SCLK始終是輸入端,。
2.3.3 溫度采集模塊設計
如圖5所示。采用數(shù)字式溫度傳感器DS18B20,,它具有測量精度高,,電路連接簡單的特點,此類傳感器僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,,使用PC7與DS18B20的I/O口連接加一個上拉電阻,,VCC接電源,VSS接地,。
2.3.4 顯示模塊的設計
設計采用128×64漢字圖形顯示LCD模塊,,一屏可顯示32個漢字(16×16點陣字庫),其接口如圖6所示,。
2.3.5 語音錄放模塊
設計采用ISD1110語音芯片配合相應的外圍元件構成語音錄放電路,,用來實現(xiàn)語音提示功能,其電路如圖7所示,。
2.3.6 系統(tǒng)PCB圖
系統(tǒng)PCB如圖8所示,。
3 系統(tǒng)的軟件設計
3.1 程序流程框圖
設計主程序流程圖如圖9所示。
3.2 設計實現(xiàn)界面
3.2.1 萬年歷主界面
如圖10所示,,第一行顯示公歷的年月日,,第二行顯示時分秒和星期,第三行顯示農(nóng)歷的天干地支紀年和農(nóng)歷月日,,第四行顯示農(nóng)歷生肖,、節(jié)氣以及當前的氣溫,。
3.2.2 日期時間設置界面
日期時間設置界面如圖11所示。
3.2.3 鬧鈴設置界面
鬧鈴設置界面如圖12所示,。
4 結論
本文所介紹的萬年歷的設計方案已經(jīng)調試成功,,其功能全部實現(xiàn),本產(chǎn)品成本低,、壽命長,、誤差小、功能齊全,,達到設計要求,。