📄 main.lis
字号:
0156 ; temp |= 0x80;
0156 4068 ori R20,128
0158 .dbline 153
0158 ; send_i(temp);
0158 042F mov R16,R20
015A 96DF rcall _send_i
015C .dbline -2
015C .dbline 154
015C ; }
015C L34:
015C 00D0 rcall pop_gset2
015E .dbline 0 ; func end
015E 0895 ret
0160 .dbsym r temp 20 c
0160 .dbsym r posy 22 c
0160 .dbsym r posx 20 c
0160 .dbend
0160 .dbfunc e disponechar _disponechar fV
0160 ; wdata -> y+4
0160 ; y -> R22
0160 ; x -> R20
.even
0160 _disponechar::
0160 00D0 rcall push_gset2
0162 622F mov R22,R18
0164 402F mov R20,R16
0166 .dbline -1
0166 .dbline 159
0166 ;
0166 ; /*=======================================================
0166 ; 按指定位置显示数出一个字符
0166 ; =======================================================*/
0166 ; void disponechar(uchar x,uchar y,uchar wdata) {
0166 .dbline 161
0166 ;
0166 ; locateXY( x, y ); // 定位显示地址
0166 262F mov R18,R22
0168 042F mov R16,R20
016A EEDF rcall _locateXY
016C .dbline 162
016C ; send_d( wdata ); // 写字符
016C 0C81 ldd R16,y+4
016E 9EDF rcall _send_d
0170 .dbline -2
0170 .dbline 163
0170 ; }
0170 L37:
0170 00D0 rcall pop_gset2
0172 .dbline 0 ; func end
0172 0895 ret
0174 .dbsym l wdata 4 c
0174 .dbsym r y 22 c
0174 .dbsym r x 20 c
0174 .dbend
0174 .dbfunc e eputstr _eputstr fV
0174 ; l -> R20
0174 ; i -> R22
0174 ; ptr -> R10,R11
0174 ; y -> R12
0174 ; x -> R14
.even
0174 _eputstr::
0174 00D0 rcall push_gset5
0176 C22E mov R12,R18
0178 E02E mov R14,R16
017A 2197 sbiw R28,1
017C AB84 ldd R10,y+11
017E BC84 ldd R11,y+12
0180 .dbline -1
0180 .dbline 168
0180 ;
0180 ; /*=======================================================
0180 ; 显示字符串
0180 ; =======================================================*/
0180 ; void eputstr(uchar x,uchar y, uchar *ptr) {
0180 .dbline 169
0180 ; uchar i,l=0;
0180 4427 clr R20
0182 01C0 rjmp L40
0184 L39:
0184 .dbline 170
0184 .dbline 170
0184 4395 inc R20
0186 .dbline 170
0186 L40:
0186 .dbline 170
0186 ; while (ptr[l] >31){l++;};
0186 E42F mov R30,R20
0188 FF27 clr R31
018A EA0D add R30,R10
018C FB1D adc R31,R11
018E 2080 ldd R2,z+0
0190 8FE1 ldi R24,31
0192 8215 cp R24,R2
0194 B8F3 brlo L39
0196 .dbline 170
0196 .dbline 171
0196 6627 clr R22
0198 14C0 rjmp L45
019A L42:
019A .dbline 171
019A ; for (i=0;i<l;i++) {
019A .dbline 172
019A ; disponechar(x++,y,ptr[i]);
019A E62F mov R30,R22
019C FF27 clr R31
019E EA0D add R30,R10
01A0 FB1D adc R31,R11
01A2 2080 ldd R2,z+0
01A4 2882 std y+0,R2
01A6 2C2D mov R18,R12
01A8 2E2C mov R2,R14
01AA 822D mov R24,R2
01AC 8F5F subi R24,255 ; addi 1
01AE E82E mov R14,R24
01B0 022D mov R16,R2
01B2 D6DF rcall _disponechar
01B4 .dbline 173
01B4 ; if ( x == 16 ){
01B4 8E2D mov R24,R14
01B6 8031 cpi R24,16
01B8 19F4 brne L46
01BA .dbline 173
01BA .dbline 174
01BA ; x = 0; y ^= 1;
01BA EE24 clr R14
01BC .dbline 174
01BC 81E0 ldi R24,1
01BE C826 eor R12,R24
01C0 .dbline 175
01C0 ; }
01C0 L46:
01C0 .dbline 176
01C0 L43:
01C0 .dbline 171
01C0 6395 inc R22
01C2 L45:
01C2 .dbline 171
01C2 6417 cp R22,R20
01C4 50F3 brlo L42
01C6 .dbline -2
01C6 .dbline 177
01C6 ; }
01C6 ; }
01C6 L38:
01C6 2196 adiw R28,1
01C8 00D0 rcall pop_gset5
01CA .dbline 0 ; func end
01CA 0895 ret
01CC .dbsym r l 20 c
01CC .dbsym r i 22 c
01CC .dbsym r ptr 10 pc
01CC .dbsym r y 12 c
01CC .dbsym r x 14 c
01CC .dbend
01CC .dbfunc e main _main fV
.even
01CC _main::
01CC 2297 sbiw R28,2
01CE .dbline -1
01CE .dbline 180
01CE ;
01CE ; void main(void)
01CE ; {
01CE .dbline 181
01CE ; ledon();
01CE 18DF rcall _ledon
01D0 .dbline 182
01D0 ; lcd_init();
01D0 8DDF rcall _lcd_init
01D2 .dbline 183
01D2 ; delay(50);
01D2 02E3 ldi R16,50
01D4 10E0 ldi R17,0
01D6 1DDF rcall _delay
01D8 .dbline 184
01D8 ; eputstr(0,0,exampl); // 上面一行显示一个预定字符串
01D8 80E0 ldi R24,<_exampl
01DA 90E0 ldi R25,>_exampl
01DC 9983 std y+1,R25
01DE 8883 std y+0,R24
01E0 2227 clr R18
01E2 0027 clr R16
01E4 C7DF rcall _eputstr
01E6 .dbline 185
01E6 ; eputstr(0,0,exampl2);
01E6 80E0 ldi R24,<_exampl2
01E8 90E0 ldi R25,>_exampl2
01EA 9983 std y+1,R25
01EC 8883 std y+0,R24
01EE 2227 clr R18
01F0 0027 clr R16
01F2 C0DF rcall _eputstr
01F4 .dbline 187
01F4 ; //putstring(0x80,exampl);
01F4 ; delayus(500000);
01F4 40E2 ldi R20,32
01F6 51EA ldi R21,161
01F8 67E0 ldi R22,7
01FA 70E0 ldi R23,0
01FC 042F mov R16,R20
01FE 2EDF rcall _delayus
0200 .dbline 188
0200 ; delayus(500000);
0200 40E2 ldi R20,32
0202 51EA ldi R21,161
0204 67E0 ldi R22,7
0206 70E0 ldi R23,0
0208 042F mov R16,R20
020A 28DF rcall _delayus
020C .dbline 189
020C ; delayus(500000);
020C 40E2 ldi R20,32
020E 51EA ldi R21,161
0210 67E0 ldi R22,7
0212 70E0 ldi R23,0
0214 042F mov R16,R20
0216 22DF rcall _delayus
0218 .dbline 190
0218 ; delayus(500000);
0218 40E2 ldi R20,32
021A 51EA ldi R21,161
021C 67E0 ldi R22,7
021E 70E0 ldi R23,0
0220 042F mov R16,R20
0222 1CDF rcall _delayus
0224 .dbline 191
0224 ; delayus(500000);
0224 40E2 ldi R20,32
0226 51EA ldi R21,161
0228 67E0 ldi R22,7
022A 70E0 ldi R23,0
022C 042F mov R16,R20
022E 16DF rcall _delayus
0230 .dbline 192
0230 ; delayus(500000);
0230 40E2 ldi R20,32
0232 51EA ldi R21,161
0234 67E0 ldi R22,7
0236 70E0 ldi R23,0
0238 042F mov R16,R20
023A 10DF rcall _delayus
023C .dbline 193
023C ; delayus(500000);
023C 40E2 ldi R20,32
023E 51EA ldi R21,161
0240 67E0 ldi R22,7
0242 70E0 ldi R23,0
0244 042F mov R16,R20
0246 0ADF rcall _delayus
0248 .dbline 194
0248 ; delayus(500000);
0248 40E2 ldi R20,32
024A 51EA ldi R21,161
024C 67E0 ldi R22,7
024E 70E0 ldi R23,0
0250 042F mov R16,R20
0252 04DF rcall _delayus
0254 .dbline 196
0254 ;
0254 ; ledoff();
0254 DADE rcall _ledoff
0256 .dbline 197
0256 ; DDRD = 0xff;
0256 8FEF ldi R24,255
0258 81BB out 0x11,R24
025A .dbline 198
025A ; PORTD = 0;
025A 2224 clr R2
025C 22BA out 0x12,R2
025E .dbline 199
025E ; wait();
025E 04DF rcall _wait
0260 L49:
0260 .dbline 200
0260 L50:
0260 .dbline 200
0260 FFCF rjmp L49
0262 X3:
0262 .dbline -2
0262 .dbline 201
0262 ; while(1);
0262 ; }
0262 L48:
0262 2296 adiw R28,2
0264 .dbline 0 ; func end
0264 0895 ret
0266 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -