12864.lst

来自「买板子时赠的实验例子」· LST 代码 · 共 1,202 行 · 第 1/5 页

LST
1,202
字号
A51 MACRO ASSEMBLER  12864                                                                03/29/2005 16:02:36 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;********************************************************************************      
                       2     ;*  标题:  伟纳电子ME300B单片机开发系统演示程序 - 12864LCD(不带字库)演示       *      
                       3     ;*  文件:  wl015.asm                                                            *      
                       4     ;*  日期:  2005-3-20                                                            *      
                       5     ;*  版本:  1.0                                                                  *      
                       6     ;*  作者:  sauwa                                                                *      
                       7     ;*  邮箱:  sauwa@willar.com                                                     *      
                       8     ;*  网站: http://www.willar.com                                                *      
                       9     ;********************************************************************************      
                      10     ;*  描述:                                                                       *      
                      11     ;*         12864LCD(不带字库)演示程序                                          *      
                      12     ;*                                                                              *      
                      13     ;*          控制器:KS0107                                                      *
                      14     ;*          LCD型号:TS12864A-2或兼容型号                                       *
                      15     ;*          MCU:AT89S52 ,晶体频率:11.0592MHz                                   *
                      16     ;*          取模方式:纵向字节倒序                                              *
                      17     ;*          CS1和CS2为高电平有效                                                *          
                                                                                              *      
                      18     ;*                                                                              *      
                      19     ;********************************************************************************      
                      20     ;* 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *      
                      21     ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *      
                      22     ;********************************************************************************      
                      23     
                      24             
                      25     ;***************硬件端口定义***********
  00A0                26               RS       EQU   P2.0
  00A1                27               RW       EQU   P2.1
  00A2                28               E        EQU   P2.2
  00A3                29               CS1      EQU   P2.3
  00A4                30               CS2      EQU   P2.4
  00A5                31               RST      EQU   P2.5   
  0020                32               COM      EQU   20H    ;指令数据寄存器
  0021                33               DAT      EQU   21H    ;显示数据寄存器
                      34     
                      35     ;**********************************主程序入口地址 
0000                  36             ORG     0000H  
0000 0103             37             AJMP    STR  
0003                  38             ORG     0003H           
                      39          
                      40     ;*********************************中断程序入口地址
0003                  41     STR:    
0003 0105             42             AJMP    L0100
                      43       
0005 C2A5             44     L0100:  CLR     RST
0007 00               45             NOP
0008 00               46             NOP
0009 D2A5             47             SETB    RST
                      48             
                      49     ;********************************以上是软件复位
000B 758160           50             MOV     SP,#60H
000E 75A881           51             MOV     IE,#81H            ;中断允许
0011 75B801           52             MOV     IP,#01H            ;优先中断
0014 758800           53             MOV     TCON,#00H          ;电平中断
0017 75203F           54             MOV     COM,#3FH         ;显示开
001A 120110           55             LCALL   S02A9            ;左半屏写指令子程序
001D 120120           56             LCALL   S02C1            ;右半屏写指令子程序
                      57     ;----------------------------------------------------------------------
A51 MACRO ASSEMBLER  12864                                                                03/29/2005 16:02:36 PAGE     2

0020 7520C0           58             MOV     COM,#0C0H        ;第一行        
0023 120110           59             LCALL   S02A9            ;左半屏写指令子程序
0026 120120           60             LCALL   S02C1            ;右半屏写指令子程序
                      61     ;----------------------------------------------------------------------
0029 7520B8           62             MOV     COM,#0B8H       ;第一页        
002C 120110           63             LCALL   S02A9           ;左半屏写指令子程序
002F 120120           64             LCALL   S02C1           ;右半屏写指令子程序
                      65     ;----------------------------------------------------------------------
0032 752040           66             MOV     COM,#40H        ;第一列
0035 120110           67             LCALL   S02A9           ;左半屏写指令子程序
0038 120120           68             LCALL   S02C1           ;右半屏写指令子程序
                      69     ;********************************************************以上是软件初始化
003B 75F0AA           70             MOV     B,#0AAH
003E 1200BD           71             LCALL   XIHX            ;显示横线1
0041 120168           72             LCALL   DELAY 
                      73           ; MOV     B,#55H
                      74            ; LCALL   XIHX    
                      75            ; LCALL   DELAY           ;显示横线2
0044 75F0FF           76             MOV     B,#0FFH
0047 752900           77             MOV     29H,#00H       
004A 1200E2           78             LCALL   XISX    
004D 120168           79             LCALL   DELAY            ;显示竖线1
                      80            ; MOV     B,#00H
                      81            ; MOV     29H,#0FFH
                      82           ; LCALL   XISX    
                      83            ; LCALL   DELAY            ;显示竖线2
                      84     
0050 900175           85             MOV     DPTR,#TAB1
0053 12007F           86             LCALL   LEFT
0056 900375           87             MOV     DPTR,#TAB2
0059 12009E           88             LCALL   RIGHT       
005C 120168           89             LCALL   DELAY             ;显示第一幅图片
                      90     
005F 900575           91             MOV     DPTR,#TAB3
0062 12007F           92             LCALL   LEFT
0065 900775           93             MOV     DPTR,#TAB4
0068 12009E           94             LCALL   RIGHT       
006B 120168           95             LCALL   DELAY              ;显示第二幅图片
                      96     
006E 900975           97             MOV     DPTR,#TAB5
0071 12007F           98             LCALL   LEFT
0074 900B75           99             MOV     DPTR,#TAB6
0077 12009E          100             LCALL   RIGHT       
007A 120168          101             LCALL   DELAY              ;显示第三幅图片
007D 0105            102             AJMP    L0100
                     103     ;=======================================================以上是主程序
007F 79B8            104     LEFT:   MOV     R1,#0B8H
0081 8920            105     _AB:     MOV     COM,R1          ;第一页        
0083 120110          106             LCALL   S02A9           ;左半屏写指令子程序     
0086 752040          107             MOV     COM,#40H        ;第一列
0089 120110          108             LCALL   S02A9           ;左半屏写指令子程序      
008C 7840            109             MOV     R0, #64 
008E 7400            110     S027B:  MOV     A,#00H
0090 93              111             MOVC    A,@A+DPTR               
0091 F521            112             MOV     DAT,A        
0093 120118          113             LCALL   S02B1           ;左半屏写数据子程序         
0096 A3              114             INC     DPTR    
0097 D8F5            115             DJNZ    R0,S027B
0099 09              116             INC     R1        
009A B9C0E4          117             CJNE    R1, #0C0H,_AB      
009D 22              118             RET
                     119     ;======================================================以上是左半屏写数据子程序
009E 79B8            120     RIGHT:  MOV     R1,#0B8H
00A0 8920            121     ABC:    MOV     COM,R1          ;第一页        
00A2 120120          122             LCALL   S02C1           ;右半屏写指令子程序     
00A5 752040          123             MOV     COM,#40H        ;第一列
A51 MACRO ASSEMBLER  12864                                                                03/29/2005 16:02:36 PAGE     3

00A8 120120          124             LCALL   S02C1           ;右半屏写指令子程序      
00AB 7840            125             MOV     R0, #64 
00AD 7400            126     S027D:  MOV     A,#00H
00AF 93              127             MOVC    A,@A+DPTR               
00B0 F521            128             MOV     DAT,A        
00B2 120128          129             LCALL   S02B9           ;右半屏写数据子程序         
00B5 A3              130             INC     DPTR    
00B6 D8F5            131             DJNZ    R0,S027D
00B8 09              132             INC     R1        
00B9 B9C0E4          133             CJNE    R1, #0C0H,ABC       
00BC 22              134             RET
                     135     
                     136     ;*******************************************************以上是右半屏写数据子程序
                     137     
00BD 79B8            138     XIHX:   MOV     R1,#0B8H       
00BF 8920            139     BA:     MOV     COM,R1          ;第一页        
00C1 120110          140             LCALL   S02A9           ;左半屏写指令子程序
00C4 120120          141             LCALL   S02C1           ;右半屏写指令子程序
00C7 752040          142             MOV     COM,#40H        ;第一列
00CA 120110          143             LCALL   S02A9           ;左半屏写指令子程序 
00CD 120120          144             LCALL   S02C1           ;右半屏写指令子程序
00D0 7840            145             MOV     R0, #64 
00D2 85F021          146     W027B:  MOV     DAT,B        
00D5 120118          147             LCALL   S02B1           ;左半屏写数据子程序         
00D8 120128          148             LCALL   S02B9           ;右半屏写数据子程序    
00DB D8F5            149             DJNZ    R0,W027B
00DD 09              150             INC     R1        
00DE B9C0DE          151             CJNE    R1, #0C0H,BA      
00E1 22              152             RET 
                     153     ;--------------------------------------------------------- 
00E2 79B8            154     XISX:   MOV     R1,#0B8H       
00E4 8920            155     CA:     MOV     COM,R1          ;第一页        
00E6 120110          156             LCALL   S02A9           ;左半屏写指令子程序
00E9 120120          157             LCALL   S02C1           ;右半屏写指令子程序
00EC 752040          158             MOV     COM,#40H        ;第一列
00EF 120110          159             LCALL   S02A9           ;左半屏写指令子程序 
00F2 120120          160             LCALL   S02C1           ;右半屏写指令子程序
00F5 7820            161             MOV     R0, #32 
00F7 85F021          162     X027B:  MOV     DAT,B        
00FA 120118          163             LCALL   S02B1           ;左半屏写数据子程序         
00FD 120128          164             LCALL   S02B9           ;右半屏写数据子程序   
0100 852921          165             MOV     DAT,29H
0103 120118          166             LCALL   S02B1           ;左半屏写数据子程序         
0106 120128          167             LCALL   S02B9           ;右半屏写数据子程序
0109 D8EC            168             DJNZ    R0,X027B
010B 09              169             INC     R1        
010C B9C0D5          170             CJNE    R1, #0C0H,CA      
010F 22              171             RET  
                     172     ;****************************************************以上是显示线条程序
0110 D2A3            173     S02A9:  SETB    CS1
0112 120130          174             LCALL   S02C9
0115 C2A3            175             CLR     CS1         ;左半屏写指令子程序
0117 22              176             RET   
                     177       
0118 D2A3            178     S02B1:  SETB    CS1         ;左半屏写数据子程序        
011A 12014B          179             LCALL   S02E0  
011D C2A3            180             CLR     CS1     
011F 22              181             RET  
                     182     
0120 D2A4            183     S02C1:  SETB    CS2         ;右半屏写指令子程序        
0122 120130          184             LCALL   S02C9  
0125 C2A4            185             CLR     CS2      
0127 22              186             RET    
                     187     
0128 D2A4            188     S02B9:  SETB    CS2         ;右半屏写数据子程序       
012A 12014B          189             LCALL   S02E0    
A51 MACRO ASSEMBLER  12864                                                                03/29/2005 16:02:36 PAGE     4

012D C2A4            190             CLR     CS2
012F 22              191             RET     
                     192     ;**************************************************** 
                     193     
0130 C2A0            194     S02C9:  CLR     RS         
0132 D2A1            195             SETB    RW        
0134 7580FF          196     S02C9A: MOV     P0,#0FFH
0137 D2A2            197             SETB    E
0139 E580            198             MOV     A, P0
013B C2A2            199             CLR     E
013D 20E7F4          200             JB      ACC.7,S02C9A
0140 C2A1            201             CLR     RW
0142 852080          202             MOV     P0,COM       
0145 D2A2            203             SETB    E
0147 00              204             NOP
0148 C2A2            205             CLR     E
014A 22              206             RET     
                     207     ;*************************************************以上是写指令子程序
014B C2A0            208     S02E0:  CLR     RS         
014D D2A1            209             SETB    RW        
014F 7580FF          210     S02E0A: MOV     P0,#0FFH
0152 D2A2            211             SETB    E
0154 E580            212             MOV     A, P0
0156 C2A2            213             CLR     E
0158 20E7F4          214             JB      ACC.7,S02E0A
015B D2A0            215             SETB    RS
015D C2A1            216             CLR     RW
015F 852180          217             MOV     P0,DAT      
0162 D2A2            218             SETB    E
0164 00              219             NOP
0165 C2A2            220             CLR     E
0167 22              221             RET      
                     222               
                     223     ;************************************************以上是写数据子程序
                     224     
0168 7D0B            225     DELAY:  MOV     R5,#0BH            ;延时

⌨️ 快捷键说明

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