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

📄 2ds12887new.c

📁 一个使用c51单片机制作的电源管理程序 包括TLC2543,DS12887,24c64等程序!程序完整!
💻 C
字号:
#include <reg52.h>
#include <absacc.h>

#define uchar unsigned char
#define uint unsigned int

void get_clock(void);		// 读取RTC时间
void set_clock(void);		// 设置RTC时间
sbit CS=P1^0;

uchar time[7]={0x05,0x11,0x21,0x22,0x05,0x00,0x02};

void delay(void)
{
        uint i=1000;
        for(i=1000;i>0;i--)
        {;; }
}

uchar BCD_D(uchar n)
{
        uchar m=n&0x0f;
        n>>=4;
        m+=n*10;
        return m;
}
// 设置RTC时间
void set_clock(void)
{
       P0=0XFF;
        CS=0;
        XBYTE[10]=0x70;
        XBYTE[11]=0x8a;
        XBYTE[9]=(time[0]/10)*16+time[0]%10;		// 年
        XBYTE[8]=(time[1]/10)*16+time[1]%10;		// 月
        XBYTE[7]=(time[2]/10)*16+time[2]%10;		// 日
        XBYTE[4]=(time[3]/10)*16+time[3]%10;		// 时
        XBYTE[2]=(time[4]/10)*16+time[4]%10;		// 分
        XBYTE[0]=(time[5]/10)*16+time[5]%10;		// 秒
        XBYTE[10]=0x2f;
        XBYTE[11]=0x7a;
        CS=1;
}
// 读取RTC时间
void get_clock(void)
{
        uchar k,i;
	i=0;
        P0=0;
        CS=0;
        do
	{
		k=XBYTE[10]&0x80;
		if(k==0)
		{break;}
		i++;
	}while(i<255);
        time[0]=BCD_D(XBYTE[9]);		// 年
        time[1]=BCD_D(XBYTE[8]);		// 月
        time[2]=BCD_D(XBYTE[7]);		// 日
        time[3]=BCD_D(XBYTE[4]);		// 时
        time[4]=BCD_D(XBYTE[2]);		// 分
        time[5]=BCD_D(XBYTE[0]);		// 秒
        CS=1;
}
/*
main()
{
        uchar k,a=9,b=78;
        P1=0XF0;

time[0]=5;

time[1]=11;

time[2]=21;

time[3]=23;

time[4]=20;

time[5]=5;
        //set_clock();
        for(k=0;k<6;k++)
        time[k]=2;
        b=time[0];
        get_clock();
        a=time[0];

        while(1);
}
 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -