-
大小: 125KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-05-07
- 语言: 其他
- 标签:
资源简介
这是一份很好的ds1302万年历,其时间、日期都可调!
代码片段和文件信息
/**********************ET-C52实验开发板例程************************
* 名称:DS18B20温度传感器与1602液晶显示屏的综合应用
* 公司:武汉东方智达科技有限公司
* 网站:www.east027.com http://shop73255907.taobao.com/
* 编写:东方智达研究员
* 日期:2011--08--20
* QQ : 836730083
* 晶振: 11.0594MHZ
* 内容:DS1302时钟芯片的应用,将时钟数据用1602液晶屏显示。
******************************************************************/
#include
#include “ds1302.h“
#include “lcd1602.h“
#include “key.h“
//sbit wela=P2^7;
//sbit dula=P2^6;
uchar tab_date[14]=“2012-11-16 TUE“;//表示年月日星期
uchar tab_time[8]=“00:00:00“;//表示时分秒
uchar tiao;
uchar msecond;
uchar hourminseckeysition;
//uchar kong[]=“ “;
//------------------------------------------
// 数据转换
//------------------------------------------
void trans()
{
tab_date[2]=tab_1302[6]/10+‘0‘; //年十位
tab_date[3]=tab_1302[6]%10+‘0‘; //年个位
tab_date[5]=tab_1302[4]/10+‘0‘; //月十位
tab_date[6]=tab_1302[4]%10+‘0‘; //月个位
tab_date[8]=tab_1302[3]/10+‘0‘; //日十位
tab_date[9]=tab_1302[3]%10+‘0‘; //日个位
tab_time[0]=tab_1302[2]/10+‘0‘; //小时十位
tab_time[1]=tab_1302[2]%10+‘0‘; //小时个位
tab_time[3]=tab_1302[1]/10+‘0‘; //分十位
tab_time[4]=tab_1302[1]%10+‘0‘; //分个位
tab_time[6]=tab_1302[0]/10+‘0‘; //秒十位
tab_time[7]=tab_1302[0]%10+‘0‘; //秒个位
}
//------------------------------------------
// 星期显示
//------------------------------------------
void week()
{
uchar i;
if(tab_1302[5]==1)
{i=7;}
else
{i=tab_1302[5]-1;} /*实时时钟里的值是6,但是2008/08/08是星期五,所以减1,
Proteus的问题?? */
switch(i)
{
case 1: tab_date[11]=‘M‘;tab_date[12]=‘O‘;tab_date[13]=‘N‘; break;
case 2: tab_date[11]=‘T‘;tab_date[12]=‘U‘;tab_date[13]=‘E‘; break;
case 3: tab_date[11]=‘W‘;tab_date[12]=‘E‘;tab_date[13]=‘D‘; break;
case 4: tab_date[11]=‘T‘;tab_date[12]=‘H‘;tab_date[13]=‘U‘; break;
case 5: tab_date[11]=‘F‘;tab_date[12]=‘R‘;tab_date[13]=‘I‘; break;
case 6: tab_date[11]=‘S‘;tab_date[12]=‘T‘;tab_date[13]=‘A‘; break;
case 7: tab_date[11]=‘S‘;tab_date[12]=‘U‘;tab_date[13]=‘N‘; break;
default: ; break; //其它情况
}
}
void getweek(uchar week1uchar t[])
{
uchar i;
if(week1==1)
i=7;
else
i=week1-1; /*实时时钟里的值是6,但是2008/08/08是星期五,所以减1,
Proteus的问题?? */
switch(i)
{
case 1: t[0]=‘M‘;t[1]=‘O‘;t[2]=‘N‘; break;
case 2: t[0]=‘T‘;t[1]=‘U‘;t[2]=‘E‘; break;
case 3: t[0]=‘W‘;t[1]=‘E‘;t[2]=‘D‘; break;
case 4: t[0]=‘T‘;t[1]=‘H‘;t[2]=‘U‘; break;
case 5: t[0]=‘F‘;t[1]=‘R‘;t[2]=‘I‘; break;
case 6: t[0]=‘S‘;t[1]=‘T‘;t[2]=‘A‘; break;
case 7: t[0]=‘S‘;t[1]=‘U‘;t[2]=‘N‘; break;
default: ; break; //其它情况
}
}
void cls(uchar i) //表示打印出i个空格
{
// lcd_wcom(addr); //重新设定显示地址为0xc4即下排第5位
for(;i>0;i--)
{
lcd_wdat(‘ ‘);
lcddelay(1);
}
}
//------------------------------------------
// lcd液晶屏显示
//-----------------------------------------
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-06-02 12:26 1602与DS1302万年历\
文件 92197 2012-11-18 13:24 1602与DS1302万年历\Last Loaded 万年历 (2).DBK
文件 100453 2012-11-16 09:36 1602与DS1302万年历\Last Loaded 万年历.DBK
文件 6376 2009-05-07 14:37 1602与DS1302万年历\STARTUP.A51
文件 14048 2012-11-16 13:04 1602与DS1302万年历\STARTUP.LST
文件 749 2012-11-16 13:04 1602与DS1302万年历\STARTUP.OBJ
文件 3909 2012-11-16 13:12 1602与DS1302万年历\ds1302.h
文件 1172 2012-11-18 12:38 1602与DS1302万年历\key.h
文件 1231 2012-11-16 15:51 1602与DS1302万年历\lcd1602.h
文件 39730 2012-11-20 00:42 1602与DS1302万年历\lcd1602万年历
文件 52200 2012-11-20 00:42 1602与DS1302万年历\lcd1602万年历.M51
文件 13040 2012-11-20 00:42 1602与DS1302万年历\lcd1602万年历.hex
文件 67 2012-11-20 00:42 1602与DS1302万年历\lcd1602万年历.lnp
文件 208 2013-03-10 13:27 1602与DS1302万年历\lcd1602万年历.plg
文件 57490 2013-03-09 21:43 1602与DS1302万年历\lcd1602万年历.uvopt
文件 13912 2012-11-18 13:24 1602与DS1302万年历\lcd1602万年历.uvproj
文件 57494 2012-12-04 22:14 1602与DS1302万年历\lcd1602万年历_uvopt.bak
文件 13908 2012-11-16 19:50 1602与DS1302万年历\lcd1602万年历_uvproj.bak
文件 92181 2012-11-18 13:28 1602与DS1302万年历\万年历 (2).DSN
文件 1221 2013-03-09 21:43 1602与DS1302万年历\万年历 (2).PWI
文件 50428 2012-11-20 00:42 1602与DS1302万年历\万年历.LST
文件 47647 2012-11-20 00:42 1602与DS1302万年历\万年历.OBJ
文件 36 2012-11-20 00:42 1602与DS1302万年历\万年历.__i
文件 17626 2012-11-20 00:42 1602与DS1302万年历\万年历.c
文件 134 2012-11-15 21:35 1602与DS1302万年历\万年历.txt
评论
共有 条评论