⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ledm3.lst

📁 LED点阵屏的运用
💻 LST
字号:
C51 COMPILER V8.02   LEDM3                                                                 09/16/2008 18:32:19 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LEDM3
OBJECT MODULE PLACED IN ledm3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ledm3.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include <intrins.h>
   3          #define time (65536-10000)
   4          typedef  unsigned int uint;
   5          typedef  unsigned char uchar;
   6          
   7          sbit A_138=P1^0;                  
   8          sbit B_138=P1^1;
   9          sbit C_138=P1^2;
  10          sbit D_138=P1^3;
  11          sbit G1_SD=P1^4;
  12          sbit G2_SD=P1^5;
  13          sbit ST_CP=P1^6;                   //595的锁存脉冲,上升沿有效。
  14          sbit SH_CP=P1^7;                   //595的移位时钟,在上升沿发生移位。
  15          sbit EN_138=P3^5;          //138组成4线16线译码器的使能端,低电平有效。
  16          sbit R1_SD=P3^6;                   //595的数据端
  17          sbit R2_SD=P3^7;
  18          
  19          uchar to_second_cnd=50;    //50ms*second_cnd,所以大概2.5s
  20          uchar second_flag=0;
  21          uchar up_down_flag=1;      //为1,down;为0,up。
  22          uchar i=0;
  23          uchar cnt =0;
  24          uchar hc138_inport=0;
  25          uchar const ziku[][32]= 
  26          {
  27          {0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0x80,0x83,0xF6,0xBB,0xF6,0xBB,0xF6,0xBB,0xF6,0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,
             -0xBB,0xDE,0xBB,0xDE,0x83,0xBA,0xBB,0x7D,0xBF,0xFF,0xFF},/*"加",0*/
  28          
  29          {0xBF,0xBF,0xDF,0xBF,0xDF,0xBF,0xFF,0xBF,0x68,0x03,0xAB,0xBB,0xAB,0xBB,0xEB,0xBB,0xDB,0xBB,0xD8,0x03,0x1B,
             -0xBB,0xDB,0xBB,0xDB,0xBB,0xDB,0xBB,0xD8,0x03,0xDB,0xFB},/*"油",1*/
  30          
  31          {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFF,
             -0xFF,0xFF,0xFF,0xFE,0x3F,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF},/*"!",0*/
  32          //{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xF
             -B,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",0*/
  33          
  34          //{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xF
             -B,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",1*/
  35          
  36          //{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xF
             -B,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",2*/
  37          
  38          
  39          //{0xF9,0xBF,0xC7,0xAF,0xF7,0xB7,0xF7,0xB7,0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xB7,0xF1,0xD7,0xC7,0xCF,0x3
             -7,0xDF,0xF7,0xAF,0xF6,0x6D,0xF7,0xF5,0xD7,0xF9,0xEF,0xFD},/*"我",0*/
  40          
  41          //{0xFF,0xFF,0xF8,0xFF,0x87,0xFF,0xF7,0x83,0xF7,0xBB,0x80,0xBB,0xF7,0xBB,0xE7,0xBB,0xE3,0xBB,0xD5,0xBB,0xD
             -4,0xBB,0xB5,0xBB,0x77,0x83,0xF7,0xBB,0xF7,0xFF,0xF7,0xFF},/*"和",1*/
  42          
  43          //{0xF6,0xFF,0xF6,0x7F,0xEE,0xFB,0xEC,0x01,0xDD,0xFB,0xCB,0xB7,0x97,0xBF,0x5D,0xAF,0xDC,0xB7,0xDD,0xB7,0xD
             -B,0xBB,0xDB,0xB9,0xD7,0xBB,0xDE,0xBF,0xDF,0x7F,0xFF,0xFF},/*"你",2*/
  44          
  45          //{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf
             -f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
