📄 rt12864.lst
字号:
A51 MACRO ASSEMBLER RT12864 08/30/2008 08:07:20 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN RT12864.OBJ
ASSEMBLER INVOKED BY: D:\Program Files\KEIL\C51\BIN\A51.EXE RT12864.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
00B0 1 RS EQU P3.0 ;
00B1 2 RW EQU P3.1 ;
00B2 3 E EQU P3.2 ;
00B5 4 REST EQU P3.5 ;
5 ;----------------------------------------------
0030 6 LCD_X EQU 30H
0031 7 LCD_Y EQU 31H
0032 8 COUNT EQU 32H
0033 9 COUNT1 EQU 33H
0034 10 COUNT2 EQU 34H
0035 11 COUNT3 EQU 35H
0000 12 ORG 00H
0000 020030 13 LJMP MAIN
0030 14 ORG 0030H
0030 15 MAIN:
0030 758160 16 MOV SP,#60H
0033 17 START:
0033 120041 18 LCALL INIT ;调用初始化
19 ;******************************
0036 20 TU_PLAY1:
0036 900593 21 MOV DPTR,#TU_TAB2 ;显示图形
0039 1200DB 22 LCALL PHO_DISP
003C 120179 23 LCALL DELAY3
003F 80FE 24 SJMP $
25
26 ;************************************
27 ; ***********初始化***********
28 ;*************************************
0041 29 INIT:
0041 C0E0 30 PUSH ACC
0043 C2B5 31 CLR REST ; 复位
0045 00 32 NOP
0046 D2B5 33 SETB REST
0048 7408 34 MOV A,#08H ;关闭显示
004A 120073 35 LCALL WRITE_COM
004D 120186 36 LCALL DELAY5
0050 740C 37 MOV A,#0CH ;开显示,关光标,不闪烁
0052 120073 38 LCALL WRITE_COM
0055 120186 39 LCALL DELAY5
0058 7408 40 MOV A,#08H ;关闭显示
005A 120073 41 LCALL WRITE_COM
005D 120186 42 LCALL DELAY5
0060 740C 43 MOV A,#0CH ;开显示,关光标,不闪烁
0062 120073 44 LCALL WRITE_COM
0065 120186 45 LCALL DELAY5
0068 7408 46 MOV A,#08H ;关闭显示
006A 120073 47 LCALL WRITE_COM
006D 120186 48 LCALL DELAY5
0070 D0E0 49 POP ACC
0072 22 50 RET
51 ;*************************
52 ; ********写指令*******
53 ;*************************
0073 54 WRITE_COM:
0073 C0E0 55 PUSH ACC
0075 1200B6 56 LCALL BUSY ;判别是否忙?
0078 C2B0 57 CLR RS
007A C2B1 58 CLR RW
A51 MACRO ASSEMBLER RT12864 08/30/2008 08:07:20 PAGE 2
007C F580 59 MOV P0,A ;将示菟腿胧据口
007E D2B2 60 SETB E
0080 00 61 NOP
0081 C2B2 62 CLR E
0083 D0E0 63 POP ACC
0085 22 64 RET
65 ;****************************
66 ; *******写资料*******
67 ;****************************
0086 68 WRITE_DATA:
0086 C0E0 69 PUSH ACC
0088 C083 70 PUSH DPH
008A C082 71 PUSH DPL
008C 1200B6 72 LCALL BUSY
008F D2B0 73 SETB RS
0091 C2B1 74 CLR RW
0093 F580 75 MOV P0,A
0095 D2B2 76 SETB E
0097 00 77 NOP
0098 C2B2 78 CLR E
009A D082 79 POP DPL
009C D083 80 POP DPH
009E D0E0 81 POP ACC
00A0 22 82 RET
83 ;*******************************
84 ;
85 ;*******************************
00A1 86 WR_ZB:
00A1 7434 87 MOV A,#34H ;扩充功能设定(00110100)
00A3 120073 88 LCALL WRITE_COM ;
00A6 E531 89 MOV A,LCD_Y ;
00A8 120073 90 LCALL WRITE_COM ;
00AB E530 91 MOV A,LCD_X ;
00AD 120073 92 LCALL WRITE_COM ;
00B0 7430 93 MOV A,#30H ;基本功能设定
00B2 120073 94 LCALL WRITE_COM ;
00B5 22 95 RET
96 ;******************************
97 ; *******判别是否忙********
98 ;******************************
00B6 C0E0 99 BUSY:PUSH ACC
00B8 7580FF 100 BY: MOV P0,#0FFH
00BB C2B0 101 CLR RS
00BD D2B1 102 SETB RW
00BF D2B2 103 SETB E
00C1 00 104 NOP
00C2 2087F3 105 JB P0.7,BY
00C5 C2B2 106 CLR E
00C7 D0E0 107 POP ACC
00C9 22 108 RET
109 ;**********************************
110 ; *********显示子程序*********
111 ; 一个汉字占两个字节
112 ;**********************************
00CA 113 DISP:
00CA 7B08 114 MOV R3,#08H ;8个字
00CC E4 115 DISP1:CLR A
00CD 93 116 MOVC A,@A+DPTR ;
00CE A3 117 INC DPTR
00CF 120086 118 LCALL WRITE_DATA
00D2 E4 119 CLR A
00D3 93 120 MOVC A,@A+DPTR
00D4 120086 121 LCALL WRITE_DATA
122 ; LCALL DELAY
00D7 A3 123 INC DPTR
00D8 DBF2 124 DJNZ R3,DISP1 ;判断是否是8个汉字
A51 MACRO ASSEMBLER RT12864 08/30/2008 08:07:20 PAGE 3
00DA 22 125 RET
126 ;**********************************
127 ; ******全屏显示图形子程序******
128 ;**********************************
00DB 129 PHO_DISP:
00DB 753502 130 MOV COUNT3,#02H ;2行
00DE 753080 131 MOV LCD_X,#80H
00E1 132 PHO_DISP1:
00E1 753180 133 MOV LCD_Y,#80H
00E4 753420 134 MOV COUNT2,#20H ;32位
00E7 135 PHO_DISP2:
00E7 753310 136 MOV COUNT1,#10H ;16个字节
00EA 1200A1 137 LCALL WR_ZB
00ED 138 PHO_DISP3:
00ED E4 139 CLR A
00EE 93 140 MOVC A,@A+DPTR
00EF 120086 141 LCALL WRITE_DATA
00F2 A3 142 INC DPTR
00F3 D533F7 143 DJNZ COUNT1,PHO_DISP3 ;判断是否写完16个字节
00F6 0531 144 INC LCD_Y
00F8 D534EC 145 DJNZ COUNT2,PHO_DISP2 ;判断是否写完32位
00FB 753088 146 MOV LCD_X,#88H
00FE D535E0 147 DJNZ COUNT3,PHO_DISP1;判断两行是否写完
148
0101 7436 149 MOV A,#36H ;扩充功能设定(00110110)绘图显示ON
0103 120073 150 LCALL WRITE_COM
0106 7430 151 MOV A,#30H ;基本功能设定
0108 120073 152 LCALL WRITE_COM
010B 22 153 RET
154
155 ;********************************
156 ;
157 ;********************************
010C 20202020 158 TAB0:DB" 昔我往矣 "
0110 CEF4CED2
0114 CDF9D2D3
0118 20202020
011C 20202020 159 TAB1:DB" 杨柳依依 "
0120 D1EEC1F8
0124 D2C0D2C0
0128 20202020
012C 20202020 160 TAB2:DB" 今我来思 "
0130 BDF1CED2
0134 C0B4CBBC
0138 20202020
013C 20202020 161 DB" 今我来思 "
0140 BDF1CED2
0144 C0B4CBBC
0148 20202020
014C 20202020 162 TAB3:DB" 雨雪霏霏 "
0150 D3EAD1A9
0154 F6ADF6AD
0158 20202020
015C 20202020 163 DB" 雨雪霏霏 "
0160 D3EAD1A9
0164 F6ADF6AD
0168 20202020
164 ;******************************
165 ; ********延时***********
166 ;******************************
016C 7D02 167 DELAY: MOV R5, #2
016E 7EC8 168 DD1: MOV R6, #200
0170 7FF8 169 DD2: MOV R7, #248
0172 DFFE 170 DJNZ R7, $
0174 DEFA 171 DJNZ R6, DD2
A51 MACRO ASSEMBLER RT12864 08/30/2008 08:07:20 PAGE 4
0176 DDF6 172 DJNZ R5, DD1
0178 22 173 RET
0179 174 DELAY3:
0179 7D16 175 MOV R5,#16H
017B 7E64 176 DEL31:MOV R6,#100
017D 7FFF 177 DEL32:MOV R7,#0FFH
017F DFFE 178 DEL33:DJNZ R7,DEL33
0181 DEFA 179 DJNZ R6,DEL32
0183 DDF6 180 DJNZ R5,DEL31
0185 22 181 RET
0186 182 DELAY5:
0186 7D05 183 MOV R5,#05H
0188 7E64 184 DEL51:MOV R6,#100
018A 7FFF 185 DEL52:MOV R7,#0FFH
018C DFFE 186 DEL53: DJNZ R7,DEL53
018E DEFA 187 DJNZ R6,DEL52
0190 DDF6 188 DJNZ R5,DEL51
0192 22 189 RET
190
0193 191 TU_TAB1: ; 示荼
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -