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

📄 max7219.lst

📁 MAX7219驱动LED特好使.MAX7219是微处理器和共阴极七段— — 八位LED显示、图条/柱图显示或64点阵显示接口的小型串行输入/输出芯片。片内包括BCD译码器、多路扫描控制器、.字和位驱动
💻 LST
字号:
C51 COMPILER V8.02   MAX7219                                                               08/10/2007 10:35:10 PAGE 1   


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

line level    source

   1          #include<reg51.h> 
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4           
   5          #define  HIGH     1
   6          #define  LOW      0
   7          #define  TRUE      1
   8          #define  FALSE      0
   9          #define  ZERO      0 
  10          #define  MSB       0x80
  11          #define  LSB       0x01
  12          //max7219 part
  13          #define  DECODE_MODE   0x09 
  14          #define  INTENSITY     0x0A 
  15          #define  SCAN_LIMIT    0x0B 
  16          #define  SHUT_DOWN     0x0C 
  17          #define  DISPLAY_TEST  0x0F 
  18          
  19          //pin defined
  20          /***********************************************************************/
  21          //change this part at different board
  22          sbit LOAD=P1^2; //MAX7219    Load-Data Input:    rising edge  pin 12 
  23          sbit DIN=P1^1; //MAX7219    Serial-Data Input:   rising edge  pin 1
  24          sbit CLK=P1^0; //MAX7219   Serial-Clock Input:  maximum 10MHz  pin 13
  25          
  26          
  27          /***********************************************************************/
  28          void Write_Max7219_byte(unsigned char temp);//write max7219 a byte
  29          void Write_Max7219(unsigned char address,unsigned char dat);//write max7219 command and data
  30          void Init_Max7219(void);//Initize max7219
  31          void delay1ms(uint x);
  32          
  33          /***********************************************************************/
  34          void main(void)
  35          {
  36   1       uchar i,j=1; 
  37   1       Init_Max7219();
  38   1       for(i=1;i<=4;i++)
  39   1       Write_Max7219(i,0);  
  40   1       while(TRUE)
  41   1       {
  42   2         
  43   2        for(i=1;i<9;i++) 
  44   2        {
  45   3         Write_Max7219(j,i);
  46   3         delay1ms(1000);
  47   3        }
  48   2        j++;
  49   2        if(j==5)
  50   2        {
  51   3        j=1;
  52   3        for(i=1;i<=4;i++)
  53   3        Write_Max7219(i,0);
  54   3        }
  55   2       } 
C51 COMPILER V8.02   MAX7219                                                               08/10/2007 10:35:10 PAGE 2   

  56   1      }
  57          /***********************************************************************/
  58          void Write_Max7219_byte(uchar temp)
  59          {
  60   1       unsigned char i;
  61   1       for (i=0;i<8;i++)     
  62   1        { 
  63   2           CLK=LOW;
  64   2           DIN=(bit)(temp&MSB);      
  65   2           temp<<=1;
  66   2               CLK=HIGH;
  67   2         }
  68   1      }
  69          /***********************************************************************/
  70          void Write_Max7219(uchar address,uchar dat)
  71          { 
  72   1         LOAD=LOW;
  73   1         Write_Max7219_byte(address); 
  74   1         Write_Max7219_byte(dat);
  75   1         LOAD=HIGH;                 
  76   1      }
  77          /***********************************************************************/
  78          void Init_Max7219(void)      
  79          { 
  80   1       Write_Max7219(SHUT_DOWN, 0x01);   //Normal Operation XXXXXXX1 Shutdown Mode   XXXXXXXX0
  81   1       Write_Max7219(DISPLAY_TEST, 0x00);   //Normal Operation XXXXXXX0 Display Test Mode XXXXXXXX1
  82   1       Write_Max7219(DECODE_MODE, 0xff);   //Decode Mode Select D7~D0 1 B decode 0 No decode 
  83   1       Write_Max7219(SCAN_LIMIT, 0x04);   //SCAN LIMIT 0~7 0xX0~0xX7
  84   1       Write_Max7219(INTENSITY, 0x04);   //Set Intensity   0xX0~0xXf
  85   1      }
  86          
  87          void delay1ms(uint x)
  88          {
  89   1        uint i,j;
  90   1        for(i=0;i<x;i++)
  91   1          for(j=0;j<120;j++);
  92   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    178    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       2
   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 + -