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

📄 main.lst

📁 基于动态显示的LED显示驱动程序,所显示的数据由串口输入
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  02/07/2006 13:40:44 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\ProgramFiles\Keil\C51\BIN\c51.exe main.c DB OE

stmt level    source

   1          //main.c
   2          #include <E:\ProgramFiles\SiLabs\MCU\IDEfiles\C51\Inc\c8051F310.h>
   3          #include <intrins.h>
   4          #define NOPP _nop_();_nop_();_nop_();_nop_()
   5          #define NOP  NOPP;NOPP;NOPP
   6          
   7          
   8          //------------------数据定义--------------------------------------------
   9          //显示码
  10          #include "led_code.c"
  11          //char code led[10] = {0x14,0xD7,0x4C,0x45,0x87,0x25,0x24,0x57,0x04,0x05};
  12          //显示缓冲区
  13          char data num[3][4]= {
  14                                                          {'0'-32,'1'-32,'2'-32,'3'-32},
  15                                                          {'3'-32,'4'-32,'5'-32,'6'-32},
  16                                                          {'6'-32,'7'-32,'8'-32,'9'-32}
  17                                                   };
  18          //通信缓冲区
  19          char data numBuff[3][4] = {0};
  20          //74HC373使能信号
  21          sbit cs373 = P3^4;
  22          //数码管片选信号
  23          char data select;
  24          //***************
  25          
  26          
  27          //------------------函数定义---------------------------------------------
  28          //初始化函数
  29          void init()
  30          {
  31   1              
  32   1              XBR0 = 0x02;
  33   1              SPI0CFG = 0x00;
  34   1              SPIEN = 1;
  35   1      
  36   1              ////////////////
  37   1              ESPI0 = 1;
  38   1              EA = 1;
  39   1              EA = 1;
  40   1              NOP;
  41   1              NOP;    
  42   1              XBR1 = 0x40;
  43   1              cs373 = 0;
  44   1      }
  45          
  46          //SPI中断函数
  47          void spi_int() interrupt 6
  48          {
  49   1              static unsigned char BuffRowCount = 0;
  50   1              static unsigned char BuffLineCount = 0;
  51   1              char ct;
  52   1              if(_testbit_(SPIF))
  53   1              {
  54   2                      ct = SPI0DAT;
  55   2                      if(ct == '\0')
C51 COMPILER V7.06   MAIN                                                                  02/07/2006 13:40:44 PAGE 2   

  56   2                      {
  57   3                              for(BuffRowCount=0;BuffRowCount<3;BuffRowCount++)
  58   3                                              for(BuffLineCount=0;BuffLineCount<4;BuffLineCount++)
  59   3                                                      num[BuffRowCount][BuffLineCount] =
  60   3                                                                      numBuff[BuffRowCount][BuffLineCount]-32;
  61   3                              BuffRowCount=0;
  62   3                              BuffLineCount=0;
  63   3                              return;
  64   3                      }
  65   2                      numBuff[BuffRowCount][BuffLineCount] = ct;
  66   2                      if(BuffLineCount==3)
  67   2                      {
  68   3                              BuffLineCount=0;
  69   3                              if(BuffRowCount==2)
  70   3                                      BuffRowCount=0;
  71   3                              else BuffRowCount++;
  72   3                      }
  73   2                      else BuffLineCount++;
  74   2      
  75   2              }
  76   1      
  77   1      }
  78          
  79          //延时函数
  80          void delay(unsigned int delayor)
  81          {
  82   1              unsigned int i;
  83   1              unsigned char j;
  84   1              for(j=0;j<235;j++)
  85   1              {
  86   2                       _nop_();_nop_();
  87   2                       _nop_();_nop_();
  88   2              }
  89   1                       _nop_();
  90   1                       _nop_();
  91   1                       _nop_();
  92   1              delayor--;
  93   1              for(i=0;i<delayor;i++)
  94   1              {
  95   2                      _nop_();
  96   2                      for(j=0;j<235;j++) 
  97   2                      {
  98   3                                _nop_();_nop_();
  99   3                                _nop_();_nop_();
 100   3                                _nop_();_nop_();
 101   3                                _nop_();_nop_();
 102   3                      }
 103   2              }
 104   1      }
 105          
 106          
 107          //主函数
 108          main()
 109          {
 110   1              unsigned char i;
 111   1              init();
 112   1              select = 0xDD;
 113   1              while(1)
 114   1              {
 115   2                      for(i=0;i<4;i++)
 116   2                      {
 117   3                              P2 = char_code[num[0][i]];
C51 COMPILER V7.06   MAIN                                                                  02/07/2006 13:40:44 PAGE 3   

 118   3                              cs373 = 1;
 119   3                              NOP;
 120   3                              cs373 = 0;
 121   3                              P2 = char_code[num[1][i]];
 122   3                              P1 = char_code[num[2][i]];
 123   3                              delay(5);
 124   3                              P0 = select;
 125   3                              select = _crol_(select,1);
 126   3                      }
 127   2              }
 128   1      }
 129          


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