在網(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è)置鬧鐘模式
|