各位朋友给予帮助,解决DS12887的读时间问题. 谢谢!
各位朋友您好!以下是我的DS12887的读时间程序,采用中断读时标,读出来的时间,日期数据
放在数组 readtime[7]中,但程序仿真时, readtime[7]的数据不变,而从P128870--P128879
中读出的数据是正确的,是变化的,不知是不是readtime[7]的存储方式定义不对,希望各位
朋友给予帮助,谢谢!
#define uchar unsigned char
#define uint unsigned int
#include <reg51.h>
#include <stdio.h>
#include <absacc.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
uchar data readtime[7];
#define P128870 XBYTE[0x5f80]
#define P128871 XBYTE[0x5f81]
#define P128872 XBYTE[0x5f82]
#define P128873 XBYTE[0x5f83]
#define P128874 XBYTE[0x5f84]
#define P128875 XBYTE[0x5f85]
#define P128876 XBYTE[0x5f86]
#define P128877 XBYTE[0x5f87]
#define P128878 XBYTE[0x5f88]
#define P128879 XBYTE[0x5f89]
#define P12887a XBYTE[0x5f8a]
#define P12887b XBYTE[0x5f8b]
#define P12887c XBYTE[0x5f8c]
#define P12887d XBYTE[0x5f8d]
void start12887(void);
void start12887(void) //启动时钟
{
uchar i;
P12887a=0x2f;
i=P12887d;
i=P12887c;
P12887b=0x16;
}
void ds12887int() interrupt 0 using 2
{
uchar *p;
uchar a,j;
p=readtime;
do{ a=P12887a; } while((a&0x80)==0x80);
*p++=P128870; *p++=P128872; *p++=P128874; *p++=P128876;
*p++=P128877; *p++=P128878; *p++=P128879;
j=P12887c;
}
void main()
{
EA=1;
EX0=1;
EX1=0;
IT0=0;
start12887();
for(;;)
{ }
}
发表时间:2003年9月9日18:21:09