?? 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 + -