声明: 程序很乱 高人有什么看法尽情的泼洒
#include"reg51.h"
#include"8563.h"
#include"24c01.h"
#include"malfunction.h"
#include"display.h"
#include"key.h"
uchar keyb;
uchar gu_xian=0;
uchar gu_cha[6];
void init()
{
TMOD=0x11;
TR0=1;
ET0=1;
TR1=1;
ET1=1;
TH1=53266/256;
TL1=53266%256;
TH0=63266/256;
TL0=63266%256;
EA=1;
EX0=1;
IT0=1;
dula=0;
wela=0;
}
void dis_control()//显示模式的选择
{
switch(disnum)
{
case 0:{shuxian[0]=time.s;shuxian[1]=time.m;shuxian[2]=time.h;};break;
case 1:{shuxian[0]=time.d;shuxian[1]=time.mouth;shuxian[2]=time.y;};break;
case 2:
{
if(key_num==1){shuxian[0]=0xaa;shuxian[1]=0xff;shuxian[2]=tobcd(a_num);};
if(key_num==2){shuxian[0]=0xbb;shuxian[1]=0xff;shuxian[2]=tobcd(b_num);};
if(key_num==3){shuxian[0]=0xcc;shuxian[1]=0xff;shuxian[2]=tobcd(c_num);};
if(key_num==4){shuxian[0]=0xab;shuxian[1]=0xff;shuxian[2]=tobcd(ab_num);};
if(key_num==5){shuxian[0]=0xbc;shuxian[1]=0xff;shuxian[2]=tobcd(bc_num);};
if(key_num==6){shuxian[0]=0xac;shuxian[1]=0xff;shuxian[2]=tobcd(ac_num);};
/*if(key_num>6)
{
if(key_num==36)key_num=1;
r_24c01(0x04+3*key_num,3,shuxian);};*/
};
break;
case 3:{shuxian[0]=0xff;shuxian[1]=time.m;shuxian[2]=0xff;};break;
case 4:{shuxian[0]=0xff;shuxian[1]=0xff;shuxian[2]=time.h;};break;
case 5:{shuxian[0]=time.d;shuxian[1]=0xff;shuxian[2]=0xff;};break;
case 6:{shuxian[0]=0xff;shuxian[1]=time.mouth;shuxian[2]=0xff;};break;
case 7:{shuxian[0]=0xff;shuxian[1]=0xff;shuxian[2]=time.y;};break;
case 8:;break;
}
}
void r_24c01(uchar address,uchar z,uchar *databuf)
{
uchar i;
Start();
writebyte(0xa0);
writebyte(address);
Start();
writebyte(0xa1);
for(i=0;i<z;i++)
{
databuf[i]=Readbyte();
if(i<z-1) WriteACK(0);
}
WriteACK(1);
Stop();
}
void main()
{
r_24c01(0x01,6,gu_cha);
init();
//
a_num=gu_cha[0];
b_num=gu_cha[1];
c_num=gu_cha[2];
ab_num=gu_cha[3];
bc_num=gu_cha[4];
ac_num=gu_cha[5];
for(;;)
{
dis_control();
key();
}
}
void timesr_1() interrupt 1
{
display();
if(gu_xian)
{
gu_xian++;
if(gu_xian>220)
{
gu_xian=0;
EX0=1;
}
}
}
void time1() interrupt 3
{
if(disnum<2)
{
R_8563();
}
}
void int_0() interrupt 0
{
uchar gu;
EX0=0;
disnum=8;
gu_xian=1;
gu=key1|0xf8;
switch(gu)
{
case 0xfe:A();break;
case 0xfd:B1();break;
case 0xfb:C();break;
case 0xfc:AB();break;
case 0xfa:AC1();break;
case 0xf9:BC();break;
default: break;
}
就在FOR循环前 初始化读取r_24c01()的时候就跳到dis_control()//显示模式的选择里 之后就跳到TH1=53266/256;
TL1=53266%256;
TH0=63266/256;
TL0=63266%256;
EA=1;
EX0=1;
IT0=1;
dula=0;
wela=0;
就一直死下去了 就怎么安静的死去了 |