武林教你學(xué)PIC32(十五)液晶顯示實(shí)時(shí)時(shí)鐘
掃描二維碼
隨時(shí)隨地手機(jī)看文章
春節(jié)過后,很多內(nèi)容都忘記了,好在以前整理了一些子函數(shù),子模塊。今天就用子函數(shù)模塊化編寫,液晶LCD1602實(shí)時(shí)顯示時(shí)鐘。
用到這樣幾個(gè)文件:
delay.c采用定時(shí)器延時(shí)函數(shù),里面有延時(shí)毫秒和微秒的函數(shù)。
lcd1602.c液晶顯示函數(shù)
rtc.c實(shí)時(shí)時(shí)鐘函數(shù)
采用模塊化編程好處就是簡單方便,便于移植,主函數(shù)內(nèi)容不會(huì)過于龐大,也方便閱讀。
main.c的內(nèi)容為:
#include "lcd1602.h"
#include "delay.h"
#include "rtc.h"
#include "led.h"
int main(void)
{
LED_INIT();//LED初始化
initLCD();//初始化LCD1602
putsLCD("Current time is:");//液晶第一行顯示
set_time(0X11,0X02,0X22,0X02,0X13,0X57,0X30);
//設(shè)置當(dāng)前時(shí)間:11-02-2213點(diǎn)57分30秒星期二
while(1)
{
LED1_ON();
tm.l=RtccGetTime();
setLCDC( 0x40);//液晶第二行顯示
putLCD(tm.hour/16+0x30);
putLCD(tm.hour%16+0x30);
putLCD('-');
putLCD(tm.min/16+0x30);
putLCD(tm.min%16+0x30);
putLCD('-');
putLCD(tm.sec/16+0x30);
putLCD(tm.sec%16+0x30);
delay_ms(1000);
LED1_OFF();
}
}
不知道是不是編譯器的問題,這段代碼寫到子函數(shù)就不行
putLCD(tm.hour/16+0x30);
putLCD(tm.hour%16+0x30);
putLCD('-');
putLCD(tm.min/16+0x30);
putLCD(tm.min%16+0x30);
putLCD('-');
putLCD(tm.sec/16+0x30);
putLCD(tm.sec%16+0x30);
以后慢慢再研究。整體效果如圖: