找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1949|回复: 1
打印 上一主题 下一主题
收起左侧

谁能帮我加个程序,现在已经显示显示时间了,谁能帮加个日期,

[复制链接]
跳转到指定楼层
楼主
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
char miao,fen,shi;
bit flag,flag_time;
char set_miao=12,set_fen=12,set_shi=12;
uchar s1num;
sbit s1=P3^0;
sbit s2=P3^1;
sbit s3=P3^2;
sbit s4=P3^3;

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit BUZZ=P1^4;

sbit wei0=P2^0;
sbit wei1=P2^1;
sbit wei2=P2^2;
sbit wei3=P2^3;
sbit wei4=P2^4;
sbit wei5=P2^5;
sbit wei6=P2^6;
sbit wei7=P2^7;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,
0x5e,0x79,0x71,0x40};

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void start()
{
TMOD=0x11;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TL1=(65536-5000)/256;
TL1=(65536-5000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=0;
}
void display(char miao,char fen, char shi)
{
P0=table[miao%10];
wei7=0;
delay(1);
wei7=1;
P0=0xff;

P0=table[miao/10];
wei6=0;
delay(1);
wei6=1;
P0=0xff;

P0=table[16];
wei5=0;
delay(1);
wei5=1;
P0=0xff;

P0=table[fen%10];
wei4=0;
delay(1);
wei4=1;
P0=0xff;

P0=table[fen/10];
wei3=0;
delay(1);
wei3=1;
P0=0xff;

P0=table[16];
wei2=0;
delay(1);
wei2=1;
P0=0xff;

P0=table[shi%10];
wei1=0;
delay(1);
wei1=1;
P0=0xff;

P0=table[shi/10];
wei0=0;
delay(1);
wei0=1;
P0=0xff;
}
void keyscan()
{
if(s1==0)
{
delay(5);
if(s1==0)
{
while(!s1);
s1num++;
if(s1num==1)
{
if(flag)
TR0=1;
else
TR0=0;
led1=0;
}
if(s1num==2)
{
led2=0;
led1=1;
}
if(s1num==3)
{
led3=0;
led1=1;
led2=1;
}
if(s1num==4)
{
led1=1;
led2=1;
led3=1;
s1num=0;
TR0=1;
}
} } }
void time()
{
if(s1num!=0)
{
if(s2==0)
{
delay(5);
if(s2==0)
{
while(!s2);
switch(s1num)
{
case 1:
miao++;
if(miao==60)
miao=0;
break;

case 2:
fen++;
if(fen==60)
fen=0;
break;

case 3:
shi++;
if(shi==24)
shi=0;
break;
}}}
if(s3==0)
{
delay(5);
if(s3==0)
{
while(!s3);
switch(s1num)
{
case 1:
miao--;
if(miao<0)
miao=59;
break;

case 2:
fen--;
if(fen<0)
fen=59;
break;

case 3:
shi--;
if(shi<0)
shi=23;
break;
}}}}}
void set_time()
{
if(s1num==0)
{
if(s4==0)
{
delay(5);
if(s4==0)
{
while(!s4);
led4=~led4;
flag=~flag;
}}}
if(flag)
{
if(s1num!=0)
{
if(s2==0)
{
delay(5);
if(s2==0)
{
while(!s2);
switch(s1num)
{
case 1:
set_miao++;
if(set_miao==60)
set_miao=0;
break;

case 2:
set_fen++;
if(set_fen==60)
set_fen=0;
break;

case 3:
set_shi++;
if(set_shi==24)
set_shi=0;
break;
}}}
if(s3==0)
{
delay(5);
if(s3==0)
{
while(!s3);
switch(s1num)
{
case 1:
set_miao--;
if(set_miao<0)
set_miao=59;
break;

case 2:
set_fen--;
if(set_fen<0)
set_miao=59;
break;

case 3:
set_shi--;
if(set_shi<0)
set_miao=23;
break;
}}}}} }
void main()
{
start();
while(1)
{
keyscan();
time();
if(!flag)
{
display(miao,fen,shi);
}
else
{
display(set_miao,set_fen,set_shi);
}
if(miao==set_miao&&fen==set_fen&&shi==set_shi)
{
TR1=1;
}
if(flag_time)
{
TR1=0;
BUZZ=1;
flag_time=0;
}
set_time();
}}
void time_0()interrupt 1
{
uchar aa;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==20)
{
aa=0;
miao++;
if(miao>=60)
{
miao=0;
fen++;
if(fen>=60)
{
fen=0;
shi++;
if(shi>=24)
{
shi=0;
}}}}}
void time_1()interrupt 3
{
uchar bz_time;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
bz_time++;
if(bz_time==200)
{
bz_time=0;
flag_time=1;
}
BUZZ=~BUZZ;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表