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

📄 lcd12864.lst

📁 含有多个汇编以及c语言编程实例 用于单片机
💻 LST
📖 第 1 页 / 共 4 页
字号:
A51 MACRO ASSEMBLER  LCD12864                                                             07/21/2006 09:18:34 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1      
                       2     ;*          控制器:KS0107                                                      *
                       3     ;*          LCD型号:TS12864A-2或兼容型号                                       *
                       4     ;*          MCU:AT89S5* ,晶体频率:11.0592MHz                                   *
                       5     ;*          取模方式:纵向字节倒序                                              *
                       6     ;*          CS1和CS2为高电平有效                                                *          
                                                                                              *      
                       7     
                       8             
                       9     ;***************硬件端口定义***********
  00A0                10               RS       EQU   P2.0
  00A1                11               RW       EQU   P2.1
  00A2                12               E        EQU   P2.2
  00A3                13               CS1      EQU   P2.3
  00A4                14               CS2      EQU   P2.4
  00A5                15               RST      EQU   P2.5   
  0020                16               COM      EQU   20H    ;指令数据寄存器
  0021                17               DAT      EQU   21H    ;显示数据寄存器
                      18     
                      19     ;**********************************主程序入口地址 
0000                  20             ORG     0000H  
0000 0103             21             AJMP    STR  
0003                  22             ORG     0003H           
                      23          
                      24     ;*********************************中断程序入口地址
0003                  25     STR:    
0003 0105             26             AJMP    L0100
                      27       
0005 C2A5             28     L0100:  CLR     RST
0007 00               29             NOP
0008 00               30             NOP
0009 D2A5             31             SETB    RST
                      32             
                      33     ;********************************以上是软件复位
000B C2A6             34             CLR P2.6
000D 758160           35             MOV     SP,#60H
0010 75A881           36             MOV     IE,#81H            ;中断允许
0013 75B801           37             MOV     IP,#01H            ;优先中断
0016 758800           38             MOV     TCON,#00H          ;电平中断
0019 75203F           39             MOV     COM,#3FH         ;显示开
001C 120112           40             LCALL   S02A9            ;左半屏写指令子程序
001F 120122           41             LCALL   S02C1            ;右半屏写指令子程序
                      42     ;----------------------------------------------------------------------
0022 7520C0           43             MOV     COM,#0C0H        ;第一行        
0025 120112           44             LCALL   S02A9            ;左半屏写指令子程序
0028 120122           45             LCALL   S02C1            ;右半屏写指令子程序
                      46     ;----------------------------------------------------------------------
002B 7520B8           47             MOV     COM,#0B8H       ;第一页        
002E 120112           48             LCALL   S02A9           ;左半屏写指令子程序
0031 120122           49             LCALL   S02C1           ;右半屏写指令子程序
                      50     ;----------------------------------------------------------------------
0034 752040           51             MOV     COM,#40H        ;第一列
0037 120112           52             LCALL   S02A9           ;左半屏写指令子程序
003A 120122           53             LCALL   S02C1           ;右半屏写指令子程序
                      54     ;********************************************************以上是软件初始化
003D 75F0AA           55             MOV     B,#0AAH
0040 1200BF           56             LCALL   XIHX            ;显示横线1
0043 12016A           57             LCALL   DELAY 
A51 MACRO ASSEMBLER  LCD12864                                                             07/21/2006 09:18:34 PAGE     2

                      58           ; MOV     B,#55H
                      59            ; LCALL   XIHX    
                      60            ; LCALL   DELAY           ;显示横线2
0046 75F0FF           61             MOV     B,#0FFH
0049 752900           62             MOV     29H,#00H       
004C 1200E4           63             LCALL   XISX    
004F 12016A           64             LCALL   DELAY            ;显示竖线1
                      65            ; MOV     B,#00H
                      66            ; MOV     29H,#0FFH
                      67           ; LCALL   XISX    
                      68            ; LCALL   DELAY            ;显示竖线2
                      69     
0052 900177           70             MOV     DPTR,#TAB1
0055 120081           71             LCALL   LEFT
0058 900377           72             MOV     DPTR,#TAB2
005B 1200A0           73             LCALL   RIGHT       
005E 12016A           74             LCALL   DELAY             ;显示第一幅图片
                      75     
0061 900577           76             MOV     DPTR,#TAB3
0064 120081           77             LCALL   LEFT
0067 900777           78             MOV     DPTR,#TAB4
006A 1200A0           79             LCALL   RIGHT       
006D 12016A           80             LCALL   DELAY              ;显示第二幅图片
                      81     
0070 900977           82             MOV     DPTR,#TAB5
0073 120081           83             LCALL   LEFT
0076 900B77           84             MOV     DPTR,#TAB6
0079 1200A0           85             LCALL   RIGHT       
007C 12016A           86             LCALL   DELAY              ;显示第三幅图片
                      87             
                      88     
                      89             
                      90     
007F 0105             91             AJMP    L0100
                      92     ;=======================================================以上是主程序
0081 79B8             93     LEFT:   MOV     R1,#0B8H
0083 8920             94     _AB:     MOV     COM,R1          ;第一页        
0085 120112           95             LCALL   S02A9           ;左半屏写指令子程序     
0088 752040           96             MOV     COM,#40H        ;第一列
008B 120112           97             LCALL   S02A9           ;左半屏写指令子程序      
008E 7840             98             MOV     R0, #64 
0090 7400             99     S027B:  MOV     A,#00H
0092 93              100             MOVC    A,@A+DPTR               
0093 F521            101             MOV     DAT,A        
0095 12011A          102             LCALL   S02B1           ;左半屏写数据子程序         
0098 A3              103             INC     DPTR    
0099 D8F5            104             DJNZ    R0,S027B
009B 09              105             INC     R1        
009C B9C0E4          106             CJNE    R1, #0C0H,_AB      
009F 22              107             RET
                     108     ;======================================================以上是左半屏写数据子程序
00A0 79B8            109     RIGHT:  MOV     R1,#0B8H
00A2 8920            110     ABC:    MOV     COM,R1          ;第一页        
00A4 120122          111             LCALL   S02C1           ;右半屏写指令子程序     
00A7 752040          112             MOV     COM,#40H        ;第一列
00AA 120122          113             LCALL   S02C1           ;右半屏写指令子程序      
00AD 7840            114             MOV     R0, #64 
00AF 7400            115     S027D:  MOV     A,#00H
00B1 93              116             MOVC    A,@A+DPTR               
00B2 F521            117             MOV     DAT,A        
00B4 12012A          118             LCALL   S02B9           ;右半屏写数据子程序         
00B7 A3              119             INC     DPTR    
00B8 D8F5            120             DJNZ    R0,S027D
00BA 09              121             INC     R1        
00BB B9C0E4          122             CJNE    R1, #0C0H,ABC       
00BE 22              123             RET
A51 MACRO ASSEMBLER  LCD12864                                                             07/21/2006 09:18:34 PAGE     3

                     124     
                     125     ;*******************************************************以上是右半屏写数据子程序
                     126     
00BF 79B8            127     XIHX:   MOV     R1,#0B8H       
00C1 8920            128     BA:     MOV     COM,R1          ;第一页        
00C3 120112          129             LCALL   S02A9           ;左半屏写指令子程序
00C6 120122          130             LCALL   S02C1           ;右半屏写指令子程序
00C9 752040          131             MOV     COM,#40H        ;第一列
00CC 120112          132             LCALL   S02A9           ;左半屏写指令子程序 
00CF 120122          133             LCALL   S02C1           ;右半屏写指令子程序
00D2 7840            134             MOV     R0, #64 
00D4 85F021          135     W027B:  MOV     DAT,B        
00D7 12011A          136             LCALL   S02B1           ;左半屏写数据子程序         
00DA 12012A          137             LCALL   S02B9           ;右半屏写数据子程序    
00DD D8F5            138             DJNZ    R0,W027B
00DF 09              139             INC     R1        
00E0 B9C0DE          140             CJNE    R1, #0C0H,BA      
00E3 22              141             RET 
                     142     ;--------------------------------------------------------- 
00E4 79B8            143     XISX:   MOV     R1,#0B8H       
00E6 8920            144     CA:     MOV     COM,R1          ;第一页        
00E8 120112          145             LCALL   S02A9           ;左半屏写指令子程序
00EB 120122          146             LCALL   S02C1           ;右半屏写指令子程序
00EE 752040          147             MOV     COM,#40H        ;第一列
00F1 120112          148             LCALL   S02A9           ;左半屏写指令子程序 
00F4 120122          149             LCALL   S02C1           ;右半屏写指令子程序
00F7 7820            150             MOV     R0, #32 
00F9 85F021          151     X027B:  MOV     DAT,B        
00FC 12011A          152             LCALL   S02B1           ;左半屏写数据子程序         
00FF 12012A          153             LCALL   S02B9           ;右半屏写数据子程序   
0102 852921          154             MOV     DAT,29H
0105 12011A          155             LCALL   S02B1           ;左半屏写数据子程序         
0108 12012A          156             LCALL   S02B9           ;右半屏写数据子程序
010B D8EC            157             DJNZ    R0,X027B
010D 09              158             INC     R1        
010E B9C0D5          159             CJNE    R1, #0C0H,CA      
0111 22              160             RET  
                     161     ;****************************************************以上是显示线条程序
0112 D2A3            162     S02A9:  SETB    CS1
0114 120132          163             LCALL   S02C9
0117 C2A3            164             CLR     CS1         ;左半屏写指令子程序
0119 22              165             RET   
                     166       
011A D2A3            167     S02B1:  SETB    CS1         ;左半屏写数据子程序        
011C 12014D          168             LCALL   S02E0  
011F C2A3            169             CLR     CS1     
0121 22              170             RET  
                     171     
0122 D2A4            172     S02C1:  SETB    CS2         ;右半屏写指令子程序        
0124 120132          173             LCALL   S02C9  
0127 C2A4            174             CLR     CS2      
0129 22              175             RET    
                     176     
012A D2A4            177     S02B9:  SETB    CS2         ;右半屏写数据子程序       
012C 12014D          178             LCALL   S02E0    
012F C2A4            179             CLR     CS2
0131 22              180             RET     
                     181     ;**************************************************** 
                     182     
0132 C2A0            183     S02C9:  CLR     RS         
0134 D2A1            184             SETB    RW        
0136 7580FF          185     S02C9A: MOV     P0,#0FFH
0139 D2A2            186             SETB    E
013B E580            187             MOV     A, P0
013D C2A2            188             CLR     E
013F 20E7F4          189             JB      ACC.7,S02C9A
A51 MACRO ASSEMBLER  LCD12864                                                             07/21/2006 09:18:34 PAGE     4

0142 C2A1            190             CLR     RW
0144 852080          191             MOV     P0,COM       
0147 D2A2            192             SETB    E
0149 00              193             NOP
014A C2A2            194             CLR     E
014C 22              195             RET     
                     196     ;*************************************************以上是写指令子程序
014D C2A0            197     S02E0:  CLR     RS         
014F D2A1            198             SETB    RW        
0151 7580FF          199     S02E0A: MOV     P0,#0FFH
0154 D2A2            200             SETB    E
0156 E580            201             MOV     A, P0
0158 C2A2            202             CLR     E
015A 20E7F4          203             JB      ACC.7,S02E0A
015D D2A0            204             SETB    RS
015F C2A1            205             CLR     RW
0161 852180          206             MOV     P0,DAT      
0164 D2A2            207             SETB    E
0166 00              208             NOP
0167 C2A2            209             CLR     E
0169 22              210             RET      
                     211               
                     212     ;************************************************以上是写数据子程序
                     213     
016A 7D0B            214     DELAY:  MOV     R5,#0BH            ;延时
016C 7FFF            215     D1:     MOV     R7,#0FFH
016E 7EFF            216     D2:     MOV     R6,#0FFH
0170 DEFE            217     D3:     DJNZ    R6,$
0172 DFFA            218             DJNZ    R7,D2
0174 DDF6            219             DJNZ    R5,D1
0176 22              220             RET     
                     221      ;****************************************************************  
0177                 222     TAB1:
                     223     ;--  调入菲戈幅图像左半屏:纵向取模下高位,数据排列:从左到右从上到下 
                     224     ;--  宽度x高度=64x64 
0177 00000040        225        DB  000h,000h,000h,040h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,010h
017B 80000000                
017F 00000000                
0183 00000010                
0187 60800000        226     DB  060h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FCh,000h,000h
018B 00000000                
018F 00000000                
0193 00FC0000                
0197 00000000        227     DB  000h,000h,000h,000h,000h,000h,000h,000h,000h,0C0h,030h,008h,000h,000h,000h,000h
019B 00000000                
019F 00C03008                
01A3 00000000                
01A7 00000000        228     DB  000h,000h,000h,000h,000h,080h,040h,000h,000h,000h,000h,000h,000h,000h,000h,000h
01AB 00804000                
01AF 00000000                
01B3 00000000                
01B7 00000000        229     DB  000h,000h,000h,000h,000h,001h,002h,004h,008h,010h,020h,040h,080h,000h,000h,000h
01BB 00010204                
01BF 08102040                
01C3 80000000                
01C7 00010618        230     DB  000h,001h,006h,018h,060h,080h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h
01CB 60800000                
01CF 00000000                
01D3 00FF0000                
01D7 00000000        231     DB  000h,000h,000h,000h,000h,0C0h,030h,00Ch,003h,000h,000h,000h,000h,080h,040h,020h
01DB 00C0300C                
01DF 03000000                
01E3 00804020                
01E7 10080402        232     DB  010h,008h,004h,002h,001h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
01EB 01000000                
01EF 00000000                
A51 MACRO ASSEMBLER  LCD12864                                                             07/21/2006 09:18:34 PAGE     5

01F3 00000000                
01F7 02020404        233     DB  002h,002h,004h,004h,008h,008h,010h,010h,020h,020h,040h,040h,080h,081h,002h,004h
01FB 08081010                
01FF 20204040                
0203 80810204                
0207 08102040        234     DB  008h,010h,020h,040h,080h,001h,006h,018h,020h,000h,000h,000h,080h,09Fh,080h,000h
020B 80010618                
020F 20000000                
0213 809F8000                
0217 0040300C        235     DB  000h,040h,030h,00Ch,003h,080h,040h,020h,010h,008h,004h,002h,001h,000h,000h,080h
021B 03804020                

⌨️ 快捷键说明

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