一直找不出原因来,大家帮我看一下吧,谢谢大家 了
时间:10-02
整理:3721RD
点击:
下面是代码
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code weixuan[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uchar code duanxuan[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90,0xbf,0xff};
uchar data timedata[3]={0x00,0x00,0x00};
uchar data datetime[8]={0xc0,0xc0,0xbf,0xc0,0xc0,0xbf,0xc0,0xc0}; //ê±???o3???£?3?ê??ˉ??ê?00-00-00
uchar tt1,tt2,tt,tt0,num=0;
uchar flag,flag1,flag2,flash;
sbit key1=P1^3;
sbit key2=P1^5;
sbit key3=P1^7;
/****************?óê±oˉêy*************/
void delay(uint del)
{
uchar i,j;
for(i=0;i<del;i++)
for(j=0;j<=148;j++);
}
/*************μ÷ó???ê?*************/
void display()
{
datetime[0]=timedata[0]%10;datetime[1]=timedata[0]/10;//??
datetime[3]=timedata[1]%10;datetime[4]=timedata[1]/10;//·?
datetime[6]=timedata[2]%10;datetime[7]=timedata[2]/10;//ê±
if(!flag)
{
P2=0x80;//????ê?
P0=duanxuan[datetime[0]];
delay(2);
P2=0x40;
P0=duanxuan[datetime[1]];
delay(2);
}
else
{
P2=0x80;//????ê?
P0=duanxuan[datetime[0]]|flash;
delay(2);
P2=0x40;
P0=duanxuan[datetime[1]]|flash;
delay(2);
}
P0=0x20;
P0=duanxuan[10];
delay(2);
if(!flag1)
{
P2=0x10;//·???ê?
P0=duanxuan[datetime[3]];
delay(2);
P2=0x08;
P0=duanxuan[datetime[4]];
delay(2);
}
else
{
P2=0x10;//·???ê?
P0=duanxuan[datetime[3]]|flash;
delay(2);
P2=0x08;
P0=duanxuan[datetime[4]]|flash;
delay(2);
}
P2=0x04;//D?ê±??ê?
P0=duanxuan[10];
delay(2);
if(!flag2)
{
P2=0x02;//D?ê±??ê?
P0=duanxuan[datetime[6]];
delay(2);
P2=0x01;
P0=duanxuan[datetime[7]];
delay(2);
}
else
{
P2=0x02;
P0=duanxuan[datetime[6]]|flash;
delay(2);
P2=0x01;
P0=duanxuan[datetime[7]]|flash;
delay(2);
}
}
/*************°′?üμ÷?úê±??**************/
void keyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
num++;
while(!key1);
while(1)
{
if(num==1)
{
flag=1;
flag1=0;
flag2=0;
if(key2==0)
{
delay(10);
if(key2==0)
{
delay(10);
if(key2==0)
{
timedata[0]--;
if(timedata[0]==-1)
timedata[0]=60;
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
timedata[0]++;
if(timedata[0]==60)
timedata[0]=0;
while(!key3);
}
}
}
if(key1==0)
{
delay(10);
if(key1==0)
num++;
while(!key1);
}
if(num==2)
{
flag=0;
flag1=1;
flag2=0;
if(key2==0)
{
delay(10);
if(key2==0)
{
delay(10);
if(key2==0)
{
timedata[1]--;
if(timedata[1]==-1)
timedata[1]=60;
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
timedata[1]++;
if(timedata[1]==60)
timedata[1]=0;
while(!key3);
}
}
}
if(num==3)
{
flag=0;
flag1=0;
flag2=1;
if(key2==0)
{
delay(10);
if(key2==0)
{
timedata[2]--;
if(timedata[2]==-1)
timedata[2]=24;
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
timedata[2]++;
if(timedata[2]==25)
timedata[2]=0;
while(!key3);
}
}
}
if(num==4)
{
num=0;
flag=0;
flag1=0;
flag2=0;
break;
}
}
}
}
}
/**********?÷oˉêy**************/
void main()
{
TMOD=1;
ET0=1;
TR0=1;
TH0=0x40;
TL0=0x00;
EA=1;
while(1)
{
keyscan();
}
}
/*************?¨ê±?÷oˉêy*********/
void timer1() interrupt 1
{
TH0=0x40;
TL0=0x00;
P3=100;
display();
if((flag||flag1||flag2))
{
tt0++;
if(tt0==10)
{
flash=-flash;
tt0=0;
}
}
else
{
tt++;
if(tt=20)
{
tt=0;
timedata[0]++;
if(timedata[0]==60)
{
timedata[0]=0;
timedata[1]++;
if(timedata[1]==60)
{
timedata[1]=0;
timedata[2]++;
if(timedata[2]==24)
{
timedata[2]=0;
}
}
}
}
}
}
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code weixuan[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uchar code duanxuan[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90,0xbf,0xff};
uchar data timedata[3]={0x00,0x00,0x00};
uchar data datetime[8]={0xc0,0xc0,0xbf,0xc0,0xc0,0xbf,0xc0,0xc0}; //ê±???o3???£?3?ê??ˉ??ê?00-00-00
uchar tt1,tt2,tt,tt0,num=0;
uchar flag,flag1,flag2,flash;
sbit key1=P1^3;
sbit key2=P1^5;
sbit key3=P1^7;
/****************?óê±oˉêy*************/
void delay(uint del)
{
uchar i,j;
for(i=0;i<del;i++)
for(j=0;j<=148;j++);
}
/*************μ÷ó???ê?*************/
void display()
{
datetime[0]=timedata[0]%10;datetime[1]=timedata[0]/10;//??
datetime[3]=timedata[1]%10;datetime[4]=timedata[1]/10;//·?
datetime[6]=timedata[2]%10;datetime[7]=timedata[2]/10;//ê±
if(!flag)
{
P2=0x80;//????ê?
P0=duanxuan[datetime[0]];
delay(2);
P2=0x40;
P0=duanxuan[datetime[1]];
delay(2);
}
else
{
P2=0x80;//????ê?
P0=duanxuan[datetime[0]]|flash;
delay(2);
P2=0x40;
P0=duanxuan[datetime[1]]|flash;
delay(2);
}
P0=0x20;
P0=duanxuan[10];
delay(2);
if(!flag1)
{
P2=0x10;//·???ê?
P0=duanxuan[datetime[3]];
delay(2);
P2=0x08;
P0=duanxuan[datetime[4]];
delay(2);
}
else
{
P2=0x10;//·???ê?
P0=duanxuan[datetime[3]]|flash;
delay(2);
P2=0x08;
P0=duanxuan[datetime[4]]|flash;
delay(2);
}
P2=0x04;//D?ê±??ê?
P0=duanxuan[10];
delay(2);
if(!flag2)
{
P2=0x02;//D?ê±??ê?
P0=duanxuan[datetime[6]];
delay(2);
P2=0x01;
P0=duanxuan[datetime[7]];
delay(2);
}
else
{
P2=0x02;
P0=duanxuan[datetime[6]]|flash;
delay(2);
P2=0x01;
P0=duanxuan[datetime[7]]|flash;
delay(2);
}
}
/*************°′?üμ÷?úê±??**************/
void keyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
num++;
while(!key1);
while(1)
{
if(num==1)
{
flag=1;
flag1=0;
flag2=0;
if(key2==0)
{
delay(10);
if(key2==0)
{
delay(10);
if(key2==0)
{
timedata[0]--;
if(timedata[0]==-1)
timedata[0]=60;
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
timedata[0]++;
if(timedata[0]==60)
timedata[0]=0;
while(!key3);
}
}
}
if(key1==0)
{
delay(10);
if(key1==0)
num++;
while(!key1);
}
if(num==2)
{
flag=0;
flag1=1;
flag2=0;
if(key2==0)
{
delay(10);
if(key2==0)
{
delay(10);
if(key2==0)
{
timedata[1]--;
if(timedata[1]==-1)
timedata[1]=60;
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
timedata[1]++;
if(timedata[1]==60)
timedata[1]=0;
while(!key3);
}
}
}
if(num==3)
{
flag=0;
flag1=0;
flag2=1;
if(key2==0)
{
delay(10);
if(key2==0)
{
timedata[2]--;
if(timedata[2]==-1)
timedata[2]=24;
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
timedata[2]++;
if(timedata[2]==25)
timedata[2]=0;
while(!key3);
}
}
}
if(num==4)
{
num=0;
flag=0;
flag1=0;
flag2=0;
break;
}
}
}
}
}
/**********?÷oˉêy**************/
void main()
{
TMOD=1;
ET0=1;
TR0=1;
TH0=0x40;
TL0=0x00;
EA=1;
while(1)
{
keyscan();
}
}
/*************?¨ê±?÷oˉêy*********/
void timer1() interrupt 1
{
TH0=0x40;
TL0=0x00;
P3=100;
display();
if((flag||flag1||flag2))
{
tt0++;
if(tt0==10)
{
flash=-flash;
tt0=0;
}
}
else
{
tt++;
if(tt=20)
{
tt=0;
timedata[0]++;
if(timedata[0]==60)
{
timedata[0]=0;
timedata[1]++;
if(timedata[1]==60)
{
timedata[1]=0;
timedata[2]++;
if(timedata[2]==24)
{
timedata[2]=0;
}
}
}
}
}
}
路过。帮顶一下
你懂么,帮我一下吧
什么问题,或现象啊
TMOD好像不能这样寻址 你改成TMOD=0x01
不是好像……应该是就不能像你那样寻址(我也是菜鸡
最后面那张图片那里不是说明么
按键扫描?
小伙子去看看我发的帖子,有源代码