#include<reg52.h>
#include"Com.h"
#include"LCD12864.h"
#include"Ds18b20.h"
#include"DS1302.h"
#include"Menus.h"
extern uchar KeyFuncIndex;
extern SYSTEMTIME CurrentTime;
uchar num[7]={1,0,0,0,0,0,0};
uchar bell[3]={0,0,0};
void Update()
{
TimeUpdate();
TemperatureUpdate();
}
void SetTimeMenus()
{
disp_Hz(0,0,18,1);
disp_Hz(1,0,19,1);
disp_Hz(2,0,22,1);
disp_Hz(3,0,23,1);
disp_Hz(0,2,20,0);
disp_Hz(1,2,21,0);
disp_Hz(2,2,22,0);
disp_Hz(3,2,23,0);
}
void SetBellMenus()
{
disp_Hz(0,0,18,0);
disp_Hz(1,0,19,0);
disp_Hz(2,0,22,0);
disp_Hz(3,0,23,0);
disp_Hz(0,2,20,1);
disp_Hz(1,2,21,1);
disp_Hz(2,2,22,1);
disp_Hz(3,2,23,1);
}
void SetTimeDisplay1()
{
disp_Hz(2,0,18,0);
disp_Hz(3,0,19,0);
disp_Hz(4,0,22,0);
disp_Hz(5,0,23,0);
disp_Hz(0,2,2,0);
disp_Hz(1,2,7,0);
disp_Ez(5,2,2,0);
disp_Ez(6,2,0,0);
disp_Hz(0,4,18,0);
disp_Hz(1,4,19,0);
disp_Hz(0,6,6,0);
disp_Hz(1,6,7,0);
}
void SetTimeDisplay2()
{
disp_Ez(7,2,CurrentTime.DateString[0],num[0]);
disp_Ez(8,2,CurrentTime.DateString[1],num[0]);
disp_Ez(9,2,CurrentTime.DateString[2],0);
disp_Ez(10,2,CurrentTime.DateString[3],num[1]);
disp_Ez(11,2,CurrentTime.DateString[4],num[1]);
disp_Ez(12,2,CurrentTime.DateString[5],0);
disp_Ez(13,2,CurrentTime.DateString[6],num[2]);
disp_Ez(14,2,CurrentTime.DateString[7],num[2]);
disp_Ez(5,4,CurrentTime.TimeString[0],num[3]);
disp_Ez(6,4,CurrentTime.TimeString[1],num[3]);
disp_Ez(7,4,CurrentTime.TimeString[2],0);
disp_Ez(8,4,CurrentTime.TimeString[3],num[4]);
disp_Ez(9,4,CurrentTime.TimeString[4],num[4]);
disp_Ez(10,4,CurrentTime.TimeString[5],0);
disp_Ez(11,4,CurrentTime.TimeString[6],num[5]);
disp_Ez(12,4,CurrentTime.TimeString[7],num[5]);
disp_Hz(3,6,CurrentTime.Week+7,num[6]);
}
void SetTime()
{
uchar KeyValue,i;
uchar Setnum=0;
SetTimeDisplay1();
while(KeyFuncIndex)
{
SetTimeDisplay2();
if((P1&0x0f)!=0x0f)
{
KeyValue=P1&0x0f; //去掉高5bit
delayms(2);
if((P1&0x0f)!=0x0f)
{
while((P1&0x0f)!=0x0f);
switch(KeyValue)
{
case 0x07:{
Setnum++;
if(Setnum==7)Setnum=0;
for(i=0;i<7;i++)
{
if(i==Setnum)num[i]=1;
else num[i]=0;
}
break;
}
case 0x0d:{
switch(Setnum)
{
case 0:{
CurrentTime.Year++;
if(CurrentTime.Year==100)
CurrentTime.Year=99;
break;
}
case 1:{
CurrentTime.Month++;
if(CurrentTime.Month==13)
CurrentTime.Month=12;
break;
}
case 2:{
CurrentTime.Day++;
if(CurrentTime.Day==32)
CurrentTime.Day=31;
break;
}
case 3:{
CurrentTime.Hour++;
if(CurrentTime.Hour==24)
CurrentTime.Hour=23;
break;
}
case 4:{
CurrentTime.Minute++;
if(CurrentTime.Minute==60)
CurrentTime.Minute=59;
break;
}
case 5:{
CurrentTime.Second++;
if(CurrentTime.Second==60)
CurrentTime.Second=59;
break;
}
case 6:{
CurrentTime.Week++;
if(CurrentTime.Week==8)
CurrentTime.Week=7;
break;
}
default : break;
}
TimeChange(&CurrentTime);
break;
}
case 0x0b: {
switch(Setnum)
{
case 0:{
CurrentTime.Year--;
if(CurrentTime.Year==-1)
CurrentTime.Year=0;
break;
}
case 1:{
CurrentTime.Month--;
if(CurrentTime.Month==0)
CurrentTime.Month=1;
break;
}
case 2:{
CurrentTime.Day--;
if(CurrentTime.Day==0)
CurrentTime.Day=1;
break;
}
case 3:{
CurrentTime.Hour--;
if(CurrentTime.Hour==-1)
CurrentTime.Hour=0;
break;
}
case 4:{
CurrentTime.Minute--;
if(CurrentTime.Minute==-1)
CurrentTime.Minute=0;
break;
}
case 5:{
CurrentTime.Second--;
if(CurrentTime.Second==-1)
CurrentTime.Second=0;
break;
}
case 6:{
CurrentTime.Week--;
if(CurrentTime.Week==0)
CurrentTime.Week=1;
break;
}
default : break;
}
TimeChange(&CurrentTime);
break;
}
case 0x0e: Set(&CurrentTime);
KeyFuncIndex=0;
break;
default: break;
}
}
}
}
lcd_init();
}
void SetBellDisplay1()
{
disp_Ez(5,0,14,0);
disp_Ez(6,0,14,0);
disp_Ez(7,0,10,0);
disp_Ez(8,0,15,0);
disp_Ez(9,0,15,0);
disp_Hz(0,2,18,0);
disp_Hz(1,2,19,0);
disp_Hz(0,4,24,0);
disp_Hz(1,4,25,0);
}
void SetBellDisplay2()
{
disp_Ez(5,2,bell[0]/10,num[0]);
disp_Ez(6,2,bell[0]%10,num[0]);
disp_Ez(7,2,10,0);
disp_Ez(8,2,bell[1]/10,num[1]);
disp_Ez(9,2,bell[1]%10,num[1]);
disp_Hz(3,4,bell[2]+26,num[2]);
}
void SetBell()
{
uchar KeyValue,i;
uchar Setnum=0;
SetBellDisplay1();
while(KeyFuncIndex)
{
if((P1&0x0f)!=0x0f)
{
KeyValue=P1&0x0f;
delayms(2);
if((P1&0x0f)!=0x0f)
{
while((P1&0x0f)!=0x0f);
switch(KeyValue)
{
case 0x07:{
Setnum++;
if(Setnum==3)Setnum=0;
for(i=0;i<3;i++)
{
if(i==Setnum)num[i]=1;
else num[i]=0;
}
break;
}
case 0x0d:{
switch(Setnum)
{
case 0: {
bell[0]++;
if(bell[0]==24)bell[0]=23;
break;
}
case 1: {
bell[1]++;
if(bell[1]==60)bell[1]=59;
}
case 2: {
bell[2]++;
if(bell[2]==2)bell[2]=1;
break;
}
default:break;
}
break;
}
case 0x0b:{
switch(Setnum)
{
case 0: {
bell[0]--;
if(bell[0]==-1)bell[0]=0;
break;
}
case 1: {
bell[1]--;
if(bell[1]==-1)bell[1]=0;
}
case 2: {
bell[2]--;
if(bell[2]==-1)bell[2]=0;
break;
}
default:break;
}
break;
}
case 0x0e: {
KeyFuncIndex=0;
break;
}
default : break;
}
}
}
SetBellDisplay2();
}
lcd_init();
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
多功能电子万年历代码.rar (55个子文件)
多功能电子万年历代码
Interrupt.c 2B
Test.Uv2.bak 2KB
LCD12864.OBJ 13KB
DS1302.h 1KB
Test.LST 6KB
LCD12864.LST 8KB
DS1302.OBJ 18KB
DS1302.bak 1KB
Ds18b20.c 3KB
Test_Opt.Bak 3KB
Calendar.bak 7KB
Menus.bak 103B
Test.opt.bak 3KB
Com.bak 711B
Com.h 265B
Test.hex 22KB
Test_Uv2.Bak 2KB
STARTUP.OBJ 749B
INTERRUPT.bak 1KB
Test.OBJ 11KB
Ds18b20.OBJ 9KB
Test.c 3KB
STARTUP.A51 5KB
LCD12864.bak 4KB
Interrupt.h 1KB
Test.uvopt 68KB
Calendar.h 170B
Com.OBJ 2KB
Ds18b20.h 178B
Interrupt.LST 2KB
STARTUP.LST 11KB
Calendar.OBJ 15KB
DS1302.c 6KB
Menus.OBJ 19KB
Test.M51 69KB
LCD12864.h 637B
Test.bak 3KB
Menus.c 7KB
Test 75KB
Test.uvproj 14KB
ZIMO.bak 7KB
Calendar.c 7KB
Calendate.h 6KB
Ds18b20.bak 3KB
Ds18b20.LST 6KB
Calendar.LST 12KB
Menus.h 101B
Com.LST 2KB
Com.c 698B
Test.lnp 147B
Menus.LST 22KB
Test.plg 198B
DS1302.LST 11KB
Zimo.h 7KB
LCD12864.c 4KB
共 55 条
- 1
资源评论
- ymh9982014-05-15编译通过了,值的新手学习。
- 墨竹雅客2014-04-12还行吧可以借鉴一下
- Leo6182013-08-16资料还不错,可以下载看看
会泽
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- NetOps-py通过sftp替换网络设备启动文件
- STM32单片机FPGA毕设电路原理论文报告任务驱动教学法在单片机课程教学中的应用
- STM32单片机FPGA毕设电路原理论文报告任务驱动法在单片机教学中的应用
- STM32单片机FPGA毕设电路原理论文报告人造金刚石压机智能化压力测控系统设计
- 以某列为依据匹配多项(Excel版)
- STM32单片机FPGA毕设电路原理论文报告人体短臂离心机实验台的显示控制系统
- STM32单片机FPGA毕设电路原理论文报告人工气候室监控系统的环境控制器研究
- STM32单片机FPGA毕设电路原理论文报告染整自动线张力控制系统的设计
- 数据挖掘与机器学习-实验
- 基于Linux系统Nginx的动态网站的LNMP环境源码包
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功