📄 main.c
字号:
#include <iom32v.h>
#include <macros.h>
#include "delay.h"
#include "lcd.h"
#include "ds1302.h"
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
unsigned char disp_buf[9];
unsigned char temp;
unsigned char time_buf[7];
void main(void)
{
Ds1302_PORT_init(); //DS1302对应端口的初始化
Ds1302_initral(); //DS1302内部初始化
LCD16xx_init(); //液晶初始化
LCD16xx_clr(); //显示清屏
delay_nms(1);
LCD16xx_write_string(3,0,"Welcome to");
LCD16xx_write_string(1,1,"www.avrarm.com!");
delay_nms(500);
LCD16xx_clr(); //显示清屏
delay_nms(2);
// 年 月 日 时 分 秒 星期 //如果只设日期,不设星期,星期不能自动对应
Ds1302_Set(0X09,0X05,0X09,0X20,0X50,0X50,0X06); //09年5月8日12点23分40秒
while(1)
{
delay_nms(300);
LCD16xx_clr();
delay_nms(2);
Ds1302_read_time(time_buf); //读出时间(年月日、时分秒、周)到数组time_buf中
year=time_buf[0];
month=time_buf[1];
date=time_buf[2];
hour=time_buf[3];
minute=time_buf[4];
second=time_buf[5];
week=time_buf[6];
disp_buf[0]=(year%100)/10;
disp_buf[1]=year%10;
disp_buf[3]=(month%100)/10;
disp_buf[4]=month%10;
disp_buf[6]=(date%100)/10;
disp_buf[7]=date%10;
for(temp=0;temp<=7;temp++)
{
disp_buf[temp]=disp_buf[temp]+0x30;
}
disp_buf[2]='-';
disp_buf[5]='-';//年与月、月与日之间的分隔符号
disp_buf[8]=0; //代表字符串结束
LCD16xx_write_string(0,0,disp_buf); //第一列,第一行开始
//星期显示
temp=week;
temp=temp+0x30;
//temp='5';
LCD_write_char(12, 0, temp); //第13列,第一行
//时分秒显示
disp_buf[0]=(hour%100)/10;
disp_buf[1]=hour%10;
disp_buf[3]=(minute%100)/10;
disp_buf[4]=minute%10;
disp_buf[6]=(second%100)/10;
disp_buf[7]=second%10;
for(temp=0;temp<=7;temp++)
{
disp_buf[temp]=disp_buf[temp]+0x30;
}
disp_buf[2]=':';
disp_buf[5]=':'; //时与分、分与秒之间的分隔符号
disp_buf[8]=0; //代表字符串结束
LCD16xx_write_string(0,1,disp_buf); //第1列,第2行开始
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -