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

標題: 我寫的這個單片機程序,為什么數碼管顯示一樣的,還是亂碼 顯示函數怎么寫? [打印本頁]

作者: 江西奉新    時間: 2019-7-9 23:44
標題: 我寫的這個單片機程序,為什么數碼管顯示一樣的,還是亂碼 顯示函數怎么寫?
這張是顯示的圖紙!
  

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit led1=P3^3;
  6. sbit led=P1^5;
  7. sbit led2=P3^6;
  8. sbit fan=P1^6;
  9. sbit ptc=P3^4;
  10. sbit we1=P2^6;
  11. sbit we2=P2^7;
  12. sbit we3=P2^1;
  13. sbit we4=P2^0;
  14. sbit we5=P2^2;
  15. sbit fm=P2^5;
  16. sbit sw1=P1^0;
  17. sbit sw2=P1^4;
  18. sbit sw3=P3^5;
  19. sbit sw4=P3^7;
  20. uchar code duma[]={0x3f,0x06,0x5b,0x4f,
  21.                                    0x66,0x6d,0x7d,0x07,
  22.                                    0x7f,0x6f,0x77,0x7c,
  23.                                    0x39,0x5e,0x79,0x71
  24.                                    };
  25.                               
  26.                                  
  27. uchar  counter,   time,time_counter, h;                              
  28.                               
  29.                               
  30.                               
  31. uchar i ;

  32. void delay(uint z);
  33. void delay(uint z)
  34. {
  35.   while (z--);

  36. }
  37. void display(uchar mshi,mge,sge,sshi,hge,hshi )
  38. {      
  39.   mge=time_counter%10;
  40.   mshi=time_counter/10;
  41.   sge=time/10;
  42.   sshi=time%10;
  43.   hge=h/10;
  44.   hshi=h%10;

  45.    P0=0XFF;
  46.    we2=0;
  47.   P0=duma[mshi];
  48.   delay(100);


  49.    P0=0XFF;
  50.    we1=0;
  51.    P0=duma[mge];
  52.   delay(100);

  53.     P0=0XFF;
  54.            we4=0;
  55.   P0=duma[sshi];
  56.   delay(100);

  57.    P0=0XFF;
  58.    we3=0;
  59.   P0=duma[sge];
  60.   delay(100);

  61. /*  P0=0XFF;
  62. wea=0;
  63. web=0;
  64. wec=1;
  65.   P0=duma[hge];
  66.   delay(100);

  67.    P0=0XFF;
  68. wea=1;
  69. web=0;
  70. wec=1;
  71.   P0=duma[hshi];
  72.   delay(100);*/
  73. }

  74. void keypros()
  75. {
  76.         if(sw1==0)
  77.         {
  78.            delay(10);
  79.            if(sw1==0&&time!=60)
  80.            {
  81.                    time+=1;
  82.                            
  83.                   while(!sw1);
  84.            }
  85.         }      
  86.          if(sw2==0)
  87.          {
  88.           delay(10);
  89.           if(sw2==0&&time!=0)
  90.           {
  91.                   time-=1;
  92.                  
  93.                    while(!sw2);
  94.           }
  95.          }
  96.          if(sw3==0)
  97.          {
  98.            delay(10);
  99.            if(sw3==0)
  100.            {
  101.                      TR1=0;
  102.                   led=1;
  103.                   time=0;
  104.                   time_counter=0;
  105.                   
  106.                   
  107.                   fan=1;
  108.                   ptc=1;
  109.                 while(!sw3);
  110.                
  111.            }
  112.          
  113.          
  114.          
  115.          }
  116.           if(sw4==0)
  117.           {
  118.            delay(10);
  119.          
  120.            if(sw4==0)
  121.            {
  122.                    TR1=~TR1;
  123.                 led=~led;
  124.                  
  125.                  
  126.                 ptc=~ptc;
  127.                 fan=~fan;
  128.                 while(!sw4);
  129.            }
  130.          
  131.           }
  132. }

  133. void init()
  134. {
  135.   TMOD=0x10;
  136.   TH1=0x4b;
  137.   TL1=0x00;
  138.   TR1=0;



  139. }


  140. void main()
  141. {      

  142.             
  143.                          init();
  144.                         led2=0;
  145.                         
  146.     while(1)
  147.         {      
  148.         keypros();
  149.                  
  150.    if(TF1==1)
  151.    { TF1=0;
  152.             TH1=0x4b;
  153.      TL1=0x00;
  154.             counter++;


  155.    }
  156.          if(counter==20)
  157.         {
  158.          counter=0;
  159.          time_counter++;
  160.           led1=~led1;
  161.         }
  162.         if(time_counter==60)
  163.           {
  164.                 time--;
  165.                  time_counter=0;
  166.                
  167.         }         
  168.         if(time==0)
  169.            {   
  170.            TR1=0;
  171.                 led=1;
  172.                    led1=1;
  173.                 ptc=1;
  174.                 fan=1;      
  175.                time=60;
  176.                   
  177.            }

  178.                   display();
  179.      }               
  180.          
  181.          
  182. }   
復制代碼




作者: 江西奉新    時間: 2019-7-10 15:58
顯示亂碼我知道了,是數碼管是共陽極的,我用的共陰極的表,才導致顯示亂碼,但這個顯示函數怎么寫,進位顯示數碼管,
作者: 素還真.____    時間: 2019-7-10 23:41
標題: RE: 我寫的這個單片機程序,為什么數碼管顯示一樣的,還是亂碼 顯示函數怎么寫?
你這個太亂了,一個注澤都沒,wea、web、wec也不知道是什么



你顯示完一個數碼管,要把位清0,不然一輪下來所有位都在顯示,會亂碼。
進位不知道你指的什么,counter,   time,time_counter, h; 看不出來你這幾個變量的具體作用








作者: hantu    時間: 2019-7-11 10:11
多只數碼管的顯示,一是要動態掃描,二是要消影。
作者: 江西奉新    時間: 2019-7-12 14:45
謝謝,知道了,謝謝
作者: 江西奉新    時間: 2019-7-12 14:46
hantu 發表于 2019-7-11 10:11
多只數碼管的顯示,一是要動態掃描,二是要消影。

謝謝,上面的顯示函數寫成了靜態顯示了,改了動態就可以了,
作者: 江西奉新    時間: 2019-7-12 14:47
素還真.____ 發表于 2019-7-10 23:41
你這個太亂了,一個注澤都沒,wea、web、wec也不知道是什么
  •    P0=0XFF;
  • wea=1;

  • WE,就是位選信號。
    作者: 江西奉新    時間: 2019-7-12 14:54
      #include<reg52.h>
    #include<intrins.h>
    #define uchar unsigned char
    #define uint unsigned int
    sbit led1=P3^3;
    sbit led=P1^5;
    sbit led2=P3^6;
    sbit fan=P1^6;
    sbit ptc=P3^4;
    sbit we1=P2^6;
    sbit we2=P2^7;
    sbit we3=P2^1;
    sbit we4=P2^0;
    sbit we5=P2^2;
    sbit fm=P2^5;
    sbit sw1=P1^0;
    sbit sw2=P1^4;
    sbit sw3=P3^5;
    sbit sw4=P3^7;
    uchar code duma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
    0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
                                       };
                                   
                                     
    uchar  counter,   time,time_counter, h;                               
                                   
                                   
                                   
    uchar i ;

    void delay(uint z);
    void delay(uint z)
    {
      while (z--);

    }
    void display(uchar mshi,uchar mge,uchar sge,uchar sshi,uchar hge,uchar hshi )
    {       
      mge=time_counter%10;
      mshi=time_counter/10;
      sge=time/10;
      sshi=time%10;
      hge=h/10;
      hshi=h%10;

      
       P0=0XFF;
       we1=0;
       we2=1;
       we3=1;
       we4=1;
        P0=duma[mge];
            delay(100);
       
       

      P0=0XFF;
      we1=1;
       we2=0;
       we3=1;
       we4=1;
       P0=duma[mshi];
       delay(100);
      
      

       P0=0XFF;
       we1=1;
       we2=1;
       we3=0;
       we4=1;
       P0=duma[sshi];
       delay(100);
       
      


       

      P0=0XFF;
      we1=1;
       we2=1;
       we3=1;
       we4=0;
      P0=duma[sge];
       delay(100);
       
      
    }

    void keypros()
    {
          

    if(sw1==0)
            { delay(10);
             
               if(sw1==0&&time!=60)
               {
                       time+=1;
                     fm=0;
                     delay(10000);
                     fm=1;
                     delay(10000);          
                      while(!sw1);
               }
         }       
    if(sw2==0)
    {
              delay(10);
              if(sw2==0&&time!=0)
              {
                      time-=1;
                    fm=0;
                     delay(10000);
                     fm=1;
                     delay(10000);
                       while(!sw2);
              }
    }
    if(sw3==0)
             {       
               delay(10);
               if(sw3==0)
               { fm=0;
                     delay(10000);
                     fm=1;
                     delay(10000);
                         TR1=0;
                      led=1;
                      time=0;
                      time_counter=0;
                      fan=1;
                      ptc=1;
                    while(!sw3);
               }       
              
    }
    if(sw4==0)
    {                
               delay(10);
              
               if(sw4==0)
               {
                       TR1=~TR1;
                    led=~led;
                    fm=0;
                     delay(10000);
                     fm=1;
                     delay(10000);
             ptc=~ptc;
                    fan=~fan;
                    while(!sw4);
               }
    }
    }
    void init()
    {
      TMOD=0x10;
      TH1=0x4b;
      TL1=0x00;
      TR1=0;
    }


    void main()
    {       

                 
                             init();
                            led2=0;
                            
        while(1)
            {       
            keypros();
                     
       if(TF1==1)
       { TF1=0;
                TH1=0x4b;
         TL1=0x00;
                counter++;

       
       }
             if(counter==20)
            {
             counter=0;
             time_counter++;
              led1=~led1;
            }
            if(time_counter==60)
              {
                    time--;
                   
                     time_counter=0;
                   
            }          
            if(time==0)
               {   
               TR1=0;
                    led=1;
                       led1=1;
                    ptc=1;
                    fan=1;       
                   time=60;
                      
               }

                      display();
         }               
             
              
    }        現
      這個是正常顯示,,這個程序是60分鐘,倒計時,時間可以調,時間到停止輸出   
    LED1,FAN風扇,PTC加熱,都停止輸出,這個程序是用在艾灸上,謝謝大家指點!有你們真好!




    歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
    主站蜘蛛池模板: 日本 欧美 国产 | 久久里面有精品 | 成人国产免费视频 | 黑人精品欧美一区二区蜜桃 | 午夜免费观看 | 久久成人一区 | 国产精品18久久久久久白浆动漫 | 欧美精品在线免费观看 | 成人免费视频在线观看 | 欧美精品久久久久 | 中文字幕视频一区二区 | 欧美一区在线视频 | 精品乱码一区二区三四区 | 欧美黄色一区 | 日韩精品成人 | 欧美精品一区在线发布 | 国产精品毛片一区二区在线看 | 欧美freesex黑人又粗又大 | 爱爱视频网 | 亚洲精品二三区 | 欧美精品二区 | 国产成人在线视频播放 | 欧美精品91爱爱 | 欧美日韩电影在线 | 亚洲一区二区三区欧美 | 精品国产一二三区 | 中文字幕第一页在线 | 在线免费观看日本 | 日韩一区二区成人 | 祝你幸福电影在线观看 | 日韩毛片 | 伊色综合久久之综合久久 | 亚洲精品乱码久久久久v最新版 | 亚洲人在线 | 国产精品a一区二区三区网址 | 国产亚洲精品久久午夜玫瑰园 | 激情视频中文字幕 | 欧美一级黄带 | 在线视频 中文字幕 | 九九热在线视频 | 狠狠干网站 |