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

📄 bottem.lst

📁 单片机键盘输入扫描方式以及防抖处理,此方法为普遍输入方法.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   BOTTEM                                                                12/02/2007 23:53:05 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE BOTTEM
OBJECT MODULE PLACED IN bottem.OBJ
COMPILER INVOKED BY: F:\Keil\C51\BIN\C51.EXE bottem.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          #pragma REGPARMS CD DB SB OE OT(5)
  17          #include <all.h>
  18          
  19          /************************************************************************
  20          函数功能:       初始化数据缓冲区
  21          入口参数:       bLen:   长度
  22                                  *bpData:数据缓冲区首地址
  23                                  bValue: 初始化值
  24          出口参数:       无
  25          ************************************************************************/
  26          void Init_Array_Func(byte bLen,byte *bpData,byte bValue)
  27          {
  28   1              for (; bLen!=0; bLen--)
  29   1              {
  30   2                      *bpData=bValue;
  31   2                      bpData++;
  32   2              }
  33   1      }
  34          /************************************************************************
  35          函数功能:       二进制数转换为十进制数
  36          入口参数:       dwBin:          二进制数(无符号长整型)
  37                                  *bpBcd:         转换后的十进制数首址
  38          出口参数:       转换的十进制数的个数
  39          ************************************************************************/
  40          byte Bin_Bcd_Func(dword dwBin,byte *bpBcd) 
  41          {
  42   1              byte bpTemp[10],bI,bJ;
  43   1              dword dwTemp;
  44   1              
  45   1              if(!dwBin)
  46   1              {
  47   2                      bpBcd[0] = 0;
  48   2                      return 1;
  49   2              }
  50   1              dwTemp = dwBin;
  51   1              bI = 0;
  52   1              while(1)
  53   1              {
  54   2                      if(!dwTemp)
  55   2                              break;
C51 COMPILER V7.50   BOTTEM                                                                12/02/2007 23:53:05 PAGE 2   

  56   2                      bJ = dwTemp % 10;
  57   2                      dwTemp /= 10;
  58   2                      bpTemp[bI] = bJ;
  59   2                      bI++;
  60   2              }
  61   1              for(bJ = 0; bJ < bI; bJ++)
  62   1                      bpBcd[bJ] = bpTemp[bI-bJ-1];
  63   1              return bI;
  64   1      }
  65          /************************************************************************
  66          函数功能:       将数组数据右移若干位
  67          入口参数:       *bpData:        数据流首址
  68                                  bSteps:         右移位数
  69                                  bLen:           移动前数据流长度
  70                                  bFill:          补入的数据值
  71          出口参数:       移动后数据流长度
  72          ************************************************************************/
  73          byte Right_Move(byte *bpData,byte bSteps,byte bLen,byte bFill)
  74          {
  75   1              byte bI;
  76   1      
  77   1              for(bI = bLen; bI > 0; bI--)
  78   1                      bpData[bI + bSteps - 1] = bpData[bI - 1];
  79   1              for(bI = 0; bI < bSteps; bI++)
  80   1                      bpData[bI] = bFill;
  81   1              return (bSteps + bLen);
  82   1      }
C51 COMPILER V7.50   BOTTEM                                                                12/02/2007 23:53:05 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _Init_Array_Func (BEGIN)
                                           ; SOURCE LINE # 26
;---- Variable 'bLen' assigned to Register 'R7' ----
;---- Variable 'bpData' assigned to Register 'R1/R2/R3' ----
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 28
0000         ?C0001:
0000 EF                MOV     A,R7
0001 600F              JZ      ?C0004
                                           ; SOURCE LINE # 29
                                           ; SOURCE LINE # 30
0003 E500        R     MOV     A,bValue
0005 120000      E     LCALL   ?C?CSTPTR
                                           ; SOURCE LINE # 31
0008 7401              MOV     A,#01H
000A 29                ADD     A,R1
000B F9                MOV     R1,A
000C E4                CLR     A
000D 3A                ADDC    A,R2
000E FA                MOV     R2,A
                                           ; SOURCE LINE # 32
000F 1F                DEC     R7
0010 80EE              SJMP    ?C0001
                                           ; SOURCE LINE # 33
0012         ?C0004:
0012 22                RET     
             ; FUNCTION _Init_Array_Func (END)

             ; FUNCTION _Bin_Bcd_Func (BEGIN)
                                           ; SOURCE LINE # 40
0000 8F00        R     MOV     dwBin+03H,R7
0002 8E00        R     MOV     dwBin+02H,R6
0004 8D00        R     MOV     dwBin+01H,R5
0006 8C00        R     MOV     dwBin,R4
0008 8B00        R     MOV     bpBcd,R3
000A 8A00        R     MOV     bpBcd+01H,R2
000C 8900        R     MOV     bpBcd+02H,R1
                                           ; SOURCE LINE # 41
                                           ; SOURCE LINE # 45
000E EC                MOV     A,R4
000F 4D                ORL     A,R5
0010 4E                ORL     A,R6
0011 4F                ORL     A,R7
0012 7006              JNZ     ?C0005
                                           ; SOURCE LINE # 46
                                           ; SOURCE LINE # 47
0014 120000      E     LCALL   ?C?CSTPTR
                                           ; SOURCE LINE # 48
0017 7F01              MOV     R7,#01H
0019 22                RET     
                                           ; SOURCE LINE # 49
001A         ?C0005:
                                           ; SOURCE LINE # 50
001A 850000      R     MOV     dwTemp+03H,dwBin+03H
001D 850000      R     MOV     dwTemp+02H,dwBin+02H
0020 850000      R     MOV     dwTemp+01H,dwBin+01H
0023 850000      R     MOV     dwTemp,dwBin
                                           ; SOURCE LINE # 51
0026 E4                CLR     A
C51 COMPILER V7.50   BOTTEM                                                                12/02/2007 23:53:05 PAGE 4   

0027 F500        R     MOV     bI,A
0029         ?C0007:
                                           ; SOURCE LINE # 52
                                           ; SOURCE LINE # 53
                                           ; SOURCE LINE # 54
0029 AF00        R     MOV     R7,dwTemp+03H
002B AE00        R     MOV     R6,dwTemp+02H
002D AD00        R     MOV     R5,dwTemp+01H
002F AC00        R     MOV     R4,dwTemp
0031 EC                MOV     A,R4
0032 4D                ORL     A,R5
0033 4E                ORL     A,R6
0034 4F                ORL     A,R7
0035 6039              JZ      ?C0008
                                           ; SOURCE LINE # 55
0037         ?C0009:
                                           ; SOURCE LINE # 56
0037 E4                CLR     A
0038 7B0A              MOV     R3,#0AH
003A FA                MOV     R2,A
003B F9                MOV     R1,A
003C F8                MOV     R0,A
003D AF00        R     MOV     R7,dwTemp+03H
003F AE00        R     MOV     R6,dwTemp+02H
0041 AD00        R     MOV     R5,dwTemp+01H
0043 AC00        R     MOV     R4,dwTemp
0045 120000      E     LCALL   ?C?ULDIV
0048 AF03              MOV     R7,AR3

⌨️ 快捷键说明

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