lc.lis
来自「ICC-AVR环境,用ATmage16做的LC表」· LIS 代码 · 共 1,458 行 · 第 1/4 页
LIS
1,458 行
05E6 1127 clr R17
05E8 10DD xcall _LCD_write_char
05EA .dbline -2
05EA L34:
05EA 2A96 adiw R28,10
05EC 0E940000 xcall pop_gset3
05F0 .dbline 0 ; func end
05F0 0895 ret
05F2 .dbsym l f 2 D
05F2 .dbend
05F2 .dbfunc e calc_Lx _calc_Lx fV
05F2 ; f -> y+2
.even
05F2 _calc_Lx::
05F2 0E940000 xcall push_gset3
05F6 2A97 sbiw R28,10
05F8 .dbline -1
05F8 .dbline 147
05F8 ; }
05F8 ;
05F8 ;
05F8 ; void calc_Lx(void)
05F8 ; {
05F8 .dbline 148
05F8 ; float f=1/(last_TCNT1*4)*1000000;
05F8 20910600 lds R18,_last_TCNT1
05FC 30910700 lds R19,_last_TCNT1+1
0600 04E0 ldi R16,4
0602 10E0 ldi R17,0
0604 0E940000 xcall empy16s
0608 9801 movw R18,R16
060A 01E0 ldi R16,1
060C 10E0 ldi R17,0
060E 0E940000 xcall div16u
0612 1801 movw R2,R16
0614 4424 clr R4
0616 5524 clr R5
0618 40E4 ldi R20,64
061A 52E4 ldi R21,66
061C 6FE0 ldi R22,15
061E 70E0 ldi R23,0
0620 5A92 st -y,R5
0622 4A92 st -y,R4
0624 3A92 st -y,R3
0626 2A92 st -y,R2
0628 8A01 movw R16,R20
062A 9B01 movw R18,R22
062C 0E940000 xcall empy32s
0630 0E940000 xcall long2fp
0634 FE01 movw R30,R28
0636 0283 std z+2,R16
0638 1383 std z+3,R17
063A 2483 std z+4,R18
063C 3583 std z+5,R19
063E .dbline 149
063E ; Lx=1/(39.4384*f*f*(C1+Cn*1000000));
063E 00E0 ldi R16,<L29
0640 10E0 ldi R17,>L29
0642 0E940000 xcall lpm32
0646 3A93 st -y,R19
0648 2A93 st -y,R18
064A 1A93 st -y,R17
064C 0A93 st -y,R16
064E 00E0 ldi R16,<L31
0650 10E0 ldi R17,>L31
0652 0E940000 xcall lpm32
0656 3A93 st -y,R19
0658 2A93 st -y,R18
065A 1A93 st -y,R17
065C 0A93 st -y,R16
065E FE01 movw R30,R28
0660 ; stack offset 8
0660 2284 ldd R2,z+10
0662 3384 ldd R3,z+11
0664 4484 ldd R4,z+12
0666 5584 ldd R5,z+13
0668 5A92 st -y,R5
066A 4A92 st -y,R4
066C 3A92 st -y,R3
066E 2A92 st -y,R2
0670 0E940000 xcall empy32fs
0674 FE01 movw R30,R28
0676 ; stack offset 8
0676 2284 ldd R2,z+10
0678 3384 ldd R3,z+11
067A 4484 ldd R4,z+12
067C 5584 ldd R5,z+13
067E 5A92 st -y,R5
0680 4A92 st -y,R4
0682 3A92 st -y,R3
0684 2A92 st -y,R2
0686 0E940000 xcall empy32fs
068A 20900000 lds R2,_Cn
068E 30900100 lds R3,_Cn+1
0692 4424 clr R4
0694 5524 clr R5
0696 40E4 ldi R20,64
0698 52E4 ldi R21,66
069A 6FE0 ldi R22,15
069C 70E0 ldi R23,0
069E 5A92 st -y,R5
06A0 4A92 st -y,R4
06A2 3A92 st -y,R3
06A4 2A92 st -y,R2
06A6 8A01 movw R16,R20
06A8 9B01 movw R18,R22
06AA 0E940000 xcall empy32s
06AE 41E0 ldi R20,1
06B0 50E0 ldi R21,0
06B2 60E0 ldi R22,0
06B4 70E0 ldi R23,0
06B6 040F add R16,R20
06B8 151F adc R17,R21
06BA 261F adc R18,R22
06BC 371F adc R19,R23
06BE 0E940000 xcall long2fp
06C2 3A93 st -y,R19
06C4 2A93 st -y,R18
06C6 1A93 st -y,R17
06C8 0A93 st -y,R16
06CA 0E940000 xcall empy32fs
06CE 0E940000 xcall div32f
06D2 FE01 movw R30,R28
06D4 0683 std z+6,R16
06D6 1783 std z+7,R17
06D8 2087 std z+8,R18
06DA 3187 std z+9,R19
06DC FE01 movw R30,R28
06DE 2680 ldd R2,z+6
06E0 3780 ldd R3,z+7
06E2 4084 ldd R4,z+8
06E4 5184 ldd R5,z+9
06E6 5A92 st -y,R5
06E8 4A92 st -y,R4
06EA 3A92 st -y,R3
06EC 2A92 st -y,R2
06EE 00E0 ldi R16,<L33
06F0 10E0 ldi R17,>L33
06F2 0E940000 xcall lpm32
06F6 3A93 st -y,R19
06F8 2A93 st -y,R18
06FA 1A93 st -y,R17
06FC 0A93 st -y,R16
06FE 0E940000 xcall cmp32f
0702 D4F0 brlt L39
0704 FE01 movw R30,R28
0706 2680 ldd R2,z+6
0708 3780 ldd R3,z+7
070A 4084 ldd R4,z+8
070C 5184 ldd R5,z+9
070E 5A92 st -y,R5
0710 4A92 st -y,R4
0712 3A92 st -y,R3
0714 2A92 st -y,R2
0716 00E0 ldi R16,<L33
0718 10E0 ldi R17,>L33
071A 0E940000 xcall lpm32
071E 3A93 st -y,R19
0720 2A93 st -y,R18
0722 1A93 st -y,R17
0724 0A93 st -y,R16
0726 0E940000 xcall sub32f
072A 0E940000 xcall fp2int
072E C801 movw R24,R16
0730 8050 subi R24,0 ; offset = 32768
0732 9048 sbci R25,128
0734 5C01 movw R10,R24
0736 08C0 xjmp L40
0738 L39:
0738 FE01 movw R30,R28
073A 0681 ldd R16,z+6
073C 1781 ldd R17,z+7
073E 2085 ldd R18,z+8
0740 3185 ldd R19,z+9
0742 0E940000 xcall fp2int
0746 5801 movw R10,R16
0748 L40:
0748 B0920300 sts _Lx+1,R11
074C A0920200 sts _Lx,R10
0750 .dbline 151
0750 ;
0750 ; LCD_write_string(3,1,itoa(buf,Cn,10));
0750 8AE0 ldi R24,10
0752 90E0 ldi R25,0
0754 9983 std y+1,R25
0756 8883 std y+0,R24
0758 20910000 lds R18,_Cn
075C 30910100 lds R19,_Cn+1
0760 00E0 ldi R16,<_buf
0762 10E0 ldi R17,>_buf
0764 0E940000 xcall _itoa
0768 1983 std y+1,R17
076A 0883 std y+0,R16
076C 21E0 ldi R18,1
076E 03E0 ldi R16,3
0770 C4DC xcall _LCD_write_string
0772 .dbline 152
0772 ; LCD_write_char(0,'u');
0772 25E7 ldi R18,117
0774 30E0 ldi R19,0
0776 0027 clr R16
0778 1127 clr R17
077A 47DC xcall _LCD_write_char
077C .dbline 153
077C ; LCD_write_char(0,'H');
077C 28E4 ldi R18,72
077E 30E0 ldi R19,0
0780 0027 clr R16
0782 1127 clr R17
0784 42DC xcall _LCD_write_char
0786 .dbline -2
0786 L38:
0786 2A96 adiw R28,10
0788 0E940000 xcall pop_gset3
078C .dbline 0 ; func end
078C 0895 ret
078E .dbsym l f 2 D
078E .dbend
078E .dbfunc e delay_nus _delay_nus fV
078E ; n -> R16
.even
078E _delay_nus::
078E .dbline -1
078E .dbline 158
078E ; }
078E ;
078E ; /*--------------------------------延时函数--------------------------------*/
078E ; void delay_nus(unsigned char n) //N us延时函数
078E ; {
078E 01C0 xjmp L43
0790 L42:
0790 .dbline 160
0790 .dbline 161
0790 0000 nop
0792 .dbline 162
0792 L43:
0792 .dbline 159
0792 ; while (--n)
0792 802F mov R24,R16
0794 8150 subi R24,1
0796 082F mov R16,R24
0798 8823 tst R24
079A D1F7 brne L42
079C .dbline -2
079C L41:
079C .dbline 0 ; func end
079C 0895 ret
079E .dbsym r n 16 c
079E .dbend
079E .dbfunc e delay_1ms _delay_1ms fV
079E ; i -> R16
079E ; j -> R18
.even
079E _delay_1ms::
079E .dbline -1
079E .dbline 166
079E ; {
079E ; asm("nop");
079E ; }
079E ; }
079E ;
079E ; void delay_1ms(void) //1ms延时函数
079E ; {
079E .dbline 167
079E ; unsigned char i=10,j=100;
079E 0AE0 ldi R16,10
07A0 .dbline 167
07A0 24E6 ldi R18,100
07A2 06C0 xjmp L47
07A4 L49:
07A4 .dbline 170
07A4 0000 nop
07A6 L50:
07A6 .dbline 169
07A6 822F mov R24,R18
07A8 8150 subi R24,1
07AA 282F mov R18,R24
07AC 8823 tst R24
07AE D1F7 brne L49
07B0 L47:
07B0 .dbline 168
07B0 ; while (--i)
07B0 802F mov R24,R16
07B2 8150 subi R24,1
07B4 082F mov R16,R24
07B6 8823 tst R24
07B8 B1F7 brne L50
07BA .dbline -2
07BA L45:
07BA .dbline 0 ; func end
07BA 0895 ret
07BC .dbsym r i 16 c
07BC .dbsym r j 18 c
07BC .dbend
07BC .dbfunc e delay_nms _delay_nms fV
07BC ; n -> R20
.even
07BC _delay_nms::
07BC 0E940000 xcall push_gset1
07C0 402F mov R20,R16
07C2 .dbline -1
07C2 .dbline 174
07C2 ; while (--j)
07C2 ; asm("nop");
07C2 ; }
07C2 ;
07C2 ; void delay_nms(unsigned char n) //N ms延时函数
07C2 ; {
07C2 01C0 xjmp L54
07C4 L53:
07C4 .dbline 176
07C4 ECDF xcall _delay_1ms
07C6 L54:
07C6 .dbline 175
07C6 ; while (--n)
07C6 842F mov R24,R20
07C8 8150 subi R24,1
07CA 482F mov R20,R24
07CC 8823 tst R24
07CE D1F7 brne L53
07D0 .dbline -2
07D0 L52:
07D0 0E940000 xcall pop_gset1
07D4 .dbline 0 ; func end
07D4 0895 ret
07D6 .dbsym r n 20 c
07D6 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\资料文件\MCU\myLC\LC.c
0000 _Cn::
0000 .blkb 2
0002 .dbsym e Cn _Cn i
0002 _Lx::
0002 .blkb 2
0004 .dbsym e Lx _Lx i
0004 _Cx::
0004 .blkb 2
0006 .dbsym e Cx _Cx i
0006 _last_TCNT1::
0006 .blkb 2
0008 .dbsym e last_TCNT1 _last_TCNT1 i
.area lit(rom, con, rel)
0000 L37:
0000 00000040 .word 0x0,0x4000
0004 L33:
0004 00000047 .word 0x0,0x4700
0008 L32:
0008 00247449 .word 0x2400,0x4974
000C L31:
000C ECC01D42 .word 0xc0ec,0x421d
0010 L30:
0010 0000C842 .word 0x0,0x42c8
0014 L29:
0014 0000803F .word 0x0,0x3f80
.area data(ram, con, rel)
0008 .dbfile E:\资料文件\MCU\myLC\LC.c
0008 L23:
0008 .blkb 7
.area idata
0008 54434E54313D00 .byte 'T,'C,'N,'T,49,61,0
.area data(ram, con, rel)
000F .dbfile E:\资料文件\MCU\myLC\LC.c
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?