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

📄 ds18b20.lis

📁 DS18B20温度监控程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00A4           ; /*******************中断函数****************************/
 00A4           ; /*定时中断*/
 00A4           ; void timer1_int(void)
 00A4           ; {TCNT1=0xfd8f; //重赋初值
 00A4                   .dbline 98
 00A4 8FE8              ldi R24,64911
 00A6 9DEF              ldi R25,253
 00A8 90938500          sts 132+1,R25
 00AC 80938400          sts 132,R24
 00B0                   .dbline 99
 00B0           ;  if(count1!=100)count1++;
 00B0 80910B00          lds R24,_count1
 00B4 8436              cpi R24,100
 00B6 19F0              breq L17
 00B8           X6:
 00B8                   .dbline 99
 00B8 8F5F              subi R24,255    ; addi 1
 00BA 80930B00          sts _count1,R24
 00BE           L17:
 00BE                   .dbline -2
 00BE           L16:
 00BE                   .dbline 0 ; func end
 00BE 8991              ld R24,y+
 00C0 8FBF              OUT 63,R24
 00C2 9991              ld R25,y+
 00C4 8991              ld R24,y+
 00C6 1895              reti
 00C8                   .dbend
 00C8                   .dbfunc e display_int _display_int fV
                        .even
 00C8           _display_int::
 00C8 2A92              st -y,R2
 00CA 3A92              st -y,R3
 00CC 0A93              st -y,R16
 00CE 1A93              st -y,R17
 00D0 8A93              st -y,R24
 00D2 9A93              st -y,R25
 00D4 AA93              st -y,R26
 00D6 EA93              st -y,R30
 00D8 FA93              st -y,R31
 00DA 2FB6              IN R2,63
 00DC 2A92              st -y,R2
 00DE                   .dbline -1
 00DE                   .dbline 103
 00DE           ; }
 00DE           ; /*显示中断*/
 00DE           ; void display_int(void)
 00DE           ; {count2++;
 00DE                   .dbline 103
 00DE 80910A00          lds R24,_count2
 00E2 8F5F              subi R24,255    ; addi 1
 00E4 80930A00          sts _count2,R24
 00E8                   .dbline 104
 00E8           ;  TCNT0=0xce;  //重赋初值
 00E8 8EEC              ldi R24,206
 00EA 86BD              out 0x26,R24
 00EC                   .dbline 105
 00EC           ;  PORTC|=0x0e;  //0000 1110
 00EC 88B1              in R24,0x8
 00EE 8E60              ori R24,14
 00F0 88B9              out 0x8,R24
 00F2                   .dbline 106
 00F2           ;  PORTD|=0xd8; //1101 1000
 00F2 8BB1              in R24,0xb
 00F4 886D              ori R24,216
 00F6 8BB9              out 0xb,R24
 00F8                   .dbline 107
 00F8           ;  switch(count2)
 00F8 00910A00          lds R16,_count2
 00FC 1127              clr R17
 00FE 0130              cpi R16,1
 0100 E0E0              ldi R30,0
 0102 1E07              cpc R17,R30
 0104 C1F0              breq L23
 0106           X7:
 0106 0230              cpi R16,2
 0108 E0E0              ldi R30,0
 010A 1E07              cpc R17,R30
 010C 19F1              breq L24
 010E           X8:
 010E 0330              cpi R16,3
 0110 E0E0              ldi R30,0
 0112 1E07              cpc R17,R30
 0114 71F1              breq L25
 0116           X9:
 0116 0430              cpi R16,4
 0118 E0E0              ldi R30,0
 011A 1E07              cpc R17,R30
 011C 09F4              brne X13
 011E 38C0              rjmp L26
 0120           X13:
 0120           X10:
 0120 0530              cpi R16,5
 0122 E0E0              ldi R30,0
 0124 1E07              cpc R17,R30
 0126 09F4              brne X14
 0128 42C0              rjmp L27
 012A           X14:
 012A           X11:
 012A 0630              cpi R16,6
 012C E0E0              ldi R30,0
 012E 1E07              cpc R17,R30
 0130 09F4              brne X15
 0132 4CC0              rjmp L28
 0134           X15:
 0134           X12:
 0134 5CC0              rjmp L20
 0136           L23:
 0136                   .dbline 109
 0136           ;  {case 1:
 0136           ;          PORTC&=0xf1; //L6  1111 0001
 0136 88B1              in R24,0x8
 0138 817F              andi R24,241
 013A 88B9              out 0x8,R24
 013C                   .dbline 110
 013C           ;          PORTD&=distable[timeb6];
 013C 80E0              ldi R24,<_distable
 013E 90E0              ldi R25,>_distable
 0140 E0910500          lds R30,_timeb6
 0144 FF27              clr R31
 0146 E80F              add R30,R24
 0148 F91F              adc R31,R25
 014A 2080              ldd R2,z+0
 014C 3BB0              in R3,0xb
 014E 3220              and R3,R2
 0150 3BB8              out 0xb,R3
 0152                   .dbline 111
 0152           ;          break;
 0152 4DC0              rjmp L21
 0154           L24:
 0154                   .dbline 113
 0154           ;   case 2:
 0154           ;          PORTC&=0xf3; //L5  1111 0011
 0154 88B1              in R24,0x8
 0156 837F              andi R24,243
 0158 88B9              out 0x8,R24
 015A                   .dbline 114
 015A           ;          PORTD&=distable[timeb5];
 015A 80E0              ldi R24,<_distable
 015C 90E0              ldi R25,>_distable
 015E E0910600          lds R30,_timeb5
 0162 FF27              clr R31
 0164 E80F              add R30,R24
 0166 F91F              adc R31,R25
 0168 2080              ldd R2,z+0
 016A 3BB0              in R3,0xb
 016C 3220              and R3,R2
 016E 3BB8              out 0xb,R3
 0170                   .dbline 115
 0170           ;          break;
 0170 3EC0              rjmp L21
 0172           L25:
 0172                   .dbline 117
 0172           ;   case 3:
 0172           ;          PORTC&=0xf5; //L4  1111 0101
 0172 88B1              in R24,0x8
 0174 857F              andi R24,245
 0176 88B9              out 0x8,R24
 0178                   .dbline 118
 0178           ;          PORTD&=distable[timeb4];
 0178 80E0              ldi R24,<_distable
 017A 90E0              ldi R25,>_distable
 017C E0910700          lds R30,_timeb4
 0180 FF27              clr R31
 0182 E80F              add R30,R24
 0184 F91F              adc R31,R25
 0186 2080              ldd R2,z+0
 0188 3BB0              in R3,0xb
 018A 3220              and R3,R2
 018C 3BB8              out 0xb,R3
 018E                   .dbline 119
 018E           ;          break;
 018E 2FC0              rjmp L21
 0190           L26:
 0190                   .dbline 121
 0190           ;   case 4:
 0190           ;        PORTC&=0xf7; //L3  1111 0111
 0190 88B1              in R24,0x8
 0192 877F              andi R24,247
 0194 88B9              out 0x8,R24
 0196                   .dbline 122
 0196           ;          PORTD&=distable[timeb3];
 0196 80E0              ldi R24,<_distable
 0198 90E0              ldi R25,>_distable
 019A E0910800          lds R30,_timeb3
 019E FF27              clr R31
 01A0 E80F              add R30,R24
 01A2 F91F              adc R31,R25
 01A4 2080              ldd R2,z+0
 01A6 3BB0              in R3,0xb
 01A8 3220              and R3,R2
 01AA 3BB8              out 0xb,R3
 01AC                   .dbline 123
 01AC           ;          break;
 01AC 20C0              rjmp L21
 01AE           L27:
 01AE                   .dbline 125
 01AE           ;   case 5:
 01AE           ;        PORTC&=0xf9; //L2  1111 1001
 01AE 88B1              in R24,0x8
 01B0 897F              andi R24,249
 01B2 88B9              out 0x8,R24
 01B4                   .dbline 126
 01B4           ;          PORTD&=distable[timeb2];
 01B4 80E0              ldi R24,<_distable
 01B6 90E0              ldi R25,>_distable
 01B8 E0910900          lds R30,_timeb2
 01BC FF27              clr R31
 01BE E80F              add R30,R24
 01C0 F91F              adc R31,R25
 01C2 2080              ldd R2,z+0
 01C4 3BB0              in R3,0xb
 01C6 3220              and R3,R2
 01C8 3BB8              out 0xb,R3
 01CA                   .dbline 127
 01CA           ;          break;
 01CA 11C0              rjmp L21
 01CC           L28:
 01CC                   .dbline 129
 01CC           ;   case 6:
 01CC           ;        count2=0;
 01CC 2224              clr R2
 01CE 20920A00          sts _count2,R2
 01D2                   .dbline 130
 01D2           ;          PORTC&=0xfb; //L1  1111 1011
 01D2 88B1              in R24,0x8
 01D4 8B7F              andi R24,251
 01D6 88B9              out 0x8,R24
 01D8                   .dbline 131
 01D8           ;          PORTD&=distable[timeb1];
 01D8 80E0              ldi R24,<_distable
 01DA 90E0              ldi R25,>_distable
 01DC E0910A00          lds R30,_timeb1
 01E0 FF27              clr R31
 01E2 E80F              add R30,R24
 01E4 F91F              adc R31,R25
 01E6 2080              ldd R2,z+0
 01E8 3BB0              in R3,0xb
 01EA 3220              and R3,R2
 01EC 3BB8              out 0xb,R3
 01EE                   .dbline 132
 01EE           ;          break;             
 01EE           L20:
 01EE           L21:
 01EE                   .dbline -2
 01EE           L19:
 01EE                   .dbline 0 ; func end
 01EE 2990              ld R2,y+
 01F0 2FBE              OUT 63,R2
 01F2 F991              ld R31,y+
 01F4 E991              ld R30,y+
 01F6 A991              ld R26,y+
 01F8 9991              ld R25,y+
 01FA 8991              ld R24,y+
 01FC 1991              ld R17,y+
 01FE 0991              ld R16,y+
 0200 3990              ld R3,y+
 0202 2990              ld R2,y+
 0204 1895              reti
 0206                   .dbend
 0206                   .dbfunc e PortInit _PortInit fV
                        .even
 0206           _PortInit::
 0206                   .dbline -1
 0206                   .dbline 138
 0206           ;  }
 0206           ; }
 0206           ; /*******************子函数***********************************/
 0206           ; /*端口及中断初始化*/
 0206           ; void PortInit(void)
 0206           ; {DDRC = 0xff;
 0206                   .dbline 138
 0206 8FEF              ldi R24,255
 0208 87B9              out 0x7,R24
 020A                   .dbline 139
 020A           ;  PORTC=0xff;
 020A 88B9              out 0x8,R24
 020C                   .dbline 140
 020C           ;  DDRD=0xff;
 020C 8AB9              out 0xa,R24
 020E                   .dbline 141
 020E           ;  PORTD=0x00;
 020E 2224              clr R2
 0210 2BB8              out 0xb,R2
 0212                   .dbline 143
 0212           ;  /*T/C0*/
 0212           ;  TCCR0A=0x00;
 0212 24BC              out 0x24,R2
 0214                   .dbline 144
 0214           ;  TIMSK0=0x01;
 0214 81E0              ldi R24,1
 0216 80936E00          sts 110,R24
 021A                   .dbline 145
 021A           ;  TCNT0=0xce;  //  (1024/16,000,000)*50=3.2ms
 021A 8EEC              ldi R24,206
 021C 86BD              out 0x26,R24
 021E                   .dbline 146
 021E           ;  TCCR0B=0x05; //   clk/1024
 021E 85E0              ldi R24,5
 0220 85BD              out 0x25,R24
 0222                   .dbline 148
 0222           ;  /*T/C1*/
 0222           ;  TCCR1A=0x00;
 0222 20928000          sts 128,R2
 0226                   .dbline 149
 0226           ;  TIMSK1=0x01;
 0226 81E0              ldi R24,1
 0228 80936F00          sts 111,R24
 022C                   .dbline 150
 022C           ;  TCNT1=0xfd8f;  //10ms
 022C 8FE8              ldi R24,64911
 022E 9DEF              ldi R25,253
 0230 90938500          sts 132+1,R25
 0234 80938400          sts 132,R24
 0238                   .dbline 151
 0238           ;  TCCR1B=0x04; //  clk/256

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -