<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 【C51】源碼 2 -- 8 位共陰極數碼管的基本顯示

          【C51】源碼 2 -- 8 位共陰極數碼管的基本顯示

          作者: 時間:2016-11-17 來源:網絡 收藏
          自學單片機,買了一套開發(fā)板,進入學習的第 3 階段:8 位共陰極數碼管。剛剛接觸了鎖存器的用法,寫在這兒用于備份……

          程序就是利用鎖存器,動態(tài)顯示數字,使 8 位數碼管看起來同時顯示不同的字樣……

          本文引用地址:http://www.ex-cimer.com/article/201611/315358.htm

          附上源碼:(初出茅廬,難免有寫的不好的地方,僅作備份之用,歡迎指點,噴子退散……)

          #include

          #defineDATA P1 // 定義 P1 為數據輸入

          sbitSEG = P0^0;// 定義 段鎖存器
          sbitBIT = P0^2;// 定義 位鎖存器

          unsigned char codeSEG_CODE[ ] = {0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f};// 段碼 1-8
          unsigned char codeBIT_CODE[ ] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};

          // 位碼 從 0 位至 7 位

          voidDelay(unsigned intt);

          voidmain (void)
          {
          unsigned chari = 0;

          while(1) {

          SEG = 1; // 關段鎖存
          DATA = SEG_CODE[i];// 送段碼
          SEG = 0;// 開段鎖存,指定了某位具體顯示什么數字

          BIT = 1;// 關位鎖存
          DATA = BIT_CODE[i];// 送位碼
          BIT = 0;// 開位鎖存,指定了哪一位顯示

          Delay(200); // 經測試:200 為佳,過小出現重影,過大出現閃爍
          // 20 重影,300 數字抖動,2000 掃描閃爍
          i++;
          if(i==8) i = 0;// 循環(huán)顯示
          }
          }

          voidDelay(unsigned intt)
          {
          while(t--);
          }

          補充一個技巧:

          突然某一位想顯示小數點了,怎么辦?

          假如你正在使用temp[i]代表某一個顯示字符,突然想顯示小數點,可以使用temp[i] | 0x80,通過“或”運算實現加上小數點……



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();