关闭
关闭
首页 > 嵌入式硬件 > 嵌入式处理器

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

本文引用地址: http://embed.21ic.com/hardware/processor/201712/49878.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);//日

换一批

延伸阅读

[新鲜事] 元老级工程师宣布退出谷歌:谷歌的创新力已死,只会抄袭

元老级工程师宣布退出谷歌:谷歌的创新力已死,只会抄袭

一名曾在谷歌任职13年的工程师周三对该公司提出批评,他指责这家科技巨头“100%关注竞争对手”,还认为它“已经无力创新”。这位工程师名叫史蒂夫·耶格(SteveYegge),2005年从亚马逊跳槽到谷歌。他在博文中谈到自己离开谷歌的决定时说......

关键字:谷歌 工程师

[新鲜事] 太阳系中最懒的星球是它,来看看它到底有多懒

太阳系中最懒的星球是它,来看看它到底有多懒

天王星是我们能够用肉眼看到最远的行星,它的位置:距离太阳大约29亿公里,同时它也是太阳系八大行星中的第三大行星,体积十分大,大小仅次于木星和土星,它的直径约为52000km,相当于有60多个地球那么大。......

关键字:天王星
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi&#174;和蓝牙&#174;combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14