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

📄 h18.lst

📁 C51的一个小CODE
💻 LST
字号:
C51 COMPILER V6.20c  H18                                                                   01/18/2004 09:58:20 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE H18
OBJECT MODULE PLACED IN D:\C51\H18.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE D:\C51\H18.C DB SB OE

stmt level    source

   1          
   2          #include <reg51.h>
   3          
   4          #define LEDLen 6
   5          #define PB1    2  // 164 时钟位
   6          #define PB0    1  // 164 数据位
   7          
   8          xdata unsigned char OUTBIT _at_ 0xfe02;   // 位控制口
   9          xdata unsigned char CLK164 _at_ 0xfe04;   // 段控制口(接164时钟位)
  10          xdata unsigned char DAT164 _at_ 0xfe06;   // 段控制口(接164数据位)
  11          
  12          unsigned char LEDBuf[LEDLen];  // 显示缓冲
  13          code unsigned char LEDMAP[] = {  // 八段管显示码
  14            0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
  15            0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
  16          };
  17          
  18          void Delay(unsigned char CNT)
  19          {
  20   1        unsigned char i;
  21   1      
  22   1        while (CNT-- !=0)
  23   1          for (i=100; i !=0; i--);
  24   1      }
  25          
  26          void DisplayLED()
  27          {
  28   1        unsigned char i, j;
  29   1        unsigned char Pos;
  30   1        unsigned char LED;
  31   1      
  32   1        Pos = 0x20;  // 从左边开始显示
  33   1        for (i = 0; i < LEDLen; i++) {
  34   2          OUTBIT = 0;     // 关所有八段管
  35   2          LED = LEDBuf[i];
  36   2          for (j = 0; j < 8; j++) {   // 送164
  37   3            if (LED & 0x80) DAT164 = 1; else DAT164 = 0;
  38   3            CLK164 = 1;
  39   3            CLK164 = 0;
  40   3            LED <<= 1;
  41   3          }
  42   2          OUTBIT = Pos;  // 显示一位八段管
  43   2          Delay(1);
  44   2          Pos >>= 1;     // 显示下一位
  45   2        }
  46   1      }
  47          
  48          // ===============================================================================
  49          
  50          #define Tick   10000     // 10000 x 100us = 1s
  51          #define T100us (256-50)  // 100us时间常数(6M)
  52          
  53          unsigned char Hour, Minute, Second;
  54          unsigned int C100us;     // 100us记数单元
  55          
C51 COMPILER V6.20c  H18                                                                   01/18/2004 09:58:20 PAGE 2   

  56          void T0Int() interrupt 1
  57          {
  58   1        C100us--;
  59   1        if (C100us == 0) {
  60   2          C100us = Tick;     // 100us 记数器为0, 重置记数器
  61   2          Second++;
  62   2          if (Second == 60) {
  63   3            Second = 0;
  64   3            Minute++;
  65   3            if (Minute == 60) {
  66   4              Minute = 0;
  67   4              Hour++;
  68   4              if (Hour == 24) Hour = 0;
  69   4            }
  70   3          }
  71   2        }
  72   1      }
  73          
  74          void main()
  75          {
  76   1        TMOD = 0x02;   // 方式2, 定时器
  77   1        TH0  = T100us;
  78   1        TL0  = T100us;
  79   1      
  80   1        IE   = 0x82;   // EA=1, IT0 = 1
  81   1      
  82   1        Hour   = 0;
  83   1        Minute = 0;
  84   1        Second = 0;
  85   1        C100us = Tick;
  86   1        TR0    = 1;    // 启动定时器0
  87   1      
  88   1        while (1) {
  89   2          LEDBuf[0] = LEDMAP[Hour/10];
  90   2          LEDBuf[1] = LEDMAP[Hour%10] | 0x80;
  91   2          LEDBuf[2] = LEDMAP[Minute/10];
  92   2          LEDBuf[3] = LEDMAP[Minute%10] | 0x80;
  93   2          LEDBuf[4] = LEDMAP[Second/10];
  94   2          LEDBuf[5] = LEDMAP[Second%10];
  95   2      
  96   2          DisplayLED();
  97   2        }
  98   1      }
C51 COMPILER V6.20c  H18                                                                   01/18/2004 09:58:20 PAGE 3   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
Hour . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
T0Int. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
DisplayLED . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  Pos. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  LED. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
LEDMAP . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  16
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
C100us . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0001H  2
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
_Delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  CNT. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
OUTBIT . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   FE02H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
Second . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0003H  1
C51 COMPILER V6.20c  H18                                                                   01/18/2004 09:58:20 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
LEDBuf . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0004H  6
Minute . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   000AH  1
DAT164 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   FE06H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
CLK164 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   FE04H  1


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