📄 ylf240128a.lis
字号:
0098 ;
0098 ; void WriteCmd(uchar command)
0098 ; {
0098 L19:
0098 .dbline 286
0098 L20:
0098 .dbline 286
0098 ; while ( (ReadSta()&0x03) !=0x03);
0098 E6DF xcall _ReadSta
009A 802F mov R24,R16
009C 8370 andi R24,3
009E 8330 cpi R24,3
00A0 D9F7 brne L19
00A2 .dbline 287
00A2 ; RD_SET;
00A2 DA9A sbi 0x1b,2
00A4 .dbline 288
00A4 ; CD_SET;
00A4 A89A sbi 0x15,0
00A6 .dbline 289
00A6 ; OUT_DIR;
00A6 D898 cbi 0x1b,0
00A8 .dbline 290
00A8 ; DDRB=0xFF;
00A8 8FEF ldi R24,255
00AA 87BB out 0x17,R24
00AC .dbline 291
00AC ; PORTB=command;
00AC 48BB out 0x18,R20
00AE .dbline 293
00AE ; // NOP();NOP();NOP();
00AE ; WR_CLR;
00AE DB98 cbi 0x1b,3
00B0 .dbline 294
00B0 ; NOP();NOP();NOP();
00B0 0000 nop
00B2 .dbline 294
00B2 0000 nop
00B4 .dbline 294
00B4 0000 nop
00B6 .dbline 295
00B6 ; WR_SET;
00B6 DB9A sbi 0x1b,3
00B8 .dbline 296
00B8 ; CD_CLR;
00B8 A898 cbi 0x15,0
00BA .dbline -2
00BA L18:
00BA 0E940000 xcall pop_gset1
00BE .dbline 0 ; func end
00BE 0895 ret
00C0 .dbsym r command 20 c
00C0 .dbend
00C0 .dbfunc e WriteData _WriteData fV
00C0 ; data -> R20
.even
00C0 _WriteData::
00C0 0E940000 xcall push_gset1
00C4 402F mov R20,R16
00C6 .dbline -1
00C6 .dbline 301
00C6 ;
00C6 ; }
00C6 ;
00C6 ; void WriteData(uchar data)
00C6 ; {
00C6 L23:
00C6 .dbline 302
00C6 L24:
00C6 .dbline 302
00C6 ; while ( (ReadSta()&0x03) !=0x03);
00C6 CFDF xcall _ReadSta
00C8 802F mov R24,R16
00CA 8370 andi R24,3
00CC 8330 cpi R24,3
00CE D9F7 brne L23
00D0 .dbline 303
00D0 ; RD_SET;
00D0 DA9A sbi 0x1b,2
00D2 .dbline 304
00D2 ; CD_CLR;
00D2 A898 cbi 0x15,0
00D4 .dbline 305
00D4 ; OUT_DIR;
00D4 D898 cbi 0x1b,0
00D6 .dbline 306
00D6 ; DDRB=0xFF;
00D6 8FEF ldi R24,255
00D8 87BB out 0x17,R24
00DA .dbline 307
00DA ; PORTB=data;
00DA 48BB out 0x18,R20
00DC .dbline 309
00DC ; // NOP();NOP();NOP();
00DC ; WR_CLR;
00DC DB98 cbi 0x1b,3
00DE .dbline 310
00DE ; NOP();NOP();NOP();
00DE 0000 nop
00E0 .dbline 310
00E0 0000 nop
00E2 .dbline 310
00E2 0000 nop
00E4 .dbline 311
00E4 ; WR_SET;
00E4 DB9A sbi 0x1b,3
00E6 .dbline -2
00E6 L22:
00E6 0E940000 xcall pop_gset1
00EA .dbline 0 ; func end
00EA 0895 ret
00EC .dbsym r data 20 c
00EC .dbend
00EC .dbfunc e WrTwoParCmd _WrTwoParCmd fV
00EC ; command -> y+4
00EC ; par2 -> R20
00EC ; par1 -> R22
.even
00EC _WrTwoParCmd::
00EC 0E940000 xcall push_gset2
00F0 422F mov R20,R18
00F2 602F mov R22,R16
00F4 .dbline -1
00F4 .dbline 314
00F4 ; }
00F4 ; void WrTwoParCmd(uchar par1,uchar par2,uchar command)
00F4 ; {
00F4 .dbline 315
00F4 ; WriteData(par1);
00F4 062F mov R16,R22
00F6 E4DF xcall _WriteData
00F8 .dbline 316
00F8 ; WriteData(par2);
00F8 042F mov R16,R20
00FA E2DF xcall _WriteData
00FC .dbline 317
00FC ; WriteCmd(command);
00FC 0C81 ldd R16,y+4
00FE C9DF xcall _WriteCmd
0100 .dbline -2
0100 L26:
0100 0E940000 xcall pop_gset2
0104 .dbline 0 ; func end
0104 0895 ret
0106 .dbsym l command 4 c
0106 .dbsym r par2 20 c
0106 .dbsym r par1 22 c
0106 .dbend
0106 .dbfunc e WrOneParCmd _WrOneParCmd fV
0106 ; command -> R20
0106 ; par -> R22
.even
0106 _WrOneParCmd::
0106 0E940000 xcall push_gset2
010A 422F mov R20,R18
010C 602F mov R22,R16
010E .dbline -1
010E .dbline 320
010E ; }
010E ; void WrOneParCmd(uchar par,uchar command)
010E ; {
010E .dbline 321
010E ; WriteData(par);
010E 062F mov R16,R22
0110 D7DF xcall _WriteData
0112 .dbline 322
0112 ; WriteCmd(command);
0112 042F mov R16,R20
0114 BEDF xcall _WriteCmd
0116 .dbline -2
0116 L27:
0116 0E940000 xcall pop_gset2
011A .dbline 0 ; func end
011A 0895 ret
011C .dbsym r command 20 c
011C .dbsym r par 22 c
011C .dbend
011C .dbfunc e ClrRam _ClrRam fV
011C ; i -> R20,R21
011C ; data -> R22,R23
.even
011C _ClrRam::
011C 0E940000 xcall push_gset2
0120 B801 movw R22,R16
0122 2197 sbiw R28,1
0124 .dbline -1
0124 .dbline 326
0124 ; }
0124 ;
0124 ; void ClrRam(uint data)
0124 ; {
0124 .dbline 329
0124 ; uint i;
0124 ;
0124 ; WrTwoParCmd(0x00,0x00,ADPSET);
0124 84E2 ldi R24,36
0126 8883 std y+0,R24
0128 2227 clr R18
012A 0027 clr R16
012C DFDF xcall _WrTwoParCmd
012E L29:
012E .dbline 331
012E L30:
012E .dbline 331
012E ; // WrTwoParCmd(0x00,0x00,ADPSET);//No Repeat--False Code
012E ; while((ReadSta()&0x08)!=8);
012E 9BDF xcall _ReadSta
0130 802F mov R24,R16
0132 8870 andi R24,8
0134 8830 cpi R24,8
0136 D9F7 brne L29
0138 .dbline 332
0138 ; WriteCmd(AWRON);
0138 00EB ldi R16,176
013A ABDF xcall _WriteCmd
013C .dbline 333
013C ; for(i=0;i<(LCDCOLUMN*LCDLINE);i++)
013C 4427 clr R20
013E 5527 clr R21
0140 04C0 xjmp L35
0142 L32:
0142 .dbline 334
0142 062F mov R16,R22
0144 BDDF xcall _WriteData
0146 L33:
0146 .dbline 333
0146 4F5F subi R20,255 ; offset = 1
0148 5F4F sbci R21,255
014A L35:
014A .dbline 333
014A 403E cpi R20,224
014C E1E0 ldi R30,1
014E 5E07 cpc R21,R30
0150 C0F3 brlo L32
0152 .dbline 335
0152 ; WriteData(data);
0152 ; WriteCmd(AWROFF);
0152 02EB ldi R16,178
0154 9EDF xcall _WriteCmd
0156 .dbline -2
0156 L28:
0156 2196 adiw R28,1
0158 0E940000 xcall pop_gset2
015C .dbline 0 ; func end
015C 0895 ret
015E .dbsym r i 20 i
015E .dbsym r data 22 i
015E .dbend
015E .dbfunc e WrCGRAM _WrCGRAM fV
015E ; len -> R20,R21
015E ; j -> R22,R23
015E ; i -> R10,R11
.even
015E _WrCGRAM::
015E 0E940000 xcall push_gset3
0162 2197 sbiw R28,1
0164 .dbline -1
0164 .dbline 340
0164 ;
0164 ; }
0164 ;
0164 ; void WrCGRAM(void)
0164 ; {
0164 .dbline 343
0164 ; uint i,j,len;
0164 ;
0164 ; WrTwoParCmd(0x00,0x00,OFFSET);
0164 82E2 ldi R24,34
0166 8883 std y+0,R24
0168 2227 clr R18
016A 0027 clr R16
016C BFDF xcall _WrTwoParCmd
016E .dbline 344
016E ; WrTwoParCmd(0x00,0x04,ADPSET);
016E 84E2 ldi R24,36
0170 8883 std y+0,R24
0172 24E0 ldi R18,4
0174 0027 clr R16
0176 BADF xcall _WrTwoParCmd
0178 L37:
0178 .dbline 345
0178 L38:
0178 .dbline 345
0178 ; while((ReadSta()&0x08)!=8);
0178 76DF xcall _ReadSta
017A 802F mov R24,R16
017C 8870 andi R24,8
017E 8830 cpi R24,8
0180 D9F7 brne L37
0182 .dbline 346
0182 ; WriteCmd(AWRON);
0182 00EB ldi R16,176
0184 86DF xcall _WriteCmd
0186 .dbline 347
0186 AA24 clr R10
0188 BB24 clr R11
018A 1AC0 xjmp L43
018C L40:
018C .dbline 347
018C ; for(i=0;i<10;i++) { //8*8
018C .dbline 348
018C ; for(j=0;j<8;j++)
018C 6627 clr R22
018E 7727 clr R23
0190 10C0 xjmp L47
0192 L44:
0192 .dbline 349
0192 08E0 ldi R16,8
0194 10E0 ldi R17,0
0196 9501 movw R18,R10
0198 0E940000 xcall empy16s
019C F801 movw R30,R16
019E E60F add R30,R22
01A0 F71F adc R31,R23
01A2 80E0 ldi R24,<_GrCode
01A4 90E0 ldi R25,>_GrCode
01A6 E80F add R30,R24
01A8 F91F adc R31,R25
01AA 0491 lpm R16,Z
01AC 89DF xcall _WriteData
01AE L45:
01AE .dbline 348
01AE 6F5F subi R22,255 ; offset = 1
01B0 7F4F sbci R23,255
01B2 L47:
01B2 .dbline 348
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -