色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > C51二位數(shù)碼管顯示程序設計

          C51二位數(shù)碼管顯示程序設計

          作者: 時間:2016-11-27 來源:網(wǎng)絡 收藏

          #define uint unsigned int
          #define uchar unsigned char
          sbit k1=P2^0;
          sbit k2=P2^1;
          uint code table[]={0X00,0X80,0X10,0X90,0X20,0XA0,0X30,0XB0,0X40,0XC0};
          void delay(uint z)
          {
          uint a,b;
          for(a=z;a>0;a--)
          {
          for(b=z;b>0;b--);
          }
          }
          void main()
          {
          int c=99,t,shi,ge;
          for(t=99;t>0;t--)
          {
          shi=c/10;
          ge=c;
          k1=0,k2=1;
          P1=table[shi];
          delay(300);
          P1=0XFF;

          k2=0,k1=1;
          P1=table[ge];
          delay(200);
          P1=0XFF;
          k1=0,k2=0;
          c--;
          if(c==0)
          c=99;

          本文引用地址:http://cafeforensic.com/article/201611/322475.htm


          }
          }

          回答:

          肯定不同時的啊 因為你是顯示為十再顯示個的

          其實所謂的同時顯示就是循環(huán)掃描 時間間隔短了 自然看著就是同時了

          你要做的就是在顯示延時的同時顯示一下十位 再顯示一下個位 而不是顯示完一個再顯示另一個

          最好的做法是放在中斷中 這樣能確保顯示效果

          bit flag;

          int shi ,ge;

          這三個為外部變量在延時的過程中調(diào)用這個函數(shù) 應該就OK了

          void showled()

          {

          if (flag==0)

          {

          P1=table[shi];k2=1,k1=0;

          }

          else

          {

          P1=table[ge];k2=0,k1=1;

          }

          flag=~flag;

          }



          評論


          技術專區(qū)

          關閉