⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callds07.c

📁 c语言和汇编语言混合编程实例详解.rar
💻 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 + -