<p id="5vvtt"><ruby id="5vvtt"><mark id="5vvtt"></mark></ruby></p><p id="5vvtt"></p>

    <p id="5vvtt"></p>
    <ruby id="5vvtt"><b id="5vvtt"></b></ruby>

          <ruby id="5vvtt"></ruby>

          <ruby id="5vvtt"><mark id="5vvtt"></mark></ruby>
            0
            收藏
            微博
            微信
            復制鏈接

            51單片機流動數碼管顯示程序

            提問于
            2024-02-15 01:20

            數碼管顯示網上例子很多,無非是靜態的,動態的。動態的顯示大部分是用While函數,昨天編了一個程序解決動態顯示0~F的流動顯示方法,可能還需改進,還得“計院”的高手指導。
            另外后面幾行用/* */去掉的程序大家加進去可以看到另一個效果的流水數碼管



            #include
            unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99, //0~4
                0x92,0x82,0xF8,0x80,0x90, //5~9
                0x88,0x83,0xA7,0xA1,0x86,0x8E}; //A~F      
            unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
            unsigned char temp,temp0,temp1,temp2,temp3,temp4,temp5,j;
            unsigned char emp,emp0,emp1,emp2,emp3,emp4,emp5,emp6,emp7,

                emp8,emp9,emp10,emp11,emp12,emp13,emp14,emp15;
            void delay();
            void delay1();
            void main()
            {{      
            temp=0;
            temp0=0;
            temp1=1;
            temp2=2;
            temp3=3;
            temp4=4;
            temp5=5;
            emp=0;
            emp0=0;
            emp1=1;
            emp2=2;
            emp3=3;
            emp4=4;
            emp5=5;
            emp6=6;
            emp7=7;
            emp8=8;
            emp9=9;
            emp10=10;
            emp11=11;
            emp12=12;
            emp13=13;
            emp14=14;
            emp15=15;

              loop2:
              j=40000;
               loop1:
               P3=0xff;
               P0=table[emp0];
               P3=wei[temp0];
               delay();

               P3=0xff;
               P0=table[emp1];
               P3=wei[temp1];
               delay();

               P3=0xff;
               P0=table[emp2];
               P3=wei[temp2];
               delay();

               P3=0xff;
               P0=table[emp3];
               P3=wei[temp3];
               delay();
                 
               P3=0xff;
               P0=table[emp4];
               P3=wei[temp4];
               delay();

               P3=0xff;
               P0=table[emp5];
               P3=wei[temp5];
               delay();

              j=j-1;
               if(j>0)
               goto loop1;
               else
                 /*temp=temp0;
                 temp0=temp1;
                 temp1=temp2;
                 temp2=temp3;
                 temp3=temp4;
                 temp4=temp5;
                 temp5=temp;*/
                 emp=emp0;
                 emp0=emp1;
                 emp1=emp2;
                 emp2=emp3;
                 emp3=emp4;
                 emp4=emp5;
                 emp5=emp6;
                 emp6=emp7;
                 emp7=emp8;
                 emp8=emp9;
                 emp9=emp10;
                 emp10=emp11;
                 emp11=emp12;
                 emp12=emp13;
                 emp13=emp14;
                 emp14=emp15;
                 emp15=emp;
                 goto loop2;

            }}
            //延時程序
            void  delay()              //延時程序
                {
                 int i;                 //定義整形變量
                 for(i=0x100;i--;)
              ;     //延時
                }


            會C語言的會覺得比較簡單,暫時還沒研究程序中temp和emp比較簡潔的處理方法,各位知道的話記得留言。以下貼出效果圖。(手機拍攝,各位見諒)






            收藏 216 0 0
            亚洲精品免费看>>在线免费观看视频>>亚洲精品免费看