📄 12887.c
字号:
//#define unsigned char unsigned char
//#define uint unsigned int
#include <absacc.h>
#include <AT89X52.H>
#define P128870 XBYTE[0x2000] //second
#define P128871 XBYTE[0x2001] //second alarm
#define P128872 XBYTE[0x2002] //minutes
#define P128873 XBYTE[0x2003] //minutes alarm
#define P128874 XBYTE[0x2004] //hours
#define P128875 XBYTE[0x2005] //hours alarm
#define P128876 XBYTE[0x2006] //Day of the week
#define P128877 XBYTE[0x2007] //Day of the month
#define P128878 XBYTE[0x2008] //month
#define P128879 XBYTE[0x2009] //year
#define P12887a XBYTE[0x200A] //A register
#define P12887b XBYTE[0x200B] //B register
#define P12887c XBYTE[0x200C] //C register
#define P12887d XBYTE[0x200D] //D register
static unsigned char xdata time_area[0x1E] _at_ 0x2000;
void setup12887(unsigned char *p) //set system timer
//24hours per day, binary system, P12887b=0x26,AIP
//24hours per day, BCD system, P12887b=0x22;
{
unsigned char data i;
P12887b=0xa6;
P12887a=0x70;
P128870=*p++;
P128871=0xff;
P128872=*p++;
P128873=0xff;
P128874=*p++;
P128875=0xff;
P128876=*p++;
P128877=*p++;
P128878=*p++;
P128879=*p++;
P12887a=0x20;
i=P12887c;
i=P12887d;
P12887b=0x26;//start clock
}
//
void read12887(unsigned char *p) //read system timer
{
unsigned char data i,t;
i=ACC;
//UIP==0 per second, update after 244us
do{ ACC=P12887a;}while(BUSYFLAG);
*p++=P128879;
*p++=P128878;
*p++=P128877;
*p++=P128874;
*p++=P128872;
*p++=P128870;
*p++=P128876;//day of the week
t=P12887c;
ACC=i;
}
void start12887(void) //start clock
{
unsigned char data i;
P12887b=0xa6;
P12887a=0x70;
P128871=0xff;
P128873=0xff;
P128875=0xff;
P12887a=0x20;
P12887b=0x26;
i=P12887c;
i=P12887d;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -