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

📄 subprogram.lst

📁 this file for bank in keil
💻 LST
字号:
A51 MACRO ASSEMBLER  SUBPROGRAM                                                           02/21/2005 09:48:29 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   (CCTAB16,CCTAB24,CHTAB816,CHTAB1616)
                      36       EXTRN  XDATA     (CCTAB48)
                      37       PUBLIC GRAYB
                      38        
                      39       PUBLIC CLEAR,_ONEBYTE_PR,_CLCW_PR,_CL_DOT 
                      40       PUBLIC _W_DOT,_CH1616_PR,_CH4840_PR,_CC24PR,_C816_PR,_C1632_PR,_CLCW_PRR,_C1616_PR
                      41     mypro segment code
----                  42     rseg mypro                     ; 允许编译器重新定位
                      43     
                      44     
                      45     
                      46     
                      47     
                      48     
                      49     
                      50     
                      51      
                      52      
                      53      
                      54     
                      55      
                      56     ; 汉字(24x24点阵)演示程序            callby
                      57     ;DISCH24:MOV     GRAYB,#4CH           ;灰度值设置: 正向显示
                      58     ;        MOV     O_XL,#0CH
A51 MACRO ASSEMBLER  SUBPROGRAM                                                           02/21/2005 09:48:29 PAGE     2

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

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

⌨️ 快捷键说明

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