⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.lis

📁 基于m16的寻迹寻光小车程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 039C 0CAD              ldd R16,y+60
 039E 1DAD              ldd R17,y+61
 03A0 0E940000          xcall uint2fp
 03A4 3A93              st -y,R19
 03A6 2A93              st -y,R18
 03A8 1A93              st -y,R17
 03AA 0A93              st -y,R16
 03AC 8101              movw R16,R2
 03AE 9201              movw R18,R4
 03B0 0E940000          xcall fpmule2
 03B4 0E940000          xcall fpint
 03B8 0C83              std y+4,R16
 03BA 1D83              std y+5,R17
 03BC 2E83              std y+6,R18
 03BE 3F83              std y+7,R19
 03C0                   .dbline 252
 03C0           ; 
 03C0           ;     datawhole_n = lengh_longint( datawhole ); //如果整数部分为0, datawhole_n 不一定等于小数的位数
 03C0 0C81              ldd R16,y+4
 03C2 1D81              ldd R17,y+5
 03C4 2E81              ldd R18,y+6
 03C6 3F81              ldd R19,y+7
 03C8 EADE              xcall _lengh_longint
 03CA                   .dbline 254
 03CA           ; 
 03CA           ;     whole_fact_n = mm + zhengshu_n;           ///*/*实际
 03CA 242E              mov R2,R20
 03CC 3324              clr R3
 03CE AE2C              mov R10,R14
 03D0 A20C              add R10,R2
 03D2 B31C              adc R11,R3
 03D4                   .dbline 256
 03D4           ; 
 03D4           ;     if( zhengshu  == 0 )
 03D4 CC20              tst R12
 03D6 71F4              brne L46
 03D8 DD20              tst R13
 03DA 61F4              brne L46
 03DC           X16:
 03DC                   .dbline 257
 03DC           ;     {
 03DC                   .dbline 258
 03DC           ;         xiaoshu_act_n = lengh_longint( datawhole );
 03DC 0C81              ldd R16,y+4
 03DE 1D81              ldd R17,y+5
 03E0 2E81              ldd R18,y+6
 03E2 3F81              ldd R19,y+7
 03E4 DCDE              xcall _lengh_longint
 03E6 A02E              mov R10,R16
 03E8                   .dbline 259
 03E8           ;         ling_n = mm - xiaoshu_act_n;   //如果整数为0, 小数有效位为xiaoshu_act_n
 03E8 2A2C              mov R2,R10
 03EA 3324              clr R3
 03EC 6E2D              mov R22,R14
 03EE 6219              sub R22,R2
 03F0 7309              sbc R23,R3
 03F2                   .dbline 260
 03F2           ;     }
 03F2 01C0              xjmp L47
 03F4           L46:
 03F4                   .dbline 262
 03F4           ; 
 03F4           ;     else xiaoshu_act_n = mm;
 03F4 AE2C              mov R10,R14
 03F6           L47:
 03F6                   .dbline 264
 03F6           ; 
 03F6           ;     ling_n = mm - xiaoshu_act_n;  //用ling_0记录小数部分前面0的位数
 03F6 2A2C              mov R2,R10
 03F8 3324              clr R3
 03FA 6E2D              mov R22,R14
 03FC 6219              sub R22,R2
 03FE 7309              sbc R23,R3
 0400                   .dbline 266
 0400           ; 
 0400           ;     for( i = 0; i < xiaoshu_act_n; i++ )
 0400 0024              clr R0
 0402 0EA2              std y+38,R0
 0404 39C0              xjmp L51
 0406           L48:
 0406                   .dbline 267
 0406           ;     {
 0406                   .dbline 268
 0406           ;         datachar1[n++] = ( datawhole % 10 ) + 0x30;  //转换为字符
 0406 E9A4              ldd R14,y+41
 0408 FF24              clr R15
 040A 8E2D              mov R24,R14
 040C 8F5F              subi R24,255    ; addi 1
 040E 89A7              std y+41,R24
 0410 8AE0              ldi R24,10
 0412 90E0              ldi R25,0
 0414 A0E0              ldi R26,0
 0416 B0E0              ldi R27,0
 0418 0C81              ldd R16,y+4
 041A 1D81              ldd R17,y+5
 041C 2E81              ldd R18,y+6
 041E 3F81              ldd R19,y+7
 0420 BA93              st -y,R27
 0422 AA93              st -y,R26
 0424 9A93              st -y,R25
 0426 8A93              st -y,R24
 0428 0E940000          xcall mod32s
 042C 1801              movw R2,R16
 042E 2901              movw R4,R18
 0430 80E3              ldi R24,48
 0432 90E0              ldi R25,0
 0434 A0E0              ldi R26,0
 0436 B0E0              ldi R27,0
 0438 280E              add R2,R24
 043A 391E              adc R3,R25
 043C 4A1E              adc R4,R26
 043E 5B1E              adc R5,R27
 0440 CE01              movw R24,R28
 0442 0896              adiw R24,8
 0444 EE2D              mov R30,R14
 0446 FF27              clr R31
 0448 E80F              add R30,R24
 044A F91F              adc R31,R25
 044C 2082              std z+0,R2
 044E                   .dbline 269
 044E           ;         datawhole /= 10;
 044E 8AE0              ldi R24,10
 0450 90E0              ldi R25,0
 0452 A0E0              ldi R26,0
 0454 B0E0              ldi R27,0
 0456 0C81              ldd R16,y+4
 0458 1D81              ldd R17,y+5
 045A 2E81              ldd R18,y+6
 045C 3F81              ldd R19,y+7
 045E BA93              st -y,R27
 0460 AA93              st -y,R26
 0462 9A93              st -y,R25
 0464 8A93              st -y,R24
 0466 0E940000          xcall div32s
 046A 0C83              std y+4,R16
 046C 1D83              std y+5,R17
 046E 2E83              std y+6,R18
 0470 3F83              std y+7,R19
 0472                   .dbline 270
 0472           ;     }
 0472           L49:
 0472                   .dbline 266
 0472 0EA0              ldd R0,y+38
 0474 0394              inc R0
 0476 0EA2              std y+38,R0
 0478           L51:
 0478                   .dbline 266
 0478 0EA0              ldd R0,y+38
 047A 0A14              cp R0,R10
 047C 08F4              brsh X21
 047E C3CF              xjmp L48
 0480           X21:
 0480           X17:
 0480                   .dbline 272
 0480           ; 
 0480           ;     k = n - 1;
 0480 89A5              ldd R24,y+41
 0482 8150              subi R24,1
 0484 8FA3              std y+39,R24
 0486                   .dbline 273
 0486           ;     kk = n;                                         //记录存入的个数
 0486 09A4              ldd R0,y+41
 0488 08A6              std y+40,R0
 048A                   .dbline 275
 048A           ; 
 048A           ;    for( i = 0; i < kk; i++, k-- )
 048A 0024              clr R0
 048C 0EA2              std y+38,R0
 048E 14C0              xjmp L55
 0490           L52:
 0490                   .dbline 276
 0490           ;     {
 0490                   .dbline 277
 0490           ;         datachar2[k] = datachar1[i];               //将数字符串倒过来
 0490 CE01              movw R24,R28
 0492 0896              adiw R24,8
 0494 EEA1              ldd R30,y+38
 0496 FF27              clr R31
 0498 E80F              add R30,R24
 049A F91F              adc R31,R25
 049C 2080              ldd R2,z+0
 049E CE01              movw R24,R28
 04A0 4196              adiw R24,17
 04A2 EFA1              ldd R30,y+39
 04A4 FF27              clr R31
 04A6 E80F              add R30,R24
 04A8 F91F              adc R31,R25
 04AA 2082              std z+0,R2
 04AC                   .dbline 278
 04AC           ;     }
 04AC           L53:
 04AC                   .dbline 275
 04AC 0EA0              ldd R0,y+38
 04AE 0394              inc R0
 04B0 0EA2              std y+38,R0
 04B2 0FA0              ldd R0,y+39
 04B4 0A94              dec R0
 04B6 0FA2              std y+39,R0
 04B8           L55:
 04B8                   .dbline 275
 04B8 0EA0              ldd R0,y+38
 04BA 08A5              ldd R16,y+40
 04BC 0016              cp R0,R16
 04BE 40F3              brlo L52
 04C0           X18:
 04C0                   .dbline 280
 04C0           ;       
 04C0           ;       LCD_write_datalongint( r, c, zhengshu );    //显示整数部分
 04C0 1601              movw R2,R12
 04C2 4424              clr R4
 04C4 5524              clr R5
 04C6 2882              std y+0,R2
 04C8 3982              std y+1,R3
 04CA 4A82              std y+2,R4
 04CC 5B82              std y+3,R5
 04CE 2EA9              ldd R18,y+54
 04D0 0CA9              ldd R16,y+52
 04D2 A0DE              xcall _LCD_write_datalongint
 04D4                   .dbline 281
 04D4           ;       c = c + zhengshu_n;
 04D4 0EA8              ldd R0,y+54
 04D6 040E              add R0,R20
 04D8 0EAA              std y+54,R0
 04DA                   .dbline 282
 04DA           ;       LCD_write_char( r, c, '.' );
 04DA 8EE2              ldi R24,46
 04DC 8883              std y+0,R24
 04DE 202D              mov R18,R0
 04E0 0CA9              ldd R16,y+52
 04E2 13DE              xcall _LCD_write_char
 04E4                   .dbline 283
 04E4           ;     c++;
 04E4 0EA8              ldd R0,y+54
 04E6 0394              inc R0
 04E8 0EAA              std y+54,R0
 04EA                   .dbline 284
 04EA           ;     for( i = 0; i < ling_n; i++ )            
 04EA 0024              clr R0
 04EC 0EA2              std y+38,R0
 04EE 0CC0              xjmp L59
 04F0           L56:
 04F0                   .dbline 285
 04F0           ;     {
 04F0                   .dbline 286
 04F0           ;         LCD_write_char( r, c++, '0' );
 04F0 80E3              ldi R24,48
 04F2 8883              std y+0,R24
 04F4 4EA9              ldd R20,y+54
 04F6 842F              mov R24,R20
 04F8 8F5F              subi R24,255    ; addi 1
 04FA 8EAB              std y+54,R24
 04FC 242F              mov R18,R20
 04FE 0CA9              ldd R16,y+52
 0500 04DE              xcall _LCD_write_char
 0502                   .dbline 287
 0502           ;     }
 0502           L57:
 0502                   .dbline 284
 0502 0EA0              ldd R0,y+38
 0504 0394              inc R0
 0506 0EA2              std y+38,R0
 0508           L59:
 0508                   .dbline 284
 0508 0EA0              ldd R0,y+38
 050A 0616              cp R0,R22
 050C 88F3              brlo L56
 050E           X19:
 050E                   .dbline 289
 050E           ; 
 050E           ;     for( i = 0; i < kk; i++ )
 050E 0024              clr R0
 0510 0EA2              std y+38,R0
 0512 12C0              xjmp L63
 0514           L60:
 0514                   .dbline 290
 0514           ;     {
 0514                   .dbline 291
 0514           ;         LCD_write_char( r, c++, datachar2[i] );
 0514 CE01              movw R24,R28
 0516 4196              adiw R24,17
 0518 EEA1              ldd R30,y+38
 051A FF27              clr R31
 051C E80F              add R30,R24
 051E F91F              adc R31,R25
 0520 2080              ldd R2,z+0
 0522 2882              std y+0,R2
 0524 6EA9              ldd R22,y+54
 0526 862F              mov R24,R22
 0528 8F5F              subi R24,255    ; addi 1
 052A 8EAB              std y+54,R24
 052C 262F              mov R18,R22
 052E 0CA9              ldd R16,y+52
 0530 ECDD              xcall _LCD_write_char
 0532                   .dbline 292
 0532           ;     }
 0532           L61:
 0532                   .dbline 289
 0532 0EA0              ldd R0,y+38
 0534 0394              inc R0
 0536 0EA2              std y+38,R0
 0538           L63:
 0538                   .dbline 289
 0538 0EA0              ldd R0,y+38
 053A 08A5              ldd R16,y+40
 053C 0016              cp R0,R16
 053E 50F3              brlo L60
 0540           X20:
 0540                   .dbline -2
 0540           L45:
 0540                   .dbline 0 ; func end
 0540 AA96              adiw R28,42
 0542 0E940000          xcall pop_xgsetF0FC
 0546 2496              adiw R28,4
 0548 0895              ret
 054A                   .dbsym l datawholetmp 34 L
 054A                   .dbsym l xiaoxhu 5 i
 054A                   .dbsym l datatemp2_f 30 D
 054A                   .dbsym r xiaoshu_n 10 c
 054A                   .dbsym r whole_fact_n 10 c
 054A                   .dbsym r zhengshu_no 10 c
 054A                   .dbsym r datawhole_n 10 c
 054A                   .dbsym l datatemp1_f 26 D
 054A                   .dbsym r zhengshu_n 20 c
 054A                   .dbsym r zhengshu 12 i
 054A                   .dbsym r ling_n 22 c
 054A                   .dbsym r xiaoshu_act_n 10 c
 054A                   .dbsym l n 41 c
 054A                   .dbsym l datachar2 17 A[9:9]c
 054A                   .dbsym l datachar1 8 A[9:9]c
 054A                   .dbsym l kk 40 c
 054A                   .dbsym l k 39 c
 054A                   .dbsym l datawhole 4 L
 054A                   .dbsym l i 38 c
 054A                   .dbsym r mm 14 i
 054A                   .dbsym l p 60 i
 054A                   .dbsym l datafloat 56 D
 054A                   .dbsym l c 54 c
 054A                   .dbsym l r 52 c
 054A                   .dbend
 054A           ; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -