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

📄 12864_.lst

📁 这个是128×64的液晶屏的读写程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  12864_                                                               03/29/2005 13:34:16 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     ;控制器:KS0107
                       2     ;LCD型号:TS12864A-2
                       3     ;模块接口:1-VSS,2-VDD,3-V0,4-RS,5-R/W,6-E,7-14---DB0-DB7,15-CS1,16-CS2,17-/RST,1
                             8-VEE
                       4     ;取模方式:纵向字节倒序
                       5     ;CS1和CS2为高电平有效
                       6     ;********************************************************
  00A0                 7               RS       EQU   P2.0
  00A1                 8               RW       EQU   P2.1
  00A2                 9               E        EQU   P2.2
  00A3                10               CS1      EQU   P2.3
  00A4                11               CS2      EQU   P2.4
  00A5                12               RST      EQU   P2.5   
  0020                13               COM      EQU   20H    ;指令数据寄存器
  0021                14               DAT      EQU   21H    ;显示数据寄存器
                      15             
                      16     ;******************************************************** 以上是硬件定义
0000                  17             ORG     0000H  
0000 0106             18             AJMP    STR       
                      19     ;*********************************主程序入口地址
0003                  20             ORG     0003H             
0003 020F05           21             LJMP    L0006
                      22     ;*********************************中断程序入口地址
0006 30B402           23     STR:    JNB     P3.4,ST7920A  
0009 010E             24             AJMP    L0100
000B                  25     ST7920A:
000B 020D7E           26             LJMP ST7920      
000E C2A5             27     L0100:  CLR     RST
0010 00               28             NOP
0011 00               29             NOP
0012 D2A5             30             SETB    RST
                      31             
                      32     ;********************************************************以上是软件复位
0014 758160           33             MOV     SP,#60H
0017 75A881           34             MOV     IE,#81H            ;中断允许
001A 75B801           35             MOV     IP,#01H            ;优先中断
001D 758800           36             MOV     TCON,#00H          ;电平中断
0020 75203F           37             MOV     COM,#3FH         ;显示开
0023 120119           38             LCALL   S02A9            ;左半屏写指令子程序
0026 120129           39             LCALL   S02C1            ;右半屏写指令子程序
                      40     ;----------------------------------------------------------------------
0029 7520C0           41             MOV     COM,#0C0H        ;第一行        
002C 120119           42             LCALL   S02A9            ;左半屏写指令子程序
002F 120129           43             LCALL   S02C1            ;右半屏写指令子程序
                      44     ;----------------------------------------------------------------------
0032 7520B8           45             MOV     COM,#0B8H       ;第一页        
0035 120119           46             LCALL   S02A9           ;左半屏写指令子程序
0038 120129           47             LCALL   S02C1           ;右半屏写指令子程序
                      48     ;----------------------------------------------------------------------
003B 752040           49             MOV     COM,#40H        ;第一列
003E 120119           50             LCALL   S02A9           ;左半屏写指令子程序
0041 120129           51             LCALL   S02C1           ;右半屏写指令子程序
                      52     ;********************************************************以上是软件初始化
0044 75F0AA           53             MOV     B,#0AAH
0047 1200C6           54             LCALL   XIHX                                    ;显示横线1
004A 120171           55             LCALL   S0240 
                      56           ; MOV     B,#55H
                      57            ; LCALL   XIHX    
A51 MACRO ASSEMBLER  12864_                                                               03/29/2005 13:34:16 PAGE     2

                      58            ; LCALL   S0240                                   ;显示横线2
004D 75F0FF           59             MOV     B,#0FFH
0050 752900           60             MOV     29H,#00H       
0053 1200EB           61             LCALL   XISX    
0056 120171           62             LCALL   S0240                                   ;显示竖线1
                      63            ; MOV     B,#00H
                      64            ; MOV     29H,#0FFH
                      65           ; LCALL   XISX    
                      66            ; LCALL   S0240                                   ;显示竖线2
                      67     
0059 90017E           68             MOV     DPTR,#TAB1
005C 120088           69             LCALL   LEFT
005F 90037E           70             MOV     DPTR,#TAB2
0062 1200A7           71             LCALL   RIGHT       
0065 120171           72             LCALL   S0240                                   ;显示第一幅图片
0068 90057E           73             MOV     DPTR,#TAB3
006B 120088           74             LCALL   LEFT
006E 90077E           75             MOV     DPTR,#TAB4
0071 1200A7           76             LCALL   RIGHT       
0074 120171           77             LCALL   S0240                                   ;显示第二幅图片
                      78     
