程序講解
發(fā)布時間:2012/6/15 19:54:16 訪問次數(shù):892
這個制作的硬件焊接部UC3845DG分并不難,只要靜下心慢慢地一步一步焊接即可,最主要的還是在程序的編寫上。
制作的主要部分是在1602液晶顯示屏,因此,主要的問題還是如何驅動這個液晶屏。液晶屏的使用跟大多數(shù)的芯片使用都差不多,也都要進行寫入指令和寫入數(shù)據(jù),至于如何寫入,可以上網(wǎng)查找一下數(shù)據(jù)手冊或者相關的寫入指令和寫入數(shù)據(jù)程序。用單片機采集時鐘芯片DS1302的數(shù)據(jù)和DS18820溫度芯片的數(shù)據(jù)之后,然后在液晶屏相應的位置上寫入采集來的數(shù)據(jù),就可以顯示出溫度、年、月、日、時、分、秒和星期的信息了。這些數(shù)據(jù)的顯示效果如圖16所示,顯示的信息為:2011/09/12 W矗.<6>20:05:09 27.40,其中W就是Week的簡寫,這里表示的是星期六。如果一直都是顯示這些信息的話,相信大家都會覺得不過癮,那么如何顯示更多的信息呢?這就要用到切換顯示了,先把要顯示的內(nèi)容編寫成幾個部分,然后在中斷程序中判斷什么候顯示什么信息,如圖17、圖18所示。在20s后就會每隔5s切換顯示第一行的內(nèi)容,根據(jù)實時時間而用英文顯示早上好、中午好、晚上好,會根據(jù)實時溫度而顯示相應的字符。
如果覺得顯示的內(nèi)容還不過癮的話.下面還可以加上切換顯示重要節(jié)日的信息,上網(wǎng)查看一下日歷上的重要節(jié)日,然后編寫一個專門判斷顯示節(jié)日的函數(shù),就可以顯示國際上的重要節(jié)日了。由于國際上的節(jié)日用的是公歷,而我們中國的傳統(tǒng)節(jié)日都是使用農(nóng)歷計算的,因此,為了加上一點中國風的味道,我還在程序上增加了一個判斷農(nóng)歷信息的函數(shù)。關于農(nóng)歷的轉換也比較復雜,這部分的程序我也是在網(wǎng)上查找相關資料后修改而得的,經(jīng)過驗證,節(jié)臼顯示無誤,如把時間調(diào)到未來的9月12日,顯示效果就如圖19所示,由于1602液晶屏只能顯示英文字符,所以只能用英文顯示出中秋節(jié)的信息。如果遇到當天不是重要的節(jié)日,就會自動切換顯示為:Have a good day!…(^一^)…用字符組成一個笑臉,提示你微笑著過好每一天。由于DS1302需要后備電池來保持時間的準確性,一旦后備電池沒電就需要重新初始化時間了。因此我在程序上寫了一個同時按下加、減鍵初始化的函數(shù),一旦發(fā)現(xiàn)沒有時間顯示了,就可以進行這個操作了。
報時部分就不僅僅是栗取之前慣例的用蜂鳴器嗚叫了,還加入了一個燈光效果,就是利用內(nèi)置的兩個高亮LED燈進行燈光提醒,這時候的燈光閃爍就不能采取CPU延時的方法了,要采取定時器中斷的方式,才能防止在燈光閃爍的同時影響了時間的準確性。一旦時間到達整點或者半點,除了嗚叫一聲,內(nèi)置的LED燈還會延遲閃爍一段時間,為了防止晚上影響睡眠,蜂鳴器的嗚叫設置在7:00~24:00之間,在其他的時間段只有內(nèi)置的燈光閃爍提醒。為了防止燈光效果的視覺疲勞,內(nèi)置燈光的閃爍效果沒有設置得過長,只閃爍幾秒,用以提醒我們時間寶貴,不要浪費時間。
這個制作的硬件焊接部UC3845DG分并不難,只要靜下心慢慢地一步一步焊接即可,最主要的還是在程序的編寫上。
制作的主要部分是在1602液晶顯示屏,因此,主要的問題還是如何驅動這個液晶屏。液晶屏的使用跟大多數(shù)的芯片使用都差不多,也都要進行寫入指令和寫入數(shù)據(jù),至于如何寫入,可以上網(wǎng)查找一下數(shù)據(jù)手冊或者相關的寫入指令和寫入數(shù)據(jù)程序。用單片機采集時鐘芯片DS1302的數(shù)據(jù)和DS18820溫度芯片的數(shù)據(jù)之后,然后在液晶屏相應的位置上寫入采集來的數(shù)據(jù),就可以顯示出溫度、年、月、日、時、分、秒和星期的信息了。這些數(shù)據(jù)的顯示效果如圖16所示,顯示的信息為:2011/09/12 W矗.<6>20:05:09 27.40,其中W就是Week的簡寫,這里表示的是星期六。如果一直都是顯示這些信息的話,相信大家都會覺得不過癮,那么如何顯示更多的信息呢?這就要用到切換顯示了,先把要顯示的內(nèi)容編寫成幾個部分,然后在中斷程序中判斷什么候顯示什么信息,如圖17、圖18所示。在20s后就會每隔5s切換顯示第一行的內(nèi)容,根據(jù)實時時間而用英文顯示早上好、中午好、晚上好,會根據(jù)實時溫度而顯示相應的字符。
如果覺得顯示的內(nèi)容還不過癮的話.下面還可以加上切換顯示重要節(jié)日的信息,上網(wǎng)查看一下日歷上的重要節(jié)日,然后編寫一個專門判斷顯示節(jié)日的函數(shù),就可以顯示國際上的重要節(jié)日了。由于國際上的節(jié)日用的是公歷,而我們中國的傳統(tǒng)節(jié)日都是使用農(nóng)歷計算的,因此,為了加上一點中國風的味道,我還在程序上增加了一個判斷農(nóng)歷信息的函數(shù)。關于農(nóng)歷的轉換也比較復雜,這部分的程序我也是在網(wǎng)上查找相關資料后修改而得的,經(jīng)過驗證,節(jié)臼顯示無誤,如把時間調(diào)到未來的9月12日,顯示效果就如圖19所示,由于1602液晶屏只能顯示英文字符,所以只能用英文顯示出中秋節(jié)的信息。如果遇到當天不是重要的節(jié)日,就會自動切換顯示為:Have a good day!…(^一^)…用字符組成一個笑臉,提示你微笑著過好每一天。由于DS1302需要后備電池來保持時間的準確性,一旦后備電池沒電就需要重新初始化時間了。因此我在程序上寫了一個同時按下加、減鍵初始化的函數(shù),一旦發(fā)現(xiàn)沒有時間顯示了,就可以進行這個操作了。
報時部分就不僅僅是栗取之前慣例的用蜂鳴器嗚叫了,還加入了一個燈光效果,就是利用內(nèi)置的兩個高亮LED燈進行燈光提醒,這時候的燈光閃爍就不能采取CPU延時的方法了,要采取定時器中斷的方式,才能防止在燈光閃爍的同時影響了時間的準確性。一旦時間到達整點或者半點,除了嗚叫一聲,內(nèi)置的LED燈還會延遲閃爍一段時間,為了防止晚上影響睡眠,蜂鳴器的嗚叫設置在7:00~24:00之間,在其他的時間段只有內(nèi)置的燈光閃爍提醒。為了防止燈光效果的視覺疲勞,內(nèi)置燈光的閃爍效果沒有設置得過長,只閃爍幾秒,用以提醒我們時間寶貴,不要浪費時間。
熱門點擊