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

📄 main.lst

📁 周立功单片机上的源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:23:03 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN main.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE main.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;*************************************************************************
                       2     ;       main.asm
                       3     ;       16×16 LED点阵的扫描显示:滚动显示文字
                       4     ;*************************************************************************
                       5     
                       6     
                       7     ;*************************************************************************
                       8     ;设置屏幕滚动速度(单位:×10ms)
                       9     ;*************************************************************************
  000F                10     SCROLL_SPEED    EQU     15
                      11     
                      12     
                      13     ;*************************************************************************
                      14     ;定义I/O端口
                      15     ;*************************************************************************
  0093                16     STR     BIT     P1.3    ;74HC595存储寄存器时钟(Storage register clock)
  0094                17     SI      BIT     P1.4    ;74HC595串行输入信号(Serial Input)
  0095                18     SCK     BIT     P1.5    ;74HC595移位寄存器时钟(Shift register clock)
                      19     
                      20     
                      21     ;*************************************************************************
                      22     ;定义全局变量
                      23     ;*************************************************************************
  0030                24     DispBuf IDATA   0x30    ;定义显示缓冲区(在T1定时中断里扫描)
  0050                25     T1INTSVC_n      DATA    0x30+32 ;函数T1INTSVC()中的静态变量
                      26     
                      27     
                      28     ;*************************************************************************
                      29     ;复位入口
                      30     ;*************************************************************************
0000                  31             ORG     0x0000
0000 0204FE           32             LJMP    Premain
                      33     
                      34     
                      35     ;*************************************************************************
                      36     ;T1中断入口
                      37     ;*************************************************************************
