找回密码
 立即注册

QQ登录

只需一步,快速开始

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

为什么单片机定时电路无法运行啊,程序烧录成功了·代码出错了?

[复制链接]
跳转到指定楼层
#
30黑币
这是一个定时控制继电器的电路,我在仿真上无法运行,运行时继电器处于吸合状态。我算半个小白,程序我只能看懂一半····所以我来求助了···



单片机源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P3^7;
sbit lcdrw=P3^6;
sbit lcden=P3^5;
sbit  inf=P3^3;
sbit SCLK=P0^7;
sbit   IO=P0^6;
sbit  RST=P0^5;
sbit beep=P0^4;
sbit P0_2=P0^2;
sbit P0_1=P0^1;
sbit P0_0=P0^0;
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
uchar code table1[]="  :  :     :    ";
uchar code table2[]="  :  :     :    ";
uchar code table3[]="   Welcome to   ";
uchar code table4[]=" Timing Sockets ";
uchar code table5[]="20  -  -     ";
uchar code table6[]="  :  :       ";
uchar code table7[]="MON";
uchar code table8[]="TUE" ;
uchar code table9[]="WED" ;
uchar code table10[]="THR";
uchar code table11[]="FRI";
uchar code table12[]="SAT";
uchar code table13[]="SUN";
uchar code table14[]="Set the Calendar";
uchar code table15[]="Set the Mode";
uchar code table16[]="Set the Timing  ";
uchar code table17[]="Mode Choice";
uchar code table18[]="1  2  3  4  5  6";
uint buf_key_code=0;
uint count_T=0,buf_CT=0;
uchar key=255;
uchar key_bit_count=0;
uchar common_code_count=0;
uchar inf_status=0;
uchar dd[7];
uchar aa[7]={0,0,11,17,4,6,11};
uchar ee[3]={11,0,0};
uchar ff[3]={11,1,0};
uchar kk[2]={11,2};
uchar hh[2]={11,3};
uchar gg[6];
bit flag,flag2,flag3,flag4,flag5,flag6,flag7,flag8,flag9,flag10,flag11,flag12,flag13,flag14;     
char miao,fen,shi,ri,yue,zhou,nian;
uchar sw,gw;
uchar s1num,s2num;
void display(void);
void delay(uint i)
{
        uint j;
        for(;i>0;i--)
          for(j=100;j>0;j--);
}
void write_com(uchar com)  //lcd???
{
        lcdrs=0;
        lcden=0;
        P1=com;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
}
void write_data(uchar dat)  //lcd???
{
        lcdrs=1;
        lcden=0;
        P1=dat;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
}                                       
void init()                                        //lcd???
{   uchar num;
        lcdrw=0;
    write_com(0x38);
        write_com(0x0c);
        write_com(0x06);
        write_com(0x01);
        write_com(0x80);
        write_com(0x01);
        write_com(0x80);
        for(num=0;num<16;num++)
                {
                        write_data(table3[num]);
                        delay(5);
                }
        write_com(0xc0);
        for(num=0;num<16;num++)
                {
                        write_data(table4[num]);
                        delay(5);
                 }
            delay(5);

        write_com(0x01);
        write_com(0x80);
        for(num=0;num<8;num++)
                {
                        write_data(table5[num]);
                        delay(1);
                }
        write_com(0xc0);
        for(num=0;num<8;num++)
                {
                        write_data(table6[num]);
                        delay(1);
                }

}
/*********DS1302??*********/
void delay1(uint num)
  {
    while( --num );
   }
void DS1302_wbyte(uchar inbyte)//ds1302???
{
   uchar i;
   for(i=8;i>0;i--)
    {
       SCLK=0;   
       if(inbyte&0x01)
       IO=1;
       else
       IO=0;
       SCLK=1;  
       delay1(1);
       inbyte=inbyte>>1;
     }
}
uchar DS1302_rbyte()         //ds1302???
{
   uchar i,temp=0;
   IO=1;         
   for(i=7;i>0;i--)
     {
        SCLK=0;
        if(IO==1)
           temp=temp|0x80;
        else
           temp=temp&0x7f;
        SCLK=1;      
        temp=temp>>1;
     }
    return (temp);
}
//----------?ds1302?????????-------------
void Write_DS1302(uchar cmd,uchar indata)
{
  RST=1;
  DS1302_wbyte(cmd);
  DS1302_wbyte(indata);
  RST=0;
  SCLK=0;
}
//----------?ds1302???????-----------------
uchar Read_DS1302(uchar addr)
{
  uchar backdata;
  RST=1;
  DS1302_wbyte(addr);
  backdata=DS1302_rbyte();//????,?????
  RST=0;
  SCLK=0;
  return (backdata);
}
//------------??????-------------------
void Set_DS1302(uchar addr,uchar *p,uchar n)//??n???
{uchar bb;
  Write_DS1302(0x8e,0x00);//????,?????
  for(;n>0;n--)
   {sw=(*p)/10;
     gw=(*p)%10;
     bb=(sw<<4)|gw;
     Write_DS1302(addr,bb);
      p++;
      addr=addr+2;
    }
  Write_DS1302(0x8e,0x80);//???,????
}
//----------- ??????-------------------
void Read_nowtime(uchar addr,uchar *p,uchar n)
{
for(;n>0;n--)
{
   *p=Read_DS1302(addr);
   p++;
   addr=addr+2;
                }
}
void init_DS1302()         //ds1302???
{
  RST=0;
  SCLK=0;
  Write_DS1302(0x80,0x00);//????,???
  Write_DS1302(0x90,0x00);//??????
}
void write_sfm(uchar add,uchar date)   
{
        sw=date/10;
        gw=date%10;
        write_com(0x80+0x40+add);
        write_data(0x30+sw);
        write_data(0x30+gw);
}
void write_nyr(uchar add,uchar date)
{
        sw=date/10;
        gw=date%10;
        write_com(0x80+add);
        write_data(0x30+sw);
        write_data(0x30+gw);
}
void write_zhou()            //????
{  uchar num;
   write_com(0x80+11);
   switch(zhou)
  {case 1: for(num=0;num<3;num++)
                {
                        write_data(table7[num]);
                        delay(1);
                }; break;
   case 2: for(num=0;num<3;num++)
                {
                        write_data(table8[num]);
                        delay(1);
                }; break;
   case 3: for(num=0;num<3;num++)
                {
                        write_data(table9[num]);
                        delay(1);
                }; break;
   case 4: for(num=0;num<3;num++)
                {
                        write_data(table10[num]);
                        delay(1);
                }; break;
   case 5: for(num=0;num<3;num++)
                {
                        write_data(table11[num]);
                        delay(1);
                }; break;
   case 6: for(num=0;num<3;num++)
                {
                        write_data(table12[num]);
                        delay(1);
                }; break;
   case 7: for(num=0;num<3;num++)
                {
                        write_data(table13[num]);
                        delay(1);
                }; break;
   default:break;
   }
}
   void lcall()                  
{  uchar num1;
    write_com(0x01);
        write_com(0x80);
    for(num1=0;num1<8;num1++)
                {
                        write_data(table5[num1]);
                        delay(1);
                }
        write_com(0xc0);
        for(num1=0;num1<8;num1++)
                {
                        write_data(table6[num1]);
                        delay(1);
                }  
  display();
  }
void lcall5()                            //????????
{
  uchar num2;
  write_com(0x01);
  write_com(0x80);
        for(num2=0;num2<15;num2++)
                {
                        write_data(table1[num2]);
                        delay(1);}
  write_com(0xc0);
        for(num2=0;num2<15;num2++)
                {
                        write_data(table2[num2]);
                        delay(1);}                  
  write_nyr(0,ee[0]);
  write_nyr(3,ee[1]);
  write_nyr(6,ee[2]);
  write_nyr(0x09,kk[0]);
  write_nyr(0x0c,kk[1]);
  write_sfm(0,ff[0]);
  write_sfm(3,ff[1]);
  write_sfm(6,ff[2]);
  write_sfm(0x09,hh[0]);
  write_sfm(0x0c,hh[1]);

  }
  void lcall3()
{            
         uchar num3;
        write_com(0x01);
                 write_com(0x80);
                   for(num3=0;num3<11;num3++)
                {
                        write_data(table17[num3]);
                        delay(10);
                }
                 write_com(0xc0);
                   for(num3=0;num3<16;num3++)
                {
                        write_data(table18[num3]);
                        delay(10);
                }
  }
/***************??????*************/
void keyscan()
{  
  uchar num;  
  if(s1==0)        
    {delay(5);
  if(s1==0)
    {
          s1num++;
      flag=1;
      write_com(0x01);
      write_com(0x80);
      while(!s1);
      switch (s1num)
       {
           case 1: for(num=0;num<16;num++)
                          {write_data(table14[num]);write_com(0x0c);
                            delay(1);};
                break;
       case 2: write_com(0x0c);s2num=0; flag3=0;
                for(num=0;num<16;num++)
                        {write_data(table16[num]);write_com(0x0c);
                            delay(1);} ; break;
       case 3:  for(num=0;num<12;num++)
                          {write_data(table15[num]);write_com(0x0c);
                            delay(1);};
                break;
       case 4: s2num=0;flag6=0;s1num=0;flag=0;flag5=0;write_com(0x0c);                    
               for(num=0;num<8;num++)
                         {
                           write_data(table5[num]);
                           delay(1);
                            }
               write_com(0xc0);
                   for(num=0;num<8;num++)
                          {
                               write_data(table6[num]);
                               delay(1); }  break;                                                                                         
        default:break;                        
       }
       }
       }
        if(s1num!=0)
         { if(s1num==1)
             { //1        
            if(s2==0)                 
          {delay(5);
        if(s2==0)
           {s2num++;      
        if(flag3==0)
           {lcall();}
        while(!s2);
        switch(s2num)
         { case 1:  flag3=1;write_com(0x80+3);write_com(0x0f);break;
           case 2:  write_com(0x80+6);break;
           case 3:  write_com(0x80+9);break;
           case 4:  write_com(0x80+13);break;
           case 5:  write_com(0xc0+1);break;
           case 6:  write_com(0xc0+4);break;
           case 7:  write_com(0xc0+7);break;
           case 8:  flag3=0;s2num=0;write_com(0x0c);Set_DS1302(0x80,aa, 7);break;        
           default:break;
                  }                        
            }
          }     
    if(s2num!=0)
      {if(s3==0)
          {delay(5);
        if(s3==0)
          {while(!s3);
           switch(s2num)
          {
                   case 1:nian++;
                  if(nian==100) nian=0;
                  write_nyr(2,nian);write_com(0x82);aa[6]=nian;Set_DS1302(0x80,aa, 7); break;
           case 2:yue++;
                  if(yue==13) yue=0;
                  write_nyr(5,yue);write_com(0x85);aa[4]=yue;Set_DS1302(0x80,aa, 7); break;
           case 3:ri++;
                  if(ri==31) ri=0;
                  write_nyr(8,ri);write_com(0x88);aa[3]=ri;Set_DS1302(0x80,aa, 7); break;
           case 4:zhou++;                  
                  if(zhou==8) zhou=1;
                  aa[5]=zhou;
                                  write_zhou(); write_com(0x80+13);Set_DS1302(0x80,aa, 7);break;         
           case 5:shi++;
                  if(shi==24) shi=0;
                  write_sfm(0,shi);write_com(0xc0);aa[2]=shi;Set_DS1302(0x80,aa, 7);break;
           case 6:fen++;
                  if(fen==60) fen=0;
                  write_sfm(3,fen);write_com(0xc3);aa[1]=fen;Set_DS1302(0x80,aa, 7);break;           
           case 7:miao++;
                  if(miao==60) miao=0;
                  write_sfm(6,miao);write_com(0xc6);aa[0]=miao;Set_DS1302(0x80,aa,7);break;
                          default:break;
            }      
          }
        }
    if(s4==0)
          {delay(5);
        if(s4==0)
      {while(!s4);
           switch(s2num)
          {
                   case 1:nian--;
                  if(nian==-1) nian=99;
                  write_nyr(2,nian);write_com(0x82);aa[6]=nian;Set_DS1302(0x80,aa, 7); break;
           case 2:yue--;
                  if(yue==-1) yue=12;
                  write_nyr(5,yue);write_com(0x85);aa[4]=yue; Set_DS1302(0x80,aa, 7);break;
           case 3:ri--;
                  if(ri==0) ri=31;
                  write_nyr(8,ri);write_com(0x88);aa[3]=ri;Set_DS1302(0x80,aa, 7); break;
           case 4:zhou--;                  
                  if(zhou==0) zhou=7;
                                      aa[5]=zhou;
                  write_zhou();write_com(0x80+13);Set_DS1302(0x80,aa, 7);break;           
           case 5:shi--;
                  if(shi==-1) shi=23;
                  write_sfm(0,shi);write_com(0xc0);aa[2]=shi;Set_DS1302(0x80,aa, 7);break;
           case 6:fen--;
                  if(fen==-1) fen=59;
                  write_sfm(3,fen);write_com(0xc3);aa[1]=fen;Set_DS1302(0x80,aa, 7);break;           
           case 7:miao--;
                  if(miao==-1) miao=59;
                  write_sfm(6,miao);write_com(0xc6);aa[0]=miao;Set_DS1302(0x80,aa, 7);break;
           default:break;
           }      
          }
         }
      }//s2num
          }        //1
            if(s1num==2)
                        {
                         if(s2==0)
               {delay(5);
             if(s2==0)
               {s2num++;
                         if(flag6==0)
                                lcall5();
            while(!s2);
         switch(s2num)
         {
                  case 1:  flag6=1;write_com(0x81);write_com(0x0f);break;
          case 2:  write_com(0x84);break;
          case 3:  flag2=1;write_com(0x87);break;
                  case 4:  write_com(0xc1);break;
                  case 5:  write_com(0xc4);break;
                  case 6:  flag4=1;write_com(0xc7);break;
                  case 7:  write_com(0x8a);break;
                  case 8:  flag13=1;write_com(0x8d);break;
                  case 9:  write_com(0xca);break;
                  case 10: flag14=1;write_com(0xcd);break;
          case 11: flag6=0;s2num=0;write_com(0x0c);break;
          default: break;
                    }
                  }
                }                  
                                   
        if(s2num!=0)
      { if(s3==0)
          {delay(5);
        if(s3==0)
          {while(!s3);
           switch(s2num)
          {
                   case 1:ee[0]+=1;
                  if(ee[0]==24) ee[0]=0;
                  write_nyr(0,ee[0]);write_com(0x80); break;
           case 2:ee[1]+=1;
                  if(ee[1]==60) ee[1]=0;
                  write_nyr(3,ee[1]);write_com(0x83); break;
           case 3:ee[2]+=1;
                  if(ee[2]==60) ee[2]=0;
                  write_nyr(6,ee[2]);write_com(0x86); break;
                   case 4:ff[0]+=1;        
                          if(ff[0]==24) ff[0]=0;
                  write_sfm(0,ff[0]);write_com(0xc0); break;
           case 5:ff[1]+=1;
                  if(ff[1]==60) ff[1]=0;
                  write_sfm(3,ff[1]);write_com(0xc3); break;
           case 6:ff[2]+=1;
                  if(ff[2]==60) ff[2]=0;
                  write_sfm(6,ff[2]);write_com(0xc6); break;
                   case 7:kk[0]+=1;
                  if(kk[0]==24) kk[0]=0;
                  write_nyr(0x09,kk[0]);write_com(0x89); break;
                   case 8:kk[1]+=1;
                  if(kk[1]==60) kk[1]=0;
                  write_nyr(0x0c,kk[1]);write_com(0x8c); break;
                   case 9:hh[0]+=1;
                  if(hh[0]==24) hh[0]=0;
                  write_sfm(0x09,hh[0]);write_com(0xc9); break;
                   case 10:hh[1]+=1;
                  if(hh[1]==60) hh[1]=0;
                  write_sfm(0x0c,hh[1]);write_com(0xcc); break;               
                          default:break;
                    }
                   }
                  }
                     if(s4==0)
                         {delay(5);
                          if(s4==0)
                        { while(!s4);
         switch(s2num)
          {case 1:ee[0]-=1;
                  if(ee[0]==-1) ee[0]=23;
                  write_nyr(0,ee[0]);write_com(0x80); break;
           case 2:ee[1]-=1;
                  if(ee[1]==-1) ee[1]=59;
                  write_nyr(3,ee[1]);write_com(0x83); break;
           case 3:ee[2]-=1;
                  if(ee[2]==-1) ee[2]=59;
                  write_nyr(6,ee[2]);write_com(0x86); break;
                   case 4:ff[0]-=1;        
                          if(ff[0]==-1) ff[0]=23;
                  write_sfm(0,ff[0]);write_com(0xc0); break;
           case 5:ff[1]-=1;
                  if(ff[1]==-1) ff[1]=59;
                  write_sfm(3,ff[1]);write_com(0xc3); break;
           case 6:ff[2]-=1;
                  if(ff[2]==-1) ff[2]=59;
                  write_sfm(6,ff[2]);write_com(0xc6); break;
                   case 7:kk[0]-=1;
                  if(kk[0]==-1) kk[0]=23;
                  write_nyr(0x09,kk[0]);write_com(0x89); break;
                   case 8:kk[1]-=1;
                  if(kk[1]==-1) kk[1]=59;
                  write_nyr(0x0c,kk[1]);write_com(0x8c); break;
                   case 9:hh[0]-=1;
                  if(hh[0]==-1) hh[0]=23;
                  write_sfm(0x09,hh[0]);write_com(0xc9); break;
                   case 10:hh[1]-=1;
                  if(hh[1]==-1) hh[1]=59;
                  write_sfm(0x0c,hh[1]);write_com(0xcc); break;        
                          default:break;                  
                   }
                   }
                   }

                } //s2num
     }//s1num  
        if(s1num==3)
                        {
                         if(s2==0)
               {delay(5);
             if(s2==0)
               {s2num++;
                         if(flag5==0)
                                lcall3();
            while(!s2);
         switch(s2num)
         {
                  case 1:  flag5=1;write_com(0xc0);write_com(0x0f);break;
          case 2:  write_com(0xc3);break;
          case 3:  write_com(0xc6);break;
                  case 4:  write_com(0xc9);break;
          case 5:  write_com(0xcc);break;
                  case 6:  write_com(0xcf);break;
          case 7:  s2num=0;flag5=0;write_com(0x0c);break;
          default: break;
                    }
                  }
                }
                                
        if(s2num!=0)
      { if(s3==0)
          {delay(5);
        if(s3==0)
          {while(!s3);
           switch(s2num)
          {
                   case 1:gg[0]=fen+10;flag7=1;P0_1=0; P0_2=0;write_com(0x0c);  break;     

           case 2:gg[1]=fen+20;flag8=1;P0_1=0; P0_2=0;write_com(0x0c);  break;

           case 3:gg[2]=fen+30;flag9=1;P0_1=0; P0_2=0;write_com(0x0c);  break;

                   case 4:gg[3]=fen+40;flag10=1;P0_1=0; P0_2=0;write_com(0x0c); break;     

           case 5:gg[4]=fen+50;flag11=1;P0_1=0; P0_2=0;write_com(0x0c); break;

           case 6:gg[5]=fen+60;flag11=1;P0_1=0; P0_2=0;write_com(0x0c); break;                                          
                   default:break;
                    }
                  }
            }                                                   
          }
    }                        
  }        
}


void dingshi(void)                          //????
{
                if((shi==ee[0])&&(fen==ee[1])&&(miao==ee[2])&&(flag2==1))
         {    flag2=0;P0_1=0;beep=0;delay(1000);beep=1; P0_2=0;
                 }
            if((shi==ff[0])&&(fen==ff[1])&&(miao==ff[2])&&(flag4==1))
         {    flag4=0;P0_1=1; beep=0;delay(1000);beep=1;P0_2=1;
                 }
                if((shi==kk[0])&&(fen==kk[1])&&(flag2==0)&&(flag13==1))
         {    flag13=0;P0_1=0;beep=0;delay(1000);beep=1;P0_2=0;
                 }
            if((shi==hh[0])&&(fen==hh[1])&&(flag4==0)&&(flag14==1))
         {    flag14=0;P0_1=1; beep=0;delay(1000);beep=1;P0_2=1;
                 }

            if((fen==gg[0])&&(flag7==1))
        {    flag7=0;P0_1=1;P0_2=1;beep=0;delay(1000);beep=1;
                 }
                if((fen==gg[1])&&(flag8==1))
        {    flag8=0;P0_1=1;P0_2=1;beep=0;delay(1000);beep=1;
             }
                if((fen==gg[2])&&(flag9==1))
        {    flag9=0;P0_1=1;P0_2=1;beep=0;delay(1000);beep=1;
            }
                if((fen==gg[3])&&(flag10==1))
        {    flag10=0;P0_1=1;P0_2=1;beep=0;delay(1000);beep=1;
                 }
                if((fen==gg[4])&&(flag11==1))
        {    flag11=0;P0_1=1;P0_2=1;beep=0;delay(1000);beep=1;
             }
                if((fen==gg[5])&&(flag12==1))
        {    flag12=0;P0_1=1;P0_2=1;beep=0;delay(1000);beep=1;
             }   
}        
  void display(void)                   //????
   {   
    Read_nowtime(0x81,dd,7);
    miao=dd[0]-(dd[0]>>4)*6;
    fen=dd[1]-(dd[1]>>4)*6;
    shi=dd[2]-(dd[2]>>4)*6;
    ri=dd[3]-(dd[3]>>4)*6;
    yue=dd[4]-(dd[4]>>4)*6;
    zhou=dd[5]-(dd[5]>>4)*6;
    nian=dd[6]-(dd[6]>>4)*6;
    write_sfm(6,miao);
    write_sfm(3,fen);
    write_sfm(0,shi);
    write_nyr(2,nian);
    write_nyr(5,yue);
    write_nyr(8,ri);
    write_zhou();
}
//??????
void delay10us(unsigned int t)
{
        while(t--);
}
/********************************************************/
void Time0(void) interrupt 1
{
        count_T++;
        if(inf_status==0 && count_T<160)
        {
                EX1=0;
        }
        else if((inf_status==1||inf_status==2)&&count_T<12)
        {
                EX1=0;
        }
        else
        {
                EX1=1;
        }
        if(count_T>500)
        {
                inf_status=0;
                count_T=600;
        }
}
/**************************************************/
void int_1(void) interrupt 2
{
        beep=0;
        TR0=1;
        if(count_T>15&&count_T<250)
        {
                buf_CT=count_T;
                count_T=0;
        }
        delay10us(10);
        if(inf==0)
        {
                count_T=2;
        }
        if(buf_CT>15&&buf_CT<250)
        {
                if(inf_status==0)
                {
                        if(buf_CT>210&&buf_CT<250)
                        {
                                inf_status=1;
                                buf_key_code=0;
                                key_bit_count=0;
                                buf_CT=0;
                        }
                }
                else if(inf_status==1)
                {
                        if((buf_CT>15&&buf_CT<25)||(buf_CT>32&&buf_CT<45))
                        {
                                common_code_count++;
                                if(common_code_count>=26)
                                {
                                        inf_status=2;
                                        common_code_count=0;
                                        key_bit_count=0;
                                        buf_key_code=0;
                                }
                        }
                }
                else if(inf_status==2)
                {
                        if(buf_CT>15&&buf_CT<25)
                        {
                                buf_key_code>>=1;
                                key_bit_count++;
                        }
                        else if(buf_CT>32&&buf_CT<45)
                        {
                                buf_key_code>>=1;
                                buf_key_code|=0x80;
                                key_bit_count++;
                        }
                        if(key_bit_count>=8)
                        {
                                //led1=!led1;
                                inf_status=0;
                                key_bit_count=0;
                                key=buf_key_code;
                                buf_key_code=0;
                                TR0=0;
                                count_T=600;
                        }
                }
                buf_CT=0;
        }
        beep=1;
        EX1=1;
}
void Red_Init(void)         //?????
{
        
        ET0=1;
        TMOD=0x02;
        TH0=0xCA;
        TL0=0xCA;
        IT1=1;
        EX1=1;
        TR0=0;
        EA=1;        
}        
//
void Key_Handle(void)         //??????
{
           
                switch(key)                                       
                {  
                case 0x12:  P0_1=~P0_1;P0_2=~P0_2; key=255;break;
            case 0x01:  P0_1=0;P0_2=0;flag7=1;gg[0]=fen+10;key=255;break;
                case 0x02:  P0_1=0;P0_2=0;flag8=1;gg[1]=fen+20;key=255;break;
                case 0x03:  P0_1=0;P0_2=0;flag9=1;gg[2]=fen+30;key=255;break;
                case 0x04:  P0_1=0;P0_2=0;flag10=1;gg[3]=fen+40;key=255;break;
                case 0x05:  P0_1=0;P0_2=0;flag11=1;gg[4]=fen+50;key=255;break;
                case 0x06:  P0_1=0;P0_2=0;flag12=1;gg[5]=fen+60;key=255;break;  
                  default:  key=255;break;
               
                  }key=255;
                        }
void  sysinit() //?????
{         
    init();
        Red_Init();
    init_DS1302();

         flag2=0;
         flag4=0;
         flag7=0;
         flag8=0;
         flag9=0;
         flag10=0;
         flag11=0;
         flag12=0;
         flag13=0;
         flag14=0;            
                }               
void main()              //???
{
            sysinit();      //?????
     while(1)
     {  EA=0;         
       keyscan();   //????
    if(flag==0)
     {   
       display();    //????
      }
     dingshi();      //????
         EA=1;        
         Key_Handle();  //????
         delay(50);                          
                  }
  }

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

使用道具 举报

6#
ID:282850 发表于 2020-4-30 11:13 | 只看该作者
黄youhui 发表于 2020-4-30 08:51
你的复位电路有点罕见啊

看的好仔细,真是很罕见的复位电路
回复

使用道具 举报

5#
ID:592807 发表于 2020-4-30 08:51 | 只看该作者
你的复位电路有点罕见啊
回复

使用道具 举报

地板
ID:452950 发表于 2020-4-29 20:41 | 只看该作者
可以详细描述一下预期功能是什么,实际现象是什么,比如无法运行是不能达到预期还是完全没有显示,之后才能分析是哪个环节出了问题,这个就是调试,直接一大段不熟悉的代码不容易看出问题所在。
回复

使用道具 举报

板凳
ID:267719 发表于 2020-4-29 17:57 | 只看该作者
sbit lcdrs=P3^7;
sbit lcdrw=P3^6;
sbit lcden=P3^5;
硬件管脚和软件定义不一致啊。。。
回复

使用道具 举报

沙发
ID:584814 发表于 2020-4-29 15:25 | 只看该作者
只能看懂一半居然可以写出全部
回复

使用道具 举报

楼主
ID:282850 发表于 2020-4-29 15:15 | 只看该作者
问题出在哪里,你自己没有分析。哪些部分没问题,哪些地方估计有问题你也没有分析。
“程序我只能看懂一半怎么” ,答:你要把全部程序看懂并要理解。任何一行、一个操作、运算符不懂,必须要搞懂,这是编程的基本原则。你自己都不清楚,MCU怎么会清楚!如果不愿看,不要紧。不要编程就行,让别人来做,或你买现成模块。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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