電子工程網(wǎng)
標(biāo)題: 基于 AT89S52、DS1302、LCD1602 的 時(shí)鐘 日歷 鬧鐘(含C源文件、詳細(xì)程序摘要) [打印本頁(yè)]
作者: MCU_NEWER 時(shí)間: 2013-7-1 20:49
標(biāo)題: 基于 AT89S52、DS1302、LCD1602 的 時(shí)鐘 日歷 鬧鐘(含C源文件、詳細(xì)程序摘要)
在網(wǎng)上下的程序,針對(duì)自己的學(xué)習(xí)板修改了引腳的定義,并實(shí)現(xiàn)/增加了以下功能:
1、設(shè)置參數(shù)其間光標(biāo)閃爍等待的功能。
網(wǎng)上下的原程序無(wú)此功能,設(shè)置日期、時(shí)間時(shí)不知道光標(biāo)移到哪?當(dāng)前選中哪個(gè)參數(shù),很不方便。
于是我修改了一下設(shè)置參數(shù)其間光標(biāo)顯示特性為“顯示+閃爍”,并增加了等待按鍵的語(yǔ)句就實(shí)現(xiàn)了。
2、增加了一個(gè)按鍵——確認(rèn)鍵 S4。
原程序只有3個(gè)按鍵,每次一進(jìn)入設(shè)置參數(shù)模式后,都要進(jìn)入到設(shè)置鬧鐘模式選中字符“@”再按一下加數(shù)鍵或減數(shù)鍵才能返回到正常顯示模式,這樣至少要按9次S1鍵(未進(jìn)入設(shè)置鬧鐘模式、并且無(wú)調(diào)整過(guò)參數(shù)大小的情況),或者11次S1鍵+1次S2/S3鍵(有進(jìn)入過(guò)設(shè)置鬧鐘的情況、并且無(wú)調(diào)整過(guò)參數(shù)大小的情況)。可見(jiàn)會(huì)按到你煩。
于是我增加了一個(gè)按鍵——確認(rèn)鍵 S4,這樣每次進(jìn)入設(shè)置參數(shù)模式后,一按S4鍵就可返回到正常顯示模式。
3、增加了鬧鐘記憶功能。
原程序雖然可以設(shè)置鬧鐘,但每當(dāng)復(fù)位、關(guān)斷電源后又重新接上電源時(shí)原來(lái)設(shè)置好的鬧鐘時(shí)間就掉失了,要重新設(shè)置。
于是我增加了鬧鐘記憶功能,把設(shè)置好的鬧鐘時(shí)間及鬧鐘開(kāi)/關(guān)狀態(tài)保存下來(lái),重新接電后就是斷電前設(shè)置的狀態(tài)。
注:使用本程序要注意的地方:
1、引腳定義時(shí),DS1302、LCD1602 接到 AT89S52 的哪個(gè)引腳。
2、引腳定義部分并未指明 LCD1602 的8位數(shù)據(jù)線接到單片機(jī)的哪個(gè) I/O 口,使用前記得要改為你自己的接法。
我的學(xué)習(xí)板接的是P2口,變量P2涉及到以下函數(shù):
void write_com(uchar com) //寫(xiě)入lcd顯示方式
void write_data(uchar date) //向lcd1602寫(xiě)入數(shù)據(jù)
主要芯片:AT89S52、DS1302、LCD1602
一、系統(tǒng)功能:
1、 用液晶屏 LCD1602 分兩行顯示“ 年、月、日、周日、時(shí)、分、秒 ”,格式如下:
2013-06-28 Fri
15:18:36
2、 還可以設(shè)置1個(gè)鬧鐘。
3、 日期、時(shí)間、鬧鐘均可通過(guò)按鍵來(lái)調(diào)整。
4、 鬧鐘時(shí)間及開(kāi)關(guān)狀態(tài)可保存,即關(guān)機(jī)后再開(kāi)機(jī)會(huì)顯示上次關(guān)機(jī)前鬧鐘的設(shè)置
5、 共4個(gè)獨(dú)立按鍵:
S1:功能鍵。用來(lái)選擇要更改的項(xiàng)目(年、月、日、周日、時(shí)、分、秒、鬧鐘)。
S2:加數(shù)鍵。按1下則數(shù)值加1。
S3:減數(shù)鍵。按1下則數(shù)值減1。
S4:確認(rèn)鍵。在設(shè)置參數(shù)模式下,一按此鍵程序即返回到正常顯示模式的狀態(tài)。
在設(shè)置鬧鐘模式下,屏幕第二行顯示的格式:@ NO 00:00:00
鬧鐘設(shè)置模式.JPG
設(shè)置鬧鐘模式
-
-
DS1302_1602.rar
2013-7-1 20:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 積分 -1
494.96 KB, 下載積分: 積分 -1
售價(jià): 3 積分 [記錄]
C源程序、及摘要
作者: MCU_NEWER 時(shí)間: 2013-7-1 20:56
以前未試過(guò)利用時(shí)鐘芯片DS1302來(lái)編時(shí)鐘程序,通過(guò)這次修改程序、增加功能,編寫(xiě)程序摘要文檔使我更加理解程序的功能及執(zhí)行過(guò)程,同時(shí)也加深了對(duì) DS1302、LCD1602 的了解。
看來(lái)編寫(xiě)文檔,很好!很好!
作者: MCU_NEWER 時(shí)間: 2013-7-1 21:21
附件中C源文件生成的HEX文件顯示達(dá)到9KB之大(我是用 Keil uVision3 來(lái)編的),但程序中并未增加以下功能:
1、顯示“AM”、“PM” 的功能。
2、12小時(shí)制與24小時(shí)制之間切換的功能,現(xiàn)在只能以24小時(shí)制來(lái)顯示。
3、在調(diào)整參數(shù)大小的過(guò)程中,不能通過(guò)長(zhǎng)按加減鍵來(lái)實(shí)現(xiàn)自動(dòng)快速加減數(shù)。
4、只能設(shè)置1個(gè)鬧鐘,不能設(shè)置多個(gè)。
5、沒(méi)有秒表功能。
6、鬧鐘鈴聲只有“嘀嘀”聲,沒(méi)有樂(lè)曲。
7、也不能通過(guò)與PC機(jī)連接,進(jìn)行由PC機(jī)來(lái)在線實(shí)時(shí)修改時(shí)鐘日歷的參數(shù)。
作者: MCU_NEWER 時(shí)間: 2013-7-2 21:41
還可以再加上懶人鬧鐘的功能。
作者: daizhi1970 時(shí)間: 2013-7-9 16:01
學(xué)習(xí)O(∩_∩)O謝謝
作者: huangze2012 時(shí)間: 2013-12-7 10:21
謝謝
作者: lq520yxh520 時(shí)間: 2013-12-30 14:39

作者: Hugo801122 時(shí)間: 2014-2-18 18:31
樓主真熱心,分享這么好的嵌入式系統(tǒng)資料,多謝!
作者: yangxf0120 時(shí)間: 2014-8-20 21:52
謝謝你提供好的資料,學(xué)習(xí)學(xué)習(xí)~
作者: 噢噢噢 時(shí)間: 2014-12-10 23:49

作者: 渴望 時(shí)間: 2014-12-14 00:31
看看,,,,
作者: pcbkey 時(shí)間: 2015-2-2 11:04
樓主厲害
作者: sheron888 時(shí)間: 2015-4-6 14:46
卡卡看看。。。。
作者: ceip2183 時(shí)間: 2015-4-7 13:09
這個(gè)帖子怎么收藏???
作者: myjanly 時(shí)間: 2015-4-7 17:32
樓上看什么?
作者: licu 時(shí)間: 2015-4-13 14:38
學(xué)習(xí)了,謝謝版主分享!!
作者: tangbaozi 時(shí)間: 2015-5-16 18:41
謝謝分享
作者: 煙斂寒林 時(shí)間: 2015-5-17 14:19
很好
作者: 隨心小7 時(shí)間: 2016-11-10 19:30
樓主為什么按照你的仿真LCD不顯示
作者: 海潮 時(shí)間: 2017-4-10 16:02
你好 謝謝分享
作者: 無(wú)所畏懼 時(shí)間: 2017-7-26 23:50
注冊(cè) 學(xué)習(xí)!
作者: 咖啡so 時(shí)間: 2017-8-2 17:42
想要學(xué)習(xí)linux底層開(kāi)發(fā)的速加君羊201030910
作者: 1207435600 時(shí)間: 2017-8-8 15:18
我現(xiàn)在也想找一個(gè)時(shí)鐘芯片,要求是外掛晶振的,誤差24小時(shí)小于1秒,請(qǐng)問(wèn)那位朋友可以推薦一顆芯片呀,謝謝。
歡迎光臨 電子工程網(wǎng) (http://m.54549.cn/) |
Powered by Discuz! X3.4 |