📄 megalcd.lis
字号:
0098 8C5F subi R24,252 ; addi 4
009A 8A87 std y+10,R24
009C .dbline 226
009C ; for(j=0;j<high;j++)
009C 4427 clr R20
009E 1AC0 xjmp L22
00A0 L19:
00A0 .dbline 227
00A0 ; {
00A0 .dbline 228
00A0 ; for(i=0;i<width;i++)
00A0 EE24 clr R14
00A2 0FC0 xjmp L26
00A4 L23:
00A4 .dbline 229
00A4 .dbline 230
00A4 03EF ldi R16,243
00A6 BFDF xcall _ocmj_write
00A8 .dbline 231
00A8 0A85 ldd R16,y+10
00AA BDDF xcall _ocmj_write
00AC .dbline 232
00AC 0C85 ldd R16,y+12
00AE BBDF xcall _ocmj_write
00B0 .dbline 233
00B0 FB01 movw R30,R22
00B2 0491 lpm R16,Z
00B4 B8DF xcall _ocmj_write
00B6 .dbline 234
00B6 6F5F subi R22,255 ; offset = 1
00B8 7F4F sbci R23,255
00BA .dbline 235
00BA 0A84 ldd R0,y+10
00BC 0394 inc R0
00BE 0A86 std y+10,R0
00C0 .dbline 236
00C0 L24:
00C0 .dbline 228
00C0 E394 inc R14
00C2 L26:
00C2 .dbline 228
00C2 EA14 cp R14,R10
00C4 78F3 brlo L23
00C6 .dbline 237
00C6 0A84 ldd R0,y+10
00C8 0A18 sub R0,R10
00CA 0A86 std y+10,R0
00CC .dbline 238
00CC 0C84 ldd R0,y+12
00CE 0394 inc R0
00D0 0C86 std y+12,R0
00D2 .dbline 239
00D2 L20:
00D2 .dbline 226
00D2 4395 inc R20
00D4 L22:
00D4 .dbline 226
00D4 4C15 cp R20,R12
00D6 20F3 brlo L19
00D8 .dbline -2
00D8 L18:
00D8 0E940000 xcall pop_gset5
00DC 2496 adiw R28,4
00DE .dbline 0 ; func end
00DE 0895 ret
00E0 .dbsym r j 20 c
00E0 .dbsym r i 14 c
00E0 .dbsym r bmp_p 22 pkc
00E0 .dbsym r width 10 c
00E0 .dbsym r high 12 c
00E0 .dbsym l y 12 c
00E0 .dbsym l x 10 c
00E0 .dbend
00E0 .dbfunc e hz_tran _hz_tran fV
00E0 ; hz_p -> R20,R21
00E0 ; y -> R22
00E0 ; x -> R10
.even
00E0 _hz_tran::
00E0 0E940000 xcall push_gset3
00E4 622F mov R22,R18
00E6 A02E mov R10,R16
00E8 4E81 ldd R20,y+6
00EA 5F81 ldd R21,y+7
00EC .dbline -1
00EC .dbline 244
00EC ; {
00EC ; ocmj_write(0xf3);
00EC ; ocmj_write(x);
00EC ; ocmj_write(y);
00EC ; ocmj_write(*bmp_p);
00EC ; bmp_p++;
00EC ; x++;
00EC ; }
00EC ; x-=width;
00EC ; y++;
00EC ; }
00EC ; }
00EC ; /* 传送LCD内部汉字数据到LCD */
00EC ; /* x:0x00~0x07 y:0x00~0x03 */
00EC ; void hz_tran(unsigned char x,unsigned char y,unsigned char *hz_p)
00EC ; {
00EC .dbline 245
00EC ; x+=2;
00EC 8A2D mov R24,R10
00EE 8E5F subi R24,254 ; addi 2
00F0 A82E mov R10,R24
00F2 1AC0 xjmp L29
00F4 L28:
00F4 .dbline 247
00F4 ; while((*hz_p)!=0)
00F4 ; {
00F4 .dbline 248
00F4 ; ocmj_write(0xf0);
00F4 00EF ldi R16,240
00F6 97DF xcall _ocmj_write
00F8 .dbline 249
00F8 ; ocmj_write(x);
00F8 0A2D mov R16,R10
00FA 95DF xcall _ocmj_write
00FC .dbline 250
00FC ; ocmj_write(y);
00FC 062F mov R16,R22
00FE 93DF xcall _ocmj_write
0100 .dbline 251
0100 ; ocmj_write(*hz_p-0xa0);
0100 FA01 movw R30,R20
0102 0081 ldd R16,z+0
0104 005A subi R16,160
0106 8FDF xcall _ocmj_write
0108 .dbline 252
0108 ; hz_p++;
0108 4F5F subi R20,255 ; offset = 1
010A 5F4F sbci R21,255
010C .dbline 253
010C ; ocmj_write(*hz_p-0xa0);
010C FA01 movw R30,R20
010E 0081 ldd R16,z+0
0110 005A subi R16,160
0112 89DF xcall _ocmj_write
0114 .dbline 254
0114 ; hz_p++;
0114 4F5F subi R20,255 ; offset = 1
0116 5F4F sbci R21,255
0118 .dbline 255
0118 ; if(x<0x09)
0118 8A2D mov R24,R10
011A 8930 cpi R24,9
011C 10F4 brsh L31
011E .dbline 256
011E ; x++;
011E A394 inc R10
0120 03C0 xjmp L32
0122 L31:
0122 .dbline 258
0122 ; else
0122 ; {
0122 .dbline 259
0122 ; x=0x02;
0122 82E0 ldi R24,2
0124 A82E mov R10,R24
0126 .dbline 260
0126 ; y++;
0126 6395 inc R22
0128 .dbline 261
0128 ; }
0128 L32:
0128 .dbline 262
0128 L29:
0128 .dbline 246
0128 FA01 movw R30,R20
012A 2080 ldd R2,z+0
012C 2220 tst R2
012E 11F7 brne L28
0130 .dbline -2
0130 L27:
0130 0E940000 xcall pop_gset3
0134 .dbline 0 ; func end
0134 0895 ret
0136 .dbsym r hz_p 20 pc
0136 .dbsym r y 22 c
0136 .dbsym r x 10 c
0136 .dbend
0136 .dbfunc e asc_tran _asc_tran fV
0136 ; asc_p -> R20,R21
0136 ; y -> R22
0136 ; x -> R10
.even
0136 _asc_tran::
0136 0E940000 xcall push_gset3
013A 622F mov R22,R18
013C A02E mov R10,R16
013E 4E81 ldd R20,y+6
0140 5F81 ldd R21,y+7
0142 .dbline -1
0142 .dbline 267
0142 ; }
0142 ; }
0142 ; /* 传送ASCII字母到LCD */
0142 ; /* x:0x00~0x0f y:0~64 */
0142 ; void asc_tran(unsigned char x,unsigned char y,unsigned char *asc_p)
0142 ; {
0142 .dbline 268
0142 ; x+=4;
0142 8A2D mov R24,R10
0144 8C5F subi R24,252 ; addi 4
0146 A82E mov R10,R24
0148 13C0 xjmp L35
014A L34:
014A .dbline 270
014A ; while((*asc_p)!=0)
014A ; {
014A .dbline 271
014A ; ocmj_write(0xf1);
014A 01EF ldi R16,241
014C 6CDF xcall _ocmj_write
014E .dbline 272
014E ; ocmj_write(x);
014E 0A2D mov R16,R10
0150 6ADF xcall _ocmj_write
0152 .dbline 273
0152 ; ocmj_write(y);
0152 062F mov R16,R22
0154 68DF xcall _ocmj_write
0156 .dbline 274
0156 ; ocmj_write(*asc_p);
0156 FA01 movw R30,R20
0158 0081 ldd R16,z+0
015A 65DF xcall _ocmj_write
015C .dbline 275
015C ; asc_p++;
015C 4F5F subi R20,255 ; offset = 1
015E 5F4F sbci R21,255
0160 .dbline 276
0160 ; if (x<0x13)
0160 8A2D mov R24,R10
0162 8331 cpi R24,19
0164 10F4 brsh L37
0166 .dbline 277
0166 ; x++;
0166 A394 inc R10
0168 03C0 xjmp L38
016A L37:
016A .dbline 279
016A ; else
016A ; {
016A .dbline 280
016A ; x=0x04;
016A 84E0 ldi R24,4
016C A82E mov R10,R24
016E .dbline 281
016E ; y+=8;
016E 685F subi R22,248 ; addi 8
0170 .dbline 282
0170 ; }
0170 L38:
0170 .dbline 283
0170 L35:
0170 .dbline 269
0170 FA01 movw R30,R20
0172 2080 ldd R2,z+0
0174 2220 tst R2
0176 49F7 brne L34
0178 .dbline -2
0178 L33:
0178 0E940000 xcall pop_gset3
017C .dbline 0 ; func end
017C 0895 ret
017E .dbsym r asc_p 20 pc
017E .dbsym r y 22 c
017E .dbsym r x 10 c
017E .dbend
017E .dbfunc e pset _pset fV
017E ; y -> R20
017E ; x -> R22
.even
017E _pset::
017E 0E940000 xcall push_gset2
0182 422F mov R20,R18
0184 602F mov R22,R16
0186 .dbline -1
0186 .dbline 287
0186 ; }
0186 ; }
0186 ; /* 画点函数 */
0186 ; void pset(unsigned char x,unsigned char y)
0186 ; {
0186 .dbline 288
0186 ; ocmj_write(0xf2);
0186 02EF ldi R16,242
0188 4EDF xcall _ocmj_write
018A .dbline 289
018A ; ocmj_write(x+32);
018A 062F mov R16,R22
018C 005E subi R16,224 ; addi 32
018E 4BDF xcall _ocmj_write
0190 .dbline 290
0190 ; ocmj_write(y);
0190 042F mov R16,R20
0192 49DF xcall _ocmj_write
0194 .dbline -2
0194 L39:
0194 0E940000 xcall pop_gset2
0198 .dbline 0 ; func end
0198 0895 ret
019A .dbsym r y 20 c
019A .dbsym r x 22 c
019A .dben
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -