⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds12887.h

📁 万年历
💻 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 + -