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

📄 lednumber.lst

📁 51实战工程级源码
💻 LST
字号:
C51 COMPILER V9.02   LEDNUMBER                                                             11/08/2012 21:34:06 PAGE 1   


C51 COMPILER V9.02, COMPILATION OF MODULE LEDNUMBER
OBJECT MODULE PLACED IN ..\output\LedNumber.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\source\LedNumber.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(..\
                    -output\LedNumber.lst) OBJECT(..\output\LedNumber.obj)

line level    source

   1          /*
   2          **********************************************************************************************************
             -***
   3          *                                                Kingst-51
   4          *                                        Development board samples
   5          *
   6          *                                 (c) Copyright 2009-2012, Kingst Studio
   7          *                                           All Rights Reserved
   8          *
   9          *                                          http://www.kingst.org
  10          * 文件名:LedNumber.c
  11          * 描  述:LED数码管显示模块
  12          * 版本号:1.0.0
  13          **********************************************************************************************************
             -***
  14          */
  15          
  16          #define _LED_NUMBER_C
  17          #include "config.h"
  18          #include "LedNumber.h"
  19          
  20          
  21          /*
  22          ********************************************************************************
  23          * ----------------------- Local defines  ---------------------------------------
  24          ********************************************************************************
  25          */
  26          const uint8 code LedChar[] = { //数码管显示的字符转化表
  27              LED_CHAR_0, LED_CHAR_1, LED_CHAR_2, LED_CHAR_3, LED_CHAR_4, 
  28              LED_CHAR_5, LED_CHAR_6, LED_CHAR_7, LED_CHAR_8, LED_CHAR_9, 
  29              LED_CHAR_A, LED_CHAR_b, LED_CHAR_C, LED_CHAR_d, LED_CHAR_E, LED_CHAR_F, 
  30          };
  31          
  32          
  33          /*
  34          ********************************************************************************
  35          * ----------------------- Local variables  -------------------------------------
  36          ********************************************************************************
  37          */
  38          static uint8 ledBuff[6];  //数码管显示缓冲区
  39          
  40          
  41          /*
  42          ***************************************************************************************************
  43          * ---------------------------------- Source codes  ------------------------------------------------
  44          ***************************************************************************************************
  45          */
  46          
  47          
  48          /*
  49          * 函数名:LedNumberInit
  50          * 描  述:LED数码管显示模块初始化
  51          */
  52          void LedNumberInit(void)
C51 COMPILER V9.02   LEDNUMBER                                                             11/08/2012 21:34:06 PAGE 2   

  53          {
  54   1              uint8 i;
  55   1              
  56   1          DBUS = 0xFF;
  57   1          ADDR0 = 0;
  58   1          ADDR1 = 0;
  59   1          ADDR2 = 0;
  60   1          ADDR3 = 1;
  61   1          ENLED = 0;
  62   1              
  63   1              for (i=0; i<6; i++) {
  64   2                      ledBuff[i] = 0xFF;
  65   2              }
  66   1      }
  67          
  68          /*
  69          * 函数名:LedNumberScan
  70          * 描  述:LED数码管的动态扫描显示函数,可在定时中断中调用
  71          * 备  注:本函数需在定时中断中调用,其定时时间和数码管数量共同决定一次显示扫描的总时间;
  72          *         如调用本函数的中断函数用using指定了寄存器组,则本函数也需用using指定相同的寄存器组。
  73          */
  74          void LedNumberScan(void)
  75          {
  76   1          static uint8 cyc = 0xFF;
  77   1      
  78   1          cyc++;
  79   1          if (cyc >= 6) {
  80   2              cyc = 0;
  81   2          }
  82   1          DBUS  = 0xFF;
  83   1          ADDR0 = (bit)(cyc & 0x1);
  84   1          ADDR1 = (bit)((cyc>>1) & 0x1);
  85   1          ADDR2 = (bit)((cyc>>2) & 0x1);
  86   1          DBUS  = ledBuff[cyc];
  87   1      }
  88          
  89          /*
  90          * 函数名:LedNumberShow
  91          * 描  述:LED数码管显示数字的函数
  92          * 输  入:dat - 需显示的32位整形数
  93          *         dot - 小数点位置
  94          * 输  出:无
  95          */
  96          void LedNumberShow(uint32 dat, uint8 dot)
  97          {
  98   1          uint8 i, j;
  99   1          uint8 buf[6];
 100   1          
 101   1          /* 整形数转换为BCD码 */
 102   1          i = 0;
 103   1          do {
 104   2              buf[i] = dat%10;
 105   2              dat /= 10;
 106   2              i++;
 107   2              if (i >= 6) {
 108   3                  break;
 109   3              }
 110   2          } while (dat>0);
 111   1          
 112   1          /* 显示在数码管上 */
 113   1          for (j=0; j<i; j++) {
 114   2              ledBuff[j] = LedChar[buf[j]];
C51 COMPILER V9.02   LEDNUMBER                                                             11/08/2012 21:34:06 PAGE 3   

 115   2          }
 116   1          for (; j<6; j++) {
 117   2              if (j <= dot) {
 118   3                  ledBuff[j] = LedChar[0];
 119   3              }
 120   2              else {
 121   3                  ledBuff[j] = 0xFF;
 122   3              }
 123   2          }
 124   1          ledBuff[dot] &= (~LED_SEG_dp);  //点亮小数点
 125   1      }


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