?? callds05.c
字號:
/********************************************************************/
/* 這是調用DS1305匯編程序(DS1305B.ASM)的C51程序, */
/* 文件名CALLDS05.c */
/* 功能: 運行此程序,可將DS1305的時鐘日歷(7 bytes) 和RAM(96 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 fill60(void);
void fill67(void);
extern uchar chai5; //把全局變量chai5聲明為外部變量
extern uchar a_func3(uchar,uchar);//把a_func3 聲明為外部函數
uchar idata w1,w2,w3,w4,w5,w6,w7,w8,w9,wa,wb,wc,wd,we,wf,wg;
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) /* 準備初始RAM值*/
{ 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;
delay1(1);
EA=0;
chai5=a_func3(0x00,0x00); /* 讀DS1305日歷時鐘值 */
w1=DBYTE[0x60];
w2=DBYTE[0x61];
w3=DBYTE[0x62];
w4=DBYTE[0x63];
w5=DBYTE[0x64];
w6=DBYTE[0x66];
chai5=a_func3(0x00,0xFF); /*讀DS1305 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];
fill60(); /* 輸入初始日歷時鐘值 */
chai5=a_func3(0xFF,0x00); /* 寫DS1305日歷時鐘值*/
fill67(); /* 輸入初始RAM值 */
chai5=a_func3(0xFF,0xFF); /* 寫DS1305 RAM值 */
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -