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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機動態(tài)數碼管的設計

          單片機動態(tài)數碼管的設計

          作者: 時間:2016-11-26 來源:網絡 收藏
          一、數碼管動態(tài)顯示

          動態(tài)顯示

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

          LED數碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數碼管的點亮時間為1~2ms,由于人的視覺暫留現象及發(fā)光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數據,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。

          二、Proteus仿真實驗



          源程序:

          #include//C51頭文件
          #include//函數頭文件
          #define uchar unsigned char//宏定義uchar=unsigned char
          #define uint unsigned int//宏定義uint=unsigned int

          uchar duan_code[]={
          0x3f,0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f
          };//共陰極數碼管段碼0~9
          uchar wei_code[]={0xFE,0XFD}; //共陰極數碼管位碼

          void delay_ms(uint z)//ms級延遲函數,z表示形參,是幾就是幾ms延遲
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=99;y>0;y--)
          { _nop_();
          _nop_();
          }
          }

          void main(void)//主函數
          {
          uint i=23;//初始化數碼管顯示的值
          P0=0X00;//初始化P0口為低電平
          P2=0XFF;
          while(1)
          {
          P2=0XFE;//十位顯示
          P0=duan_code[i/10];//通過對i取整,求出十位顯示的數字
          delay_ms(5);//每次間隔2ms
          P2=0XFF;

          P2=0XFD;//個位顯示
          P0=duan_code[i];//通過對i取余,求出個位顯示的數字
          delay_ms(5);//每次間隔2ms
          P2=0XFF;

          }
          }



          評論


          技術專區(qū)

          關閉