📄 dsi8b20.lis
字号:
00E8 ; }
00E8 ; write_data(0xcc);
00E8 0CEC ldi R16,204
00EA A6DF rcall _write_data
00EC .dbline 110
00EC ; write_data(0x44); //转换命令 开始第一次转换
00EC 04E4 ldi R16,68
00EE A4DF rcall _write_data
00F0 .dbline -2
00F0 L18:
00F0 00D0 rcall pop_gset1
00F2 .dbline 0 ; func end
00F2 0895 ret
00F4 .dbsym r i 20 c
00F4 .dbend
00F4 .dbfunc e read_temper _read_temper fi
00F4 ; temph -> R20
00F4 ; templ -> R22
00F4 ; x -> R20,R21
00F4 ; i -> R10
.even
00F4 _read_temper::
00F4 00D0 rcall push_gset3
00F6 .dbline -1
00F6 .dbline 115
00F6 ; }
00F6 ;
00F6 ; //读温度值
00F6 ; unsigned int read_temper(void)
00F6 ; {
00F6 .dbline 118
00F6 ; unsigned int x;
00F6 ; unsigned char templ,temph,i;
00F6 ; for(i=0;i<40;i++)
00F6 AA24 clr R10
00F8 05C0 rjmp L35
00FA L32:
00FA .dbline 119
00FA ; {if(reset_ov())
00FA .dbline 119
00FA 82DF rcall _reset_ov
00FC 0023 tst R16
00FE 09F0 breq L36
0100 .dbline 120
0100 ; break;
0100 04C0 rjmp L34
0102 L36:
0102 .dbline 121
0102 L33:
0102 .dbline 118
0102 A394 inc R10
0104 L35:
0104 .dbline 118
0104 8A2D mov R24,R10
0106 8832 cpi R24,40
0108 C0F3 brlo L32
010A L34:
010A .dbline 124
010A ; }
010A ;
010A ;
010A ; write_data(0xcc); //跳过ROM
010A 0CEC ldi R16,204
010C 95DF rcall _write_data
010E .dbline 125
010E ; write_data(0xbe); //读温度命令
010E 0EEB ldi R16,190
0110 93DF rcall _write_data
0112 .dbline 126
0112 ; templ=read_data();
0112 B1DF rcall _read_data
0114 602F mov R22,R16
0116 .dbline 127
0116 ; temph=read_data();
0116 AFDF rcall _read_data
0118 402F mov R20,R16
011A .dbline 128
011A ; for(i=0;i<40;i++)
011A AA24 clr R10
011C 05C0 rjmp L41
011E L38:
011E .dbline 129
011E ; {if(reset_ov())
011E .dbline 129
011E 70DF rcall _reset_ov
0120 0023 tst R16
0122 09F0 breq L42
0124 .dbline 130
0124 ; break;
0124 04C0 rjmp L40
0126 L42:
0126 .dbline 131
0126 L39:
0126 .dbline 128
0126 A394 inc R10
0128 L41:
0128 .dbline 128
0128 8A2D mov R24,R10
012A 8832 cpi R24,40
012C C0F3 brlo L38
012E L40:
012E .dbline 132
012E ; }
012E ; write_data(0xcc);
012E 0CEC ldi R16,204
0130 83DF rcall _write_data
0132 .dbline 133
0132 ; write_data(0x44); //转换命令
0132 04E4 ldi R16,68
0134 81DF rcall _write_data
0136 .dbline 134
0136 ; x=temph;
0136 5527 clr R21
0138 .dbline 135
0138 ; x<<=8;
0138 542F mov R21,R20
013A 4427 clr R20
013C .dbline 136
013C ; x+=templ;
013C 262E mov R2,R22
013E 3324 clr R3
0140 420D add R20,R2
0142 531D adc R21,R3
0144 .dbline 137
0144 ; return x;
0144 8A01 movw R16,R20
0146 .dbline -2
0146 L31:
0146 00D0 rcall pop_gset3
0148 .dbline 0 ; func end
0148 0895 ret
014A .dbsym r temph 20 c
014A .dbsym r templ 22 c
014A .dbsym r x 20 i
014A .dbsym r i 10 c
014A .dbend
014A .dbfunc e main _main fV
014A ; temper_data -> R20,R21
014A ; temp -> y+0
.even
014A _main::
014A 2997 sbiw R28,9
014C .dbline -1
014C .dbline 140
014C ; }
014C ; void main(void)
014C ; {
014C .dbline 143
014C ; unsigned char temp[5];
014C ; unsigned int temper_data;
014C ; DDRD=0XFF;
014C 8FEF ldi R24,255
014E 81BB out 0x11,R24
0150 .dbline 144
0150 ; PORTD=0Xff;
0150 82BB out 0x12,R24
0152 .dbline 145
0152 ; uart_init();
0152 00D0 rcall _uart_init
0154 .dbline 146
0154 ; init_ds1820();
0154 ACDF rcall _init_ds1820
0156 88C0 rjmp L46
0158 L45:
0158 .dbline 149
0158 ;
0158 ; while(1)
0158 ; {
0158 .dbline 150
0158 ; delay_ms(1000);
0158 08EE ldi R16,1000
015A 13E0 ldi R17,3
015C 00D0 rcall _delay_ms
015E .dbline 152
015E ;
015E ; temper_data=read_temper();
015E CADF rcall _read_temper
0160 A801 movw R20,R16
0162 .dbline 153
0162 ; temper_data*=0.625;
0162 00E0 ldi R16,<L50
0164 10E0 ldi R17,>L50
0166 00D0 rcall lpm32
0168 3A93 st -y,R19
016A 2A93 st -y,R18
016C 1A93 st -y,R17
016E 0A93 st -y,R16
0170 00E0 ldi R16,<L51
0172 10E0 ldi R17,>L51
0174 00D0 rcall lpm32
0176 3A93 st -y,R19
0178 2A93 st -y,R18
017A 1A93 st -y,R17
017C 0A93 st -y,R16
017E 8A01 movw R16,R20
0180 1695 lsr R17
0182 0795 ror R16
0184 00D0 rcall int2fp
0186 3A93 st -y,R19
0188 2A93 st -y,R18
018A 1A93 st -y,R17
018C 0A93 st -y,R16
018E 00D0 rcall empy32fs
0190 8A01 movw R16,R20
0192 0170 andi R16,1
0194 1070 andi R17,0
0196 00D0 rcall int2fp
0198 3A93 st -y,R19
019A 2A93 st -y,R18
019C 1A93 st -y,R17
019E 0A93 st -y,R16
01A0 00D0 rcall add32fs
01A2 00D0 rcall empy32f
01A4 FE01 movw R30,R28
01A6 0583 std z+5,R16
01A8 1683 std z+6,R17
01AA 2783 std z+7,R18
01AC 3087 std z+8,R19
01AE FE01 movw R30,R28
01B0 2580 ldd R2,z+5
01B2 3680 ldd R3,z+6
01B4 4780 ldd R4,z+7
01B6 5084 ldd R5,z+8
01B8 5A92 st -y,R5
01BA 4A92 st -y,R4
01BC 3A92 st -y,R3
01BE 2A92 st -y,R2
01C0 00E0 ldi R16,<L52
01C2 10E0 ldi R17,>L52
01C4 00D0 rcall lpm32
01C6 3A93 st -y,R19
01C8 2A93 st -y,R18
01CA 1A93 st -y,R17
01CC 0A93 st -y,R16
01CE 00D0 rcall cmp32f
01D0 B4F0 brlt L48
01D2 FE01 movw R30,R28
01D4 2580 ldd R2,z+5
01D6 3680 ldd R3,z+6
01D8 4780 ldd R4,z+7
01DA 5084 ldd R5,z+8
01DC 5A92 st -y,R5
01DE 4A92 st -y,R4
01E0 3A92 st -y,R3
01E2 2A92 st -y,R2
01E4 00E0 ldi R16,<L52
01E6 10E0 ldi R17,>L52
01E8 00D0 rcall lpm32
01EA 3A93 st -y,R19
01EC 2A93 st -y,R18
01EE 1A93 st -y,R17
01F0 0A93 st -y,R16
01F2 00D0 rcall sub32f
01F4 00D0 rcall fp2int
01F6 B801 movw R22,R16
01F8 6050 subi R22,0 ; offset = 32768
01FA 7048 sbci R23,128
01FC 07C0 rjmp L49
01FE L48:
01FE FE01 movw R30,R28
0200 0581 ldd R16,z+5
0202 1681 ldd R17,z+6
0204 2781 ldd R18,z+7
0206 3085 ldd R19,z+8
0208 00D0 rcall fp2int
020A B801 movw R22,R16
020C L49:
020C AB01 movw R20,R22
020E .dbline 154
020E 2AE0 ldi R18,10
0210 30E0 ldi R19,0
0212 8A01 movw R16,R20
0214 00D0 rcall mod16u
0216 C801 movw R24,R16
0218 C096 adiw R24,48
021A 8883 std y+0,R24
021C .dbline 155
021C 2AE0 ldi R18,10
021E 30E0 ldi R19,0
0220 8A01 movw R16,R20
0222 00D0 rcall div16u
0224 2AE0 ldi R18,10
0226 30E0 ldi R19,0
0228 00D0 rcall mod16u
022A C801 movw R24,R16
022C C096 adiw R24,48
022E 8983 std y+1,R24
0230 .dbline 156
0230 24E6 ldi R18,100
0232 30E0 ldi R19,0
0234 8A01 movw R16,R20
0236 00D0 rcall div16u
0238 2AE0 ldi R18,10
023A 30E0 ldi R19,0
023C 00D0 rcall mod16u
023E C801 movw R24,R16
0240 C096 adiw R24,48
0242 8A83 std y+2,R24
0244 .dbline 157
0244 00E0 ldi R16,<L55
0246 10E0 ldi R17,>L55
0248 00D0 rcall _puts
024A .dbline 158
024A 0A81 ldd R16,y+2
024C 00D0 rcall _putchar
024E .dbline 159
024E 0981 ldd R16,y+1
0250 00D0 rcall _putchar
0252 .dbline 160
0252 0EE2 ldi R16,46
0254 00D0 rcall _putchar
0256 .dbline 161
0256 0881 ldd R16,y+0
0258 00D0 rcall _putchar
025A .dbline 162
025A 00E6 ldi R16,96
025C 00D0 rcall _putchar
025E .dbline 163
025E 03E4 ldi R16,67
0260 00D0 rcall _putchar
0262 .dbline 164
0262 00E0 ldi R16,<L58
0264 10E0 ldi R17,>L58
0266 00D0 rcall _puts_hh
0268 .dbline 167
0268 L46:
0268 .dbline 148
0268 77CF rjmp L45
026A X0:
026A .dbline -2
026A L44:
026A 2996 adiw R28,9
026C .dbline 0 ; func end
026C 0895 ret
026E .dbsym r temper_data 20 i
026E .dbsym l temp 0 A[5:5]c
026E .dbend
.area data(ram, con, rel)
0000 .dbfile D:\开发板\source\ds18b20\dsi8b20.c
0000 L58:
0000 .blkb 3
.area idata
0000 202000 .byte 32,32,0
.area data(ram, con, rel)
0003 .dbfile D:\开发板\source\ds18b20\dsi8b20.c
0003 L55:
0003 .blkb 13
.area idata
0003 B5B1C7B0CEC2B6C8CAC7A3BA00 .byte 181,177,199,176,206,194,182,200,202,199,163,186,0
.area data(ram, con, rel)
0010 .dbfile D:\开发板\source\ds18b20\dsi8b20.c
.area lit(rom, con, rel)
0000 L52:
0000 00000047 .word 0x0,0x4700
0004 L51:
0004 00000040 .word 0x0,0x4000
0008 L50:
0008 0000203F .word 0x0,0x3f20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -