📄 7920.lis
字号:
0156 0FC0 xjmp L32
0158 L29:
0158 .dbline 218
0158 ; {
0158 .dbline 219
0158 ; if (i%18==0) //判断是否换行
0158 12E1 ldi R17,18
015A 042F mov R16,R20
015C 0E940000 xcall mod8u
0160 0023 tst R16
0162 31F4 brne L33
0164 .dbline 220
0164 ; {
0164 .dbline 221
0164 ; DispSetCursor(i/18,0); //如换行, 则光标移动到行首
0164 2227 clr R18
0166 12E1 ldi R17,18
0168 042F mov R16,R20
016A 0E940000 xcall div8u
016E C1DF xcall _DispSetCursor
0170 .dbline 222
0170 ; }
0170 L33:
0170 .dbline 224
0170 00E2 ldi R16,32
0172 93DF xcall _SdData
0174 .dbline 225
0174 L30:
0174 .dbline 217
0174 4395 inc R20
0176 L32:
0176 .dbline 217
0176 4432 cpi R20,36
0178 78F3 brlo L29
017A .dbline 227
017A ;
017A ; SdData(' '); //
017A ; }
017A ;
017A ; j=0;
017A AA24 clr R10
017C 25C0 xjmp L36
017E L35:
017E .dbline 230
017E ; //while (*pstr)
017E ; while (*pstr && j<36)
017E ; {
017E .dbline 231
017E ; if (j%18==0) //判断是否换行
017E 12E1 ldi R17,18
0180 0A2D mov R16,R10
0182 0E940000 xcall mod8u
0186 0023 tst R16
0188 31F4 brne L38
018A .dbline 232
018A ; {
018A .dbline 233
018A ; DispSetCursor(j/18,0); //如换行, 则光标移动到行首
018A 2227 clr R18
018C 12E1 ldi R17,18
018E 0A2D mov R16,R10
0190 0E940000 xcall div8u
0194 AEDF xcall _DispSetCursor
0196 .dbline 234
0196 ; }
0196 L38:
0196 .dbline 237
0196 ;
0196 ; //避免最后一格写半个汉字, 把汉字写到下一行
0196 ; if (((j+1)%18==0) && *pstr>127 && *(pstr-1)<128)
0196 12E1 ldi R17,18
0198 0A2D mov R16,R10
019A 0F5F subi R16,255 ; addi 1
019C 0E940000 xcall mod8u
01A0 0023 tst R16
01A2 69F4 brne L40
01A4 8FE7 ldi R24,127
01A6 FB01 movw R30,R22
01A8 2080 ldd R2,z+0
01AA 8215 cp R24,R2
01AC 40F4 brsh L40
01AE 3197 sbiw R30,1
01B0 8081 ldd R24,z+0
01B2 8038 cpi R24,128
01B4 20F4 brsh L40
01B6 .dbline 238
01B6 ; {
01B6 .dbline 239
01B6 ; SdData(' '); //
01B6 00E2 ldi R16,32
01B8 70DF xcall _SdData
01BA .dbline 240
01BA ; j++;
01BA A394 inc R10
01BC .dbline 241
01BC ; }
01BC 05C0 xjmp L41
01BE L40:
01BE .dbline 243
01BE ; else
01BE ; {
01BE .dbline 244
01BE ; SdData(*pstr++);
01BE FB01 movw R30,R22
01C0 0191 ld R16,Z+
01C2 BF01 movw R22,R30
01C4 6ADF xcall _SdData
01C6 .dbline 245
01C6 ; j++;
01C6 A394 inc R10
01C8 .dbline 246
01C8 ; }
01C8 L41:
01C8 .dbline 250
01C8 L36:
01C8 .dbline 229
01C8 FB01 movw R30,R22
01CA 2080 ldd R2,z+0
01CC 2220 tst R2
01CE 21F0 breq L42
01D0 8A2D mov R24,R10
01D2 8432 cpi R24,36
01D4 08F4 brsh X3
01D6 D3CF xjmp L35
01D8 X3:
01D8 L42:
01D8 .dbline -2
01D8 L28:
01D8 0E940000 xcall pop_gset3
01DC .dbline 0 ; func end
01DC 0895 ret
01DE .dbsym r i 20 c
01DE .dbsym r j 10 c
01DE .dbsym r pstr 22 pc
01DE .dbend
01DE .dbfunc e delay_1us _delay_1us fV
.even
01DE _delay_1us::
01DE .dbline -1
01DE .dbline 259
01DE ;
01DE ; //SdData(*pstr++);
01DE ; //j++;
01DE ; }
01DE ;
01DE ; }
01DE ;
01DE ; /*-----------------------------------------------------------------------
01DE ; 延时函数
01DE ; 系统时钟:8M
01DE ; -----------------------------------------------------------------------*/
01DE ; void delay_1us(void) //1us延时函数
01DE ; {
01DE .dbline 260
01DE ; asm("nop");
01DE 0000 nop
01E0 .dbline -2
01E0 L43:
01E0 .dbline 0 ; func end
01E0 0895 ret
01E2 .dbend
01E2 .dbfunc e delay_nus _delay_nus fV
01E2 ; i -> R20,R21
01E2 ; n -> R22,R23
.even
01E2 _delay_nus::
01E2 0E940000 xcall push_gset2
01E6 B801 movw R22,R16
01E8 .dbline -1
01E8 .dbline 264
01E8 ; }
01E8 ;
01E8 ; void delay_nus(unsigned int n) //N us延时函数
01E8 ; {
01E8 .dbline 265
01E8 ; unsigned int i=0;
01E8 4427 clr R20
01EA 5527 clr R21
01EC .dbline 266
01EC ; for (i=0;i<n;i++)
01EC 03C0 xjmp L48
01EE L45:
01EE .dbline 267
01EE F7DF xcall _delay_1us
01F0 L46:
01F0 .dbline 266
01F0 4F5F subi R20,255 ; offset = 1
01F2 5F4F sbci R21,255
01F4 L48:
01F4 .dbline 266
01F4 4617 cp R20,R22
01F6 5707 cpc R21,R23
01F8 D0F3 brlo L45
01FA .dbline -2
01FA L44:
01FA 0E940000 xcall pop_gset2
01FE .dbline 0 ; func end
01FE 0895 ret
0200 .dbsym r i 20 i
0200 .dbsym r n 22 i
0200 .dbend
0200 .dbfunc e delay_1ms _delay_1ms fV
0200 ; i -> R16,R17
.even
0200 _delay_1ms::
0200 .dbline -1
0200 .dbline 271
0200 ; delay_1us();
0200 ; }
0200 ;
0200 ; void delay_1ms(void) //1ms延时函数
0200 ; {
0200 .dbline 273
0200 0027 clr R16
0202 1127 clr R17
0204 02C0 xjmp L53
0206 L50:
0206 .dbline 273
0206 L51:
0206 .dbline 273
0206 0F5F subi R16,255 ; offset = 1
0208 1F4F sbci R17,255
020A L53:
020A .dbline 273
020A ; unsigned int i;
020A ; for (i=0;i<1140;i++);
020A 0437 cpi R16,116
020C E4E0 ldi R30,4
020E 1E07 cpc R17,R30
0210 D0F3 brlo L50
0212 .dbline -2
0212 L49:
0212 .dbline 0 ; func end
0212 0895 ret
0214 .dbsym r i 16 i
0214 .dbend
0214 .dbfunc e delay_nms _delay_nms fV
0214 ; i -> R20,R21
0214 ; n -> R22,R23
.even
0214 _delay_nms::
0214 0E940000 xcall push_gset2
0218 B801 movw R22,R16
021A .dbline -1
021A .dbline 277
021A ; }
021A ;
021A ; void delay_nms(unsigned int n) //N ms延时函数
021A ; {
021A .dbline 278
021A ; unsigned int i=0;
021A 4427 clr R20
021C 5527 clr R21
021E .dbline 279
021E ; for (i=0;i<n;i++)
021E 03C0 xjmp L58
0220 L55:
0220 .dbline 280
0220 EFDF xcall _delay_1ms
0222 L56:
0222 .dbline 279
0222 4F5F subi R20,255 ; offset = 1
0224 5F4F sbci R21,255
0226 L58:
0226 .dbline 279
0226 4617 cp R20,R22
0228 5707 cpc R21,R23
022A D0F3 brlo L55
022C .dbline -2
022C L54:
022C 0E940000 xcall pop_gset2
0230 .dbline 0 ; func end
0230 0895 ret
0232 .dbsym r i 20 i
0232 .dbsym r n 22 i
0232 .dbend
.area data(ram, con, rel)
0013 .dbfile E:\_opt\___7920_serial\source\7920.c
0013 L19:
0013 .blkb 29
.area idata
0013 CAC0BDE7C4E3BAC33132333435363738 .byte 202,192,189,231,196,227,186,195,49,50,51,52,53,54,55,56
0023 39303132333435363738393000 .byte 57,48,49,50,51,52,53,54,55,56,57,48,0
.area data(ram, con, rel)
0030 .dbfile E:\_opt\___7920_serial\source\7920.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -