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

📄 subprogram.lst

📁 this file is for keil keyboard
💻 LST
字号:
A51 MACRO ASSEMBLER  SUBPROGRAM                                                           02/06/2005 11:28:44 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Subprogram.OBJ
ASSEMBLER INVOKED BY: D:\PROGRAM FILES\KEIL\C51\BIN\A51.EXE Subprogram.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;SUBPROGRAM  FOR  LCD  DISPLAY
                       2     ;ASM  FILE  FOR  LCD   DISPLAY  
                       3      
                       4     ;;;;.asm
                       5     ; 直接访问方式地址定义,根据用户平台接口修改
                       6       
  D000                 7     CWADD1  EQU     0D000H          ; 写指令代码地址
  D001                 8     DWADD1  EQU     0D001H          ; 写参数及显示数据地址
  D001                 9     DRADD1  EQU     0D001H          ; 读参数及显示数据地址
                      10     ; 间接控制方式信号定义,根据用户平台接口修改
                      11     ;//RS   EQU     P3.0            ; RS
                      12     ;//RD   EQU     P3.1            ; /RD
                      13     ;//WR   EQU     P3.2            ; /WR
                      14     ;//DATBUS       EQU     P1              ; 数据总线
                      15     ; 程序参数定义,根据用户选择的LCM型号修改
  00A0                16     PARA1   EQU    0A0H             ; 显示区域宽度
                      17     ; 程序变量定义,根据用户平台提供的内部资源修改
  0050                18     COM     EQU     50H             ; 指令寄存器
  0051                19     DAT1    EQU     51H             ; 参数及显示数据寄存器
  0052                20     COUNT1  EQU     52H             ; 计数器1
  0053                21     COUNT2  EQU     53H             ; 计数器2
  0054                22     O_XL    EQU     54H             ; X坐标低8位寄存器(字节)
                      23                                     ; X坐标低8位寄存器(点列)
  0055                24     O_XH    EQU     55H             ; X坐标高8位寄存器(点列)
                      25                                     ; D7位为绘点(D7=1)和消点(D7=0)标志位
  0056                26     O_YL    EQU     56H             ; Y坐标寄存器低8位(点行)
  0057                27     O_YH    EQU     57H             ; Y坐标寄存器高8位(点行)
  0058                28     CODEE   EQU     58H             ; 字符代码
                      29     
  0059                30     GRAYB   EQU     59H         
                      31                                    ; 00H-暗;01H-淡;
                      32                                    ; 10H-深;11H-亮
  005A                33     GRAYH   EQU     5AH            ; 灰度数据寄存器高字节
  005B                34     GRAYL   EQU     5BH            ; 灰度数据寄存器低?
                      35       EXTRN  XDATA   (CCTAB,CCTAB24,CHTAB816,CHTAB1616)
                      36       PUBLIC GRAYB
                      37        
                      38       PUBLIC CLEAR,_ONEBYTE_PR,_CLCW_PR,_CL_DOT 
                      39       PUBLIC _W_DOT,_CH1616_PR,_CC24PR,_C816_PR,_C1632_PR,_CLCW_PRR,_C1616_PR
                      40     mypro segment code
----                  41     rseg mypro                     ; 允许编译器重新定位
                      42     
                      43     
                      44     
                      45     
                      46     
                      47     
                      48     
                      49     
                      50      
                      51      
                      52      
                      53     
                      54      
                      55     ; 汉字(24x24点阵)演示程序            callby
                      56     ;DISCH24:MOV     GRAYB,#4CH           ;灰度值设置: 正向显示
                      57     ;        MOV     O_XL,#0CH
                      58     ;        MOV     O_YL,#20H
A51 MACRO ASSEMBLER  SUBPROGRAM                                                           02/06/2005 11:28:44 PAGE     2

                      59     ;        MOV     O_YH,#00H
                      60      ;       MOV     CODEE,#00H
                      61      ;       LCALL   _CC24PR
                      62      ;;;       MOV     GRAYB,#0C4H        ;灰度值设置: 负向显示
                      63       ;      MOV     O_XL,#15H
                      64        ;     MOV     O_YL,#38H
                      65        ;     MOV     O_YH,#01H
                      66        ;     MOV     CODEE,#01H
                      67        ;     LCALL   _CC24PR
                      68        ;     SJMP $
                      69     ; 绘图演示程序段       callby
                      70     ;DRAW:           MOV     GRAYB,#0C0H  ;有灰度的显示将把所有显示都分成相应的灰度等级
                      71      ;               MOV     R2,#00H
                      72      ;               MOV     R3,#00H
                      73      ;               MOV     R4,#00H
                      74       ;              MOV     R5,#00H
                      75       ;      LOOP1:  MOV     O_XL,R2
                      76       ;              MOV     O_XH,R3
                      77        ;             MOV     O_YL,R4
                      78        ;             MOV     O_YH,R5
                      79        ;             LCALL   _W_DOT
                      80        ;             MOV     A,R2
                      81         ;            MOV     R2,A
                      82         ;            MOV     A,R3
                      83         ;            ADDC    A,#00H
                      84         ;            MOV     R3,A
                      85          ;           MOV     A,R4
                      86          ;           ADD     A,#01H
                      87          ;           MOV     R4,A
                      88           ;          MOV     A,R5
                      89          ;           ADDC    A,#00H
                      90           ;          MOV     R5,A
                      91           ;          CJNE    A,#01H,LOOP1    
                      92           ;          SJMP     $
                      93     ;----------------------------------callby----------------
                      94     ;WIPE:           MOV     GRAYB,#00H
                      95     ;                MOV     R2,#00H
                      96     ;                MOV     R3,#80H
                      97     ;                MOV     R4,#00H
                      98     ;                MOV     R5,#00H
                      99      ;       LOOP2:  MOV     O_XL,R2
                     100      ;               MOV     O_XH,R3
                     101      ;               MOV     O_YL,R4
                     102      ;               MOV     O_YH,R5
                     103      ;               LCALL   _W_DOT
                     104      ;               MOV     A,R2
                     105      ;               ADD     A,#01H
                     106       ;              MOV     R2,A
                     107       ;              MOV     A,R3
                     108       ;              ADDC    A,#00H
                     109       ;              MOV     R3,A
                     110       ;              MOV     A,R4
                     111       ;              ADD     A,#01H
                     112       ;              MOV     R4,A
                     113       ;              MOV     A,R5
                     114       ;              ADDC    A,#00H
                     115        ;             MOV     R5,A
                     116       ;              CJNE    A,#01H,LOOP2
                     117        ;             SJMP    $
                     118     ;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                     119     ;  直接访问方式的驱动子程序
                     120     ;   程序口地址设置CWADD1,DWADD1,DRADD1
                     121     ;   占用内部资源DAT1,A,COM
                     122     ;   程序输入变量: DAT1,,COM
                     123     ;===============直接访问方式驱动子程序==================
                     124     ; 写指令子程序      ////childprogram(7)
A51 MACRO ASSEMBLER  SUBPROGRAM                                                           02/06/2005 11:28:44 PAGE     3

0000 C082            125     PR1:    PUSH    DPL
0002 C083            126             PUSH    DPH
0004 90D000          127             MOV     DPTR,#CWADD1
0007 E550            128             MOV     A,COM
0009 F0              129             MOVX    @DPTR,A
000A D083            130             POP     DPH
000C D082            131             POP     DPL
000E 22              132             RET
                     133     ; 写数据子程序    childprogram(8)
000F C082            134     PR2:    PUSH    DPL
0011 C083            135             PUSH    DPH
0013 90D001          136             MOV     DPTR,#DWADD1
0016 E551            137             MOV     A,DAT1
0018 F0              138             MOVX    @DPTR,A
0019 D083            139             POP     DPH
001B D082            140             POP     DPL
001D 22              141             RET
                     142     ; 读数据子程序    childprogram(9)
001E C082            143     PR3:    PUSH    DPL
0020 C083            144             PUSH    DPH
0022 90D001          145             MOV     DPTR,#DRADD1
0025 E0              146             MOVX    A,@DPTR
0026 F551            147             MOV     DAT1,A
0028 D083            148             POP     DPH
002A D082            149             POP     DPL
002C 22              150             RET
                     151     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                     152      
                     153      
                     154      
                     155      
                     156     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                     157     ; 灰度生成子程序(字节)GRAYt m       childprogram//(6)//
                     158     ;  占用内部资源:GRAYB,GRAYH,GRAYL,COUNT2,A
                     159     ;  内部调用子程序:PR2
                     160     ;  程序调用入口: GRAY
                     161     ;  程序输入变量:GRAYB
                     162     ;  灰度生成子程序(字节)如下:
                     163     
002D                 164     _GRAY:  ; MOV GRAYB,R7         ;用两个字节来描述一个字节的内容这一个字节的数据,1代表前景数

⌨️ 快捷键说明

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