标题: 51单片机和数码管和矩阵按键实现数字钟 [打印本页]

作者: yuki·kiko    时间: 2022-10-25 00:00
标题: 51单片机和数码管和矩阵按键实现数字钟
     本人想实现利用矩阵按键直接输入数字0~9来修改数码管数字钟的时分秒。

     下面这个代码可以在51单片机上实现数字钟显示时分秒,然后我按下K4键时可以暂停时钟,然后按下K1是可以切换要修改的数据位置,修改完之后再按下K4时钟继续流动。但是现在我按下K4后修改完的数据不会保存,时钟会继续之前的状态流动,要怎么样保存修改后的时钟呢?


单片机源程序如下:
  1. #include<reg52.h>

  2. #define DataPort P0
  3. #define KeyPort P3
  4. #define key P1
  5. #define u8 unsigned char
  6. #define u16 unsigned int

  7. sbit LSA=P2^2;
  8. sbit LSB=P2^3;
  9. sbit LSC=P2^4;

  10. sbit k1=P3^1;
  11. sbit k2=P3^0;
  12. sbit k3=P3^2;
  13. sbit k4=P3^3;

  14. #define KEY1 1
  15. #define KEY2 2
  16. #define KEY3 3
  17. #define KEY4 4

  18. unsigned char hour,minute,second;

  19. bit UpdateTimeFlag;

  20. unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  21. unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

  22. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  23.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  24. u8 DisplayData[8];
  25. char datnum1=0,datnum2=0,datnum3=0,datnum4=0,datnum5=0,datnum6=0,datnum7=0,datnum8=0;
  26. u8 setflag=0;
  27. u8 wei_change=0;
  28. unsigned char TempData[8];
  29.                                        
  30.                                        
  31. void DigDisplay();
  32. void Init_Timer0(void);
  33. void Key16_16(void);


  34. void delay(u16 i)
  35. {
  36.         while(i--);        
  37. }   

  38. void DigDisplay()
  39. {
  40.         u8 i=0;
  41.         for(i=0;i<8;i++)
  42.         {
  43.                 switch(i)
  44.                 {
  45.                         case(7):
  46.                                 LSA=0;LSB=0;LSC=0; break;
  47.                         case(6):
  48.                                 LSA=1;LSB=0;LSC=0; break;
  49.                         case(5):
  50.                                 LSA=0;LSB=1;LSC=0; break;
  51.                         case(4):
  52.                                 LSA=1;LSB=1;LSC=0; break;
  53.                         case(3):
  54.                                 LSA=0;LSB=0;LSC=1; break;
  55.                         case(2):
  56.                                 LSA=1;LSB=0;LSC=1; break;
  57.                         case(1):
  58.                                 LSA=0;LSB=1;LSC=1; break;
  59.                         case(0):
  60.                                 LSA=1;LSB=1;LSC=1; break;        
  61.                 }
  62.                 P0=TempData[i];
  63.                 delay(100);
  64.                 P0=0x00;

  65.         }
  66. }



  67. u8 KeyScan(u8 mode)
  68. {
  69.         static u8 keyen=1;
  70.         if(mode==1)
  71.         {
  72.                 keyen=1;
  73.         }
  74.         if(keyen==1&&(k1==0||k2==0||k3==0||k4==0))
  75.         {
  76.                 delay(1000);
  77.                 keyen=0;
  78.                 if(k1==0)return KEY1;
  79.                 else if(k2==0)return KEY2;
  80.                 else if(k3==0)return KEY3;
  81.                 else if(k4==0)return KEY4;                                
  82.         }
  83.         else if(k1==1&&k2==1&&k3==1&&k4==1)
  84.         {
  85.                 keyen=1;
  86.         }
  87.         return 0;        
  88. }


  89. int key16()         
  90. {
  91.         int key_value=0;            
  92.         key=0xf7;                  
  93.         if(key!=0xf7)               
  94.          {        
  95.           delay(10);              
  96.           switch(key)               
  97.              {
  98.                   case 0x77: key_value=1;break;
  99.                   case 0xb7: key_value=5;break;
  100.                   case 0xd7: key_value=9;break;
  101.                   case 0xe7: key_value=13;break;
  102.                    }
  103.          }
  104.          
  105.          while(key!=0xf7);      
  106.          key=0xfb;
  107.          if(key!=0xfb)
  108.          {        
  109.           delay(10);
  110.           switch(key)
  111.              {
  112.                   case 0x7b: key_value=2;break;
  113.                   case 0xbb: key_value=6;break;
  114.                   case 0xdb: key_value=10;break;
  115.                   case 0xeb: key_value=14;break;
  116.                    }

  117.          }
  118.          
  119.           while(key!=0xfb);
  120.            key=0xfd;         
  121.           if(key!=0xfd)
  122.          {        
  123.           delay(10);
  124.           switch(key)
  125.              {
  126.                   case 0x7d: key_value=3;break;
  127.                   case 0xbd: key_value=7;break;
  128.                   case 0xdd: key_value=11;break;
  129.                   case 0xed: key_value=15;break;
  130.                   }

  131.          }
  132.          
  133.           while(key!=0xfd);
  134.            key=0xfe;        
  135.           if(key!=0xfe)
  136.          {        
  137.           delay(10);
  138.           switch(key)
  139.              {
  140.                   case 0x7e: key_value=4;break;
  141.                   case 0xbe: key_value=8;break;
  142.                   case 0xde: key_value=12;break;
  143.                   case 0xee: key_value=16;break;
  144.                    }

  145.          }
  146.           while(key!=0xfe);
  147.          
  148.           return key_value;
  149. }

  150. void Key16_16(void)
  151. {
  152.           unsigned char num;
  153.           num=key16();
  154.                 switch(num)
  155.                 {
  156.                         case 1: TempData[wei_change]=0x3f;  break;
  157.                           case 2: TempData[wei_change]=0x06;  break;
  158.                         case 3: TempData[wei_change]=0x5b;  break;
  159.                         case 4: TempData[wei_change]=0x4f;  break;
  160.                         case 5: TempData[wei_change]=0x66;  break;
  161.                         case 6: TempData[wei_change]=0x6d;  break;
  162.                         case 7: TempData[wei_change]=0x7d;  break;
  163.                         case 8: TempData[wei_change]=0x07;  break;
  164.                         case 9: TempData[wei_change]=0x7f;  break;
  165.                         case 10: TempData[wei_change]=0x6f;  break;
  166.                          default:break;
  167.                 }
  168. }                                

  169. void datapros()
  170. {
  171.         u8 key,num;
  172.         key=KeyScan(0);
  173.         num=key16();
  174.         if(key==KEY4)        
  175.         {
  176.                 setflag++;
  177.                 TR0=0;         
  178.                 if(setflag==2)
  179.                 {
  180.                         TR0=1;        
  181.                         setflag=0;        
  182.                 }
  183.         }

  184.         if(setflag==0)
  185.         {
  186.                 TempData[8]=DisplayData[0];
  187.                 DisplayData[1]=TempData[7];
  188.                 DisplayData[2]=TempData[6];
  189.                 DisplayData[3]=TempData[5];
  190.                 DisplayData[4]=TempData[4];
  191.                 DisplayData[5]=TempData[3];
  192.                 DisplayData[6]=TempData[2];
  193.                 DisplayData[7]=TempData[1];
  194.         }
  195.         else         
  196.         {
  197.                 if(key==KEY1)        
  198.                 {
  199.                 wei_change++;
  200.                 if(wei_change>6)wei_change=0;
  201.                 DisplayData[0]=TempData[8];
  202.                 DisplayData[1]=TempData[7];
  203.                 DisplayData[2]=TempData[6];
  204.                 DisplayData[3]=TempData[5];
  205.                 DisplayData[4]=TempData[4];
  206.                 DisplayData[5]=TempData[3];
  207.                 DisplayData[6]=TempData[2];
  208.                 DisplayData[7]=TempData[1];
  209.                 }

  210.                 else if(key==KEY2)
  211.                 {
  212.                         switch(wei_change)
  213.                         {
  214.                                 case 0:  TempData[0]=key16_16();
  215.                                                 break;
  216.                                 case 1:  TempData[1]=key16_16();
  217.                                                 break;
  218.                                 case 2:  TempData[2]=key16_16();
  219.                                                 break;
  220.                                 case 3:  TempData[3]=key16_16();
  221.                                                 break;
  222.                                 case 4:  TempData[4]=key16_16();
  223.                                                 break;
  224.                                 case 5:  TempData[5]=key16_16();
  225.                                                 break;
  226.                                 case 6:  TempData[6]=key16_16();
  227.                                                 break;
  228.                                 case 7:  TempData[7]=key16_16();
  229.                                                 break;
  230.                                 
  231.                         }        
  232.                 }
  233.                
  234.                         
  235.         }
  236. }

  237. void Init_Timer0(void)
  238. {
  239. TMOD |= 0x01;         
  240. EA=1;         
  241. ET0=1;         
  242. TR0=1;

  243. PT0=0;
  244. }



  245. void Timer0_isr(void) interrupt 1
  246. {
  247. static unsigned int num,i;
  248. TH0=(65536-2000)/256;
  249. TL0=(65536-2000)%256;
  250.   i++;
  251. if(i==10)                  //20ms
  252.   {
  253.         i=0;
  254.         UpdateTimeFlag=1;
  255.         }
  256. num++;
  257. if(num==500)      
  258.    {
  259.     num=0;
  260.         second++;
  261.         if(second==60)         
  262.          {
  263.           second=0;         
  264.           minute++;
  265.           if(minute==60)
  266.             {
  267.                  minute=0;
  268.                  hour++;
  269.                  if(hour==24)        
  270.                    hour=0;
  271.                 }
  272.          }

  273.   }
  274.                                                           TempData[0]=dofly_DuanMa[hour/10];        
  275.                                                          TempData[1]=dofly_DuanMa[hour%10];
  276.                                                          TempData[2]=0x40;                                                            
  277.                                                          TempData[3]=dofly_DuanMa[minute/10];
  278.                                                          TempData[4]=dofly_DuanMa[minute%10];
  279.                                                          TempData[5]=0x40;
  280.                                                          TempData[6]=dofly_DuanMa[second/10];
  281.                                                          TempData[7]=dofly_DuanMa[second%10];        
  282. }



  283. void Timer1Init()
  284. {
  285.   TMOD|=0X10;
  286.         TH1=0XFC;        
  287.         TL1=0X18;        
  288.         ET1=1;
  289.         EA=1;
  290.         PT1=1;
  291.         TR1=1;        
  292. }


  293. void Timer1() interrupt 3
  294. {
  295.         static u8 i;
  296.         TH1=0XFC;
  297.         TL1=0X18;
  298.         i++;
  299.         if(i==50)          //500ms
  300.         {
  301.                 switch(wei_change)
  302.                 {
  303.                         case 0: DisplayData[7]=0x00;break;
  304.                         case 1: DisplayData[6]=0x00;break;
  305.                         case 2: DisplayData[4]=0x00;break;
  306.                         case 3: DisplayData[3]=0x00;break;
  307.                         case 4: DisplayData[1]=0x00;break;
  308.                         case 5: DisplayData[0]=0x00;break;
  309.                 }        
  310.         }
  311.         if(i==100)           //1s
  312.         {
  313.                 i=0;
  314.                 switch(wei_change)
  315.                 {
  316.                   case 0: DisplayData[7]=0x00;break;
  317.                         case 1: DisplayData[6]=0x00;break;
  318.                         case 2: DisplayData[4]=0x00;break;
  319.                         case 3: DisplayData[3]=0x00;break;
  320.                         case 4: DisplayData[1]=0x00;break;
  321.                         case 5: DisplayData[0]=0x00;break;
  322.                 }                        
  323.         }
  324. }



  325. void main (void)
  326. {
  327.         
  328. Init_Timer0();
  329. Timer1Init();
  330. while (1)      
  331.   {
  332.                                                         DigDisplay();
  333.                                                         key16_16();
  334.                                                         datapros();


  335.   }
  336. }
复制代码



作者: 啤酒瓶子老大    时间: 2022-10-25 08:20
沙发。沙发。具体我也不会。看用两个按键的时钟的程序是按一下就存储了。每更改一下都存储。不是调整好了再存储的。毕竟存储的速度是非常快的。按得再快,只有屏上有显示了,也就存储完了。
作者: 我未曾来过    时间: 2022-10-25 08:44
首先我想说,看你这个代码是真的难受,你是怎么做到强忍着写注释的冲动的?然后就是明明四个键就可以实现数字的换位,加减,为啥要弄键盘,弄就算了还要弄4*4矩阵键盘。好了我大概看了一下,你似乎读了矩阵键盘的值以后是直接修改的tempdata的值,实际上你程序里时间计数是用的hour,minute,second呢,我看了一下好像没有对这三个变量进行修改,不知道是不是我眼花了没找到
作者: man1234567    时间: 2022-10-25 08:44
退出设置时重新对这些赋值
DisplayData[?]=TempData[?]
作者: lkc8210    时间: 2022-10-25 09:36
沒更新hour/minute/second
作者: yuki·kiko    时间: 2022-10-25 12:07
我未曾来过 发表于 2022-10-25 08:44
首先我想说,看你这个代码是真的难受,你是怎么做到强忍着写注释的冲动的?然后就是明明四个键就可以实现数 ...

这是要求 我也不想  要求就是矩阵按键直接输入数字
作者: yzwzfyz    时间: 2022-10-26 10:21
不要着写程序:
先列出按键操作的逻辑关系:
建立一个表格,写下出当按键1、2、3……,按下去之后,相应需要做什么事。
画出流程图,并走通流程图。
此后:再按流程图写程序。
记住:走通流程图是关键!
作者: yuki·kiko    时间: 2022-10-27 00:12
#include<reg52.h>

#define DataPort P0
#define KeyPort P3
#define key P1
#define u8 unsigned char
#define u16 unsigned int

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;

#define KEY1 1
#define KEY2 2
#define KEY3 3
#define KEY4 4

unsigned char hour,minute,second;
unsigned char hour_L, hour_H, minute_L, minute_H, second_L, second_H;

bit UpdateTimeFlag;

unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char TempData[8];
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
u8 DisplayData[8];
char datnum1=0,datnum2=0,datnum3=0,datnum4=0,datnum5=0,datnum6=0,datnum7=0,datnum8=0;

u8 setflag=0;
u8 wei_change=0;

                                       
                                       
void DigDisplay();
void Init_Timer0(void);
void Key16_16(void);


void delay(u16 i)
{
        while(i--);        
}   

void DigDisplay()
{
        u8 i=0;
        for(i=0;i<8;i++)
        {
                switch(i)
                {
                        case(7):
                                LSA=0;LSB=0;LSC=0; break;
                        case(6):
                                LSA=1;LSB=0;LSC=0; break;
                        case(5):
                                LSA=0;LSB=1;LSC=0; break;
                        case(4):
                                LSA=1;LSB=1;LSC=0; break;
                        case(3):
                                LSA=0;LSB=0;LSC=1; break;
                        case(2):
                                LSA=1;LSB=0;LSC=1; break;
                        case(1):
                                LSA=0;LSB=1;LSC=1; break;
                        case(0):
                                LSA=1;LSB=1;LSC=1; break;        
                }
                P0=TempData[i];
                delay(100);
                P0=0x00;

        }
}



u8 KeyScan(u8 mode)
{
        static u8 keyen=1;
        if(mode==1)
        {
                keyen=1;
        }
        if(keyen==1&&(k1==0||k2==0||k3==0||k4==0))
        {
                delay(1000);
                keyen=0;
                if(k1==0)return KEY1;
                else if(k2==0)return KEY2;
                else if(k3==0)return KEY3;
                else if(k4==0)return KEY4;                                
        }
        else if(k1==1&&k2==1&&k3==1&&k4==1)
        {
                keyen=1;
        }
        return 0;        
}


int key16()         
{
        int key_value=0;            
        key=0xf7;                  
        if(key!=0xf7)               
         {        
          delay(10);              
          switch(key)               
             {
                  case 0x77: key_value=1;break;
                  case 0xb7: key_value=5;break;
                  case 0xd7: key_value=9;break;
                  case 0xe7: key_value=13;break;
                   }
         }
         
         while(key!=0xf7);      
         key=0xfb;
         if(key!=0xfb)
         {        
          delay(10);
          switch(key)
             {
                  case 0x7b: key_value=2;break;
                  case 0xbb: key_value=6;break;
                  case 0xdb: key_value=10;break;
                  case 0xeb: key_value=14;break;
                   }

         }
         
          while(key!=0xfb);
           key=0xfd;         
          if(key!=0xfd)
         {        
          delay(10);
          switch(key)
             {
                  case 0x7d: key_value=3;break;
                  case 0xbd: key_value=7;break;
                  case 0xdd: key_value=11;break;
                  case 0xed: key_value=15;break;
                  }

         }
         
          while(key!=0xfd);
           key=0xfe;        
          if(key!=0xfe)
         {        
          delay(10);
          switch(key)
             {
                  case 0x7e: key_value=4;break;
                  case 0xbe: key_value=8;break;
                  case 0xde: key_value=12;break;
                  case 0xee: key_value=16;break;
                   }

         }
          while(key!=0xfe);
         
          return key_value;
}

void Key16_16(void)
{
          unsigned char num;
          num=key16();
                switch(num)
                {
                        case 1: TempData[wei_change]=0x3f;  break;
                        case 2: TempData[wei_change]=0x06;  break;
                        case 3: TempData[wei_change]=0x5b;  break;
                        case 4: TempData[wei_change]=0x4f;  break;
                        case 5: TempData[wei_change]=0x66;  break;
                        case 6: TempData[wei_change]=0x6d;  break;
                        case 7: TempData[wei_change]=0x7d;  break;
                        case 8: TempData[wei_change]=0x07;  break;
                        case 9: TempData[wei_change]=0x7f;  break;
                        case 10: TempData[wei_change]=0x6f;  break;
                        default:break;
                }
}                                

void datapros()
{
        u8 key,num;
        key=KeyScan(0);
        num=key16();
        if(key==KEY4)        
        {
                setflag++;
                TR0=0;         
                if(setflag==2)
                {
                        TR0=1;        
                        setflag=0;        
                }
        }

        if(setflag==0)
        {
            TempData[0]=dofly_DuanMa[hour_H];        
            TempData[1]=dofly_DuanMa[hour_L];
            TempData[2]=0x40;                                                            
            TempData[3]=dofly_DuanMa[minute_H];
            TempData[4]=dofly_DuanMa[minute_L];
            TempData[5]=0x40;
            TempData[6]=dofly_DuanMa[second_H];
            TempData[7]=dofly_DuanMa[second_L];
        }
        else         
        {
           if(key==KEY1)        
           {
            wei_change++;
            if(wei_change>7)wei_change=0;
           }

                else if(key==KEY2)
                {
                        switch(wei_change)
                        {
                                case 0:  hour_H=key16_16();
                                                break;
                                case 1:  hour_L=key16_16();
                                                break;
                                case 2:  TempData[2]=key16_16();
                                                break;
                                case 3:  minute_H=key16_16();
                                                break;
                                case 4:  minute_L=key16_16();
                                                break;
                                case 5:  TempData[5]=key16_16();
                                                break;
                                case 6:  second_H=key16_16();
                                                break;
                                case 7:  second_L=key16_16();
                                                break;
                                
                        }        
                }
               
                        
        }
}                 
        


void Init_Timer0(void)
{
TMOD |= 0x01;         
EA=1;         
ET0=1;         
TR0=1;
PT0=0;
}



void Timer0_isr(void) interrupt 1
{
static unsigned int num,i;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
hour_H=hour/10;
hour_L=hour%10;
minute_H=minute/10;
minute_L=minute%10;
second_H=second/10;
second_L=second%10;
        i++;
if(i==10)              
  {
        i=0;
        UpdateTimeFlag=1;
        }
num++;
if(num==500)      
   {
    num=0;
        second++;
        if(second==60)         
         {
          second=0;         
          minute++;
          if(minute==60)
            {
                 minute=0;
                 hour++;
                 if(hour==24)        
                   hour=0;
                }
         }

  }
            TempData[0]=dofly_DuanMa[hour_H];        
            TempData[1]=dofly_DuanMa[hour_L];
            TempData[2]=0x40;                                                            
            TempData[3]=dofly_DuanMa[minute_H];
            TempData[4]=dofly_DuanMa[minute_L];
            TempData[5]=0x40;
            TempData[6]=dofly_DuanMa[second_H];
            TempData[7]=dofly_DuanMa[second_L];        
       
}



void Timer1Init()
{
  TMOD|=0X01;
        TH0=0Xd8;
        TL0=0Xf0;       
        ET0=1;
        EA=1;      
}


void Timer1() interrupt 3
{
        static u8 i;
              TH1=0Xd8;       
              TL1=0Xf0;
        i++;
        if(i==50)        
        {
                switch(wei_change)
                {
                        case 0: TempData[0]=0x00;break;
                        case 1: TempData[1]=0x00;break;
                        case 2: TempData[2]=0x00;break;
                        case 3: TempData[3]=0x00;break;
                        case 4: TempData[4]=0x00;break;
                        case 5: TempData[5]=0x00;break;
                        case 6: TempData[6]=0x00;break;
                        case 7: TempData[7]=0x00;break;
                }        
        }
        if(i==100)         
        {
                i=0;
                switch(wei_change)
                {
                        case 0: TempData[0]=dofly_DuanMa[hour_H];break;
                        case 1: TempData[1]=dofly_DuanMa[hour_L];break;
                        case 2: TempData[2]=0x40;break;
                        case 3: TempData[3]=dofly_DuanMa[minute_H];break;
                        case 4: TempData[4]=dofly_DuanMa[minute_L];break;
                        case 5: TempData[5]=0x40;break;
                        case 6: TempData[6]=dofly_DuanMa[second_H];break;
                        case 7: TempData[7]=dofly_DuanMa[second_L];break;
                }                        
        }
}



void main (void)
{
        
Init_Timer0();
Timer1Init();
while (1)      
  {   
           DigDisplay();
           key16_16();
           datapros();


  }
}

最后更新完hour/minute/second后返回还是不能保存状态   希望能再帮看一下
作者: 大漠落日    时间: 2022-10-27 09:13
我真服了,还有这么面目可憎的程序,没有一点条理,也没有注释,我看了半天,扫描显示正常,仿真时键盘也不太对,你是抄的人家程序吧,处理内循环有问题,编译报错                            case 0:  hour_H=key16_16();
                                                break;
                                case 1:  hour_L=key16_16();
                                                break;
                                case 2:  TempData[2]=key16_16();
                                                break;
                                case 3:  minute_H=key16_16();
                                                break;
                                case 4:  minute_L=key16_16();
                                                break;
                                case 5:  TempData[5]=key16_16();
                                                break;
                                case 6:  second_H=key16_16();
                                                break;
                                case 7:  second_L=key16_16();
这部分引用的key16_16();// 这里写key,定义时写的是Key,大小写不统一,并且,定义的没有返回值 ,这里写成有返回值 的调用形式,
作者: Y_G_G    时间: 2022-10-28 14:32
虽然很多人都会C
但阅读别人的代码,是要一定时间去适应的
你一上来就duang一堆代码上来...........
作者: 名字不是重点    时间: 2022-10-29 16:22
别的不说,这段代码,我会去建表查表:
  switch(num)
                {
                        case 1: TempData[wei_change]=0x3f;  break;
                        case 2: TempData[wei_change]=0x06;  break;
                        case 3: TempData[wei_change]=0x5b;  break;
                        case 4: TempData[wei_change]=0x4f;  break;
                        case 5: TempData[wei_change]=0x66;  break;
                        case 6: TempData[wei_change]=0x6d;  break;
                        case 7: TempData[wei_change]=0x7d;  break;
                        case 8: TempData[wei_change]=0x07;  break;
                        case 9: TempData[wei_change]=0x7f;  break;
                        case 10: TempData[wei_change]=0x6f;  break;
                        default:break;
                }
这段会再优化一下:
                switch(wei_change)
                {
                        case 0: TempData[0]=0x00;break;
                        case 1: TempData[1]=0x00;break;
                        case 2: TempData[2]=0x00;break;
                        case 3: TempData[3]=0x00;break;
                        case 4: TempData[4]=0x00;break;
                        case 5: TempData[5]=0x00;break;
                        case 6: TempData[6]=0x00;break;
                        case 7: TempData[7]=0x00;break;
                }     ==>TempData[wei_change]=0x00;

作者: zilihangjian    时间: 2022-11-1 13:52
修改后要对 hour/minute/second赋值的
作者: 郑汉松    时间: 2022-11-1 18:03
需要对时间参数赋值




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1