找回密码
 立即注册

QQ登录

只需一步,快速开始

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

大神帮助为什么ds1302能不能被读取

  [复制链接]
跳转到指定楼层
楼主
不能读取ds1302的数据,.h文件没有问题
主程序代码在最下面

#include<reg52.h>
#include<lcd.h>
#include<i2c.h>
#include<intrins.h>   
#include<stdio.h>
#include<ds1302.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit led1=P2^2;
sbit led2=P2^3;
sbit led3=P2^4;
uint8 num,num4,num5,key,mode,w;
uint16 i,j,m=0;
uint16 n=0;
uint8 a,b,c,d,e,f,g;
uint8 a1=1,a2=2,a3=3,a4=4,a5=5,a6=6;
uint8 x1=4,x2=5,x3=6,x4=7,x5=8,x6=9;
uint8 y1=6,y2=5,y3=4,y4=3,y5=2,y6=1;
uint8 z1=9,z2=8,z3=7,z4=6,z5=5,z6=4;
uint8 b1,b2,b3,b4,b5,b6;
uint8 dat1[]={1,2,3,4,5,6,7,8,9,0};
uint8 flag,r;
uint8 Q1,Q2,Q3,Q4,Q5,Q6;
uint8 L1,L2,L3,L4,L5,L6;
uint8 O1,O2,O3,O4,O5,O6;
uint8 U1,U2,U3,U4,U5,U6;
uint8 code table[]="open box";
uint8 Dispkaiji1[]="1.PASSWORD";
uint8 Dispkaiji2[]="2.IC";
uint8 cuowu1[]="  WRONG NUMBER  ";
uint8 cuowu2[]="   TRY AGAIN!   ";
uint8 Dispjiesuo1[]="    UNLOCKED    ";
uint8 Dispjiesuo2[]=" SUCCESSFULLY!! ";
uint8 suosi[]="    DEADLOCK    ";
uint8 xiugai1[]="INPUT OLD NUMBER";
uint8 xiugai2[]="INPUT NEW NUMBER";
uint8 xiugai3[]="ALREADY CHANGED!";
uint8 box1[]=" BOX1  UNLOCKED ";
uint8 box2[]=" BOX2  UNLOCKED ";
uint8 box3[]=" BOX3  UNLOCKED ";
uint8 box4[]=" BOX4  UNLOCKED ";

void delay(uint16 i)
{
while(i--);
}
void delay2s()   
{
    unsigned char x,y,z;
    for(x=127;x>0;x--)
        for(y=235;y>0;y--)
            for(z=32;z>0;z--);
    _nop_();  //if Keil,require use intrins.h
}
void password_input()        //&frac12;&laquo;&Atilde;&Uuml;&Acirc;&euml;&ETH;&acute;&Egrave;&euml;EEPROM
{
if(w==1)
{
  At24c02Write(1,a1);
  delay(10000);
  Q1=At24c02Read(1);
  At24c02Write(2,a2);
  delay(10000);
  Q2=At24c02Read(2);
  At24c02Write(3,a3);
  delay(10000);
  Q3=At24c02Read(3);
  At24c02Write(4,a4);
  delay(10000);
  Q4=At24c02Read(4);
  At24c02Write(5,a5);
  delay(10000);
  Q5=At24c02Read(5);
  At24c02Write(6,a6);
  delay(10000);
  Q6=At24c02Read(6);
}
if(w==4)
{
  At24c02Write(19,z1);
  delay(10000);
  U1=At24c02Read(19);
  At24c02Write(20,z2);
  delay(10000);
  U2=At24c02Read(20);
  At24c02Write(21,z3);
  delay(10000);
  U3=At24c02Read(21);
  At24c02Write(22,z4);
  delay(10000);
  U4=At24c02Read(22);
  At24c02Write(23,z5);
  delay(10000);
  U5=At24c02Read(23);
  At24c02Write(24,z6);
  delay(10000);
  U6=At24c02Read(24);
}
}

