当前位置:首页 > 技术学院 > 热搜器件
[导读]这是1302的C文件,1302.h文件在后来面#include"1302.h"code unsigned char write_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}; //秒分时日月周年 最低位读写位code unsigned char read_rtc_address[7]={0x

这是1302的C文件,1302.h文件在后来面

#include"1302.h"

code unsigned char write_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}; //秒分时日月周年 最低位读写位

code unsigned char read_rtc_address[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};

void Write_Ds1302_Byte(unsigned char temp)

{

unsigned char i;

for (i=0;i<8;i++) //循环8次 写入数据

{

sclk=0;

io=temp&0x01; //每次传输低字节

temp>>=1; //右移一位

sclk=1;

}

}

/******************************************************************/

/* 写入DS1302 */

/******************************************************************/

void Write_Ds1302( unsigned char address,unsigned char dat )

{

rst=0;

_nop_();

sclk=0;

_nop_();

rst=1;

_nop_(); //启动

Write_Ds1302_Byte(address); //发送地址

Write_Ds1302_Byte(dat); //发送数据

rst=0; //恢复

}

/******************************************************************/

/* 读出DS1302数据 */

/******************************************************************/

unsigned char Read_Ds1302 ( unsigned char address )

{

unsigned char i,temp=0x00;

rst=1;

_nop_();

_nop_();

Write_Ds1302_Byte(address);

for (i=0;i<8;i++) //循环8次 读取数据

{

if(io)

temp|=0x80; //每次传输低字节

sclk=1;

temp>>=1; //右移一位

_nop_();

_nop_();

_nop_();

sclk=0;

}

rst=0;

_nop_(); //以下为DS1302复位的稳定时间

_nop_();

rst=0;

sclk=0;

_nop_();

_nop_();

_nop_();

_nop_();

/*sclk=1;

_nop_();

_nop_();

io=0;

_nop_();

_nop_();

io=1;

_nop_();

_nop_(); */

return (temp); //返回

}

/******************************************************************/

/* 读时钟数据 */

/******************************************************************/

uchar Read_RTC1(uchar j) //读取 日历

{

uchar c;

unsigned char *p;

p=&read_rtc_address[j]; //地址传递

c=Read_Ds1302(*p);

c=(( c&0x70)>>4)*10 + ( c&0x0F);

return(c);

}

/******************************************************************/

/* 设定时钟数据 */

/******************************************************************/

void Set_RTC(uchar a,uint c) //设定 日历

{

unsigned char *p ,shi,ge ;

Write_Ds1302(0x8E,0X00);

shi=a/10;

ge=a%10;

a=shi*16+ge;

p=&write_rtc_address[c]; //传地址

Write_Ds1302(*p,a) ;

// Write_Ds1302(0x8E,0x80);

} 、

这是头文件:

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit sclk=P1^2; //时钟

sbit io=P1^1; //数

sbit rst = P1^0;

void Set_RTC(uchar a,uint c);

uchar Read_RTC1(uchar j);

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

程序烧到什么地方?程序加载到内存什么地方?程序如何执行?

关键字: C程序 可执行文件

今天,我们来聊一道常见的考题,也出现在腾讯面试的三面环节,非常有意思。具体的题目如下:文件中有40亿个QQ号码,请设计算法对QQ号码去重,相同的QQ号码仅保留一个,内存限制1G.这个题目的意思应该很清楚了,比较直白。为了...

关键字: 腾讯 BITMAP UNSIGNED 内存

今天,我们来聊一道常见的考题,也出现在腾讯面试的三面环节,非常有意思。具体的题目如下:文件中有40亿个QQ号码,请设计算法对QQ号码去重,相同的QQ号码仅保留一个,内存限制1G. 这个题目的意思应该很清楚了,比较直白。为...

关键字: BITMAP UNSIGNED 内存 腾讯

一直觉得C语言较其他语言最伟大的地方就是C语言中的指针,有些人认为指针很简单,而有些人认为指针很难,当然这里的对简单和难并不是等价于对指针的理解程度。为此在这里对C语言中的指针进行全面的总结,从底层的内存分析,彻底让读者...

关键字: 微信 C语言 UNSIGNED INCLUDE

需要注意的是,两单片机要保证正确通信,主机的RXD连接从机的TXD,从机的RXD连接主机的TXD。

关键字: 51单片机 双机通信 C程序

近日据慢雾区情报显示,针对门罗币(XMR)转账锁定攻击在多个交易所出现,慢雾安全团队在收到情报第一时间进行分析跟进,本着负责任披露的原则我们第一时间在慢雾区进行了预警并为我们所服务的客户进行了及

关键字: 防护 TRANSFER PAYMENT UNSIGNED

即使是像IBM这样的知名企业也开始实施区块链技术了。这也是初创企业和企业家们的一个热门话题。 该技术提供了一个系统,消除了集中控制和对信任框架的需要。它提供了去中心化、透明度和不变的记录

关键字: 区块链 加密 生态系统 C程序

即使是像IBM这样的知名企业也开始实施区块链技术了。这也是初创企业和企业家们的一个热门话题。 该技术提供了一个系统,消除了集中控制和对信任框架的需要。它提供了去中心化、透明度和不变的记录

关键字: 区块链 加密 生态系统 C程序

随着加密货币的使用稳步增加,并发现自己正与传统金融世界交叉,监管机构现在开始介入,以至于金融行动特别工作组(FATF)发布了关于其37个成员国应如何监管加密货币交易所的指南。 虽然业内许

关键字: 区块链 加密 C程序 分布式

随着加密货币的使用稳步增加,并发现自己正与传统金融世界交叉,监管机构现在开始介入,以至于金融行动特别工作组(FATF)发布了关于其37个成员国应如何监管加密货币交易所的指南。

关键字: 加密 区块链 C程序 分布式
关闭
关闭