0077 90097E           79             MOV     DPTR,#TAB5
007A 120088           80             LCALL   LEFT
007D 900B7E           81             MOV     DPTR,#TAB6
0080 1200A7           82             LCALL   RIGHT       
0083 120171           83             LCALL   S0240                                   ;显示第三幅图片
                      84     
0086 010E             85             AJMP    L0100
                      86     ;=======================================================以上是主程序
0088 79B8             87     LEFT:   MOV     R1,#0B8H
008A 8920             88     _AB:     MOV     COM,R1          ;第一页        
008C 120119           89             LCALL   S02A9           ;左半屏写指令子程序     
008F 752040           90             MOV     COM,#40H        ;第一列
0092 120119           91             LCALL   S02A9           ;左半屏写指令子程序      
0095 7840             92             MOV     R0, #64 
0097 7400             93     S027B:  MOV     A,#00H
0099 93               94             MOVC    A,@A+DPTR               
009A F521             95             MOV     DAT,A        
009C 120121           96             LCALL   S02B1           ;左半屏写数据子程序         
009F A3               97             INC     DPTR    
00A0 D8F5             98             DJNZ    R0,S027B
00A2 09               99             INC     R1        
00A3 B9C0E4          100             CJNE    R1, #0C0H,_AB      
00A6 22              101             RET
                     102     ;======================================================以上是左半屏写数据子程序
00A7 79B8            103     RIGHT:  MOV     R1,#0B8H
00A9 8920            104     ABC:    MOV     COM,R1          ;第一页        
00AB 120129          105             LCALL   S02C1           ;右半屏写指令子程序     
00AE 752040          106             MOV     COM,#40H        ;第一列
00B1 120129          107             LCALL   S02C1           ;右半屏写指令子程序      
00B4 7840            108             MOV     R0, #64 
00B6 7400            109     S027D:  MOV     A,#00H
00B8 93              110             MOVC    A,@A+DPTR               
00B9 F521            111             MOV     DAT,A        
00BB 120131          112             LCALL   S02B9           ;右半屏写数据子程序         
00BE A3              113             INC     DPTR    
00BF D8F5            114             DJNZ    R0,S027D
00C1 09              115             INC     R1        
00C2 B9C0E4          116             CJNE    R1, #0C0H,ABC       
00C5 22              117             RET
                     118     
                     119     ;*******************************************************以上是右半屏写数据子程序
                     120     
00C6 79B8            121     XIHX:   MOV     R1,#0B8H       
00C8 8920            122     BA:     MOV     COM,R1          ;第一页        
00CA 120119          123             LCALL   S02A9           ;左半屏写指令子程序
A51 MACRO ASSEMBLER  12864_                                                               03/29/2005 13:34:16 PAGE     3

00CD 120129          124             LCALL   S02C1           ;右半屏写指令子程序
00D0 752040          125             MOV     COM,#40H        ;第一列
00D3 120119          126             LCALL   S02A9           ;左半屏写指令子程序 
00D6 120129          127             LCALL   S02C1           ;右半屏写指令子程序
00D9 7840            128             MOV     R0, #64 
00DB 85F021          129     W027B:  MOV     DAT,B        
00DE 120121          130             LCALL   S02B1           ;左半屏写数据子程序         
00E1 120131          131             LCALL   S02B9           ;右半屏写数据子程序    
00E4 D8F5            132             DJNZ    R0,W027B
00E6 09              133             INC     R1        
00E7 B9C0DE          134             CJNE    R1, #0C0H,BA      
00EA 22              135             RET 
                     136     ;--------------------------------------------------------- 
00EB 79B8            137     XISX:   MOV     R1,#0B8H       
00ED 8920            138     CA:     MOV     COM,R1          ;第一页        
00EF 120119          139             LCALL   S02A9           ;左半屏写指令子程序
00F2 120129          140             LCALL   S02C1           ;右半屏写指令子程序
00F5 752040          141             MOV     COM,#40H        ;第一列
00F8 120119          142             LCALL   S02A9           ;左半屏写指令子程序 
00FB 120129          143             LCALL   S02C1           ;右半屏写指令子程序
00FE 7820            144             MOV     R0, #32 
0100 85F021          145     X027B:  MOV     DAT,B        
0103 120121          146             LCALL   S02B1           ;左半屏写数据子程序         
0106 120131          147             LCALL   S02B9           ;右半屏写数据子程序   
0109 852921          148             MOV     DAT,29H
010C 120121          149             LCALL   S02B1           ;左半屏写数据子程序         
010F 120131          150             LCALL   S02B9           ;右半屏写数据子程序
0112 D8EC            151             DJNZ    R0,X027B
0114 09              152             INC     R1        
0115 B9C0D5          153             CJNE    R1, #0C0H,CA      
0118 22              154             RET  
                     155     ;****************************************************以上是显示线条程序
0119 D2A3            156     S02A9:  SETB    CS1
011B 120139          157             LCALL   S02C9
011E C2A3            158             CLR     CS1         ;左半屏写指令子程序
0120 22              159             RET   
                     160       
0121 D2A3            161     S02B1:  SETB    CS1         ;左半屏写数据子程序        
0123 120154          162             LCALL   S02E0  
0126 C2A3            163             CLR     CS1     
0128 22              164             RET  
                     165     
0129 D2A4            166     S02C1:  SETB    CS2         ;右半屏写指令子程序        
012B 120139          167             LCALL   S02C9  
012E C2A4            168             CLR     CS2      
0130 22              169             RET    
                     170     
0131 D2A4            171     S02B9:  SETB    CS2         ;右半屏写数据子程序       
0133 120154          172             LCALL   S02E0    
0136 C2A4            173             CLR     CS2
0138 22              174             RET     
                     175     ;**************************************************** 
                     176     
0139 C2A0            177     S02C9:  CLR     RS         
013B D2A1            178             SETB    RW        
013D 7580FF          179     S02C9A: MOV     P0,#0FFH
0140 D2A2            180             SETB    E
0142 E580            181             MOV     A, P0
0144 C2A2            182             CLR     E
0146 20E7F4          183             JB      ACC.7,S02C9A
0149 C2A1            184             CLR     RW
014B 852080          185             MOV     P0,COM       
014E D2A2            186             SETB    E
0150 00              187             NOP
0151 C2A2            188             CLR     E
0153 22              189             RET     
A51 MACRO ASSEMBLER  12864_                                                               03/29/2005 13:34:16 PAGE     4

                     190     ;*************************************************以上是写指令子程序
0154 C2A0            191     S02E0:  CLR     RS         
0156 D2A1            192             SETB    RW        
0158 7580FF          193     S02E0A: MOV     P0,#0FFH
015B D2A2            194             SETB    E
015D E580            195             MOV     A, P0
015F C2A2            196             CLR     E
0161 20E7F4          197             JB      ACC.7,S02E0A
0164 D2A0            198             SETB    RS
0166 C2A1            199             CLR     RW
0168 852180          200             MOV     P0,DAT      
016B D2A2            201             SETB    E
016D 00              202             NOP
016E C2A2            203             CLR     E
0170 22              204             RET      
                     205               
                     206     ;************************************************以上是写数据子程序
                     207     
0171 7D0B            208     S0240:  MOV     R5,#0BH            ;延时
0173 7FFF            209     L0242:  MOV     R7,#0FFH
0175 7EFF            210     L0244:  MOV     R6,#0FFH
0177 DEFE            211     L0246:  DJNZ    R6,$
0179 DFFA            212             DJNZ    R7,L0244
017B DDF6            213             DJNZ    R5,L0242
017D 22              214             RET     
                     215      ;****************************************************************  
017E                 216     TAB1:
                     217     ;--  调入了一幅图像:纵向取模下高位,数据排列:从左到右从上到下 
                     218     ;--  宽度x高度=64x64 
017E 00000000        219     db   00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 80h, 20h, 0Ah
0182 00000000                
0186 00000000                
018A 0080200A                
018E 4A3C40BE        220             db       4Ah, 3Ch, 40h,0BEh, 00h, 54h, 00h, 24h, 42h,0A8h, 00h,0EEh, 00h, 42h, 06h,
                              48h
0192 00540024                
0196 42A800EE                
019A 00420648                
019E 12441244        221             db       12h, 44h, 12h, 44h,0A8h, 02h, 20h, 04h, 22h,0C0h, 82h,0E4h,0C0h,0E0h,0C0h,
                             0C0h
01A2 A8022004                
01A6 22C082E4                

⌨️ 快捷键说明

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