C51 COMPILER V8.02   LEDM3                                                                 09/16/2008 18:32:19 PAGE 2   

  46          //{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf
             -f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
  47          //{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf
             -f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
  48          //{0xAA,0xA0,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
             -0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  49          //{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
             -0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  50          //{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
             -0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  51          //{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xf
             -e,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
  52          //{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xf
             -e,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
  53          //{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xf
             -e,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
  54          //{0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa
             -a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
  55          //{0x00,0x00,0x00,0x00,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa
             -a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
  56          //{0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa
             -a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
  57          
  58          };
  59          
  60          
  61          
  62          
  63          void delay_s(uint x)
  64          {
  65   1              while(x--);
  66   1      }
  67          
  68          
  69          void hc595(     uchar temp)
  70          {
  71   1              uchar count=0;
  72   1      
  73   1              for(; count<8; count++)
  74   1              {
  75   2                      SH_CP=0;
  76   2                      R1_SD=temp&0x80;
  77   2                      temp<<=1;
  78   2                      SH_CP=1;
  79   2                      _nop_();
  80   2                      SH_CP=0;
  81   2                      }
  82   1                                                                      
  83   1      
  84   1      }
  85          
  86          void timer0(void) interrupt 1
  87          {
  88   1              EA=0;
  89   1              TH0=time>>8;
  90   1              TL0=time&0xff;
  91   1              if(!(to_second_cnd--))
  92   1              {
  93   2                      second_flag=1;
  94   2                      to_second_cnd=50;
  95   2              }
  96   1      
C51 COMPILER V8.02   LEDM3                                                                 09/16/2008 18:32:19 PAGE 3   

  97   1              EA=1;
  98   1      }
  99          
 100          
 101          void up_down(void)
 102          {
 103   1              if(second_flag)
 104   1              {
 105   2                      if (up_down_flag)
 106   2                              hc138_inport++;                  //down
 107   2                      else                             //up
 108   2                      {
 109   3                              if(hc138_inport==0)
 110   3                                      hc138_inport=15;
 111   3                              else
 112   3                                      hc138_inport--;
 113   3                      }
 114   2                      second_flag=0;
 115   2              }
 116   1      
 117   1      }
 118          
 119          void intrrupt_t0_ini()
 120          {
 121   1              TH0=time>>8;
 122   1              TL0=time&0xff;
 123   1              TMOD=0X01;
 124   1              TR0=1;
 125   1              ET0=1;
 126   1              EA=1;   
 127   1      }
 128          
 129          
 130          void led_m_dis()
 131          {
 132   1              for(;i<16;i++,hc138_inport++)
 133   1              {                       
 134   2                      for(;cnt<3;cnt++)
 135   2                      {
 136   3                              hc595(ziku[cnt][2*i]);
 137   3                              hc595(ziku[cnt][2*i+1]);                        
 138   3                      }
 139   2      
 140   2      
 141   2                      ST_CP=0;
 142   2                      _nop_();
 143   2                      ST_CP=1;
 144   2                      ST_CP=0;
 145   2                      delay_s(10);
 146   2      
 147   2                      if(hc138_inport==16)
 148   2                      hc138_inport=0;
 149   2      
 150   2                      EN_138=1;
 151   2                      A_138=hc138_inport&0x01;
 152   2                      B_138=hc138_inport&0x02;
 153   2                      C_138=hc138_inport&0x04;
 154   2                      D_138=hc138_inport&0x08;
 155   2                      EN_138=0;
 156   2                      delay_s(100);
 157   2                      EN_138=1;
 158   2                      cnt=0;
C51 COMPILER V8.02   LEDM3                                                                 09/16/2008 18:32:19 PAGE 4   

 159   2              }
 160   1              i=0;    
 161   1      }
 162                                                                                                                                                                            
 163          void main()
 164          {
 165   1              intrrupt_t0_ini();      
 166   1              for(;;)
 167   1              {
 168   2                      up_down();
 169   2                      led_m_dis();
 170   2              }
 171   1      }
 172          
 173          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    242    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =    102    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -