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

📄 asmpro.lst

📁 完整功放的控制程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER      ASMPRO                                                              DATE  21/06/03   PAGE     1


MS-DOS MACRO ASSEMBLER A51 V4.4 
OBJECT MODULE PLACED IN ASMPRO.OBJ
ASSEMBLER INVOKED BY:  A51 ASMPRO.ASM DB

LOC  OBJ            LINE     SOURCE

                       1     ;****************************************************************************
                       2     ;=============================== ASMPRO(V10)=================================
                       3     ;-------------------------------- 内存分配 ----------------------------------
                       4             ;内存助记符清单...
                       5             ;N   (常数)
                       6             ;B   (位变量, bdata)
                       7             ;BC  (单片机控制脚)
                       8             ;R   (内部内存变量, data)
                       9             ;RG  (内部内存变量数组, data)
                      10             ;RX  (外部内存变量, xdata)
                      11             ;RXG (外部内存变量数组, xdata)
                      12             ;例子: N_XXX, B_XXX, R_XXX ...
                      13     
                      14             PUBLIC  RESET 
                      15             ;A51汇编器伪指令(PUBLIC) 为其它模块所使用
                      16             ;....................... 常量、变量定义 ...........................
                      17             ;N_KEEPM        EQU     42D
                      18             
                      19         
                      20             ;***** 汇编的子程序之间的过程数据传递数组 uchar par[4] *****
                      21             EXTRN   DATA(PAR)       ;第1字节 -- PAR
                      22                                     ;第2字节 -- PAR+01H
                      23                                     ;第3字节 -- PAR+02H
                      24                                     ;第4字节 -- PAR+03H
                      25                                     ;...
                      26             ;A51汇编器伪指令(EXTRN) 列出其它模块中定义过的符号,字节和位
                      27             ;***** 汇编的子程序之间的过程数据传递位组  *****************
                      28             EXTRN   BIT(SYS_START)          ;第一位显示最高位
                      29     
                      30     ;=========================== 汇编程序开始 ===================================
                      31     ;****************************************************************************
                      32             CSEG    AT(0003H)       ;External Interrupt 0 
0003 32               33             RETI
                      34                                     ;A51汇编器伪指令(CSEG),程序绝对段
                      35             CSEG    AT(000BH)       ;Timer 0
000B 32               36             RETI
                      37                                     ;A51汇编器伪指令(CSEG),程序绝对段
                      38             CSEG    AT(0013H)       ;External Interrupt 1
0013 32               39             RETI
                      40                                     ;A51汇编器伪指令(CSEG),程序绝对段
                      41             CSEG    AT(001BH)       ;Timer 1
001B 0204BD           42             LJMP    TIME1_INT
001E 32               43             RETI
                      44                                     ;A51汇编器伪指令(CSEG),程序绝对段
                      45             CSEG    AT(0023H)       ;Serial Port
0023 32               46             RETI
                      47                                     ;A51汇编器伪指令(CSEG),程序绝对段
                      48             CSEG    AT(002BH)       ;Serial 52 CPU Timer2/T2Ex
002B 32               49             RETI
                      50                                     ;A51汇编器伪指令(CSEG),程序绝对段
002C 00               51             NOP
002D 00               52             NOP
002E 00               53             NOP
                      54     
A51 MACRO ASSEMBLER      ASMPRO                                                              DATE  21/06/03   PAGE     2


LOC  OBJ            LINE     SOURCE

                      55             ;****** 包括外部的汇编子程序 **********************************
                      56             $INCLUDE (PT6311.ASM)
                =1    57     ;*******************************第一个PT6311 器件子程序集 ****************************
                =1    58     ;VFD控制驱动器
                =1    59     ;占用:  ACC, R0, R1
                =1    60     
                =1    61             ;************ 公共变量定义 ****************
                =1    62             PUBLIC  WVFD_6311
                =1    63             PUBLIC  GETKEY_6311
                =1    64             PUBLIC  SETUP_6311
                =1    65             PUBLIC  DIM_VFD
                =1    66             PUBLIC  WLED_6311
                =1    67            
                =1    68             EXTRN   DATA(DIM_NUM)          ;现键值寄存
                =1    69             
                =1    70             ;************* 变量说明 *******************
  00A6          =1    71             BC_DIN_6311     BIT     P2.6    ;数据输入脚
  00A6          =1    72             BC_DOUT_6311    BIT     P2.6    ;数据输出脚
  00B6          =1    73             BC_CLK_6311     BIT     P3.6    ;时钟
  00B7          =1    74             BC_STB_6311     BIT     P3.7    ;使能脚
                =1    75     
                =1    76             
                =1    77             ;************** 常数定义 ******************
  0004          =1    78             PT6311KEY_NUM   EQU   4         ;现在用的6311键总数(48个)
  0042          =1    79             READ_6311KEY    EQU   42H       ;PT6311读键值命令符
                =1    80     ;=============================== 公共子程序 (可被C调用) ===============================
                =1    81     
                =1    82     ;************* 写6311显示内存  **************
                =1    83     ;********************************************
                =1    84     ;参数1: PAR     要写的显存地址(MSB: 1 1 B5,B4,B3,B2,B1,B0 :LSB)(B5-B0 MEM START ADDRESS)
                =1    85     ;参数2: PAR+03H 写的高1位数据
                =1    86     ;参数3: PAR+02H 写的中8位数据
                =1    87     ;参数4: PAR+01H 写的低8位数据(先送出, 且从bit0位开始)
                =1    88     ;返回:
                =1    89     ;占用:  ACC
                =1    90     
002F            =1    91     WVFD_6311:                       ;发送数据到PT6311进行显示
002F C2B7       =1    92               CLR   BC_STB_6311      ;pt6311 stb=0 (ENABLE)
0031 7440       =1    93               MOV   A,#40H           ;data set command--write data to disp mem by increment addr
                             ess mod
0033 1200DA     =1    94               LCALL DISP             ;sendn data to pt6311 here is data set command
0036 D2B7       =1    95               SETB  BC_STB_6311      ;STD=1 (DISABLE)
0038 00         =1    96               NOP
0039 C2B7       =1    97               CLR   BC_STB_6311      ;PT6311 ENABLE
003B E500     F =1    98               MOV   A, PAR           ;pt6311 disp mem start mem in 1DH
003D 1200DA     =1    99               LCALL DISP             ;send data to pt6311 here is address set command
0040 E500     F =1   100               MOV   A, PAR+02H
0042 1200DA     =1   101               LCALL DISP             ;send data to pt6311 here is transmission data
0045 E500     F =1   102               MOV   A, PAR+01H
0047 1200DA     =1   103               LCALL DISP             ;send data to pt6311 here is transmission data
004A D2B7       =1   104               SETB  BC_STB_6311      ;PT6311 DISABLE
004C 22         =1   105               RET
                =1   106     
                =1   107     
                =1   108     ;******** 读键盘按键子程序  ************
                =1   109     ;***************************************
                =1   110     ;参数:
                =1   111     ;返回: PAR      返回键值, 0=无按键
                =1   112     ;占用: ACC
A51 MACRO ASSEMBLER      ASMPRO                                                              DATE  21/06/03   PAGE     3


LOC  OBJ            LINE     SOURCE

                =1   113     
004D            =1   114     GETKEY_6311:
004D D2B7       =1   115            SETB  BC_STB_6311                ;STB
004F D2A6       =1   116            SETB  BC_DOUT_6311               ;pt6311 Dout
0051 D2A6       =1   117            SETB  BC_DIN_6311                ;pt6311 Din
0053 00         =1   118            NOP 
0054 C2B7       =1   119            CLR   BC_STB_6311                ;pt6311 STB
0056 7442       =1   120            MOV   A, #READ_6311KEY
0058 1200DA     =1   121            LCALL DISP                       ;向pt6311发送读键值命令
005B 750004   F =1   122            MOV   PAR, #PT6311KEY_NUM
005E 00         =1   123            NOP
005F            =1   124     LBL_P8:
005F C2B6       =1   125            CLR   BC_CLK_6311                ;Pt6311 CLK
0061 00         =1   126            NOP
0062 00         =1   127            NOP
0063 00         =1   128            NOP                              
0064 00         =1   129            NOP
0065 A2A6       =1   130            MOV   C,BC_DOUT_6311             ;pt6311 Dout
0067 400A       =1   131            JC    LBL_P9 
0069 00         =1   132            NOP
006A D2B6       =1   133            SETB  BC_CLK_6311                ;Pt6311 CLK
006C 00         =1   134            NOP
006D D500EF   F =1   135            DJNZ  PAR, LBL_P8                ;PAR表示键位置
0070 020074     =1   136            LJMP  LBL_P99
0073            =1   137     LBL_P9:
0073 00         =1   138            NOP
0074            =1   139     LBL_P99:
0074 D2B7       =1   140            SETB  BC_STB_6311                ;pt6311 STB
0076 22         =1   141            RET 
                =1   142     
                =1   143     ;*****************************************                                              
                =1   144     ;********** 送数据到6311的LED口 *********
                =1   145     ;****************************************
                =1   146     ;参数:  PAR     要送入的数据
                =1   147     ;返回:
                =1   148     ;占用:  ACC
                =1   149     
0077            =1   150     WLED_6311:
0077 C2B7       =1   151         CLR  BC_STB_6311            ;pt6311 stb=0 (ENABLE)
0079 7441       =1   152         MOV  A,#41H                 ;data set command--write data to LED PORT
007B 1200DA     =1   153         LCALL DISP                  ;sendn data to pt6311 here is data set command
007E E500     F =1   154         MOV  A, PAR                 ;pt6311 LED DATA
0080 1200DA     =1   155         LCALL DISP                  ;send data to pt6311 here is address set command
0083 D2B7       =1   156         SETB BC_STB_6311            ;PT6311 DISABLE
0085 22         =1   157         RET
                =1   158     
                =1   159     ;*********************************************
                =1   160     ;参数:
                =1   161     ;返回:
                =1   162     ;占用: ACC
                =1   163     
0086            =1   164     SETUP_6311:
0086 C2B7       =1   165            CLR   BC_STB_6311      ;ready to send data to pt6311 STB
0088 740C       =1   166            MOV   A,#0CH           ;0000,1100=0CH  13G,15P
008A 1200DA     =1   167            LCALL DISP             ;send command to pt6311,here is set displayer mod,11dig/17seg

                             008D D2B7       =1   168            SETB  BC_STB_6311      ;STD
008F 22         =1   169            RET
                =1   170     
A51 MACRO ASSEMBLER      ASMPRO                                                              DATE  21/06/03   PAGE     4


LOC  OBJ            LINE     SOURCE

                =1   171     ;********** 打开荧光显示  **************
                =1   172     ;参数:
                =1   173     ;返回:
                =1   174     ;占用:  ACC
                =1   175     
0090 C2B7       =1   176     DIM_VFD:  CLR   BC_STB_6311             ;STD=0  点亮显示字符
0092 00         =1   177               NOP
0093 E500     F =1   178               MOV   A,DIM_NUM
0095 B40005     =1   179               CJNE  A,#00H,LBL_DIM_00
0098 7488       =1   180               MOV   A,#88H
009A 0200CF     =1   181               LJMP  LBL_DIM_11
009D            =1   182     LBL_DIM_00:
009D B40105     =1   183               CJNE  A,#01H,LBL_DIM_1
00A0 7489       =1   184               MOV   A,#89H
00A2 0200CF     =1   185               LJMP  LBL_DIM_11
00A5            =1   186     LBL_DIM_1:        
00A5 B40205     =1   187               CJNE  A,#02H,LBL_DIM_2
00A8 748A       =1   188               MOV   A,#8AH
00AA 0200CF     =1   189               LJMP  LBL_DIM_11
00AD            =1   190     LBL_DIM_2:        
00AD B40305     =1   191               CJNE  A,#03H,LBL_DIM_3
00B0 748B       =1   192               MOV   A,#8BH

⌨️ 快捷键说明

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