关闭
关闭
首页 > 嵌入式硬件 > 驱动开发

file://---by 变成浪子

本文引用地址: http://embed.21ic.com/hardware/drivers/201801/50460.html

//mega16 7.3728MHz石英晶体 iCCavr6.31a

//相关定义:

#define uint unsigned int

#define uchar unsigned char

#define DS1302_RST 0 //pc0

#define DS1302_SDA 1 //pc1

#define DS1302_SCLK 6 //pc6

//ds1302相关

//DS1302_RST=1

#define Set_DS1302_RST() PORTC|=1

#define Clr_DS1302_RST() PORTC&=~(1

#define Set_DS1302_SDA() PORTC|=1

#define Clr_DS1302_SDA() PORTC&=~(1

#define Set_DS1302_SCLK() PORTC|=1

#define Clr_DS1302_SCLK() PORTC&=~(1

#define Set_DS1302_DDRSDA() DDRC|=1

#define Clr_DS1302_DDRSDA() DDRC&=~(1<#define DS1302_SEC_Reg 0x80

#define DS1302_MIN_Reg 0x82

#define DS1302_HR_Reg 0x84

#define DS1302_DATE_Reg 0x86

#define DS1302_MONTH_Reg 0x88

#define DS1302_DAY_Reg 0x8a

#define DS1302_YEAR_Reg 0x8c

#define DS1302_CONTROL_Reg 0x8e

#define DS1302_CHARGER_Reg 0x90

#define DS1302_CLKBURST_Reg 0xbe

//全局变量

//为了方便,我把个位和十位分开了

uchar year1=0x88;

uchar year0=0x88;

uchar month1=0x88;

uchar month0=0x88;

uchar date0=0x88;

uchar date1=0x88;

uchar day=0x88;

uchar hour1=0x88;

uchar hour0=0x88;

uchar minute1=0x88;

uchar minute0=0x88;

uchar second1=0x88;

uchar second0=0x88;

//自程序开始

void DS1302_Write(uchar reg,uchar data)

{

uchar i;

Set_DS1302_DDRSDA();

Clr_DS1302_RST();

asm("nop");

asm("nop");

Clr_DS1302_SCLK();

asm("nop");

asm("nop");

Set_DS1302_RST();

asm("nop");

asm("nop");

for(i=8;i>0;i--)

{

if(reg&0x01) Set_DS1302_SDA();

else Clr_DS1302_SDA();

asm("nop");

asm("nop");

Set_DS1302_SCLK();

asm("nop");

asm("nop");

Clr_DS1302_SCLK();

asm("nop");

asm("nop");

reg>>=1;

}

for(i=8;i>0;i--)

{

if(data&0x01) Set_DS1302_SDA();

else Clr_DS1302_SDA();

asm("nop");

asm("nop");

Set_DS1302_SCLK();

asm("nop");

asm("nop");

Clr_DS1302_SCLK();

asm("nop");

asm("nop");

data>>=1;

}

Clr_DS1302_RST();

asm("nop");

asm("nop");

Clr_DS1302_DDRSDA();

}

uchar DS1302_Read(uchar reg)

{

uchar data=0,i;

reg+=1;//读标志

Set_DS1302_DDRSDA();

Clr_DS1302_RST();

asm("nop");

asm("nop");

Clr_DS1302_SCLK();

asm("nop");

asm("nop");

Set_DS1302_RST();

asm("nop");

asm("nop");

for(i=8;i>0;i--)

{

if(reg&0x01) Set_DS1302_SDA();

else Clr_DS1302_SDA();

asm("nop");

asm("nop");

Set_DS1302_SCLK();

asm("nop");

asm("nop");

Clr_DS1302_SCLK();

asm("nop");

asm("nop");

reg>>=1;

}

Clr_DS1302_DDRSDA();

for(i=8;i>0;i--)

{

data>>=1;

if((PINC&(1

asm("nop");

asm("nop");

Clr_DS1302_SCLK();

asm("nop");

asm("nop");

}

Clr_DS1302_RST();

asm("nop");

asm("nop");

return(data);

}

uchar Check_DS1302(void)

{

DS1302_Write(DS1302_CONTROL_Reg,0x80);

if(DS1302_Read(DS1302_CONTROL_Reg)==0x80) return 1;

return 0;

}

void DS1302_Init(void)

{

DS1302_Write(DS1302_CONTROL_Reg,0x00);//关闭写保护

DS1302_Write(DS1302_SEC_Reg,0x80);//暂停

DS1302_Write(DS1302_CHARGER_Reg,0xa9);//涓流充电

DS1302_Write(DS1302_YEAR_Reg,0x04); //年

DS1302_Write(DS1302_MONTH_Reg,0x12); //月

DS1302_Write(DS1302_DATE_Reg,0x09); //日

DS1302_Write(DS1302_DAY_Reg,0x04); //周

DS1302_Write(DS1302_HR_Reg,0x10); //时

DS1302_Write(DS1302_MIN_Reg,0x25); //分

DS1302_Write(DS1302_SEC_Reg,0x00); //秒

DS1302_Write(DS1302_CONTROL_Reg,0x80);//打开写保护

}

void ReadTime(void)

{

uchar data;

data=DS1302_Read(DS1302_YEAR_Reg);//年

year0=data&0x0f;

year1=data>>4;

data=DS1302_Read(DS1302_MONTH_Reg);//月

month0=data&0x0f;

month1=(data>>4)&0x01;

data=DS1302_Read(DS1302_DATE_Reg);//日

换一批

延伸阅读

[疯狂史] 英特尔第一款完整的商业处理器已经44岁了

英特尔第一款完整的商业处理器已经44岁了

英特尔于1971年11月15日宣布了4004处理器及其芯片集,它是芯片巨人第一个完整的单片机和第一个商业微处理器。4004处理器有2300个晶体管,手指甲大小,计算性能与第一代电子计算机相当,但第一代计算机需要占据整间房......

关键字:英特尔 处理器 单片机

[趣科技] 单片机物语

单片机物语

  通用运动控制技术现状、发展及其应用:运动控制技术的发展是制造自动化前进的旋律,是推动新的产业革命的关键技术。运动控制器已经从以单片机或微处理器作为核心的运动控制器和以专用芯片(ASIC)作为核心处理器的......

关键字:单片机 微型处理机

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥

[行业资讯] MCU市场:中国制胜的方法

MCU市场:中国制胜的方法

MCU作为一个成熟的芯片类型,其市场竞争一直非常激烈,特别是在ARM推出的Cortex M系列内核之后,厂家对于实现产品的差异化以取得竞争优势就更加重视了。然而该如何更好地实现产品的差异化呢?记者采访业界主流企业。 ......

关键字:MCU 中国芯 单片机

[行业资讯] 如何选购单片机成品开发板

如何选购单片机成品开发板

为了尽早熟练掌握单片机程序开发,我们在学习单片机的时候,是比较有必要选择一款适合的成品单片机开发板的,毕竟通过自己搭建所有电路的难度比较大的。下面我们来简单介绍......

关键字:开发板 单片机

[行业资讯] 嵌入式技术不断革新的今天,为何8位MCU市场依然潜力巨大?

嵌入式技术不断革新的今天,为何8位MCU市场依然潜力巨大?

今日话题事实上,在工业控制、安防、物联网、消费类电子等诸多领域,8位MCU的身影依然处处可见,而且不断推陈出新。从市场的占有率和销售额来看,8位 MCU的市场份额甚至还......

关键字:嵌入式 MCU 单片机

[行业资讯] 向51单片机说再见

向51单片机说再见

最近在访问论坛时看到好多人在讨论51单片机,有人说51单片机应该学习,它是基础;也有人说51单片机是过时的产品,现在产品应用已经不再选用了,也就失去了学习的必要性。从最......

关键字:51单片机 再见

[行业资讯] 浅谈学习51单片机的四大误区

浅谈学习51单片机的四大误区

大学本科阶段,我们学习单片机课程时,学校和老师一般都是让我们从51单片机入手。在访问电子类相关的技术性论坛时,总能看到许多小伙伴在讨论51 单片机,有人说51单片机应......

关键字:51单片机 四大误区
条评论

我 要 评 论

网友评论

大家都爱看

  • 兆易创新研发14nm嵌入式异构AI芯片

    昨日,兆易创新发表公告,重申了收购上海思立微的目的。兆易创新表示,这次产业并购,旨在整合境内优质的芯片设计领域资产,获取智能人机交互领域的核心技术,拓展并丰富公司产品线,在整体上形…

    2018-01-31
  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15