📄 main.lis
字号:
0362 ; while(PINA&(1<<2)); //等待,放电完成,PINA2被拉低
0362 CA99 sbic 0x19,2
0364 FECF rjmp L90
0366 .dbline 311
0366 ; TCCR0 = 0x00; //stop timer
0366 2224 clr R2
0368 23BE out 0x33,R2
036A .dbline 312
036A ; time1=timer_count; //记录标准电阻的放电时间
036A E0900000 lds R14,_timer_count
036E F0900100 lds R15,_timer_count+1
0372 .dbline 315
0372 ;
0372 ;
0372 ; timer_count=0;
0372 3324 clr R3
0374 30920100 sts _timer_count+1,R3
0378 20920000 sts _timer_count,R2
037C .dbline 316
037C ; init_devices(); //全部输入,内部上拉
037C 69DE xcall _init_devices
037E .dbline 317
037E ; DDRA |=(1<<2);
037E D29A sbi 0x1a,2
0380 .dbline 318
0380 ; PORTA |=(1<<2); //PA2 输出,完成充电
0380 DA9A sbi 0x1b,2
0382 .dbline 319
0382 ; Delay1s(1); //延时等待充满
0382 01E0 ldi R16,1
0384 10E0 ldi R17,0
0386 9ADE xcall _Delay1s
0388 .dbline 320
0388 ; _NOP();
0388 0000 nop
038A .dbline 321
038A ; DDRA &=~(1<<2); //输入
038A D298 cbi 0x1a,2
038C .dbline 322
038C ; PORTA &=~(1<<2); //清内部上拉
038C DA98 cbi 0x1b,2
038E .dbline 324
038E ;
038E ; timer0_init();
038E 42DE xcall _timer0_init
0390 .dbline 325
0390 ; DDRA |=(1<<0); //
0390 D09A sbi 0x1a,0
0392 .dbline 326
0392 ; PORTA &=~(1<<0); //PA0 输出低,完成放电
0392 D898 cbi 0x1b,0
0394 L93:
0394 .dbline 327
0394 L94:
0394 .dbline 327
0394 ; while(PINA&(1<<2)); //等待,让电完成,PINA2被拉低
0394 CA99 sbic 0x19,2
0396 FECF rjmp L93
0398 .dbline 328
0398 ; TCCR0 = 0x00; //stop timer
0398 2224 clr R2
039A 23BE out 0x33,R2
039C .dbline 329
039C ; time2=timer_count; //计算待测电阻的时间
039C C0900000 lds R12,_timer_count
03A0 D0900100 lds R13,_timer_count+1
03A4 .dbline 332
03A4 ;
03A4 ; //开始计算阻值
03A4 ; R=RF*time2/time1;
03A4 FE01 movw R30,R28
03A6 2480 ldd R2,z+4
03A8 3580 ldd R3,z+5
03AA 4680 ldd R4,z+6
03AC 5780 ldd R5,z+7
03AE 5A92 st -y,R5
03B0 4A92 st -y,R4
03B2 3A92 st -y,R3
03B4 2A92 st -y,R2
03B6 00E0 ldi R16,<L96
03B8 10E0 ldi R17,>L96
03BA 0E940000 xcall lpm32
03BE 3A93 st -y,R19
03C0 2A93 st -y,R18
03C2 1A93 st -y,R17
03C4 0A93 st -y,R16
03C6 8601 movw R16,R12
03C8 1695 lsr R17
03CA 0795 ror R16
03CC 0E940000 xcall int2fp
03D0 3A93 st -y,R19
03D2 2A93 st -y,R18
03D4 1A93 st -y,R17
03D6 0A93 st -y,R16
03D8 0E940000 xcall empy32fs
03DC 8601 movw R16,R12
03DE 0170 andi R16,1
03E0 1070 andi R17,0
03E2 0E940000 xcall int2fp
03E6 3A93 st -y,R19
03E8 2A93 st -y,R18
03EA 1A93 st -y,R17
03EC 0A93 st -y,R16
03EE 0E940000 xcall add32fs
03F2 0E940000 xcall empy32fs
03F6 00E0 ldi R16,<L96
03F8 10E0 ldi R17,>L96
03FA 0E940000 xcall lpm32
03FE 3A93 st -y,R19
0400 2A93 st -y,R18
0402 1A93 st -y,R17
0404 0A93 st -y,R16
0406 8701 movw R16,R14
0408 1695 lsr R17
040A 0795 ror R16
040C 0E940000 xcall int2fp
0410 3A93 st -y,R19
0412 2A93 st -y,R18
0414 1A93 st -y,R17
0416 0A93 st -y,R16
0418 0E940000 xcall empy32fs
041C 8701 movw R16,R14
041E 0170 andi R16,1
0420 1070 andi R17,0
0422 0E940000 xcall int2fp
0426 3A93 st -y,R19
0428 2A93 st -y,R18
042A 1A93 st -y,R17
042C 0A93 st -y,R16
042E 0E940000 xcall add32fs
0432 0E940000 xcall div32f
0436 FE01 movw R30,R28
0438 0083 std z+0,R16
043A 1183 std z+1,R17
043C 2283 std z+2,R18
043E 3383 std z+3,R19
0440 .dbline 335
0440 ;
0440 ; //R=1234;
0440 ; LcdInit();
0440 51DE xcall _LcdInit
0442 .dbline 336
0442 ; LcdGotoXY(X_Init,Y_Init);
0442 22E0 ldi R18,2
0444 0AE0 ldi R16,10
0446 84DE xcall _LcdGotoXY
0448 .dbline 338
0448 ;
0448 ; R_TMP=R;
0448 FE01 movw R30,R28
044A 2080 ldd R2,z+0
044C 3180 ldd R3,z+1
044E 4280 ldd R4,z+2
0450 5380 ldd R5,z+3
0452 5A92 st -y,R5
0454 4A92 st -y,R4
0456 3A92 st -y,R3
0458 2A92 st -y,R2
045A 00E0 ldi R16,<L99
045C 10E0 ldi R17,>L99
045E 0E940000 xcall lpm32
0462 3A93 st -y,R19
0464 2A93 st -y,R18
0466 1A93 st -y,R17
0468 0A93 st -y,R16
046A 0E940000 xcall cmp32f
046E D4F0 brlt L97
0470 FE01 movw R30,R28
0472 2080 ldd R2,z+0
0474 3180 ldd R3,z+1
0476 4280 ldd R4,z+2
0478 5380 ldd R5,z+3
047A 5A92 st -y,R5
047C 4A92 st -y,R4
047E 3A92 st -y,R3
0480 2A92 st -y,R2
0482 00E0 ldi R16,<L99
0484 10E0 ldi R17,>L99
0486 0E940000 xcall lpm32
048A 3A93 st -y,R19
048C 2A93 st -y,R18
048E 1A93 st -y,R17
0490 0A93 st -y,R16
0492 0E940000 xcall sub32f
0496 0E940000 xcall fp2int
049A C801 movw R24,R16
049C 8050 subi R24,0 ; offset = 32768
049E 9048 sbci R25,128
04A0 5C01 movw R10,R24
04A2 08C0 xjmp L98
04A4 L97:
04A4 FE01 movw R30,R28
04A6 0081 ldd R16,z+0
04A8 1181 ldd R17,z+1
04AA 2281 ldd R18,z+2
04AC 3381 ldd R19,z+3
04AE 0E940000 xcall fp2int
04B2 5801 movw R10,R16
04B4 L98:
04B4 A501 movw R20,R10
04B6 .dbline 339
04B6 ; DOT=(R-R_TMP)*10;
04B6 00E0 ldi R16,<L102
04B8 10E0 ldi R17,>L102
04BA 0E940000 xcall lpm32
04BE 3A93 st -y,R19
04C0 2A93 st -y,R18
04C2 1A93 st -y,R17
04C4 0A93 st -y,R16
04C6 FE01 movw R30,R28
04C8 ; stack offset 4
04C8 2480 ldd R2,z+4
04CA 3580 ldd R3,z+5
04CC 4680 ldd R4,z+6
04CE 5780 ldd R5,z+7
04D0 5A92 st -y,R5
04D2 4A92 st -y,R4
04D4 3A92 st -y,R3
04D6 2A92 st -y,R2
04D8 00E0 ldi R16,<L96
04DA 10E0 ldi R17,>L96
04DC 0E940000 xcall lpm32
04E0 3A93 st -y,R19
04E2 2A93 st -y,R18
04E4 1A93 st -y,R17
04E6 0A93 st -y,R16
04E8 8A01 movw R16,R20
04EA 1695 lsr R17
04EC 0795 ror R16
04EE 0E940000 xcall int2fp
04F2 3A93 st -y,R19
04F4 2A93 st -y,R18
04F6 1A93 st -y,R17
04F8 0A93 st -y,R16
04FA 0E940000 xcall empy32fs
04FE 8A01 movw R16,R20
0500 0170 andi R16,1
0502 1070 andi R17,0
0504 0E940000 xcall int2fp
0508 3A93 st -y,R19
050A 2A93 st -y,R18
050C 1A93 st -y,R17
050E 0A93 st -y,R16
0510 0E940000 xcall add32fs
0514 0E940000 xcall sub32fs
0518 0E940000 xcall empy32f
051C FE01 movw R30,R28
051E 0087 std z+8,R16
0520 1187 std z+9,R17
0522 2287 std z+10,R18
0524 3387 std z+11,R19
0526 FE01 movw R30,R28
0528 2084 ldd R2,z+8
052A 3184 ldd R3,z+9
052C 4284 ldd R4,z+10
052E 5384 ldd R5,z+11
0530 5A92 st -y,R5
0532 4A92 st -y,R4
0534 3A92 st -y,R3
0536 2A92 st -y,R2
0538 00E0 ldi R16,<L99
053A 10E0 ldi R17,>L99
053C 0E940000 xcall lpm32
0540 3A93 st -y,R19
0542 2A93 st -y,R18
0544 1A93 st -y,R17
0546 0A93 st -y,R16
0548 0E940000 xcall cmp32f
054C D4F0 brlt L100
054E FE01 movw R30,R28
0550 2084 ldd R2,z+8
0552 3184 ldd R3,z+9
0554 4284 ldd R4,z+10
0556 5384 ldd R5,z+11
0558 5A92 st -y,R5
055A 4A92 st -y,R4
055C 3A92 st -y,R3
055E 2A92 st -y,R2
0560 00E0 ldi R16,<L99
0562 10E0 ldi R17,>L99
0564 0E940000 xcall lpm32
0568 3A93 st -y,R19
056A 2A93 st -y,R18
056C 1A93 st -y,R17
056E 0A93 st -y,R16
0570 0E940000 xcall sub32f
0574 0E940000 xcall fp2int
0578 C801 movw R24,R16
057A 8050 subi R24,0 ; offset = 32768
057C 9048 sbci R25,128
057E 5C01 movw R10,R24
0580 08C0 xjmp L101
0582 L100:
0582 FE01 movw R30,R28
0584 0085 ldd R16,z+8
0586 1185 ldd R17,z+9
0588 2285 ldd R18,z+10
058A 3385 ldd R19,z+11
058C 0E940000 xcall fp2int
0590 5801 movw R10,R16
0592 L101:
0592 B501 movw R22,R10
0594 .dbline 340
0594 ; lcd_show(R_TMP,DOT);
0594 9B01 movw R18,R22
0596 8A01 movw R16,R20
0598 FEDD xcall _lcd_show
059A L103:
059A .dbline 343
059A L104:
059A .dbline 342
059A FFCF xjmp L103
059C X3:
059C .dbline -2
059C L87:
059C 2C96 adiw R28,12
059E .dbline 0 ; func end
059E 0895 ret
05A0 .dbsym l RF 4 D
05A0 .dbsym r DOT 22 i
05A0 .dbsym r time2 12 i
05A0 .dbsym r time1 14 i
05A0 .dbsym r R_TMP 20 i
05A0 .dbsym l R 0 D
05A0 .dbend
.area lit(rom, con, rel)
01AE L102:
01AE 00002041 .word 0x0,0x4120
01B2 L99:
01B2 00000047 .word 0x0,0x4700
01B6 L96:
01B6 00000040 .word 0x0,0x4000
01BA L89:
01BA 00000000 .word 0x0,0x0
01BE L88:
01BE 00003842 .word 0x0,0x4238
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -