📄 6675.lis
字号:
0052 3324 clr R3
0054 2FE0 ldi R18,15
0056 30E0 ldi R19,0
0058 2219 sub R18,R2
005A 3309 sbc R19,R3
005C 01E0 ldi R16,1
005E 10E0 ldi R17,0
0060 0E940000 xcall lsl16
0064 402B or R20,R16
0066 512B or R21,R17
0068 L14:
0068 .dbline 45
0068 0000 nop
006A 0000 nop
006C .dbline 46
006C C19A sbi 0x18,1
006E .dbline 47
006E L11:
006E .dbline 39
006E 6395 inc R22
0070 L13:
0070 .dbline 39
0070 6031 cpi R22,16
0072 48F3 brlo L10
0074 .dbline 49
0074 ; wait;
0074 ; set_sck;
0074 ; }
0074 ;
0074 ; x=(x&0x7fff)>>3;
0074 5F77 andi R21,127
0076 5695 lsr R21
0078 4795 ror R20
007A 5695 lsr R21
007C 4795 ror R20
007E 5695 lsr R21
0080 4795 ror R20
0082 .dbline 50
0082 ; set_cs6675;
0082 C09A sbi 0x18,0
0084 .dbline 51
0084 ; return x;
0084 8A01 movw R16,R20
0086 .dbline -2
0086 L9:
0086 0E940000 xcall pop_gset2
008A .dbline 0 ; func end
008A 0895 ret
008C .dbsym r x 20 i
008C .dbsym r i 22 c
008C .dbend
.area lit(rom, con, rel)
0158 L17:
0158 0000 .word 0
015A 0000 .word 0
015C 0000 .word 0
015E 0000 .word 0
0160 0000 .word 0
.area text(rom, con, rel)
008C .dbfile D:\zhangyu\H2test\program\6675.c
008C .dbfunc e max6675_display _max6675_display fV
008C ; m -> R22,R23
008C ; n -> R20,R21
008C ; temp -> y+1
008C ; x -> R10,R11
.even
008C _max6675_display::
008C 0E940000 xcall push_gset3
0090 5801 movw R10,R16
0092 2F97 sbiw R28,15
0094 .dbline -1
0094 .dbline 55
0094 ; }
0094 ;
0094 ; void max6675_display(unsigned int x)
0094 ; {
0094 .dbline 56
0094 ; unsigned int temp[5]={0,0,0,0,0};
0094 80E0 ldi R24,<L17
0096 90E0 ldi R25,>L17
0098 FE01 movw R30,R28
009A 3196 adiw R30,1
009C 0AE0 ldi R16,10
009E 10E0 ldi R17,0
00A0 FA93 st -y,R31
00A2 EA93 st -y,R30
00A4 9A93 st -y,R25
00A6 8A93 st -y,R24
00A8 0E940000 xcall asgncblk
00AC .dbline 57
00AC ; unsigned int n=0,m=0;
00AC 4427 clr R20
00AE 5527 clr R21
00B0 .dbline 57
00B0 6627 clr R22
00B2 7727 clr R23
00B4 .dbline 58
00B4 ; m=10237.5*x/4095;
00B4 00E0 ldi R16,<L20
00B6 10E0 ldi R17,>L20
00B8 0E940000 xcall lpm32
00BC 3A93 st -y,R19
00BE 2A93 st -y,R18
00C0 1A93 st -y,R17
00C2 0A93 st -y,R16
00C4 00E0 ldi R16,<L21
00C6 10E0 ldi R17,>L21
00C8 0E940000 xcall lpm32
00CC 3A93 st -y,R19
00CE 2A93 st -y,R18
00D0 1A93 st -y,R17
00D2 0A93 st -y,R16
00D4 8501 movw R16,R10
00D6 1695 lsr R17
00D8 0795 ror R16
00DA 0E940000 xcall int2fp
00DE 3A93 st -y,R19
00E0 2A93 st -y,R18
00E2 1A93 st -y,R17
00E4 0A93 st -y,R16
00E6 0E940000 xcall empy32fs
00EA 8501 movw R16,R10
00EC 0170 andi R16,1
00EE 1070 andi R17,0
00F0 0E940000 xcall int2fp
00F4 3A93 st -y,R19
00F6 2A93 st -y,R18
00F8 1A93 st -y,R17
00FA 0A93 st -y,R16
00FC 0E940000 xcall add32fs
0100 0E940000 xcall empy32fs
0104 00E0 ldi R16,<L22
0106 10E0 ldi R17,>L22
0108 0E940000 xcall lpm32
010C 3A93 st -y,R19
010E 2A93 st -y,R18
0110 1A93 st -y,R17
0112 0A93 st -y,R16
0114 0E940000 xcall div32f
0118 FE01 movw R30,R28
011A 0387 std z+11,R16
011C 1487 std z+12,R17
011E 2587 std z+13,R18
0120 3687 std z+14,R19
0122 FE01 movw R30,R28
0124 2384 ldd R2,z+11
0126 3484 ldd R3,z+12
0128 4584 ldd R4,z+13
012A 5684 ldd R5,z+14
012C 5A92 st -y,R5
012E 4A92 st -y,R4
0130 3A92 st -y,R3
0132 2A92 st -y,R2
0134 00E0 ldi R16,<L23
0136 10E0 ldi R17,>L23
0138 0E940000 xcall lpm32
013C 3A93 st -y,R19
013E 2A93 st -y,R18
0140 1A93 st -y,R17
0142 0A93 st -y,R16
0144 0E940000 xcall cmp32f
0148 D4F0 brlt L18
014A FE01 movw R30,R28
014C 2384 ldd R2,z+11
014E 3484 ldd R3,z+12
0150 4584 ldd R4,z+13
0152 5684 ldd R5,z+14
0154 5A92 st -y,R5
0156 4A92 st -y,R4
0158 3A92 st -y,R3
015A 2A92 st -y,R2
015C 00E0 ldi R16,<L23
015E 10E0 ldi R17,>L23
0160 0E940000 xcall lpm32
0164 3A93 st -y,R19
0166 2A93 st -y,R18
0168 1A93 st -y,R17
016A 0A93 st -y,R16
016C 0E940000 xcall sub32f
0170 0E940000 xcall fp2int
0174 C801 movw R24,R16
0176 8050 subi R24,0 ; offset = 32768
0178 9048 sbci R25,128
017A 5C01 movw R10,R24
017C 08C0 xjmp L19
017E L18:
017E FE01 movw R30,R28
0180 0385 ldd R16,z+11
0182 1485 ldd R17,z+12
0184 2585 ldd R18,z+13
0186 3685 ldd R19,z+14
0188 0E940000 xcall fp2int
018C 5801 movw R10,R16
018E L19:
018E B501 movw R22,R10
0190 .dbline 59
0190 ; temp[0]=m/10000;
0190 20E1 ldi R18,10000
0192 37E2 ldi R19,39
0194 8B01 movw R16,R22
0196 0E940000 xcall div16u
019A 1A83 std y+2,R17
019C 0983 std y+1,R16
019E .dbline 60
019E ; n=m-temp[0]*10000;
019E 9801 movw R18,R16
01A0 00E1 ldi R16,10000
01A2 17E2 ldi R17,39
01A4 0E940000 xcall empy16s
01A8 AB01 movw R20,R22
01AA 401B sub R20,R16
01AC 510B sbc R21,R17
01AE .dbline 61
01AE ; temp[1]=n/1000;
01AE 28EE ldi R18,1000
01B0 33E0 ldi R19,3
01B2 8A01 movw R16,R20
01B4 0E940000 xcall div16u
01B8 1C83 std y+4,R17
01BA 0B83 std y+3,R16
01BC .dbline 62
01BC ; n=n-temp[1]*1000;
01BC 9801 movw R18,R16
01BE 08EE ldi R16,1000
01C0 13E0 ldi R17,3
01C2 0E940000 xcall empy16s
01C6 401B sub R20,R16
01C8 510B sbc R21,R17
01CA .dbline 63
01CA ; temp[2]=n/100;
01CA 24E6 ldi R18,100
01CC 30E0 ldi R19,0
01CE 8A01 movw R16,R20
01D0 0E940000 xcall div16u
01D4 1E83 std y+6,R17
01D6 0D83 std y+5,R16
01D8 .dbline 64
01D8 ; n=n-temp[2]*100;
01D8 9801 movw R18,R16
01DA 04E6 ldi R16,100
01DC 10E0 ldi R17,0
01DE 0E940000 xcall empy16s
01E2 401B sub R20,R16
01E4 510B sbc R21,R17
01E6 .dbline 65
01E6 ; temp[3]=n/10;
01E6 2AE0 ldi R18,10
01E8 30E0 ldi R19,0
01EA 8A01 movw R16,R20
01EC 0E940000 xcall div16u
01F0 1887 std y+8,R17
01F2 0F83 std y+7,R16
01F4 .dbline 66
01F4 ; n=n-temp[3]*10;
01F4 9801 movw R18,R16
01F6 0AE0 ldi R16,10
01F8 10E0 ldi R17,0
01FA 0E940000 xcall empy16s
01FE 401B sub R20,R16
0200 510B sbc R21,R17
0202 .dbline 67
0202 ; temp[4]=n/1;
0202 5A87 std y+10,R21
0204 4987 std y+9,R20
0206 .dbline 68
0206 ; Draw_NtoArab(0x02,0x10,temp[0]);
0206 2980 ldd R2,y+1
0208 3A80 ldd R3,y+2
020A 2882 std y+0,R2
020C 20E1 ldi R18,16
020E 02E0 ldi R16,2
0210 0E940000 xcall _Draw_NtoArab
0214 .dbline 69
0214 ; Draw_NtoArab(0x02,0x18,temp[1]);
0214 2B80 ldd R2,y+3
0216 3C80 ldd R3,y+4
0218 2882 std y+0,R2
021A 28E1 ldi R18,24
021C 02E0 ldi R16,2
021E 0E940000 xcall _Draw_NtoArab
0222 .dbline 70
0222 ; Draw_NtoArab(0x02,0x20,temp[2]);
0222 2D80 ldd R2,y+5
0224 3E80 ldd R3,y+6
0226 2882 std y+0,R2
0228 20E2 ldi R18,32
022A 02E0 ldi R16,2
022C 0E940000 xcall _Draw_NtoArab
0230 .dbline 71
0230 ; Draw_NtoArab(0x02,0x28,temp[3]);
0230 2F80 ldd R2,y+7
0232 3884 ldd R3,y+8
0234 2882 std y+0,R2
0236 28E2 ldi R18,40
0238 02E0 ldi R16,2
023A 0E940000 xcall _Draw_NtoArab
023E .dbline 72
023E ; Draw_NtoArab(0x02,0x38,temp[4]);
023E 2984 ldd R2,y+9
0240 3A84 ldd R3,y+10
0242 2882 std y+0,R2
0244 28E3 ldi R18,56
0246 02E0 ldi R16,2
0248 0E940000 xcall _Draw_NtoArab
024C .dbline -2
024C L16:
024C 2F96 adiw R28,15
024E 0E940000 xcall pop_gset3
0252 .dbline 0 ; func end
0252 0895 ret
0254 .dbsym r m 22 i
0254 .dbsym r n 20 i
0254 .dbsym l temp 1 A[10:5]i
0254 .dbsym r x 10 i
0254 .dbend
0254 .dbfunc e show_temperature _show_temperature fV
0254 ; t -> R20,R21
.even
0254 _show_temperature::
0254 0E940000 xcall push_gset1
0258 .dbline -1
0258 .dbline 76
0258 ; }
0258 ;
0258 ; void show_temperature(void)
0258 ; { unsigned int t;
0258 .dbline 77
0258 ; Delay10ms(100);
0258 04E6 ldi R16,100
025A D2DE xcall _Delay10ms
025C .dbline 78
025C ; t=read_max6675();
025C E5DE xcall _read_max6675
025E A801 movw R20,R16
0260 .dbline 79
0260 ; max6675_display(t);
0260 15DF xcall _max6675_display
0262 .dbline 80
0262 ; Delay10ms(100);
0262 04E6 ldi R16,100
0264 CDDE xcall _Delay10ms
0266 .dbline -2
0266 L35:
0266 0E940000 xcall pop_gset1
026A .dbline 0 ; func end
026A 0895 ret
026C .dbsym r t 20 i
026C .dbend
.area lit(rom, con, rel)
0162 L23:
0162 00000047 .word 0x0,0x4700
0166 L22:
0166 00F07F45 .word 0xf000,0x457f
016A L21:
016A 00000040 .word 0x0,0x4000
016E L20:
016E 00F61F46 .word 0xf600,0x461f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -