標(biāo)題: 動(dòng)態(tài)數(shù)碼管 [打印本頁]

作者: 人在江湖128    時(shí)間: 2017-12-18 13:02
標(biāo)題: 動(dòng)態(tài)數(shù)碼管
這是我上個(gè)月做的動(dòng)態(tài)數(shù)碼管顯示課程
里面包含51單片機(jī)源代碼
請(qǐng)大家多多指導(dǎo)
  1. #include "reg52.h"
  2. #include "intrins.h"
  3. typedef unsigned int u16;         
  4. typedef unsigned char u8;
  5. sbit LSA=P2^2;
  6. sbit LSB=P2^3;
  7. sbit LSC=P2^4;

  8. u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  9.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  //共陰 code 代碼 編碼

  10. //void delay(u16 i)
  11. //{
  12. //        while(i--);       
  13. //}

  14.   void DigDisplay()
  15. {
  16.         static u8 j=0;

  17.             switch(j)         //位選,選擇點(diǎn)亮的數(shù)碼管,
  18.                 {
  19.                         case(0):
  20.                                 LSA=0;LSB=0;LSC=0;j++; break;//顯示第0位
  21.                         case(1):
  22.                                 LSA=1;LSB=0;LSC=0;j++; break;//顯示第1位
  23.                         case(2):
  24.                                 LSA=0;LSB=1;LSC=0;j++; break;//顯示第2位
  25.                         case(3):
  26.                                 LSA=1;LSB=1;LSC=0;j++; break;//顯示第3位
  27.                         case(4):
  28.                                 LSA=0;LSB=0;LSC=1;j++; break;//顯示第4位
  29.                         case(5):
  30.                                 LSA=1;LSB=0;LSC=1;j++; break;//顯示第5位
  31.                         case(6):
  32.                                 LSA=0;LSB=1;LSC=1;j++; break;//顯示第6位
  33.                         case(7):
  34.                                 LSA=1;LSB=1;LSC=1;j=0; break;//顯示第7位       
  35.                           
  36.             }
  37. }
  38. void main()
  39. {
  40.         u8  i;       
  41.         u16 m;
  42.         while (1)
  43.   {
  44.           
  45.                   for(i=0;i<16;i++)
  46.                 {
  47.                   P0=smgduan[i];
  48.                             
  49.                   for(m=0;m<30000;m++) //10000-50000
  50.                   {  
  51.                    DigDisplay(); //數(shù)碼管顯示函數(shù)       
  52.                   }
  53.                          
  54.             }
  55.                  // delay(500);//100-500       
  56.   }

  57. }
復(fù)制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1