📄 12887.c
字号:
//#define unsigned char unsigned char
//#define uint unsigned int
#include <absacc.h>
#include <AT89X52.H>
#define P128870 XBYTE[0xA000] //second
#define P128871 XBYTE[0xA001] //second alarm
#define P128872 XBYTE[0xA002] //minutes
#define P128873 XBYTE[0xA003] //minutes alarm
#define P128874 XBYTE[0xA004] //hours
#define P128875 XBYTE[0xA005] //hours alarm
#define P128876 XBYTE[0xA006] //Day of the week
#define P128877 XBYTE[0xA007] //Day of the month
#define P128878 XBYTE[0xA008] //month
#define P128879 XBYTE[0xA009] //year
#define P12887a XBYTE[0xA00A] //A register
#define P12887b XBYTE[0xA00B] //B register
#define P12887c XBYTE[0xA00C] //C register
#define P12887d XBYTE[0xA00D] //D register
#pragma DISABLE
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;
P1_6=!P1_6;
P12887b=0xa6;//0xa6
P12887a=0x70;
P128870=*p++;
P128871=0xff;
P128872=*p++;
P128873=0xff;
P128874=*p++;
P128875=0xff;
//P128876=*p++;//day of the week
P128877=*p++;
P128878=*p++;
P128879=*p++;
P12887a=0x20;
P12887b=0x26;//0x16 start clock
i=P12887c;
i=P12887d;
P1_6=!P1_6;
}
//
sbit BUSYFLAG = ACC^7;
void read12887(unsigned char *p) //read system timer
{
unsigned char data i;
i=ACC;
//UIP==0 per second, update after 244us
do{ ACC=P12887a; P1_6=!P1_6;}while(BUSYFLAG);
*p++=P128879;
*p++=P128878;
*p++=P128877;
*p++=P128874;
*p++=P128872;
*p++=P128870;
//*p++=P128876;//day of the week
ACC=i;
i=P12887c;
}
void start12887(void) //start clock
{
unsigned char data i;
P12887b=0xa6;//0xa6
P12887a=0x70;
P128871=0xff;
P128873=0xff;
P128875=0xff;
P12887a=0x20;
P12887b=0x26;//0x26
i=P12887c;
i=P12887d;
P1_6=!P1_6;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -