📄 lcd.lst
字号:
180 2711 CLR R17
181 0D02 ADD R16,R2
182 1D13 ADC R17,R3
183 DFB4 RCALL _Write_LCDCOM
(0112) Write_LCDCOM(HIBYTE(column)); //列地址,高低字节两次写入
184 0186 MOVW R16,R12
185 2F01 MOV R16,R17
186 2711 CLR R17
187 7010 ANDI R17,0
188 DFAF RCALL _Write_LCDCOM
(0113) Write_LCDCOM(LOBYTE(column));
189 2D0C MOV R16,R12
18A DFAD RCALL _Write_LCDCOM
(0114)
(0115) for(seg = 0; seg < 16; seg++) //写16列
18B 2766 CLR R22
18C C005 RJMP 0x0192
(0116) {
(0117) Write_LCDDATA((BYTE)(*ptr++));
18D 01F5 MOVW R30,R10
18E 9101 LD R16,Z+
18F 015F MOVW R10,R30
190 DFAD RCALL _Write_LCDDATA
191 9563 INC R22
192 3160 CPI R22,0x10
193 F3C8 BCS 0x018D
194 9543 INC R20
195 3042 CPI R20,2
196 F330 BCS 0x017D
197 940C 0217 JMP pop_xgsetF0FC
FILE: F:\avr\mega128\lcd12864\main.c
(0001) #include "so12864.h"
(0002)
(0003) void delay()
(0004) {
(0005) int i = 0, j = 0;
_delay:
i --> R16
j --> R18
199 2700 CLR R16
19A 2711 CLR R17
19B 2722 CLR R18
19C 2733 CLR R19
(0006) for(i = 0; i < 5000; i++)
(0007) for (j = 0; j < 200; j++)
19D 2722 CLR R18
19E 2733 CLR R19
(0008) {
(0009) nop();
19F 0000 NOP
1A0 5F2F SUBI R18,0xFF
1A1 4F3F SBCI R19,0xFF
1A2 3C28 CPI R18,0xC8
1A3 E0E0 LDI R30,0
1A4 073E CPC R19,R30
1A5 F3CC BLT 0x019F
1A6 5F0F SUBI R16,0xFF
1A7 4F1F SBCI R17,0xFF
1A8 3808 CPI R16,0x88
1A9 E1E3 LDI R30,0x13
1AA 071E CPC R17,R30
1AB F38C BLT 0x019D
1AC 9508 RET
_main:
EN_tab --> Y,+130
CN_tab --> Y,+2
1AD 97EF SBIW R28,0x3F
1AE 97EF SBIW R28,0x3F
1AF 97EF SBIW R28,0x3F
1B0 97EF SBIW R28,0x3F
1B1 97EF SBIW R28,0x3F
1B2 9767 SBIW R28,0x17
(0010) }
(0011) }
(0012)
(0013) int main(void)
(0014) {
(0015) BYTE EN_tab[][8] = {
1B3 E88C LDI R24,0x8C
1B4 E090 LDI R25,0
1B5 01FE MOVW R30,R28
1B6 57EE SUBI R30,0x7E
1B7 4FFF SBCI R31,0xFF
1B8 ED00 LDI R16,0xD0
1B9 E010 LDI R17,0
1BA 93FA ST R31,-Y
1BB 93EA ST R30,-Y
1BC 939A ST R25,-Y
1BD 938A ST R24,-Y
1BE 940E 022D CALL asgncblkx
(0016) {0x00,0x7E,0x11,0x11,0x11,0x7E,0x00,0x00}, /*"A"=21h*/
(0017) {0x00,0x41,0x7F,0x49,0x49,0x36,0x00,0x00}, /*"B"=22h*/
(0018) {0x00,0x3E,0x41,0x41,0x41,0x22,0x00,0x00}, /*"C"=23h*/
(0019) {0x00,0x41,0x7F,0x41,0x41,0x3E,0x00,0x00}, /*"D"=24h*/
(0020) {0x00,0x7F,0x49,0x49,0x49,0x49,0x00,0x00}, /*"E"=25h*/
(0021) {0x00,0x7F,0x09,0x09,0x09,0x01,0x00,0x00}, /*"F"=26h*/
(0022) {0x00,0x3E,0x41,0x41,0x49,0x7A,0x00,0x00}, /*"G"=27h*/
(0023) {0x00,0x7F,0x08,0x08,0x08,0x7F,0x00,0x00}, /*"h"=28h*/
(0024) {0x00,0x00,0x41,0x7F,0x41,0x00,0x00,0x00}, /*"I"=29h*/
(0025) {0x00,0x20,0x40,0x41,0x3F,0x01,0x00,0x00}, /*"J"=2Ah*/
(0026) {0x00,0x7F,0x08,0x14,0x22,0x41,0x00,0x00}, /*"K"=2Bh*/
(0027) {0x00,0x7F,0x40,0x40,0x40,0x40,0x00,0x00}, /*"L"=2Ch*/
(0028) {0x00,0x7F,0x02,0x0C,0x02,0x7F,0x00,0x00}, /*"M"=2Dh*/
(0029) {0x00,0x7F,0x06,0x08,0x30,0x7F,0x00,0x00}, /*"N"=2Eh*/
(0030) {0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00}, /*"O"=2Fh*/
(0031) {0x00,0x7F,0x09,0x09,0x09,0x06,0x00,0x00}, /*"P"=30h*/
(0032) {0x00,0x3E,0x41,0x51,0x21,0x5E,0x00,0x00}, /*"Q"=31h*/
(0033) {0x00,0x7F,0x09,0x19,0x29,0x46,0x00,0x00}, /*"R"=32h*/
(0034) {0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00}, /*"S"=33h*/
(0035) {0x00,0x01,0x01,0x7F,0x01,0x01,0x00,0x00}, /*"T"=34h*/
(0036) {0x00,0x3F,0x40,0x40,0x40,0x3F,0x00,0x00}, /*"U"=35h*/
(0037) {0x00,0x1F,0x20,0x40,0x20,0x1F,0x00,0x00}, /*"V"=36h*/
(0038) {0x00,0x7F,0x20,0x18,0x20,0x7F,0x00,0x00}, /*"W"=37h*/
(0039) {0x00,0x63,0x14,0x08,0x14,0x63,0x00,0x00}, /*"X"=38h*/
(0040) {0x00,0x07,0x08,0x70,0x08,0x07,0x00,0x00}, /*"Y"=39h*/
(0041) {0x00,0x61,0x51,0x49,0x45,0x43,0x00,0x00}
(0042) };
(0043) BYTE CN_tab[][32] ={
1C0 E58C LDI R24,0x5C
1C1 E091 LDI R25,1
1C2 01FE MOVW R30,R28
1C3 9632 ADIW R30,2
1C4 E800 LDI R16,0x80
1C5 E010 LDI R17,0
1C6 93FA ST R31,-Y
1C7 93EA ST R30,-Y
1C8 939A ST R25,-Y
1C9 938A ST R24,-Y
1CA 940E 022D CALL asgncblkx
(0044) {0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00,0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00},
(0045) {0x00,0x40,0x44,0x54,0x55,0x56,0xD4,0x7C,0x54,0x54,0x56,0x55,0x54,0x44,0x40,0x00,0x00,0x20,0x10,0x48,0x44,0x4B,0x4A,0x7E,0x4A,0x4A,0x4A,0x7E,0x40,0x40,0x40,0x00},
(0046) {0x02,0xF2,0x12,0x12,0x1E,0x00,0x80,0x80,0xFF,0xA0,0x90,0x88,0x86,0x84,0x80,0x00,0x01,0x03,0x41,0x81,0x7F,0x00,0x00,0x40,0xFF,0x40,0x23,0x0C,0x10,0x60,0x20,0x00},
(0047) {0x10,0xF0,0x1F,0x10,0xF0,0x12,0x12,0xFE,0x12,0xFE,0x00,0xFE,0x62,0x9A,0x06,0x00,0x40,0x21,0x1A,0x86,0x49,0x31,0x0D,0x43,0x81,0x7F,0x00,0xFF,0x08,0x18,0x0F,0x00}
(0048) };
(0049)
(0050) Init_LCD();
1CC 940E 0111 CALL _Init_LCD
1CE C037 RJMP 0x0206
(0051)
(0052) while(1)
(0053) {
(0054) DispCN_LCD(PAGE_3, COLUMN_24, (BYTE *)(CN_tab[0]));
1CF 01CE MOVW R24,R28
1D0 9602 ADIW R24,2
1D1 8399 STD Y+1,R25
1D2 8388 STD Y+0,R24
1D3 E028 LDI R18,0x8
1D4 E131 LDI R19,0x11
1D5 EB03 LDI R16,0xB3
1D6 940E 0175 CALL _DispCN_LCD
(0055) delay();
1D8 DFC0 RCALL _delay
(0056) DispCN_LCD(PAGE_3, COLUMN_40, (BYTE *)(CN_tab[1]));
1D9 01CE MOVW R24,R28
1DA 9682 ADIW R24,0x22
1DB 8399 STD Y+1,R25
1DC 8388 STD Y+0,R24
1DD E028 LDI R18,0x8
1DE E132 LDI R19,0x12
1DF EB03 LDI R16,0xB3
1E0 940E 0175 CALL _DispCN_LCD
(0057) delay();
1E2 DFB6 RCALL _delay
(0058) DispCN_LCD(PAGE_3, COLUMN_56, (BYTE *)(CN_tab[1]));
1E3 01CE MOVW R24,R28
1E4 9682 ADIW R24,0x22
1E5 8399 STD Y+1,R25
1E6 8388 STD Y+0,R24
1E7 E028 LDI R18,0x8
1E8 E133 LDI R19,0x13
1E9 EB03 LDI R16,0xB3
1EA 940E 0175 CALL _DispCN_LCD
(0059) delay();
1EC DFAC RCALL _delay
(0060) DispCN_LCD(PAGE_3, COLUMN_72, (BYTE *)(CN_tab[2]));
1ED 01CE MOVW R24,R28
1EE 5B8E SUBI R24,0xBE
1EF 4F9F SBCI R25,0xFF
1F0 8399 STD Y+1,R25
1F1 8388 STD Y+0,R24
1F2 E028 LDI R18,0x8
1F3 E134 LDI R19,0x14
1F4 EB03 LDI R16,0xB3
1F5 940E 0175 CALL _DispCN_LCD
(0061) delay();
1F7 DFA1 RCALL _delay
(0062) DispCN_LCD(PAGE_3, COLUMN_86, (BYTE *)(CN_tab[3]));
1F8 01CE MOVW R24,R28
1F9 598E SUBI R24,0x9E
1FA 4F9F SBCI R25,0xFF
1FB 8399 STD Y+1,R25
1FC 8388 STD Y+0,R24
1FD E026 LDI R18,6
1FE E135 LDI R19,0x15
1FF EB03 LDI R16,0xB3
200 940E 0175 CALL _DispCN_LCD
(0063) delay();
202 DF96 RCALL _delay
(0064) Clear_LCD();
203 940E 0144 CALL _Clear_LCD
(0065) delay();
FILE: <library>
205 DF93 RCALL _delay
206 CFC8 RJMP 0x01CF
207 96EF ADIW R28,0x3F
208 96EF ADIW R28,0x3F
209 96EF ADIW R28,0x3F
20A 96EF ADIW R28,0x3F
20B 96EF ADIW R28,0x3F
20C 9667 ADIW R28,0x17
20D 9508 RET
pop_xgset30FC:
20E 90A9 LD R10,Y+
20F 90B9 LD R11,Y+
210 90C9 LD R12,Y+
211 90D9 LD R13,Y+
212 90E9 LD R14,Y+
213 90F9 LD R15,Y+
214 9149 LD R20,Y+
215 9159 LD R21,Y+
216 9508 RET
pop_xgsetF0FC:
217 90A9 LD R10,Y+
218 90B9 LD R11,Y+
219 90C9 LD R12,Y+
21A 90D9 LD R13,Y+
21B 90E9 LD R14,Y+
21C 90F9 LD R15,Y+
21D 9149 LD R20,Y+
21E 9159 LD R21,Y+
21F 9169 LD R22,Y+
220 9179 LD R23,Y+
221 9508 RET
push_xgsetF0FC:
222 937A ST R23,-Y
223 936A ST R22,-Y
push_xgset30FC:
224 935A ST R21,-Y
225 934A ST R20,-Y
push_xgset00FC:
226 92FA ST R15,-Y
227 92EA ST R14,-Y
push_xgset003C:
228 92DA ST R13,-Y
229 92CA ST R12,-Y
22A 92BA ST R11,-Y
22B 92AA ST R10,-Y
22C 9508 RET
asgncblkx:
22D 93AA ST R26,-Y
22E 93BA ST R27,-Y
22F 93EA ST R30,-Y
230 93FA ST R31,-Y
231 920A ST R0,-Y
232 81AF LDD R26,Y+7
233 85B8 LDD R27,Y+8
234 81ED LDD R30,Y+5
235 81FE LDD R31,Y+6
236 3000 CPI R16,0
237 0701 CPC R16,R17
238 F031 BEQ 0x023F
239 95D8 ELPM
23A 920D ST R0,X+
23B 9631 ADIW R30,1
23C 5001 SUBI R16,1
23D 4010 SBCI R17,0
23E CFF7 RJMP 0x0236
23F 9009 LD R0,Y+
240 91F9 LD R31,Y+
241 91E9 LD R30,Y+
242 91B9 LD R27,Y+
243 91A9 LD R26,Y+
244 9624 ADIW R28,4
245 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -