📄 callds07.c
字号:
/* 这是调用DS1302汇编程序(EDSINT3.ASM和ESS1302F.ASM)的C51程序, */
/* 文件名CALLds07.c */
/* 功能: 运行此程序,可将时钟日历(7 bytes) 和RAM(31 bytes)读出并将*/
/* 新的时钟日历和RAM值置入。本程序只可从RAM读出16个字节或写入 */
/* 16个字节 */
#include <reg52.h>
#include <stdio.h>
#include <math.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
void delay1(uint x);
void timedelay(uint timess);
void fill60(void);
void fill67(void);
extern uchar chai2,chai5;
extern uchar a_func2(uchar,uchar,uchar);
extern uchar a_func5(uchar);
uchar idata w1,w2,w3,w4,w5,w6,w7,w8,w9,wa,wb,wc,wd,we,wf,wg;
uchar idata n,kc1;
void timedelay(uint timess)
{
uint tj;
for (tj=timess;tj>0;tj--){;}
}
void delay1(uint x)
{
uchar tw;
while (x-->0){
for (tw=0;tw<125;tw++){;}
}
}
void fill60(void)
{
DBYTE[0x60]=0x00;
DBYTE[0x61]=0x15;
DBYTE[0x62]=0x10;
DBYTE[0x63]=0x31;
DBYTE[0x64]=0x12;
DBYTE[0x65]=0x05;
DBYTE[0x66]=0x01;
}
void fill67(void)
{ DBYTE[0x60]=0x10;
DBYTE[0x61]=0x12;
DBYTE[0x62]=0x13;
DBYTE[0x63]=0x14;
DBYTE[0x64]=0x15;
DBYTE[0x65]=0x16;
DBYTE[0x66]=0x17;
DBYTE[0x67]=0x18;
DBYTE[0x68]=0x19;
DBYTE[0x69]=0x22;
DBYTE[0x6a]=0x33;
DBYTE[0x6b]=0x44;
DBYTE[0x6c]=0x55;
DBYTE[0x6d]=0x66;
DBYTE[0x6e]=0x88;
DBYTE[0x6f]=0x77;
}
void main()
{
SP=0xdf;
timedelay(10000);
delay1(1);
EA=0;
kc1=0;
chai2=a_func2(0xff,0x81,0x80); /* read time&date*/
w1=DBYTE[0x60];
w2=DBYTE[0x61];
w3=DBYTE[0x62];
w4=DBYTE[0x63];
w5=DBYTE[0x64];
w6=DBYTE[0x66];
chai2=a_func2(0xff,0xc1,0xc0); /* read 1302 RAM */
w1=DBYTE[0x60];
w2=DBYTE[0x61];
w3=DBYTE[0x62];
w4=DBYTE[0x63];
w5=DBYTE[0x64];
w6=DBYTE[0x65];
w7=DBYTE[0x66];
w8=DBYTE[0x67];
w9=DBYTE[0x68];
wa=DBYTE[0x69];
wb=DBYTE[0x6a];
wc=DBYTE[0x6b];
wd=DBYTE[0x6c];
we=DBYTE[0x6d];
wf=DBYTE[0x6e];
wg=DBYTE[0x6f];
chai5=a_func5(0x00); /* int ds1302 */
fill60(); /* input time&date */
chai2=a_func2(0x00,0x81,0x80); /* write time&date */
fill67(); /* input ram */
chai2=a_func2(0x00,0xc1,0xc0); /* write ram */
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -