📄 main.lis
字号:
0182 8130 cpi R24,1
0184 11F4 brne L25
0186 .dbline 167
0186 31D0 xcall _display
0188 1AC0 xjmp L26
018A L25:
018A .dbline 168
018A ; else if(clr==1)
018A 80910100 lds R24,_clr
018E 8130 cpi R24,1
0190 91F4 brne L27
0192 .dbline 169
0192 ; {
0192 .dbline 170
0192 ; LCD_write_char(0x01,0);
0192 2227 clr R18
0194 3327 clr R19
0196 01E0 ldi R16,1
0198 10E0 ldi R17,0
019A 0E940000 xcall _LCD_write_char
019E .dbline 171
019E ; clr=0;
019E 2224 clr R2
01A0 20920100 sts _clr,R2
01A4 .dbline 172
01A4 ; one=0;
01A4 20920500 sts _one,R2
01A8 .dbline 173
01A8 ; two=0;
01A8 20920200 sts _two,R2
01AC .dbline 174
01AC ; start=0;
01AC 20920400 sts _start,R2
01B0 .dbline 175
01B0 ; end=0;
01B0 20920300 sts _end,R2
01B4 .dbline 176
01B4 ; }
01B4 04C0 xjmp L28
01B6 L27:
01B6 .dbline 178
01B6 ; else
01B6 ; delay_nms(1000) ;
01B6 08EE ldi R16,1000
01B8 13E0 ldi R17,3
01BA 0E940000 xcall _delay_nms
01BE L28:
01BE L26:
01BE .dbline 180
01BE L23:
01BE .dbline 157
01BE CACF xjmp L22
01C0 X1:
01C0 .dbline -2
01C0 L21:
01C0 2496 adiw R28,4
01C2 .dbline 0 ; func end
01C2 0895 ret
01C4 .dbsym l temp 1 c
01C4 .dbsym r vdata 10 i
01C4 .dbsym r data 12 i
01C4 .dbsym l m 0 l
01C4 .dbend
01C4 .dbfunc e puts _puts fV
01C4 ; l -> R20
01C4 ; h -> R20
01C4 ; data -> y+2
.even
01C4 _puts::
01C4 1A93 st -y,r17
01C6 0A93 st -y,r16
01C8 0E940000 xcall push_gset1
01CC .dbline -1
01CC .dbline 185
01CC ;
01CC ; }//主循环结束
01CC ; }//主程序结束
01CC ;
01CC ;
01CC ; void puts(unsigned int data )
01CC ; {
01CC .dbline 188
01CC ; // UDR=data>>8;
01CC ; unsigned char h , l ;
01CC ; h=*((unsigned char *)(&data)+1);
01CC 4B81 ldd R20,y+3
01CE .dbline 189
01CE ; UDR=h;
01CE 4CB9 out 0xc,R20
01D0 L31:
01D0 .dbline 190
01D0 L32:
01D0 .dbline 190
01D0 ; while(!(USR&0x40));
01D0 5E9B sbis 0xb,6
01D2 FECF rjmp L31
01D4 .dbline 191
01D4 ; USR |= 0x40;
01D4 5E9A sbi 0xb,6
01D6 .dbline 193
01D6 ; //UDR=data;
01D6 ; l=*(unsigned char *)(&data);
01D6 FE01 movw R30,R28
01D8 4281 ldd R20,z+2
01DA .dbline 194
01DA ; UDR=l;
01DA 4CB9 out 0xc,R20
01DC L34:
01DC .dbline 195
01DC L35:
01DC .dbline 195
01DC ; while(!(USR&0x40));
01DC 5E9B sbis 0xb,6
01DE FECF rjmp L34
01E0 .dbline 196
01E0 ; USR |= 0x40;
01E0 5E9A sbi 0xb,6
01E2 .dbline -2
01E2 L29:
01E2 0E940000 xcall pop_gset1
01E6 2296 adiw R28,2
01E8 .dbline 0 ; func end
01E8 0895 ret
01EA .dbsym r l 20 c
01EA .dbsym r h 20 c
01EA .dbsym l data 2 i
01EA .dbend
01EA .dbfunc e display _display fV
01EA ; k -> R20
.even
01EA _display::
01EA 0E940000 xcall push_gset1
01EE .dbline -1
01EE .dbline 201
01EE ;
01EE ; }
01EE ;
01EE ; void display(void)
01EE ; {
01EE .dbline 203
01EE ; unsigned char k ;
01EE ; if(one==1)
01EE 80910500 lds R24,_one
01F2 8130 cpi R24,1
01F4 E9F4 brne L38
01F6 .dbline 204
01F6 ; {
01F6 .dbline 205
01F6 ; LCD_set_xy(0,0);
01F6 2227 clr R18
01F8 0027 clr R16
01FA 0E940000 xcall _LCD_set_xy
01FE .dbline 206
01FE ; for(k=1;k<=end;k++)
01FE 41E0 ldi R20,1
0200 0DC0 xjmp L43
0202 L40:
0202 .dbline 207
0202 .dbline 208
0202 80E0 ldi R24,<_string
0204 90E0 ldi R25,>_string
0206 E42F mov R30,R20
0208 FF27 clr R31
020A E80F add R30,R24
020C F91F adc R31,R25
020E 2081 ldd R18,z+0
0210 3327 clr R19
0212 0027 clr R16
0214 1127 clr R17
0216 0E940000 xcall _LCD_write_char
021A .dbline 210
021A L41:
021A .dbline 206
021A 4395 inc R20
021C L43:
021C .dbline 206
021C 20900300 lds R2,_end
0220 2416 cp R2,R20
0222 78F7 brsh L40
0224 .dbline 211
0224 ; {
0224 ; LCD_write_char(0,string[k]);
0224 ;
0224 ; }
0224 ; start=0;
0224 2224 clr R2
0226 20920400 sts _start,R2
022A .dbline 212
022A ; i=0;
022A 20920000 sts _i,R2
022E .dbline 213
022E ; }
022E 20C0 xjmp L39
0230 L38:
0230 .dbline 214
0230 ; else if(two==1)
0230 80910200 lds R24,_two
0234 8130 cpi R24,1
0236 E1F4 brne L44
0238 .dbline 215
0238 ; {
0238 .dbline 216
0238 ; LCD_set_xy(0,1);
0238 21E0 ldi R18,1
023A 0027 clr R16
023C 0E940000 xcall _LCD_set_xy
0240 .dbline 217
0240 ; for(k=1;k<=end;k++)
0240 41E0 ldi R20,1
0242 0DC0 xjmp L49
0244 L46:
0244 .dbline 218
0244 .dbline 219
0244 80E0 ldi R24,<_string
0246 90E0 ldi R25,>_string
0248 E42F mov R30,R20
024A FF27 clr R31
024C E80F add R30,R24
024E F91F adc R31,R25
0250 2081 ldd R18,z+0
0252 3327 clr R19
0254 0027 clr R16
0256 1127 clr R17
0258 0E940000 xcall _LCD_write_char
025C .dbline 221
025C L47:
025C .dbline 217
025C 4395 inc R20
025E L49:
025E .dbline 217
025E 20900300 lds R2,_end
0262 2416 cp R2,R20
0264 78F7 brsh L46
0266 .dbline 222
0266 ; {
0266 ; LCD_write_char(0,string[k]);
0266 ;
0266 ; }
0266 ; start = 0 ;
0266 2224 clr R2
0268 20920400 sts _start,R2
026C .dbline 223
026C ; i= 0;
026C 20920000 sts _i,R2
0270 .dbline 224
0270 ; }
0270 L44:
0270 L39:
0270 .dbline -2
0270 L37:
0270 0E940000 xcall pop_gset1
0274 .dbline 0 ; func end
0274 0895 ret
0276 .dbsym r k 20 c
0276 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\我的设计\delphi\uartdispy\mcu\main.c
0000 _string::
0000 .blkb 18
0012 .dbsym e string _string A[18:18]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -