📄 ds1302.c
字号:
#include "STC89C51RC.H"
#include "LCD1602.h"
#include "DS1302.h"
#include <absacc.h>
#define seg1 XBYTE[0xfff0]
#define seg2 XBYTE[0xfff1]
#define seg3 XBYTE[0xfff2]
unsigned char ledmap[]= //共阴LED数码管译码表
{
0x3f,0x06,0x5b,0x4f,0x66, //0,1,2,3,4,
0x6d,0x7d,0x07,0x7f,0x6f, //5,6,7,8,9,
0xbf,0x86,0xdb,0xcf,0xe6, //0.,1.,2.,3.,4.,
0xed,0xfd,0x87,0xff,0xef, //5.,6.,7.,8.,9.,
};
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
main()
{
SYSTEMTIME CurrentTime;
Delay1ms(1000);//等LCD启动
Lcd_Init();
Initial_DS1302();
Lcd_W_Data(1,1,16," ");
Lcd_W_Data(2,1,16," ");
Lcd_W_Data(1,1,5,"Date:");
Lcd_W_Data(2,1,5,"Time:");
// Lcd_CW = 0x88;//光标定位
/*/ 时间设定
Write1302(DS1302_MINUTE, 0x27);
Write1302(DS1302_HOUR, 0x20);
Write1302(DS1302_DAY, 0x30);
Write1302(DS1302_MONTH, 0x12);
Write1302(DS1302_YEAR, 0x06);
*/
// while(1);
while(1)
{
DS1302_GetTime(&CurrentTime);
DateToStr(&CurrentTime);
TimeToStr(&CurrentTime);
Lcd_W_Data(1,6,8,CurrentTime.DateString);
Lcd_W_Data(2,6,8,CurrentTime.TimeString);
//P1 = ~(((CurrentTime.TimeString[7]-0x30))|((CurrentTime.TimeString[6]-0x30)<<4));
//seg3 = ~ledmap[CurrentTime.TimeString[4]-0x30];
//seg2 = ~ledmap[CurrentTime.TimeString[3]-0x30];
//seg1 = ~ledmap[CurrentTime.TimeString[1]-0x30+10];
Delay1ms(300);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -