资源简介
电子万年历含有年月日时分秒,时钟,温度,星期,节气及电路图和仿真
代码片段和文件信息
//亦木明
//哪天写的忘了。^_^
#include
//#include “ds1302.h“
#define uchar unsigned char
#define uint unsigned int
#define SECOND 0x80 //秒
#define MINUTE 0x82 //分鍾
#define HOUR 0x84 //小時
#define DAY 0x86 //天
#define MONTH 0x88 //月
#define WEEK 0x8a //星期
#define YEAR 0x8c //年
sbit DS1302_RST=P3^0;
sbit DS1302_SCLK=P3^1;
sbit DS1302_IO=P3^2;
typedef struct systime
{
uchar cYear;
uchar cMon;
uchar cDay;
uchar cHour;
uchar cMin;
uchar cSec;
uchar cWeek;
}SYSTIME;
void DS1302_Write(uchar D)
{
uchar i;
for(i=0;i<8;i++)
{
DS1302_IO=D&0x01;
DS1302_SCLK=1;
DS1302_SCLK=0;
D=D>>1;
}
}
uchar DS1302_Read()
{
uchar TempDat=0i;
for(i=0;i<8;i++)
{
TempDat>>=1;
if(DS1302_IO) TempDat=TempDat|0x80;
DS1302_SCLK=1;
DS1302_SCLK=0;
}
return TempDat;
}
void WDS1302(uchar ucAddr uchar ucDat)
{
DS1302_RST = 0;
DS1302_SCLK = 0;
DS1302_RST = 1;
DS1302_Write(ucAddr); // 地址,命令
DS1302_Write(ucDat); // 写1Byte数据
DS1302_SCLK = 1;
DS1302_RST = 0;
}
uchar RDS1302(uchar ucAddr)
{
uchar ucDat;
DS1302_RST = 0;
DS1302_SCLK = 0;
DS1302_RST = 1;
DS1302_Write(ucAddr); // 地址,命令
ucDat=DS1302_Read();
DS1302_SCLK = 1;
DS1302_RST = 0;
return ucDat;
}
void SetTime(SYSTIME sys)
{
WDS1302(YEARsys.cYear);
WDS1302(MONTHsys.cMon&0x1f);
WDS1302(DAYsys.cDay&0x3f);
WDS1302(HOURsys.cHour&0xbf);
WDS1302(MINUTEsys.cMin&0x7f);
WDS1302(SECONDsys.cSec&0x7f);
WDS1302(WEEKsys.cWeek&0x07);
}
void GetTime(SYSTIME *sys)
{
uchar uiTempDat;
uiTempDat=RDS1302(YEAR|0x01);
(*sys).cYear=(uiTempDat>>4)*10+(uiTempDat&0x0f);
// uiTempDat=RDS1302(0x88|0x01);
// (*sys).cMon=((uiTempDat&0x1f)>>4)*10+(uiTempDat&0x0f);
uiTempDat=RDS1302(0x88|0x01);
(*sys).cMon=((uiTempDat&0x1f)>>4)*10+(uiTempDat&0x0f);
uiTempDat=RDS1302(DAY|0x01);
(*sys).cDay=((uiTempDat&0x3f)>>4)*10+(uiTempDat&0x0f);
uiTempDat=RDS1302(HOUR|0x01);
(*sys).cHour=((uiTempDat&0x3f)>>4)*10+(uiTempDat&0x0f);
uiTempDat=RDS1302(MINUTE|0x01);
sys->cMin=((uiTempDat&0x7f)>>4)*10+(uiTempDat&0x0f);
uiTempDat=RDS1302(SECOND|0x01);
sys->cSec=((uiTempDat&0x7f)>>4)*10+(uiTempDat&0x0f);
uiTempDat=RDS1302(MONTH|0x01);
(*sys).cMon=uiTempDat&0x17;
uiTempDat=RDS1302(WEEK|0x01);
sys->cWeek=uiTempDat&0x07;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 85215 2011-05-10 15:32 12864wannianli\12864
文件 123183 2011-05-10 19:43 12864wannianli\12864.DSN
文件 14687 2008-07-29 14:29 12864wannianli\12864.h
文件 14387 2008-07-29 14:29 12864wannianli\12864.h.bak
文件 41733 2011-05-10 15:32 12864wannianli\12864.hex
文件 87 2011-05-10 15:32 12864wannianli\12864.lnp
文件 80208 2011-05-10 15:32 12864wannianli\12864.M51
文件 4065 2011-05-10 15:33 12864wannianli\12864.Opt
文件 4062 2011-05-10 15:32 12864wannianli\12864.plg
文件 2127 2011-05-10 19:43 12864wannianli\12864.PWI
文件 2274 2011-05-10 15:33 12864wannianli\12864.Uv2
....... 2985 2008-07-30 18:47 12864wannianli\12864_Opt.Bak
....... 2308 2008-07-29 20:06 12864wannianli\12864_Uv2.Bak
文件 426 2001-06-24 00:06 12864wannianli\Delay.LST
文件 2489 2008-07-29 19:36 12864wannianli\ds1302.c
文件 2486 2008-07-29 19:36 12864wannianli\ds1302.c.bak
文件 500 2008-07-29 19:23 12864wannianli\ds1302.h
文件 5786 2011-05-10 15:32 12864wannianli\ds1302.LST
文件 7473 2011-05-10 15:32 12864wannianli\ds1302.OBJ
文件 3840 2001-06-24 16:34 12864wannianli\DS1820.C
文件 229 2001-06-23 17:30 12864wannianli\ds1820.h
文件 9433 2008-07-26 17:17 12864wannianli\DS1820.LST
文件 6081 2008-07-26 17:17 12864wannianli\DS1820.OBJ
文件 3694 2008-07-29 19:49 12864wannianli\input_080627.h
文件 3630 2008-07-28 20:28 12864wannianli\input_080627.h.bak
文件 123443 2011-05-08 10:09 12864wannianli\Last Loaded 12864.DBK
文件 9943 2008-07-29 19:01 12864wannianli\lunar.c
文件 10399 2008-07-29 14:50 12864wannianli\lunar.c.bak
文件 448 2008-07-29 16:01 12864wannianli\Lunar.h
文件 19057 2011-05-10 15:32 12864wannianli\lunar.LST
............此处省略26个文件信息
- 上一篇:opencv 红绿灯识别 运动物体识别
- 下一篇:MVC三层架构音乐网站源码
评论
共有 条评论