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

📄 ds18b20.lis

📁 DS18B20温度监控程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0342 0ED0              rcall _delay_10us
 0344                   .dbline 231
 0344           ;    
 0344           ;   }
 0344           L48:
 0344                   .dbline 217
 0344 6395              inc R22
 0346           L50:
 0346                   .dbline 217
 0346 6830              cpi R22,8
 0348 50F3              brlo L47
 034A           X22:
 034A                   .dbline 232
 034A           ;  DRC(1);
 034A 389A              sbi 0x7,0
 034C                   .dbline 233
 034C           ;  DQ(1);
 034C 409A              sbi 0x8,0
 034E                   .dbline 235
 034E           ;  
 034E           ;  if (flag & 0x80) 
 034E 20900D00          lds R2,_flag
 0352 27FE              sbrs R2,7
 0354 01C0              rjmp L53
 0356           X23:
 0356                   .dbline 236
 0356           ;    {SEI();  /*恢复中断状态*/
 0356                   .dbline 236
 0356 7894              sei
 0358                   .dbline 237
 0358           ;    } 
 0358           L53:
 0358                   .dbline 238
 0358           ;  return(data);   
 0358 042F              mov R16,R20
 035A                   .dbline -2
 035A           L46:
 035A                   .dbline 0 ; func end
 035A 6991              ld R22,y+
 035C 4991              ld R20,y+
 035E 0895              ret
 0360                   .dbsym r data 20 c
 0360                   .dbsym r i 22 c
 0360                   .dbend
 0360                   .dbfunc e delay_10us _delay_10us fV
 0360           ;              i -> R10
 0360           ;              j -> R20
 0360           ;              n -> R16
                        .even
 0360           _delay_10us::
 0360 AA92              st -y,R10
 0362 4A93              st -y,R20
 0364                   .dbline -1
 0364                   .dbline 245
 0364           ; }
 0364           ; /********************************************************/
 0364           ; 
 0364           ; /* n*10us  
 0364           ;  通过AVR Studio仿真*/
 0364           ; void delay_10us(uchar n)
 0364           ; {uchar i,j;
 0364                   .dbline 246
 0364           ;  for(i=0;i<n;i++)
 0364 AA24              clr R10
 0366 06C0              rjmp L59
 0368           L56:
 0368                   .dbline 247
 0368           ;    for(j=0;j<38;j++);
 0368 4427              clr R20
 036A 01C0              rjmp L63
 036C           L60:
 036C                   .dbline 247
 036C           L61:
 036C                   .dbline 247
 036C 4395              inc R20
 036E           L63:
 036E                   .dbline 247
 036E 4632              cpi R20,38
 0370 E8F3              brlo L60
 0372           X24:
 0372           L57:
 0372                   .dbline 246
 0372 A394              inc R10
 0374           L59:
 0374                   .dbline 246
 0374 A016              cp R10,R16
 0376 C0F3              brlo L56
 0378           X25:
 0378                   .dbline -2
 0378           L55:
 0378                   .dbline 0 ; func end
 0378 4991              ld R20,y+
 037A A990              ld R10,y+
 037C 0895              ret
 037E                   .dbsym r i 10 c
 037E                   .dbsym r j 20 c
 037E                   .dbsym r n 16 c
 037E                   .dbend
 037E                   .dbfunc e delay_1us _delay_1us fV
 037E           ;              i -> R16
                        .even
 037E           _delay_1us::
 037E                   .dbline -1
 037E                   .dbline 251
 037E           ; }
 037E           ; /* 1.75us */
 037E           ; void delay_1us(void)
 037E           ; {uchar i;
 037E                   .dbline 252
 037E           ;  for(i=0;i<4;i++);
 037E 0027              clr R16
 0380 01C0              rjmp L68
 0382           L65:
 0382                   .dbline 252
 0382           L66:
 0382                   .dbline 252
 0382 0395              inc R16
 0384           L68:
 0384                   .dbline 252
 0384 0430              cpi R16,4
 0386 E8F3              brlo L65
 0388           X26:
 0388                   .dbline -2
 0388           L64:
 0388                   .dbline 0 ; func end
 0388 0895              ret
 038A                   .dbsym r i 16 c
 038A                   .dbend
 038A                   .dbfunc e UartRece_int _UartRece_int fV
                        .even
 038A           _UartRece_int::
 038A 2A92              st -y,R2
 038C 3A92              st -y,R3
 038E 8A93              st -y,R24
 0390 9A93              st -y,R25
 0392 EA93              st -y,R30
 0394 FA93              st -y,R31
 0396 2FB6              IN R2,63
 0398 2A92              st -y,R2
 039A                   .dbline -1
 039A                   .dbline 256
 039A           ; }
 039A           ; /********************************通信部分*************************/
 039A           ; void UartRece_int(void)
 039A           ; {if(count3<2)Rece[count3++]=UDR0;
 039A                   .dbline 256
 039A 80910C00          lds R24,_count3
 039E 8230              cpi R24,2
 03A0 78F4              brsh L70
 03A2           X27:
 03A2                   .dbline 256
 03A2 282E              mov R2,R24
 03A4 3324              clr R3
 03A6 8F5F              subi R24,255    ; addi 1
 03A8 80930C00          sts _count3,R24
 03AC 80E0              ldi R24,<_Rece
 03AE 90E0              ldi R25,>_Rece
 03B0 E22D              mov R30,R2
 03B2 FF27              clr R31
 03B4 E80F              add R30,R24
 03B6 F91F              adc R31,R25
 03B8 2090C600          lds R2,198
 03BC 2082              std z+0,R2
 03BE 06C0              rjmp L71
 03C0           L70:
 03C0                   .dbline 258
 03C0           ;  else 
 03C0           ;    {count3=0;
 03C0                   .dbline 258
 03C0 2224              clr R2
 03C2 20920C00          sts _count3,R2
 03C6                   .dbline 259
 03C6           ;     flag1=1;
 03C6 81E0              ldi R24,1
 03C8 80930D00          sts _flag1,R24
 03CC                   .dbline 260
 03CC           ;    }                  
 03CC           L71:
 03CC                   .dbline -2
 03CC           L69:
 03CC                   .dbline 0 ; func end
 03CC 2990              ld R2,y+
 03CE 2FBE              OUT 63,R2
 03D0 F991              ld R31,y+
 03D2 E991              ld R30,y+
 03D4 9991              ld R25,y+
 03D6 8991              ld R24,y+
 03D8 3990              ld R3,y+
 03DA 2990              ld R2,y+
 03DC 1895              reti
 03DE                   .dbend
 03DE                   .dbfunc e UartInit _UartInit fV
                        .even
 03DE           _UartInit::
 03DE                   .dbline -1
 03DE                   .dbline 264
 03DE           ; }
 03DE           ; /**************串口初始化函数*****************/
 03DE           ; void UartInit(void)
 03DE           ; {
 03DE                   .dbline 266
 03DE           ;  /* 设置波特率*/
 03DE           ;  UBRR0H = 0x00;   /*9600 U2X0=0  103*/
 03DE 2224              clr R2
 03E0 2092C500          sts 197,R2
 03E4                   .dbline 267
 03E4           ;  UBRR0L = 0x67;
 03E4 87E6              ldi R24,103
 03E6 8093C400          sts 196,R24
 03EA                   .dbline 269
 03EA           ;  /* 接收中断使能  接收器与发送器使能*/
 03EA           ;  UCSR0B = (1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
 03EA 88E9              ldi R24,152
 03EC 8093C100          sts 193,R24
 03F0                   .dbline 271
 03F0           ;  /* 设置帧格式: 8 个数据位, 1 个停止位 */
 03F0           ;  UCSR0C = (3<<UCSZ00);
 03F0 86E0              ldi R24,6
 03F2 8093C200          sts 194,R24
 03F6                   .dbline -2
 03F6           L72:
 03F6                   .dbline 0 ; func end
 03F6 0895              ret
 03F8                   .dbend
 03F8                   .dbfunc e UartSend _UartSend fV
 03F8           ;              i -> R10
 03F8           ;         length -> R18
 03F8           ;              a -> R16,R17
                        .even
 03F8           _UartSend::
 03F8 AA92              st -y,R10
 03FA                   .dbline -1
 03FA                   .dbline 275
 03FA           ; }
 03FA           ; /****************串行发送函数****************/
 03FA           ; void UartSend(uchar a[],uchar length)
 03FA           ; {uchar i;
 03FA                   .dbline 276
 03FA           ;  for(i=0;i<length;i++)
 03FA AA24              clr R10
 03FC 0CC0              rjmp L77
 03FE           L78:
 03FE                   .dbline 278
 03FE           ;   {/* 等待发送缓冲器为空*/
 03FE           ;    while ( !( UCSR0A & (1<<UDRE0)) );
 03FE           L79:
 03FE                   .dbline 278
 03FE 2090C000          lds R2,192
 0402 25FE              sbrs R2,5
 0404 FCCF              rjmp L78
 0406           X28:
 0406                   .dbline 280
 0406           ;    /* 将数据放入缓冲器,发送数据*/
 0406           ;    UDR0=a[i];
 0406 EA2D              mov R30,R10
 0408 FF27              clr R31
 040A E00F              add R30,R16
 040C F11F              adc R31,R17
 040E 2080              ldd R2,z+0
 0410 2092C600          sts 198,R2
 0414                   .dbline 281
 0414           ;   }
 0414           L75:
 0414                   .dbline 276
 0414 A394              inc R10
 0416           L77:
 0416                   .dbline 276
 0416 A216              cp R10,R18
 0418 90F3              brlo L79
 041A           X29:
 041A                   .dbline -2
 041A           L73:
 041A                   .dbline 0 ; func end
 041A A990              ld R10,y+
 041C 0895              ret
 041E                   .dbsym r i 10 c
 041E                   .dbsym r length 18 c
 041E                   .dbsym r a 16 pc
 041E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\VB01D6~1\ComTest\DS18b20\ds18b20.c
 0000           _Send::
 0000                   .blkb 3
 0003                   .dbsym e Send _Send A[3:3]c
 0003           _Rece::
 0003                   .blkb 2
 0005                   .dbsym e Rece _Rece A[2:2]c
 0005           _timeb6::
 0005                   .blkb 1
 0006                   .dbsym e timeb6 _timeb6 c
 0006           _timeb5::
 0006                   .blkb 1
 0007                   .dbsym e timeb5 _timeb5 c
 0007           _timeb4::
 0007                   .blkb 1
 0008                   .dbsym e timeb4 _timeb4 c
 0008           _timeb3::
 0008                   .blkb 1
 0009                   .dbsym e timeb3 _timeb3 c
 0009           _timeb2::
 0009                   .blkb 1
 000A                   .dbsym e timeb2 _timeb2 c
 000A           _timeb1::
 000A                   .blkb 1
 000B                   .dbsym e timeb1 _timeb1 c
 000B           _time2::
 000B                   .blkb 1
 000C                   .dbsym e time2 _time2 c
 000C           _time1::
 000C                   .blkb 1
 000D                   .dbsym e time1 _time1 c
 000D           _flag::
 000D                   .blkb 1
 000E                   .dbsym e flag _flag c
 000E           ; }

⌨️ 快捷键说明

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