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

📄 1.lst

📁 MAX7219的驱动程序
💻 LST
字号:
C51 COMPILER V7.20   1                                                                     12/14/2008 03:07:06 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE 1
OBJECT MODULE PLACED IN 1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include<intrins.h>
   3          #define SHUTDOWN 0x0c             //是否关机
   4          #define DECODE_MODE 0x09          //编码模式
   5          #define INTENSITY 0x0a            //亮度变化
   6          #define SCAN_LIMIT 0x0b           //开启哪些位
   7          #define DISPLAYTEST 0x0f          //显示测试
   8          
   9          sbit DIN=P3^4;
  10          sbit LOAD=P3^5;
  11          sbit CLK=P3^6;
  12          sbit ACC0=ACC^0;
  13          sbit ACC7=ACC^7;
  14          unsigned char code table[]={
  15                  0x7e,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B,0x00
  16          };
  17          unsigned char code seg[]={
  18          0x01,0x02,0x03,0x04,0x05,0x06,0x07
  19          };
  20          unsigned char numbers[8];
  21          /*void WriteMAX7219_bit(bit dat)         //写入一位
  22          {
  23                  CLK=0;
  24                  DIN=dat;
  25                  CLK=1;
  26          } */
  27          void WriteByte7219(unsigned char Dat)
  28          {
  29   1      unsigned char i;
  30   1      ACC=Dat;
  31   1      for(i=8;i>0;i--)
  32   1              {
  33   2               DIN=ACC7;
  34   2               CLK=1;
  35   2               _nop_();
  36   2               _nop_();
  37   2               CLK=0;
  38   2               ACC=ACC<<1;
  39   2              }
  40   1      }
  41          void WriteMAX7219_2bytes(unsigned char dat1,unsigned char dat2)           //连续写入两个字节
  42          {
  43   1              unsigned char temp;
  44   1              temp=0x80;
  45   1              CLK=0;
  46   1              DIN=0;
  47   1              LOAD=0;
  48   1      /*      for(i=1;i<=8;i++)
  49   1              {
  50   1                      if(temp&dat1)WriteMAX7219_bit(1);       
  51   1                      else WriteMAX7219_bit(0);
  52   1                      dat1<<=1;
  53   1      
  54   1              }
  55   1              for(i=1;i<=8;i++)
C51 COMPILER V7.20   1                                                                     12/14/2008 03:07:06 PAGE 2   

  56   1              {
  57   1                      if(temp&dat2)WriteMAX7219_bit(1);       
  58   1                      else WriteMAX7219_bit(0);
  59   1                      dat2<<=1;
  60   1              }        */
  61   1              WriteByte7219(dat1);
  62   1              WriteByte7219(dat2);
  63   1              LOAD=1;
  64   1              
  65   1      }
  66          void InitMax7219()                                                //初始化
  67          {
  68   1              
  69   1              WriteMAX7219_2bytes(DECODE_MODE,0xff);            //设置所有数码管为B CODE编码模式
  70   1              WriteMAX7219_2bytes(INTENSITY,0x08);              //设置亮度为最大
  71   1              WriteMAX7219_2bytes(SCAN_LIMIT,0x07);             //设置7个数码管全开 
  72   1              WriteMAX7219_2bytes(DISPLAYTEST,0);
  73   1              WriteMAX7219_2bytes(SHUTDOWN,0x01);                       //设置为开机
  74   1      }
  75          void display()
  76          {
  77   1              unsigned char i;
  78   1              for(i=0;i<8;i++)
  79   1              {
  80   2                      WriteMAX7219_2bytes(seg[i],i);
  81   2              }
  82   1      }
  83          void delay()
  84          {
  85   1              unsigned int n;
  86   1              n=30000;
  87   1              while(n--);
  88   1      }
  89          void main()
  90          {       
  91   1              
  92   1              bit a;
  93   1              a=1;
  94   1      //      InitMax7219();display();
  95   1      //      WriteMAX7219_2bytes(DISPLAYTEST,0xff);
  96   1              while(1){
  97   2              a=!a;
  98   2              P0=a;
  99   2              P1=a;
 100   2              P2=a;
 101   2              delay();}       ;
 102   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    125    ----
   CONSTANT SIZE    =     18    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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