📄 ds12887.h
字号:
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
/********************************************************************/
// P2.7接CS片选,则DS12887的片内128个单元的地址可为
// 7F00H~7F7FHALE接12887的ALE,RD(P3.7)与RD对接,WR(P3.6)与WR对接
/********************************************************************/
#define P128870 XBYTE[0x7f00] //秒数据地址
#define P128871 XBYTE[0x7f01] //秒闹钟
#define P128872 XBYTE[0x7f02] //分
#define P128873 XBYTE[0x7f03] //分闹钟
#define P128874 XBYTE[0x7f04] //小时
#define P128875 XBYTE[0x7f05] //时闹钟
#define P128876 XBYTE[0x7f06] //星期
#define P128877 XBYTE[0x7f07] //日
#define P128878 XBYTE[0x7f08] //月
#define P128879 XBYTE[0x7f09] //年
#define P12887a XBYTE[0x7f0a] //寄存器a
#define P12887b XBYTE[0x7f0b] //寄存器b
#define P12887c XBYTE[0x7f0c] //寄存器c
#define P12887d XBYTE[0x7f0d] //
#define P12887e XBYTE[0x7f0e] //
#define P12887f XBYTE[0x7f0f] //
void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c);
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c);
void setup12887(uchar *p);
uchar read12887();
void start12887();
/******************************/
//设置系统时间//
/*****************************/
void setup12887(uchar *p)
{
uchar i;
i=P12887d;
P12887a=0x70; P12887b=0xa2; //P128870=*p++; // 秒位调整
P128871=0xff; P128872=*p++; P128873=0xff;
P128874=*p++; P128875=0xff; P128876=*p++;
P128877=*p++; P128878=*p++; P128879=*p++;
P12887b=0x22; P12887a=0x20;
i=P12887c;
}
/*********************************/
//读取系统时间
/********************************/
uchar read12887()
{
uchar a;
uchar *p;
do{a=P12887a;} while((a&0x80)==0x80);
*p++=P128870;*p++=P128872;*p++=P128874;*p++=P128876;
*p++=P128877;*p++=P128878;*p++=P128879;
return *p;
}
/********************************/
//启动时钟
/********************************/
void start12887(void)
{
uchar i;
i=P12887d;
P12887a=0x70;P12887b=0xa2;P128871=0xff;
P128873=0xff;P128875=0xff;P12887b=0x22;
P12887a=0x20;
i=P12887a;
}
void day_display(uchar *p)
{
LCD_write_shu(2,0,2);
LCD_write_shu(3,0,0);
LCD_write_shu(4,0,p[6]/10); //年十位 /**************/
LCD_write_shu(5,0,p[6]%10); //年个位 /***显示样式***/
LCD_write_hanzi(4,0,8); //年 ___________
LCD_write_shu(1,2,p[5]/10); //月十位 | 2009年 |
LCD_write_shu(2,2,p[5]%10); //月个位 | 03月29日 |
LCD_write_hanzi(2,2,9); //月 | 星期日 |
LCD_write_shu(6,2,p[4]/10); //日十位 |___________|
LCD_write_shu(7,2,p[4]%10); //日个位
LCD_write_hanzi(5,2,9); //日
LCD_write_hanzi(2,4,11); //星
LCD_write_hanzi(3,4,12); //期
LCD_write_hanzi(4,4,p[3]); //×
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -