久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2595|回復: 12
打印 上一主題 下一主題
收起左側

51單片機和數碼管和矩陣按鍵實現數字鐘

  [復制鏈接]
回帖獎勵 5 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:900875 發表于 2022-10-25 00:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
     本人想實現利用矩陣按鍵直接輸入數字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. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:230742 發表于 2022-10-25 08:20 | 只看該作者
沙發。沙發。具體我也不會。看用兩個按鍵的時鐘的程序是按一下就存儲了。每更改一下都存儲。不是調整好了再存儲的。畢竟存儲的速度是非常快的。按得再快,只有屏上有顯示了,也就存儲完了。
回復

使用道具 舉報

板凳
ID:729982 發表于 2022-10-25 08:44 | 只看該作者
首先我想說,看你這個代碼是真的難受,你是怎么做到強忍著寫注釋的沖動的?然后就是明明四個鍵就可以實現數字的換位,加減,為啥要弄鍵盤,弄就算了還要弄4*4矩陣鍵盤。好了我大概看了一下,你似乎讀了矩陣鍵盤的值以后是直接修改的tempdata的值,實際上你程序里時間計數是用的hour,minute,second呢,我看了一下好像沒有對這三個變量進行修改,不知道是不是我眼花了沒找到
回復

使用道具 舉報

地板
ID:584814 發表于 2022-10-25 08:44 | 只看該作者
退出設置時重新對這些賦值
DisplayData[?]=TempData[?]
回復

使用道具 舉報

5#
ID:161164 發表于 2022-10-25 09:36 | 只看該作者
沒更新hour/minute/second
回復

使用道具 舉報

6#
ID:900875 發表于 2022-10-25 12:07 | 只看該作者
我未曾來過 發表于 2022-10-25 08:44
首先我想說,看你這個代碼是真的難受,你是怎么做到強忍著寫注釋的沖動的?然后就是明明四個鍵就可以實現數 ...

這是要求 我也不想  要求就是矩陣按鍵直接輸入數字
回復

使用道具 舉報

7#
ID:123289 發表于 2022-10-26 10:21 | 只看該作者
不要著寫程序:
先列出按鍵操作的邏輯關系:
建立一個表格,寫下出當按鍵1、2、3……,按下去之后,相應需要做什么事。
畫出流程圖,并走通流程圖。
此后:再按流程圖寫程序。
記住:走通流程圖是關鍵!
回復

使用道具 舉報

8#
ID:900875 發表于 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后返回還是不能保存狀態   希望能再幫看一下
回復

使用道具 舉報

9#
ID:195496 發表于 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,大小寫不統一,并且,定義的沒有返回值 ,這里寫成有返回值 的調用形式,
回復

使用道具 舉報

10#
ID:401564 發表于 2022-10-28 14:32 | 只看該作者
雖然很多人都會C
但閱讀別人的代碼,是要一定時間去適應的
你一上來就duang一堆代碼上來...........
回復

使用道具 舉報

11#
ID:824490 發表于 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;
回復

使用道具 舉報

12#
ID:799053 發表于 2022-11-1 13:52 | 只看該作者
修改后要對 hour/minute/second賦值的
回復

使用道具 舉報

13#
ID:514901 發表于 2022-11-1 18:03 | 只看該作者
需要對時間參數賦值
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人在线免费 | 婷婷福利 | 午夜网站视频 | 久久精品99 | 九九热最新地址 | 欧美黄色一区 | 精品一区二区三区日本 | 精品国产一级 | 97综合在线 | 亚洲一区 中文字幕 | 在线免费毛片 | 亚洲色图综合 | 91麻豆精品国产91久久久久久 | 欧美13videosex性极品 | 日韩精品无码一区二区三区 | 欧美激情精品久久久久久免费 | av黄色片在线观看 | 亚洲精品久久久久久久久久久 | 天天综合网7799精品 | 成人a免费 | 精品亚洲一区二区三区四区五区 | 自拍偷拍精品 | 亚洲精品二三区 | www.夜夜骑 | 中文字幕国产精品视频 | 99久久免费观看 | 亚洲第一区久久 | 久久视频精品 | 日韩免费视频一区二区 | 日韩中文字幕网 | 日韩欧美二区 | 九九爱这里只有精品 | 欧美性视频在线播放 | 怡红院免费的全部视频 | 情侣酒店偷拍一区二区在线播放 | 欧美极品在线播放 | 亚洲精品久久区二区三区蜜桃臀 | h视频免费观看 | 欧美日韩18 | 国产良家自拍 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 |