日历时钟DS12887或146818的C语言源程序
#define uchar unsigned char
#define uint unsigned int
#i nclude <reg52.h>
#i nclude <stdio.h>
#i nclude <absacc.h>
#i nclude <math.h>
#i nclude <string.h>
#i nclude <ctype.h>
#i nclude <stdlib.h>
#define P128870 XBYTE[0xa000]
#define P128871 XBYTE[0xa001]
#define P128872 XBYTE[0xa002]
#define P128873 XBYTE[0xa003]
#define P128874 XBYTE[0xa004]
#define P128875 XBYTE[0xa005]
#define P128876 XBYTE[0xa006]
#define P128877 XBYTE[0xa007]
#define P128878 XBYTE[0xa008]
#define P128879 XBYTE[0xa009]
#define P12887a XBYTE[0xa00a]
#define P12887b XBYTE[0xa00b]
#define P12887c XBYTE[0xa00c]
#define P12887d XBYTE[0xa00d]
#define P12887e XBYTE[0xa00e]
#define P12887f XBYTE[0xa00f]
void setup12887(uchar *p);
void read12887(uchar *p);
void start12887(void);
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;
}
void read12887(uchar *p) //读取系统时间
{
uchar a;
do{ a=P12887a; } while((a&0x80)==0x80);
*p++=P128870; *p++=P128872; *p++=P128874; *p++=P128876;
*p++=P128877; *p++=P128878; *p++=P128879;
}
void start12887(void) //启动时钟
{
uchar i;
i=P12887d;
P12887a=0x70; P12887b=0xa2; P128871=0xff; P128873=0xff; P128875=0xff;
P12887b=0x22; P12887a=0x20;
i=P12887c;
}
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。