void password_output()        //&frac12;&laquo;&Atilde;&Uuml;&Acirc;&euml;&ETH;&acute;&Egrave;&euml;EEPROM
{
  Q1=At24c02Read(1);a1=Q1;
  delay(10000);
  Q2=At24c02Read(2);a2=Q2;
  delay(10000);
  Q3=At24c02Read(3);a3=Q3;
  delay(10000);
  Q4=At24c02Read(4);a4=Q4;
  delay(10000);
  Q5=At24c02Read(5);a5=Q5;
  delay(10000);
  Q6=At24c02Read(6);a6=Q6;
  
  
  
  U1=At24c02Read(19);x1=U1;
  delay(10000);
  U2=At24c02Read(20);x2=U2;
  delay(10000);
  U3=At24c02Read(21);x3=U3;
  delay(10000);
  U4=At24c02Read(22);x4=U4;
  delay(10000);
  U5=At24c02Read(23);x5=U5;
  delay(10000);
  U6=At24c02Read(24);x6=U6;
}

void UsartInit()
{
SCON=0X50;  
TMOD=0X20;   
PCON=0X80;  
TH1=0XF3;   
TL1=0XF3;
ES=1;     
EA=1;     
TR1=1;     
}
void delayms(uint16 xms)
{
uint16 i,j;
for(i=xms;i>0;i--)
  for(j=110;j>0;j--);
}

