基于單片機(jī)利用無字庫(kù)12864液晶模塊自制日歷
編程
電路雖然簡(jiǎn)單,但是要讓不帶字庫(kù)的LCD、1302在M8的統(tǒng)一領(lǐng)導(dǎo)下有條不紊地工作,所以具體編程必須解決以下問題。
圖7程序流程
1、讓時(shí)鐘走動(dòng)起來,而且可以通過按鍵設(shè)定或修改當(dāng)前數(shù)據(jù)。
2、讓液晶顯示時(shí)鐘芯片當(dāng)前提供的信息:年月日時(shí)分秒,兩個(gè)顯示界面的按時(shí)刷新。
3、制作字模和圖形界面編程。
以上第1點(diǎn),就是用M8控制1302。我們可以按照它的時(shí)序要求編列一些函數(shù),另外在程序中建立—個(gè)數(shù)組DateTme[7]用來存放從1302讀出的年月日時(shí)分秒,作為數(shù)據(jù)刷新依據(jù);第2點(diǎn),主要是在LED上顯示這個(gè)數(shù)組當(dāng)前的數(shù)據(jù)(要注意1302存放日期時(shí)間的格式是BCD碼,所以存取之前必須先進(jìn)行數(shù)制轉(zhuǎn)換)。數(shù)據(jù)刷新實(shí)際上就是查詢1302當(dāng)前“秒”是否等于上次查詢結(jié)果,如不等于則已經(jīng)過去1秒,在數(shù)組記下新秒,刷新顯示“秒”-當(dāng)然是1秒刷新一次;而且當(dāng)秒更新為O日寸要更新“分”……·以此類推。第3點(diǎn)上次已有敘述使用,畔畔字模的方法,其中編制了8 x 8小數(shù)字、1 2×16數(shù)字、16×1 6漢字幾種字模用于不同的顯示位置,另外有個(gè)小雞啄米的動(dòng)畫,可以在16點(diǎn)陣字模工具中用鼠標(biāo)點(diǎn)擊,分別畫出小雞低頭和小雞抬頭兩個(gè)圖案,在秒刷新時(shí)交替顯示即可。用字模軟件制作好所需的字模后,把所有常量字模數(shù)組定義放在頭文件miniClock中,這些數(shù)組全部放在FLASH區(qū)。
圖形界面的模擬指示針、刻度的制作也不困難,只要事先規(guī)劃出水平刻度長(zhǎng)度,起點(diǎn)和終點(diǎn)坐標(biāo)畫出水平線,垂直刻度則按照刻度位置畫出短垂直線,指示地則是在刻度上方或下方垂直直線,它的位置要計(jì)算好,根據(jù)時(shí)間數(shù)據(jù)刷新而改變。
標(biāo)題“小小日歷鐘”是個(gè)漢字串,用一個(gè)漢字串顯示函數(shù)Vold show-string1616(ucharx,uchary,uchar * string,uchar string_length);參數(shù)是顯示起始列、頁(yè)、字串指針、字串長(zhǎng)度,同時(shí)要事先定義—個(gè)以上指針?biāo)傅淖执當(dāng)?shù)組,此數(shù)組的元素是待顯示的字模在字模數(shù)組的位置。
整個(gè)程序流程見圖7,左遠(yuǎn)是主流程,右邊是年日月時(shí)分秒更新流程。
調(diào)試
硬件焊好后,反復(fù)檢查無誤 不插M8、1302和LCD鋰電池,插上穩(wěn)壓小板,接通USB電源,測(cè)試M8插座,1302插座,編程口和LCD的VCC電源應(yīng)為正常3.3V,拆下穩(wěn)壓斷電,插上鋰電池,1302插座8腳應(yīng)為2.4V,插上S5并接通,VCC應(yīng)為3∨,至此電池沒有問題了。拔掉S5,插上M8、液晶和1302,插上穩(wěn)壓板和USB電源,如果你從末使用過這種LCD,不妨自己先編制一些小程序(例如啟動(dòng)、初始化M8和液晶后,用不同的參數(shù)運(yùn)行清屏函數(shù))觀察液晶顯示是否如同預(yù)期,如果沒有反應(yīng)要再次檢查程序中對(duì)M8引腳定義是否和你的實(shí)際硬件接線一致,這個(gè)小液晶和別的一些液晶不同,不需要硬件調(diào)整對(duì)比度夏,不會(huì)因此對(duì)比度調(diào)節(jié)不當(dāng)而不顯示(除非你修改了默認(rèn)值)。這—關(guān)先過了再往下走。往M8下載程序,如果一切正常,畫面會(huì)立即出來。不過現(xiàn)在的口期、時(shí)間不對(duì)、按動(dòng)S2最下面一行日期時(shí)間的分隔符上會(huì)呈現(xiàn)豎線光標(biāo),連續(xù)按S2光標(biāo)會(huì)循環(huán)右移,在光標(biāo)停下的位置按動(dòng)S1,在上面就會(huì)出現(xiàn)設(shè)定值,反復(fù)按動(dòng)會(huì)循環(huán)遞增,就這樣逐—調(diào)節(jié)日期和時(shí)間,如圖5所示。最后按下S3,新的時(shí)間就存入1302了,并能按秒刷新?,F(xiàn)在插上電池,一切就好了。如圖 6所示,可見時(shí)、分已經(jīng)改為新的設(shè)定值??梢匀サ舴€(wěn)壓板,雖然液晶熄滅,可是1302還在悶聲不響地運(yùn)行,如果你插上開關(guān)S5再接通,液晶又亮了。為了節(jié)省電池消耗,不要老是開著它。如同老式懷表,看表前再按開蓋子。
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評(píng)論