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

📄 max7219.lst

📁 基于MAX7219的串行数码管显示
💻 LST
字号:
C51 COMPILER V8.08   MAX7219                                                               01/23/2009 10:58:13 PAGE 1   


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

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          #define decodemode 0x09//译码模式寄存器
   6          #define intensity 0x0a//亮度寄存器
   7          #define scanlimt 0x0b //扫描位数寄存器
   8          #define shutdown 0x0c //低功耗模式寄存器
   9          #define displaytest 0x0f //显示寄存器
  10          sbit DIN=P1^0;
  11          sbit LOAD=P1^1;
  12          sbit CLOCK=P1^2;
  13          uchar disbuf[8]={0,0,0,0,0,0,0,0};
  14          /*******对于12MHZ时钟,延时1ms**********/
  15          void delay(uint t)
  16          {
  17   1              uint i;
  18   1              while(t--)
  19   1              {
  20   2                      for(i=0;i<125;i++)
  21   2                      {}
  22   2              }
  23   1      }
  24          /**********向MAX7219写入字节(8位)***************/
  25          void sendchar(uchar ch)
  26          {
  27   1              uchar i,temp;
  28   1              for(i=0;i<8;i++)
  29   1              {
  30   2                      temp=ch&0x80;
  31   2                      ch=ch<<1;
  32   2                      if(temp)
  33   2                      {
  34   3                              DIN=1;
  35   3                              CLOCK=0;
  36   3                              CLOCK=1;
  37   3                      }
  38   2                      else
  39   2                      {
  40   3                              DIN=0;
  41   3                              CLOCK=0;
  42   3                              CLOCK=1;
  43   3                      }
  44   2              }
  45   1      }
  46          /***********向MAX7219写入字(16位)*********/
  47          void writeword(uchar address,uchar num)
  48          {
  49   1              LOAD=0;
  50   1              _nop_();
  51   1              sendchar(address);
  52   1              _nop_();
  53   1              sendchar(num);
  54   1              _nop_();
  55   1              LOAD=1;
C51 COMPILER V8.08   MAX7219                                                               01/23/2009 10:58:13 PAGE 2   

  56   1      }
  57          /***********MAX7219初始化*************/
  58          void init()
  59          {
  60   1              //P1=0xff;
  61   1              writeword(scanlimt,0x07);//扫描位数设置为8位数码管;
  62   1              writeword(decodemode,0xff);//译码模式设置为BCD译码;
  63   1              writeword(intensity,0x0a);//亮度级别设置;
  64   1              writeword(shutdown,0x01);//低功耗模式设置为正常模式;
  65   1      }
  66          void main()
  67          {
  68   1              init();
  69   1              writeword(displaytest,0x01);//开始显示测试,点亮所有LED
  70   1              delay(2);
  71   1              writeword(displaytest,0x00);//关显示;
  72   1              while(1)
  73   1              {
  74   2              //      uchar i,j;
  75   2              //8个数码管间隔2s同时变化显示0-9的数字
  76   2              //      for (i=0;i<=9;i++)
  77   2              //      {
  78   2                      //      delay(1000);
  79   2                              init();
  80   2                      //      for(j=0;j<=7;j++)
  81   2                      //      disbuf[j]=i;
  82   2                      //8个数码管分别显示1-8数字
  83   2                              writeword(0x01,1);//第一个数码管显示1
  84   2                              writeword(0x02,2);
  85   2                              writeword(0x03,3);
  86   2                              writeword(0x04,4);
  87   2                              writeword(0x05,5);
  88   2                              writeword(0x06,6);
  89   2                              writeword(0x07,7);
  90   2                              writeword(0x08,8);//第八个数码管显示8
  91   2              //      }
  92   2              }
  93   1      }


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