001B                  38             ORG     0x001B
001B 02062E           39             LJMP    T1INTSVC
                      40     
                      41     
                      42     ;*************************************************************************
                      43     ;文件包含
                      44     ;*************************************************************************
                      45     ;$include (Branch.INC) ;分支判断
                +1    46     ;*************************************************************************
                +1    47     ;实用的8051单片机分支判断程序
                +1    48     ;直接对应于C语言中的条件判断语句(相反条件)
                +1    49     ;适用于Keil C51编译器
                +1    50     ;*************************************************************************
                +1    51     
                +1    52     
                +1    53     ;*************************************************************************
                +1    54     ;宏定义:BEQ_B(Branch if Equal)
                +1    55     ;功能:两个位变量比较,如果相等则跳转
                +1    56     ;参数:
                +1    57     ;       b1,b2:要比较的两个位变量(或者位变量与位常量比较)
                +1    58     ;       Label:跳转目标
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:23:03 PAGE     2

                +1    59     ;*************************************************************************
                +1    60     BEQ_B   MACRO   b1, b2, Label
                +1    61     LOCAL   next
                +1    62             MOV     C, b2
                +1    63             JNB     b1, next
                +1    64             CPL     C
                +1    65     next:
                +1    66             JNC     Label
                +1    67             ENDM
                +1    68     
                +1    69     
                +1    70     ;*************************************************************************
                +1    71     ;宏定义:BNE_B(Branch if Not Equal)
                +1    72     ;功能:两个位变量比较,如果不相等则跳转
                +1    73     ;参数:
                +1    74     ;       b1,b2:要比较的两个位变量(或者位变量与位常量比较)
                +1    75     ;       Label:跳转目标
                +1    76     ;*************************************************************************
                +1    77     BNE_B   MACRO   b1, b2, Label
                +1    78     LOCAL   next
                +1    79             MOV     C, b2
                +1    80             JNB     b1, next
                +1    81             CPL     C
                +1    82     next:
                +1    83             JC      Label
                +1    84             ENDM
                +1    85     
                +1    86     
                +1    87     ;*************************************************************************
                +1    88     ;宏定义:BEQ(Branch if Equal)
                +1    89     ;功能:单字节数比较,如果相等则跳转
                +1    90     ;参数:
                +1    91     ;       x,y:要比较的两个数
                +1    92     ;       Label:跳转目标
                +1    93     ;*************************************************************************
                +1    94     BEQ     MACRO   x, y, Label
                +1    95             MOV     A, x
                +1    96             XRL     A, y
                +1    97             JZ      Label
                +1    98             ENDM
                +1    99     
                +1   100     
                +1   101     ;*************************************************************************
                +1   102     ;宏定义:BNE(Branch if Not Equal)
                +1   103     ;功能:单字节数比较,如果不相等则跳转
                +1   104     ;参数:
                +1   105     ;       x,y:要比较的两个数
                +1   106     ;       Label:跳转目标
                +1   107     ;*************************************************************************
                +1   108     BNE     MACRO   x, y, Label
                +1   109             MOV     A, x
                +1   110             CJNE    A, y, Label
                +1   111             ENDM
                +1   112     
                +1   113     
                +1   114     ;*************************************************************************
                +1   115     ;宏定义:BHS(Branch if High or Same)
                +1   116     ;功能:单字节无符号数比较,如果大于或等于则跳转
                +1   117     ;参数:
                +1   118     ;       x,y:要比较的两个数
                +1   119     ;       Label:跳转目标
                +1   120     ;*************************************************************************
                +1   121     BHS     MACRO   x, y, Label
                +1   122             MOV     A, x
                +1   123             CLR     C
                +1   124             SUBB    A, y
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:23:03 PAGE     3

                +1   125             JNC     Label
                +1   126             ENDM
                +1   127     
                +1   128     
                +1   129     ;*************************************************************************
                +1   130     ;宏定义:BHI(Branch if High)
                +1   131     ;功能:单字节无符号数比较,如果大于则跳转
                +1   132     ;参数:
                +1   133     ;       x,y:要比较的两个数
                +1   134     ;       Label:跳转目标
                +1   135     ;*************************************************************************
                +1   136     BHI     MACRO   x, y, Label
                +1   137             MOV     A, x
                +1   138             SETB    C
                +1   139             SUBB    A, y
                +1   140             JNC     Label
                +1   141             ENDM
                +1   142     
                +1   143     
                +1   144     ;*************************************************************************
                +1   145     ;宏定义:BLS(Branch if Low or Same)
                +1   146     ;功能:单字节无符号数比较,如果小于或等于则跳转
                +1   147     ;参数:
                +1   148     ;       x,y:要比较的两个数
                +1   149     ;       Label:跳转目标
                +1   150     ;*************************************************************************
                +1   151     BLS     MACRO   x, y, Label
                +1   152             MOV     A, x
                +1   153             SETB    C
                +1   154             SUBB    A, y
                +1   155             JC      Label
                +1   156             ENDM
                +1   157     
                +1   158     
                +1   159     ;*************************************************************************
                +1   160     ;宏定义:BLO(Branch if Low)
                +1   161     ;功能:单字节无符号数比较,如果小于则跳转
                +1   162     ;参数:
                +1   163     ;       x,y:要比较的两个数
                +1   164     ;       Label:跳转目标
                +1   165     ;*************************************************************************
                +1   166     BLO     MACRO   x, y, Label
                +1   167             MOV     A, x
                +1   168             CLR     C
                +1   169             SUBB    A, y
                +1   170             JC      Label
                +1   171             ENDM
                +1   172     
                +1   173     
                +1   174     ;*************************************************************************
                +1   175     ;宏定义:JZ_W
                +1   176     ;功能:双字节数为0跳转
                +1   177     ;参数:
                +1   178     ;       (xh,xl):要判断的数
                +1   179     ;       Label:跳转目标
                +1   180     ;*************************************************************************
                +1   181     JZ_W    MACRO   xh,xl, Label
                +1   182             MOV     A, xh
                +1   183             ORL     A, xl
                +1   184             JZ      Label
                +1   185             ENDM
                +1   186     
                +1   187     
                +1   188     ;*************************************************************************
                +1   189     ;宏定义:JNZ_W
                +1   190     ;功能:双字节数不为0跳转
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:23:03 PAGE     4

                +1   191     ;参数:
                +1   192     ;       (xh,xl):要判断的数
                +1   193     ;       Label:跳转目标
                +1   194     ;*************************************************************************
                +1   195     JNZ_W   MACRO   xh,xl, Label
                +1   196             MOV     A, xh
                +1   197             ORL     A, xl
                +1   198             JNZ     Label
                +1   199             ENDM
                +1   200     
                +1   201     
                +1   202     ;*************************************************************************
                +1   203     ;宏定义:DJNZ_W
                +1   204     ;功能:双字节数自减1,结果不为0跳转
                +1   205     ;参数:
                +1   206     ;       (xh,xl):要操作的数
                +1   207     ;       Label:跳转目标
                +1   208     ;*************************************************************************
                +1   209     DJNZ_W  MACRO   xh,xl, Label
                +1   210     LOCAL   next
                +1   211             MOV     A, xl
                +1   212             JNZ     next
                +1   213             DEC     xh
                +1   214     next:
                +1   215             DEC     xl
                +1   216             MOV     A, xh
                +1   217             ORL     A, xl
                +1   218             JNZ     Label
                +1   219             ENDM
                +1   220     
                +1   221     

⌨️ 快捷键说明

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