void LcdDisplayshijian()
{
Ds1302ReadTime();
LcdWriteCom(0x80+0X40);
LcdWriteData('0'+TIME[2]/16);    //&Ecirc;±
LcdWriteData('0'+(TIME[2]&0x0f));     
LcdWriteData('-');
LcdWriteData('0'+TIME[1]/16);    //·&Ouml;
LcdWriteData('0'+(TIME[1]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[0]/16);    //&Atilde;&euml;
LcdWriteData('0'+(TIME[0]&0x0f));
LcdWriteCom(0x80);
LcdWriteData('2');
LcdWriteData('0');
LcdWriteData('0'+TIME[6]/16);   //&Auml;ê
LcdWriteData('0'+(TIME[6]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[4]/16);   //&Ocirc;&Acirc;
LcdWriteData('0'+(TIME[4]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[3]/16);   //&Egrave;&Otilde;
LcdWriteData('0'+(TIME[3]&0x0f));
LcdWriteCom(0x8D);
LcdWriteData('0'+(TIME[5]&0x07)); //&ETH;&Ccedil;&AElig;&Uacute;   
}
void xianshi()
{
  Ds1302ReadTime();
  SBUF='2';while(TI==0);TI=0;
  SBUF='0';while(TI==0);TI=0;
  SBUF='0'+TIME[6]/16;while(TI==0);TI=0;
  SBUF='0'+(TIME[6]&0x0f);while(TI==0);TI=0;//nian
  SBUF='-';while(TI==0);TI=0;
  SBUF='0'+TIME[4]/16;while(TI==0);TI=0;
  SBUF='0'+(TIME[4]&0x0f);while(TI==0);TI=0;//yue
  SBUF='-';while(TI==0);TI=0;
  SBUF='0'+TIME[3]/16;while(TI==0);TI=0;
  SBUF='0'+(TIME[3]&0x0f);while(TI==0);TI=0;//ri
  SBUF='-';while(TI==0);TI=0;
  SBUF='-';while(TI==0);TI=0;
  SBUF='0'+TIME[2]/16;while(TI==0);TI=0;
  SBUF='0'+(TIME[2]&0x0f);while(TI==0);TI=0;//shi
  SBUF='-';while(TI==0);TI=0;
  SBUF='0'+TIME[1]/16;while(TI==0);TI=0;
  SBUF='0'+(TIME[1]&0x0f);while(TI==0);TI=0;//fen
  SBUF='-';while(TI==0);TI=0;
  SBUF='0'+TIME[0]/16;while(TI==0);TI=0;
  SBUF='0'+(TIME[0]&0x0f);while(TI==0);TI=0;//miao
  SBUF=' ';while(TI==0);TI=0;
}

void caiji1()
{
  if(n==1)
  {
   a=g;
  }
  if(n==2)
  {
   b=g;
  }
  if(n==3)
  {
   c=g;
  }
  if(n==4)
  {
   d=g;
  }
  if(n==5)
  {
   e=g;
  }
  if(n==6)
  {
   f=g;
  }
}
void caiji2()
{
  if(n==1)
  {
   b1=g;
  }
  if(n==2)
  {
   b2=g;
  }
  if(n==3)
  {
   b3=g;
  }
  if(n==4)
  {
   b4=g;
  }
  if(n==5)
  {
   b5=g;
  }
  if(n==6)
  {
   b6=g;
  }
}
void panduan()
{
switch(r)
{
  case(1):
  xianshi();
  for(i=0;i<8;i++)
   {
    SBUF=table[i];
    while(!TI);
    TI=0;
   }
  SBUF='1';while(TI==0);TI=0;
  SBUF=0x0d;while(TI==0);TI=0;
  SBUF=0x0a;while(TI==0);TI=0;break;
  case(2):
  xianshi();
  for(i=0;i<8;i++)
   {
    SBUF=table[i];
    while(!TI);
    TI=0;
   }SBUF='2';while(TI==0);TI=0;
  SBUF=0x0d;while(TI==0);TI=0;
  SBUF=0x0a;while(TI==0);TI=0;break;
  case(3):
  xianshi();
  for(i=0;i<8;i++)
   {
    SBUF=table[i];
    while(!TI);
    TI=0;
   }SBUF='3';while(TI==0);TI=0;
  SBUF=0x0d;while(TI==0);TI=0;
  SBUF=0x0a;while(TI==0);TI=0;break;
   
  case(4):
  xianshi();
  for(i=0;i<8;i++)
   {
    SBUF=table[i];
    while(!TI);
    TI=0;
   }SBUF='4';while(TI==0);TI=0;
  SBUF=0x0d;while(TI==0);TI=0;
  SBUF=0x0a;while(TI==0);TI=0;break;
}
}

void kaixiang()
{
                if((a1==a)&&(a2==b)&&(a3==c)&&(a4==d)&&(a5==e)&&(a6==f))
                {
                 led1=0; r=1;
                 m=0;
                 n=0;
                 a=10;
                 LcdWriteCom(0x01);
                 LcdWriteCom(0x80);
                 for(i=0;i<16;i++)
                 {
                  LcdWriteData(box1[i]);
                 }
                 LcdWriteCom(0x80+0x40);
                 for(j=0;j<16;j++)
                 {
                  LcdWriteData(Dispjiesuo2[j]);
                 }
                 mode=4;
                }                                 //box1
                else if((x1==a)&&(x2==b)&&(x3==c)&&(x4==d)&&(x5==e)&&(x6==f))
                {
                 led1=0; r=2;
                 m=0;
                 n=0;
                 a=10;
                 LcdWriteCom(0x01);
                 LcdWriteCom(0x80);
                 for(i=0;i<16;i++)
                 {
                  LcdWriteData(box2[i]);
                 }
                 LcdWriteCom(0x80+0x40);
                 for(j=0;j<16;j++)
                 {
                  LcdWriteData(Dispjiesuo2[j]);
                 }   
                 mode=4;
                }                                 //box2
                else if((y1==a)&&(y2==b)&&(y3==c)&&(y4==d)&&(y5==e)&&(y6==f))
                {
                 led1=0;r=3;
                 m=0;
                 n=0;
                 a=10;
                 LcdWriteCom(0x01);
                 LcdWriteCom(0x80);
                 for(i=0;i<16;i++)
                 {
                  LcdWriteData(box3[i]);
                 }
                 LcdWriteCom(0x80+0x40);
                 for(j=0;j<16;j++)
                 {
                  LcdWriteData(Dispjiesuo2[j]);
                 }  
                 mode=4;
                }                                 //box3
                else if((z1==a)&&(z2==b)&&(z3==c)&&(z4==d)&&(z5==e)&&(z6==f))
                {
                 led1=0;r=4;
                 m=0;
                 n=0;
                 a=10;
                 LcdWriteCom(0x01);
                 LcdWriteCom(0x80);
                 for(i=0;i<16;i++)
                 {
                  LcdWriteData(box4[i]);
                 }
                 LcdWriteCom(0x80+0x40);
                 for(j=0;j<16;j++)
                 {
                  LcdWriteData(Dispjiesuo2[j]);
                 }
                 mode=4;
                }                                 //box4
                else
                {
                 m++;
                 LcdWriteCom(0x01);
                 LcdWriteCom(0x80);
                 LcdWriteCom(0x80);
                    for(i=0;i<16;i++)
                    {
                     LcdWriteData(cuowu1[i]);
                    }
                    LcdWriteCom(0x80+0x40);
                    for(j=0;j<16;j++)
                    {
                     LcdWriteData(cuowu2[j]);
                    }
                    
                    if(m==3)
                    {  
                     LcdWriteCom(0x01);
                     while(1)
                     {
                      led2=0;
                      LcdWriteCom(0x80);
                      for(i=0;i<16;i++)
                      {
                       LcdWriteData(suosi[i]);
                      }
                     }
                    }
                }  
               
}
void keyscan2()
{
P1=0x7f;      
if(P1!=0x7f)
{
  delay(1000);
  if(P1!=0x7f)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x07: num=0;n++;break;   
    case 0x0b: num=1;n++;break;   
    case 0x0d: num=2;n++;break;      
   }
  }
  while(P1!=0x7f);
  if(num==0)  
  {
   LcdWriteData(0x30+dat1[num]);
   g=1;
  }
  if(num==1)
  {
   LcdWriteData(0x30+dat1[num]);
   g=2;
  }
  if(num==2)
  {
   LcdWriteData(0x30+dat1[num]);
   g=3;
  }
}

P1=0xbf;   
if(P1!=0xbf)
{
  delay(1000);
  if(P1!=0xbf)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x07: num=3;n++;break;  
    case 0x0b: num=4;n++;break;   
    case 0x0d: num=5;n++;break;   
   }
  }
  while(P1!=0xbf);
  if(num==3)
  {
   LcdWriteData(0x30+dat1[num]);
   g=4;
  }
  if(num==4)
  {
   LcdWriteData(0x30+dat1[num]);
   g=5;
  }
  if(num==5)
  {
   LcdWriteData(0x30+dat1[num]);
   g=6;
  }
}

P1=0xdf;  
if(P1!=0xdf)
{
  delay(1000);
  if(P1!=0xdf)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x07: num=6;n++;break;  
    case 0x0b: num=7;n++;break;
    case 0x0d: num=8;n++;break;
   }
  }
  while(P1!=0xdf);
  if(num==6)
  {
   LcdWriteData(0x30+dat1[num]);
   g=7;
  }
  if(num==7)
  {
   LcdWriteData(0x30+dat1[num]);
   g=8;
  }
  if(num==8)
  {
   LcdWriteData(0x30+dat1[num]);
   g=9;
  }
}

P1=0xef;   
if(P1!=0xef)
{
  delay(1000);
  if(P1!=0xef)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x0b : num=9;n++;break;  
    case 0x07 : num=10;break;
    case 0x0d : num=11;break;
    case 0x0e : mode=4;break;
   }
  }
  while(P1!=0xef);
  if(num==9)
  {
   LcdWriteData(0x30+dat1[num]);
   g=0;
  }
  if(num==10)
  {
   LcdWriteCom(0x01);
   n=0;
   a=b=c=d=e=f=0;
   led1=1;
  }
              if(num==11)
              {
               if(mode==1)
               {
                kaixiang();
                flag=1;
                Ds1302ReadTime();
                if(flag==1)
                  {
                   ES=0;
                  
                   panduan();
                  }
                 ES=1;
                flag=0;
                 //mode==1
               }
               if(mode==2)
               {
               }
               if(mode==3)
               {
                if((a1==a)&&(a2==b)&&(a3==c)&&(a4==d)&&(a5==e)&&(a6==f))
                {
                 led1=0;
                 LcdWriteCom(0x01);
                 w=1;
                }
                if((x1==a)&&(x2==b)&&(x3==c)&&(x4==d)&&(x5==e)&&(x6==f))
                {
                 led1=0;
                 LcdWriteCom(0x01);
                 w=2;
                }
                if((y1==a)&&(y2==b)&&(y3==c)&&(y4==d)&&(y5==e)&&(y6==f))
                {
                 led1=0;
                 LcdWriteCom(0x01);
                 w=3;
                }
                if((z1==a)&&(z2==b)&&(z3==c)&&(z4==d)&&(z5==e)&&(z6==f))
                {
                 led1=0;
                 LcdWriteCom(0x01);
                 w=4;
                }
               
               
               
                else
                {
                 m++;
                 LcdWriteCom(0x01);
                 LcdWriteCom(0x80);
                    for(i=0;i<16;i++)
                    {
                     LcdWriteData(cuowu1[i]);
                    }
                    LcdWriteCom(0x80+0x40);
                    for(j=0;j<16;j++)
                    {
                     LcdWriteData(cuowu2[j]);
                    }
                    if(m==3)
                    {  
                     LcdWriteCom(0x01);
                     while(1)
                     {
                      led2=0;
                      LcdWriteCom(0x80);
                      for(i=0;i<16;i++)
                      {
                       LcdWriteData(suosi[i]);
                      }
                     }
                    }
                }
               
               }    //mode==3
              }
}  
}
void keyscan3()
{
P1=0x7f;      
if(P1!=0x7f)
{
  delay(1000);
  if(P1!=0x7f)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x07: num=0;n++;break;   
    case 0x0b: num=1;n++;break;   
    case 0x0d: num=2;n++;break;      
   }
  }
  while(P1!=0x7f);
  if(num==0)  
  {
   LcdWriteData(0x30+dat1[num]);
   g=1;
  }
  if(num==1)
  {
   LcdWriteData(0x30+dat1[num]);
   g=2;
  }
  if(num==2)
  {
   LcdWriteData(0x30+dat1[num]);
   g=3;
  }
}

