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

📄 main.lst

📁 8位数码管驱动显示实验,适用于初学单片机的朋友,了解单片机驱动数码管的方法.同时想结识学单片机的朋友,共同进步.所用编辑环境是KEIL 2.0 在WINXP上通过.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  12/06/2007 22:38:44 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          ****************************************************************************************************
   3          *               沈阳市万柳塘路56号
   4          *       (c)著作权2005,世信汇诚电子版权所有
   5          *     世信汇诚电子的源代码是不公开, 属于世信汇诚电子的企业机密文件, 任何未经允许使用
   6          * 或发表的行为都是违法行,任何个人或组织尝试或者参与修改源代码的行为,都应尽早得到世信
   7          * 汇诚电子设计组的同意.
   8          *             
   9          * 版本号:1.0
  10          * 作  者:linan4526
  11          * 日  期:2005-05-08
  12          *---------------------------------------------------------------------------------------------------
  13          * 描  述:SXHC-I型MCU51实验
  14          ****************************************************************************************************
  15          */
  16          #include <main.h>
  17          /**********************************************************************
  18          函数功能:       单位为1毫秒延迟函数
  19          入口参数:       wTime: 延迟wTime毫秒
  20          出口参数:       无
  21          ***********************************************************************/
  22          void Delay(word wTime)
  23          {
  24   1              dword dwTime;
  25   1      
  26   1              for (; wTime!=0; wTime--)
  27   1              {
  28   2                      for (dwTime=40; dwTime!=0; dwTime--);
  29   2              }
  30   1      }
  31          /**********************************************************************
  32          函数功能:       主函数
  33          入口参数:       无
  34          出口参数:       无
  35          ***********************************************************************/
  36          void main()
  37          {
  38   1              word wNum;
  39   1              while (1)
  40   1              {
  41   2                      wNum=2;
  42   2                      while (wNum--)/*以下程序为每隔600毫秒点亮一个数码管*/
  43   2                      {
  44   3                              P2_6=0;/*给第1个数码管供电*/
  45   3                              P2_7=1;/*给第2个数码管断电*/
  46   3                              P0=0xf9;/*第1个数码管显示1*/
  47   3                              Delay(300);/*延迟300毫秒*/
  48   3                              P2_6=1;/*给第1个数码管断电*/
  49   3                              P2_7=0;/*给第1个数码管供电*/
  50   3                              P0=0x4c;/*第2个数码管显示2*/
  51   3                              Delay(300);
  52   3                      }
  53   2                      wNum=5;
  54   2                      while (wNum--)/*以下程序为每隔100毫秒点亮一个数码管*/
  55   2                      {
C51 COMPILER V7.50   MAIN                                                                  12/06/2007 22:38:44 PAGE 2   

  56   3                              P2_6=0;/*给第1个数码管供电*/
  57   3                              P2_7=1;/*给第2个数码管断电*/
  58   3                              P0=0xf9;/*第1个数码管显示1*/
  59   3                              Delay(50);/*延迟300毫秒*/
  60   3                              P2_6=1;/*给第1个数码管断电*/
  61   3                              P2_7=0;/*给第1个数码管供电*/
  62   3                              P0=0x4c;/*第2个数码管显示2*/
  63   3                              Delay(50);
  64   3                      }
  65   2                      wNum=10;
  66   2                      while (wNum--)/*以下程序为每隔50毫秒点亮一个数码管*/
  67   2                      {
  68   3                              P2_6=0;/*给第1个数码管供电*/
  69   3                              P2_7=1;/*给第2个数码管断电*/
  70   3                              P0=0xf9;/*第1个数码管显示1*/
  71   3                              Delay(10);/*延迟300毫秒*/
  72   3                              P2_6=1;/*给第1个数码管断电*/
  73   3                              P2_7=0;/*给第1个数码管供电*/
  74   3                              P0=0x4c;/*第2个数码管显示2*/
  75   3                              Delay(10);
  76   3                      }
  77   2                      wNum=50;
  78   2                      while (wNum--)/*以下程序为每隔10毫秒点亮一个数码管*/
  79   2                      {
  80   3                              P2_6=0;/*给第1个数码管供电*/
  81   3                              P2_7=1;/*给第2个数码管断电*/
  82   3                              P0=0xf9;/*第1个数码管显示1*/
  83   3                              Delay(5);/*延迟300毫秒*/
  84   3                              P2_6=1;/*给第1个数码管断电*/
  85   3                              P2_7=0;/*给第1个数码管供电*/
  86   3                              P0=0x4c;/*第2个数码管显示2*/
  87   3                              Delay(5);
  88   3                      }
  89   2                      wNum=250;
  90   2                      while (wNum--)/*以下程序为每隔5毫秒点亮一个数码管*/
  91   2                      {
  92   3                              P2_6=0;/*给第1个数码管供电*/
  93   3                              P2_7=1;/*给第2个数码管断电*/
  94   3                              P0=0xf9;/*第1个数码管显示1*/
  95   3                              Delay(1);/*延迟300毫秒*/
  96   3                              P2_6=1;/*给第1个数码管断电*/
  97   3                              P2_7=0;/*给第1个数码管供电*/
  98   3                              P0=0x4c;/*第2个数码管显示2*/
  99   3                              Delay(1);
 100   3                      }
 101   2              }
 102   1      }
