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

📄 dsi8b20.lis

📁 AVR ds18b20 源代码 对学习温度控制的人很有帮助
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -