当前位置:首页 > 单片机 > 单片机
[导读]春节过后,很多内容都忘记了,好在以前整理了一些子函数,子模块。今天就用子函数模块化编写,液晶LCD1602实时显示时钟。用到这样几个文件:delay.c采用定时器延时函数,里面有延时毫秒和微秒的函数。lcd1602.c液晶显

春节过后,很多内容都忘记了,好在以前整理了一些子函数,子模块。今天就用子函数模块化编写,液晶LCD1602实时显示时钟。

用到这样几个文件:

delay.c采用定时器延时函数,里面有延时毫秒和微秒的函数。

lcd1602.c液晶显示函数

rtc.c实时时钟函数

采用模块化编程好处就是简单方便,便于移植,主函数内容不会过于庞大,也方便阅读。

main.c的内容为:

#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);
//设置当前时间:11-02-2213点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();
}
}

不知道是不是编译器的问题,这段代码写到子函数就不行

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);
以后慢慢再研究。整体效果如图:


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