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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 數(shù)碼管動態(tài)掃描的種類與設(shè)計

          數(shù)碼管動態(tài)掃描的種類與設(shè)計

          作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
          數(shù)碼動態(tài)掃描可以節(jié)省I/O口,而且省電。一般的數(shù)碼管動態(tài)掃描可以用延時函數(shù)來實現(xiàn),也可以用定時器。用延時的話程序比較復雜,效率也差點,容易占用單片機的資源,但是可以不用定時器;如果你兩個定時器都用在其他重要的地方,可以考慮這樣做。
          下面先講什么是動態(tài)掃描,所謂動態(tài)掃描,就是數(shù)碼管的段極都接在一起,利用數(shù)碼管的位選腳在不同的時間點亮不同的數(shù)碼管,并發(fā)送段碼,利用人眼的暫留現(xiàn)象和數(shù)碼管的余暉效應,看起來所有的數(shù)碼管就是同時亮的,實際上,它們是在同一個時刻只亮一個而已,其它是不亮的,只是它們的掃描速度很快,我們?nèi)搜鄯直娌怀鰜怼?br />好了,先來講延時的描:
          延時掃描有兩種方法,一直是位操作,一種是字節(jié)操作。
          首先得先寫一個數(shù)碼管的段碼編碼,數(shù)碼管分為共陽和共陰,其編碼是不同的,而且根據(jù)不同的電路設(shè)計編碼也有所不同。下面我就舉兩個例子的0-9的數(shù)碼管常用的編碼值;
          共陽:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;
          共陰:0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;
          先把編碼值設(shè)置成一個數(shù)組,對其進行對10取余就可以顯示個位,取整可以顯示10位。
          延時掃描的第一種方法:位操作
          先發(fā)送段碼,再開位選,然后延時,最后關(guān)位選,接著顯示下一個,以此類推。
          具體延時多久,要看數(shù)碼管的多少,一般每個點亮大約5ms到10ms左右,太久了會出現(xiàn)嚴重閃爍,太短了數(shù)碼管會很暗,根據(jù)具體情況做出調(diào)整。
          延時掃描的第二種方法:字節(jié)操作
          采用字節(jié)操作只需把段碼和位碼都編好,一次延時就可以了,可以用兩個FOR循環(huán)來完成,比如有8個數(shù)碼管,掃描延時5MS,可以這樣寫:
          for(i=0;i<1000;i++)
          for(j=0;j<8;j++)
          {
          P0=NUM(段碼)[j];
          P1=NUM1(位碼)[j];
          }
          現(xiàn)在來介紹定時器掃描,用定時器掃描可以使掃描時間比較準確穩(wěn)定,可以用switch語句來實現(xiàn);例如打開定時器1,數(shù)碼管4個,可以這樣寫:
          void main()
          {
          uchar t;
          TMOD=0x01;
          TH0=0xec;
          TL0=0x78;//5ms
          TR0=1;
          while(1)
          {
          if(TF0==1)
          {
          TF0=0;
          TH0=0xec;
          TL0=0x78;
          t++;
          }
          if(t==4)
          {
          t=0;
          }
          switch(t)
          {
          case 0:發(fā)送段碼;關(guān)位選3;開位選1;break;
          case 1:發(fā)送段碼;關(guān)位選1;開位選2;break;
          。。。。。
          case 3:發(fā)送段碼;關(guān)位選:2;開位選3;break;
          }
          }
          這樣寫比較直觀,當然,有其他方法大家可以探討!


          關(guān)鍵詞: 數(shù)碼管動態(tài)掃

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();