C51 COMPILER V7.50   MAIN                                                                  12/06/2007 22:38:44 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _Delay (BEGIN)
                                           ; SOURCE LINE # 22
0000 8E00        R     MOV     wTime,R6
0002 8F00        R     MOV     wTime+01H,R7
                                           ; SOURCE LINE # 23
                                           ; SOURCE LINE # 26
0004         ?C0001:
0004 E500        R     MOV     A,wTime+01H
0006 4500        R     ORL     A,wTime
0008 6041              JZ      ?C0007
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 28
000A E4                CLR     A
000B 750028      R     MOV     dwTime+03H,#028H
000E F500        R     MOV     dwTime+02H,A
0010 F500        R     MOV     dwTime+01H,A
0012 F500        R     MOV     dwTime,A
0014         ?C0004:
0014 E4                CLR     A
0015 FF                MOV     R7,A
0016 FE                MOV     R6,A
0017 FD                MOV     R5,A
0018 FC                MOV     R4,A
0019 AB00        R     MOV     R3,dwTime+03H
001B AA00        R     MOV     R2,dwTime+02H
001D A900        R     MOV     R1,dwTime+01H
001F A800        R     MOV     R0,dwTime
0021 C3                CLR     C
0022 120000      E     LCALL   ?C?ULCMP
0025 601A              JZ      ?C0003
0027 74FF              MOV     A,#0FFH
0029 2500        R     ADD     A,dwTime+03H
002B F500        R     MOV     dwTime+03H,A
002D E500        R     MOV     A,dwTime+02H
002F 34FF              ADDC    A,#0FFH
0031 F500        R     MOV     dwTime+02H,A
0033 E500        R     MOV     A,dwTime+01H
0035 34FF              ADDC    A,#0FFH
0037 F500        R     MOV     dwTime+01H,A
0039 E500        R     MOV     A,dwTime
003B 34FF              ADDC    A,#0FFH
003D F500        R     MOV     dwTime,A
003F 80D3              SJMP    ?C0004
                                           ; SOURCE LINE # 29
0041         ?C0003:
0041 E500        R     MOV     A,wTime+01H
0043 1500        R     DEC     wTime+01H
0045 7002              JNZ     ?C0021
0047 1500        R     DEC     wTime
0049         ?C0021:
0049 80B9              SJMP    ?C0001
                                           ; SOURCE LINE # 30
004B         ?C0007:
004B 22                RET     
             ; FUNCTION _Delay (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 36
                                           ; SOURCE LINE # 37
C51 COMPILER V7.50   MAIN                                                                  12/06/2007 22:38:44 PAGE 4   

0000         ?C0008:
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 41
0000 750000      R     MOV     wNum,#00H
0003 750002      R     MOV     wNum+01H,#02H
0006         ?C0010:
                                           ; SOURCE LINE # 42
0006 E500        R     MOV     A,wNum+01H
0008 1500        R     DEC     wNum+01H
000A AE00        R     MOV     R6,wNum
000C 7002              JNZ     ?C0022
000E 1500        R     DEC     wNum
0010         ?C0022:
0010 4E                ORL     A,R6
0011 601E              JZ      ?C0011
                                           ; SOURCE LINE # 43
                                           ; SOURCE LINE # 44
0013 C2A6              CLR     P2_6
                                           ; SOURCE LINE # 45
0015 D2A7              SETB    P2_7
                                           ; SOURCE LINE # 46
0017 7580F9            MOV     P0,#0F9H
                                           ; SOURCE LINE # 47
001A 7F2C              MOV     R7,#02CH
001C 7E01              MOV     R6,#01H
001E 120000      R     LCALL   _Delay
                                           ; SOURCE LINE # 48
0021 D2A6              SETB    P2_6
                                           ; SOURCE LINE # 49

⌨️ 快捷键说明

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