P1=0xbf;   
if(P1!=0xbf)
{
  delay(1000);
  if(P1!=0xbf)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x07: num=3;n++;break;  
    case 0x0b: num=4;n++;break;   
    case 0x0d: num=5;n++;break;   
   }
  }
  while(P1!=0xbf);
  if(num==3)
  {
   LcdWriteData(0x30+dat1[num]);
   g=4;
  }
  if(num==4)
  {
   LcdWriteData(0x30+dat1[num]);
   g=5;
  }
  if(num==5)
  {
   LcdWriteData(0x30+dat1[num]);
   g=6;
  }
}

P1=0xdf;  
if(P1!=0xdf)
{
  delay(1000);
  if(P1!=0xdf)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x07: num=6;n++;break;  
    case 0x0b: num=7;n++;break;
    case 0x0d: num=8;n++;break;
   }
  }
  while(P1!=0xdf);
  if(num==6)
  {
   LcdWriteData(0x30+dat1[num]);
   g=7;
  }
  if(num==7)
  {
   LcdWriteData(0x30+dat1[num]);
   g=8;
  }
  if(num==8)
  {
   LcdWriteData(0x30+dat1[num]);
   g=9;
  }
}

P1=0xef;   
if(P1!=0xef)
{
  delay(1000);
  if(P1!=0xef)
  {
   key=P1&0x0f;
   switch(key)
   {
    case 0x0b : num=9;n++;break;  
    case 0x07 : num=10;break;
    case 0x0d : num=11;break;
    case 0x0e : mode=4;break;
   }
  }
  while(P1!=0xef);
  if(num==9)
  {
   LcdWriteData(0x30+dat1[num]);
   g=0;
  }
  if(num==10)
  {
   LcdWriteCom(0x01);
   n=0;
   a=b=c=d=e=f=0;
   led1=1;
  }
              if(num==11)
              {
               if(w==1)
               {
                a1=b1;
                a2=b2;
                a3=b3;
                a4=b4;
                a5=b5;
                a6=b6;
               }
               if(w==2)
               {
                x1=b1;
                x2=b2;
                x3=b3;
                x4=b4;
                x5=b5;
                x6=b6;
               }
               if(w==3)
               {
                y1=b1;
                y2=b2;
                y3=b3;
                y4=b4;
                y5=b5;
                y6=b6;
               }
               if(w==4)
               {
                z1=b1;
                z2=b2;
                z3=b3;
                z4=b4;
                z5=b5;
                z6=b6;
               }
               
              }
}  
}
void chushi()
{
LcdWriteCom(0x80);
  for(i=0;i<10;i++)
  {
   LcdWriteData(Dispkaiji1[i]);
  }
  LcdWriteCom(0x80+0x40);
  for(j=0;j<4;j++)
  {
   LcdWriteData(Dispkaiji2[j]);
  }
}

void keyscan1()
{
while(1)
{
  chushi();
  
  
  
  P1=0x7f;      
  if(P1!=0x7f)
  {
   delay(1000);
   if(P1!=0x7f)
   {
    key=P1&0x0f;
    switch(key)
    {
     case 0x0e: mode=1;break;   
    }
   }
   while(P1!=0x7f);
  }
  
  
   P1=0xbf;   
   if(P1!=0xbf)
   {
    delay(1000);
    if(P1!=0xbf)
    {
     key=P1&0x0f;
     switch(key)
     {
      case 0x0e: mode=2;break;  
     }
    }
   
   while(P1!=0xbf);
  }
  
   P1=0xdf;   
   if(P1!=0xdf)
   {
    delay(1000);
    if(P1!=0xdf)
    {
     key=P1&0x0f;
     switch(key)
     {
      case 0x0e: mode=3;break;  
     }
    }
   
   while(P1!=0xdf);
  }
   if(mode==1)
   {
     LcdWriteCom(0x01);
     
     while(1)
    {  
     caiji1();
     keyscan2();
     if(mode==4)
     {
      led1=1;
      n=0;
      delay2s();
      LcdWriteCom(0x01);
      break;
     }
    }
   }  
   if(mode==2)
     {
     }
   if(mode==3)
   {
            LcdWriteCom(0x01);
            while(1)
           {
            LcdWriteCom(0x80);
            for(i=0;i<16;i++)
            {
             LcdWriteData(xiugai1[i]);    //old  number
            }
            break;
           }
            LcdWriteCom(0x80+0x40);
            while(1)
            {
             keyscan2();
             caiji1();
            
             if(mode==4)
             {
              led1=1;
              n=0;
              LcdWriteCom(0x01);
              break;
             }                              //fan hui
            
             if(led1==0)
             {
              n=0;
              
              break;
             }
            
            }
   
          if(led1==0)
           {
             LcdWriteCom(0x01);
             LcdWriteCom(0x80);
             for(i=0;i<16;i++)
             {
              LcdWriteData(xiugai2[i]);           //new number
             }
             led1=1;
         
            LcdWriteCom(0x80+0x40);
            while(1)
            {
             keyscan3();                           //
             caiji2();
             password_input();
             if(w==1)
             {
              if((a1==b1)&&(a2==b2)&&(a3==b3)&&(a4==b4)&&(a5==b5)&&(a6==b6))
              {
               LcdWriteCom(0x01);
               LcdWriteCom(0x80);
               for(i=0;i<16;i++)
               {
                 LcdWriteData(xiugai3[i]);
               }         
               mode=4;
               m=0;
              }
             }
             if(w==2)
             {
              if((x1==b1)&&(x2==b2)&&(x3==b3)&&(x4==b4)&&(x5==b5)&&(x6==b6))
              {
               LcdWriteCom(0x01);
               LcdWriteCom(0x80);
               for(i=0;i<16;i++)
               {
                 LcdWriteData(xiugai3[i]);
               }         
               mode=4;
               m=0;
              }
             }
             if(w==3)
             {
              if((y1==b1)&&(y2==b2)&&(y3==b3)&&(y4==b4)&&(y5==b5)&&(y6==b6))
              {
               LcdWriteCom(0x01);
               LcdWriteCom(0x80);
               for(i=0;i<16;i++)
               {
                 LcdWriteData(xiugai3[i]);
               }         
               mode=4;
               m=0;
              }
             }
             if(w==4)
             {
              if((z1==b1)&&(z2==b2)&&(z3==b3)&&(z4==b4)&&(z5==b5)&&(z6==b6))
              {
               LcdWriteCom(0x01);
               LcdWriteCom(0x80);
               for(i=0;i<16;i++)
               {
                 LcdWriteData(xiugai3[i]);
               }         
               mode=4;
               m=0;
              }
             }
            
             if(mode==4)
             {
              
              delay2s();delay2s();
              n=0;
              LcdWriteCom(0x01);
              break;
              
             }
            }
           }
   }
   
  }
}


void main()
{
LcdInit();
UsartInit();
Ds1302Init();
while(1)
{
  LcdDisplayshijian();

  if(mode==4)
  {
   mode=0;
   led1=1;
   n=0;
   r=0;
   LcdWriteCom(0x01);
   while(1)
   {
    Ds1302ReadTime();
    keyscan1();
   }
  }
}
}

void Usart() interrupt 4
{
RI=0;
flag=1;
}





IMG_20180807_132032.jpg (2.26 MB, 下载次数: 22)

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

使用道具 举报

沙发
ID:162229 发表于 2018-8-8 14:56 | 只看该作者
这么长的程序 ……怎么看得下去啊
对比一下这个板子给的例程

评分

参与人数 2黑币 +25 收起 理由
凌净清河 + 5 淡定
yousunny + 20 赞一个!

查看全部评分

回复

使用道具 举报

板凳
ID:383781 发表于 2018-8-9 10:12 | 只看该作者
fx283 发表于 2018-8-8 14:56
这么长的程序 ……怎么看得下去啊
对比一下这个板子给的例程

ds1302 的.c  .h 程序都是复制的没问题啊   ,就单独显示时钟是可以的,加到这个程序就不行了,串口发到电脑上也是???问号
回复

使用道具 举报

地板
ID:384502 发表于 2018-8-9 10:40 | 只看该作者
程序有点儿长呀~~
回复

使用道具 举报

5#
ID:381488 发表于 2018-8-9 10:52 | 只看该作者
不是这样的,用c
回复

使用道具 举报

6#
ID:308437 发表于 2018-8-9 11:13 | 只看该作者
你这样的开发版,应该有历程的,所以,找个历程下载进去,看下行不行。
然后,就是硬件问题了。我记得当时是那个芯片坏的,一直读取不了。然后,电池也是没电的,也是不行。
回复

使用道具 举报

7#
ID:384109 发表于 2018-8-9 15:22 | 只看该作者
为什么没贴1302部分的程序呢,试试把1302部分的操作频率降低,有的1302芯片好像数据的时钟频率不能太高了
回复

使用道具 举报

8#
ID:383781 发表于 2018-8-9 15:40 | 只看该作者
yousunny 发表于 2018-8-9 11:13
你这样的开发版,应该有历程的,所以,找个历程下载进去,看下行不行。
然后,就是硬件问题了。我记得当时 ...

单独1602显示可以的,加到我这个程序就不能显示了
回复

使用道具 举报

9#
ID:383781 发表于 2018-8-10 09:37 | 只看该作者
人中狼 发表于 2018-8-9 15:22
为什么没贴1302部分的程序呢,试试把1302部分的操作频率降低,有的1302芯片好像数据的时钟频率不能太高了

1302的程序就是复制的开发板历程里面的,我在1602单独显示或者串口传回电脑可以有1302的值,
回复

使用道具 举报

10#
ID:383873 发表于 2018-8-10 10:19 | 只看该作者
这么长的程序实在没耐心看完。。。我觉得写代码的时候应该先实现小的功能模块并测试OK然后再逐步增加其它功能模块,这样全部写完再测试根本没办法判断问题可能出现的地方,然后出错后可以用printf在特定位置打印代码,方便判断具体执行情况。
回复

使用道具 举报

11#
ID:383781 发表于 2018-8-11 12:09 | 只看该作者
jipinxlm 发表于 2018-8-10 10:19
这么长的程序实在没耐心看完。。。我觉得写代码的时候应该先实现小的功能模块并测试OK然后再逐步增加其它功 ...

就是我所有模块都是好的,加起来有问题了
回复

使用道具 举报

12#
ID:472325 发表于 2019-1-28 20:06 | 只看该作者
最好还是一种种功能来实验,先做好LCD1602,再DS1302,后AT2402.一口吃个大胖子不切实际!

评分

参与人数 2黑币 +18 收起 理由
sheng7533967 + 8 很给力!
zhengchong60 + 10 绝世好帖!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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