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

📄 main.lss

📁 proteus仿真实例大全
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     75e:	84 ef       	ldi	r24, 0xF4	; 244
     760:	90 e0       	ldi	r25, 0x00	; 0
     762:	0e 94 94 0b 	call	0x1728
   
   #ifdef DS18X20_VERBOSE
   for (i=0; i<nSensors; i++) 
     766:	ee 20       	and	r14, r14
     768:	21 f1       	breq	.+72     	; 0x7b2
     76a:	3f ea       	ldi	r19, 0xAF	; 175
     76c:	c3 2e       	mov	r12, r19
     76e:	30 e0       	ldi	r19, 0x00	; 0
     770:	d3 2e       	mov	r13, r19
     772:	00 e0       	ldi	r16, 0x00	; 0
     774:	10 e0       	ldi	r17, 0x00	; 0
     776:	fe 2c       	mov	r15, r14
    { uart_puts_P("# in Bus :");
     778:	83 e1       	ldi	r24, 0x13	; 19
     77a:	91 e0       	ldi	r25, 0x01	; 1
     77c:	0e 94 94 0b 	call	0x1728
      uart_puti((int) i+1);
     780:	0f 5f       	subi	r16, 0xFF	; 255
     782:	1f 4f       	sbci	r17, 0xFF	; 255
     784:	c8 01       	movw	r24, r16
     786:	0e 94 a6 0b 	call	0x174c
      uart_puts_P(" : ");
     78a:	8e e1       	ldi	r24, 0x1E	; 30
     78c:	91 e0       	ldi	r25, 0x01	; 1
     78e:	0e 94 94 0b 	call	0x1728
      DS18X20_show_id_uart( &gSensorIDs[i][0], OW_ROMCODE_SIZE );
     792:	68 e0       	ldi	r22, 0x08	; 8
     794:	70 e0       	ldi	r23, 0x00	; 0
     796:	c6 01       	movw	r24, r12
     798:	0e 94 29 07 	call	0xe52
      uart_puts_P( "\r" );
     79c:	82 e2       	ldi	r24, 0x22	; 34
     79e:	91 e0       	ldi	r25, 0x01	; 1
     7a0:	0e 94 94 0b 	call	0x1728
     7a4:	fa 94       	dec	r15
     7a6:	28 e0       	ldi	r18, 0x08	; 8
     7a8:	30 e0       	ldi	r19, 0x00	; 0
     7aa:	c2 0e       	add	r12, r18
     7ac:	d3 1e       	adc	r13, r19
     7ae:	ff 20       	and	r15, r15
     7b0:	19 f7       	brne	.-58     	; 0x778
    }
   #endif
	
   for (i=0; i<nSensors; i++) 
     7b2:	ee 20       	and	r14, r14
     7b4:	e9 f1       	breq	.+122    	; 0x830
     7b6:	0f ea       	ldi	r16, 0xAF	; 175
     7b8:	10 e0       	ldi	r17, 0x00	; 0
     7ba:	58 01       	movw	r10, r16
     7bc:	cc 24       	eor	r12, r12
     7be:	dd 24       	eor	r13, r13
     7c0:	fe 2c       	mov	r15, r14
    { uart_puts_P("Sensor# ");
     7c2:	84 e2       	ldi	r24, 0x24	; 36
     7c4:	91 e0       	ldi	r25, 0x01	; 1
     7c6:	0e 94 94 0b 	call	0x1728
      uart_puti((int) i+1);
     7ca:	c6 01       	movw	r24, r12
     7cc:	01 96       	adiw	r24, 0x01	; 1
     7ce:	0e 94 a6 0b 	call	0x174c
      uart_puts_P(" is a ");
     7d2:	8d e2       	ldi	r24, 0x2D	; 45
     7d4:	91 e0       	ldi	r25, 0x01	; 1
     7d6:	0e 94 94 0b 	call	0x1728
      if ( gSensorIDs[i][0] == DS18S20_ID)
     7da:	f5 01       	movw	r30, r10
     7dc:	80 81       	ld	r24, Z
     7de:	28 e0       	ldi	r18, 0x08	; 8
     7e0:	30 e0       	ldi	r19, 0x00	; 0
     7e2:	a2 0e       	add	r10, r18
     7e4:	b3 1e       	adc	r11, r19
     7e6:	80 31       	cpi	r24, 0x10	; 16
     7e8:	19 f4       	brne	.+6      	; 0x7f0
         uart_puts_P("DS18S20/DS1820");
     7ea:	84 e3       	ldi	r24, 0x34	; 52
     7ec:	91 e0       	ldi	r25, 0x01	; 1
     7ee:	02 c0       	rjmp	.+4      	; 0x7f4
      else uart_puts_P("DS18B20");
     7f0:	83 e4       	ldi	r24, 0x43	; 67
     7f2:	91 e0       	ldi	r25, 0x01	; 1
     7f4:	0e 94 94 0b 	call	0x1728
         uart_puts_P(" which is ");
     7f8:	8b e4       	ldi	r24, 0x4B	; 75
     7fa:	91 e0       	ldi	r25, 0x01	; 1
     7fc:	0e 94 94 0b 	call	0x1728
		
      if ( DS18X20_get_power_status( &gSensorIDs[i][0] ) == DS18X20_POWER_PARASITE ) 
     800:	c8 01       	movw	r24, r16
     802:	0e 94 5c 09 	call	0x12b8
     806:	88 23       	and	r24, r24
     808:	19 f4       	brne	.+6      	; 0x810
         uart_puts_P( "parasite" );
     80a:	86 e5       	ldi	r24, 0x56	; 86
     80c:	91 e0       	ldi	r25, 0x01	; 1
     80e:	02 c0       	rjmp	.+4      	; 0x814
      else uart_puts_P( "externally" ); 
     810:	8f e5       	ldi	r24, 0x5F	; 95
     812:	91 e0       	ldi	r25, 0x01	; 1
     814:	0e 94 94 0b 	call	0x1728
         uart_puts_P( " powered\r" );
     818:	8a e6       	ldi	r24, 0x6A	; 106
     81a:	91 e0       	ldi	r25, 0x01	; 1
     81c:	0e 94 94 0b 	call	0x1728
     820:	fa 94       	dec	r15
     822:	08 94       	sec
     824:	c1 1c       	adc	r12, r1
     826:	d1 1c       	adc	r13, r1
     828:	08 5f       	subi	r16, 0xF8	; 248
     82a:	1f 4f       	sbci	r17, 0xFF	; 255
     82c:	ff 20       	and	r15, r15
     82e:	49 f6       	brne	.-110    	; 0x7c2
    }
	
#ifdef DS18X20_EEPROMSUPPORT
   if (nSensors>0) 
     830:	ee 20       	and	r14, r14
     832:	09 f4       	brne	.+2      	; 0x836
     834:	69 c0       	rjmp	.+210    	; 0x908
     836:	84 e7       	ldi	r24, 0x74	; 116
     838:	91 e0       	ldi	r25, 0x01	; 1
     83a:	0e 94 94 0b 	call	0x1728
     83e:	be 01       	movw	r22, r28
     840:	6f 5f       	subi	r22, 0xFF	; 255
     842:	7f 4f       	sbci	r23, 0xFF	; 255
     844:	8f ea       	ldi	r24, 0xAF	; 175
     846:	90 e0       	ldi	r25, 0x00	; 0
     848:	0e 94 86 0a 	call	0x150c
     84c:	1b 81       	ldd	r17, Y+3	; 0x03
     84e:	0c 81       	ldd	r16, Y+4	; 0x04
     850:	82 ea       	ldi	r24, 0xA2	; 162
     852:	91 e0       	ldi	r25, 0x01	; 1
     854:	0e 94 94 0b 	call	0x1728
     858:	81 2f       	mov	r24, r17
     85a:	99 27       	eor	r25, r25
     85c:	0e 94 a6 0b 	call	0x174c
     860:	80 ec       	ldi	r24, 0xC0	; 192
     862:	91 e0       	ldi	r25, 0x01	; 1
     864:	0e 94 94 0b 	call	0x1728
     868:	80 2f       	mov	r24, r16
     86a:	99 27       	eor	r25, r25
     86c:	0e 94 a6 0b 	call	0x174c
     870:	84 ec       	ldi	r24, 0xC4	; 196
     872:	91 e0       	ldi	r25, 0x01	; 1
     874:	0e 94 94 0b 	call	0x1728
     878:	0f 5f       	subi	r16, 0xFF	; 255
     87a:	1f 5f       	subi	r17, 0xFF	; 255
     87c:	20 e6       	ldi	r18, 0x60	; 96
     87e:	40 2f       	mov	r20, r16
     880:	61 2f       	mov	r22, r17
     882:	8f ea       	ldi	r24, 0xAF	; 175
     884:	90 e0       	ldi	r25, 0x00	; 0
     886:	0e 94 58 0a 	call	0x14b0
     88a:	86 ec       	ldi	r24, 0xC6	; 198
     88c:	91 e0       	ldi	r25, 0x01	; 1
     88e:	0e 94 94 0b 	call	0x1728
     892:	6f ea       	ldi	r22, 0xAF	; 175
     894:	70 e0       	ldi	r23, 0x00	; 0
     896:	80 e0       	ldi	r24, 0x00	; 0
     898:	0e 94 ac 0a 	call	0x1558
     89c:	8b ee       	ldi	r24, 0xEB	; 235
     89e:	91 e0       	ldi	r25, 0x01	; 1
     8a0:	0e 94 94 0b 	call	0x1728
     8a4:	8f ea       	ldi	r24, 0xAF	; 175
     8a6:	90 e0       	ldi	r25, 0x00	; 0
     8a8:	0e 94 d6 0a 	call	0x15ac
     8ac:	80 e1       	ldi	r24, 0x10	; 16
     8ae:	92 e0       	ldi	r25, 0x02	; 2
     8b0:	0e 94 94 0b 	call	0x1728
     8b4:	be 01       	movw	r22, r28
     8b6:	6f 5f       	subi	r22, 0xFF	; 255
     8b8:	7f 4f       	sbci	r23, 0xFF	; 255
     8ba:	8f ea       	ldi	r24, 0xAF	; 175
     8bc:	90 e0       	ldi	r25, 0x00	; 0
     8be:	0e 94 86 0a 	call	0x150c
     8c2:	8b 81       	ldd	r24, Y+3	; 0x03
     8c4:	18 17       	cp	r17, r24
     8c6:	31 f4       	brne	.+12     	; 0x8d4
     8c8:	8c 81       	ldd	r24, Y+4	; 0x04
     8ca:	08 17       	cp	r16, r24
     8cc:	19 f4       	brne	.+6      	; 0x8d4
     8ce:	8a e3       	ldi	r24, 0x3A	; 58
     8d0:	92 e0       	ldi	r25, 0x02	; 2
     8d2:	02 c0       	rjmp	.+4      	; 0x8d8
     8d4:	8e e4       	ldi	r24, 0x4E	; 78
     8d6:	92 e0       	ldi	r25, 0x02	; 2
     8d8:	0e 94 94 0b 	call	0x1728
     8dc:	1b 81       	ldd	r17, Y+3	; 0x03
     8de:	0c 81       	ldd	r16, Y+4	; 0x04
     8e0:	8d e5       	ldi	r24, 0x5D	; 93
     8e2:	92 e0       	ldi	r25, 0x02	; 2
     8e4:	0e 94 94 0b 	call	0x1728
     8e8:	81 2f       	mov	r24, r17
     8ea:	99 27       	eor	r25, r25
     8ec:	0e 94 a6 0b 	call	0x174c
     8f0:	8f e7       	ldi	r24, 0x7F	; 127
     8f2:	92 e0       	ldi	r25, 0x02	; 2
     8f4:	0e 94 94 0b 	call	0x1728
     8f8:	80 2f       	mov	r24, r16
     8fa:	99 27       	eor	r25, r25
     8fc:	0e 94 a6 0b 	call	0x174c
     900:	83 e8       	ldi	r24, 0x83	; 131
     902:	92 e0       	ldi	r25, 0x02	; 2
     904:	0e 94 94 0b 	call	0x1728
    { eeprom_test();
    }
#endif

   if ( nSensors == 1 )
     908:	31 e0       	ldi	r19, 0x01	; 1
     90a:	e3 16       	cp	r14, r19
     90c:	31 f5       	brne	.+76     	; 0x95a
    { uart_puts_P( "\rThere is only one sensor -> Demo of \"read_meas_single\":\r" ); 
     90e:	85 e8       	ldi	r24, 0x85	; 133
     910:	92 e0       	ldi	r25, 0x02	; 2
     912:	0e 94 94 0b 	call	0x1728
      i = gSensorIDs[0][0]; // family-code for conversion-routine
     916:	f0 90 af 00 	lds	r15, 0x00AF
      DS18X20_start_meas( DS18X20_POWER_PARASITE, NULL );
     91a:	60 e0       	ldi	r22, 0x00	; 0
     91c:	70 e0       	ldi	r23, 0x00	; 0
     91e:	80 e0       	ldi	r24, 0x00	; 0
     920:	0e 94 74 09 	call	0x12e8
      delay_ms(DS18B20_TCONV_12BIT);
     924:	66 e4       	ldi	r22, 0x46	; 70
     926:	71 e4       	ldi	r23, 0x41	; 65
     928:	8f e0       	ldi	r24, 0x0F	; 15
     92a:	90 e0       	ldi	r25, 0x00	; 0
     92c:	0e 94 b3 06 	call	0xd66
      DS18X20_read_meas_single(i, &subzero, &cel, &cel_frac_bits);
     930:	9e 01       	movw	r18, r28
     932:	26 5f       	subi	r18, 0xF6	; 246
     934:	3f 4f       	sbci	r19, 0xFF	; 255
     936:	ae 01       	movw	r20, r28
     938:	45 5f       	subi	r20, 0xF5	; 245
     93a:	5f 4f       	sbci	r21, 0xFF	; 255
     93c:	be 01       	movw	r22, r28
     93e:	64 5f       	subi	r22, 0xF4	; 244
     940:	7f 4f       	sbci	r23, 0xFF	; 255
     942:	8f 2d       	mov	r24, r15
     944:	0e 94 f8 09 	call	0x13f0
      uart_put_temp(subzero, cel, cel_frac_bits);
     948:	4a 85       	ldd	r20, Y+10	; 0x0a
     94a:	6b 85       	ldd	r22, Y+11	; 0x0b
     94c:	8c 85       	ldd	r24, Y+12	; 0x0c
     94e:	0e 94 10 03 	call	0x620
      uart_puts_P("\r");
     952:	8f eb       	ldi	r24, 0xBF	; 191
     954:	92 e0       	ldi	r25, 0x02	; 2
     956:	0e 94 94 0b 	call	0x1728
    }
	
	for(;;)
    { // main loop
      uart_puts_P( "\rConvert_T and Read Sensor by Sensor (reverse order)\r" ); 
     95a:	81 ec       	ldi	r24, 0xC1	; 193
     95c:	92 e0       	ldi	r25, 0x02	; 2
     95e:	0e 94 94 0b 	call	0x1728
      for ( i=nSensors; i>0; i-- ) 
     962:	fe 2c       	mov	r15, r14
     964:	ff 20       	and	r15, r15
     966:	09 f4       	brne	.+2      	; 0x96a
     968:	42 c0       	rjmp	.+132    	; 0x9ee
       { if ( DS18X20_start_meas( DS18X20_POWER_PARASITE, &gSensorIDs[i-1][0] ) == DS18X20_OK ) 
     96a:	cf 2c       	mov	r12, r15
     96c:	dd 24       	eor	r13, r13
     96e:	86 01       	movw	r16, r12
     970:	23 e0       	ldi	r18, 0x03	; 3
     972:	00 0f       	add	r16, r16
     974:	11 1f       	adc	r17, r17
     976:	2a 95       	dec	r18
     978:	e1 f7       	brne	.-8      	; 0x972
     97a:	09 55       	subi	r16, 0x59	; 89
     97c:	1f 4f       	sbci	r17, 0xFF	; 255
     97e:	b8 01       	movw	r22, r16
     980:	80 e0       	ldi	r24, 0x00	; 0
     982:	0e 94 74 09 	call	0x12e8
     986:	88 23       	and	r24, r24
     988:	61 f5       	brne	.+88     	; 0x9e2
          { delay_ms(DS18B20_TCONV_12BIT);
     98a:	66 e4       	ldi	r22, 0x46	; 70
     98c:	71 e4       	ldi	r23, 0x41	; 65
     98e:	8f e0       	ldi	r24, 0x0F	; 15
     990:	90 e0       	ldi	r25, 0x00	; 0
     992:	0e 94 b3 06 	call	0xd66
            uart_puts_P("Sensor# ");
     996:	87 ef       	ldi	r24, 0xF7	; 247
     998:	92 e0       	ldi	r25, 0x02	; 2
     99a:	0e 94 94 0b 	call	0x1728
            uart_puti((int) i);
     99e:	c6 01       	movw	r24, r12
     9a0:	0e 94 a6 0b 	call	0x174c
            uart_puts_P(" = ");
     9a4:	80 e0       	ldi	r24, 0x00	; 0
     9a6:	93 e0       	ldi	r25, 0x03	; 3
     9a8:	0e 94 94 0b 	call	0x1728
            
            if ( DS18X20_read_meas( &gSensorIDs[i-1][0], &subzero, &cel, &cel_frac_bits) == DS18X20_OK ) 
     9ac:	9e 01       	movw	r18, r28
     9ae:	26 5f       	subi	r18, 0xF6	; 246
     9b0:	3f 4f       	sbci	r19, 0xFF	; 255
     9b2:	ae 01       	movw	r20, r28
     9b4:	45 5f       	subi	r20, 0xF5	; 245
     9b6:	5f 4f       	sbci	r21, 0xFF	; 255
     9b8:	be 01       	movw	r22, r28
     9ba:	64 5f       	subi	r22, 0xF4	; 244
     9bc:	7f 4f       	sbci	r23, 0xFF	; 255
     9be:	c8 01       	movw	r24, r16
     9c0:	0e 94 94 09 	call	0x1328
     9c4:	88 23       	and	r24, r24
     9c6:	31 f4       	brne	.+12     	; 0x9d4
             { uart_put_temp(subzero, cel, cel_frac_bits);
     9c8:	4a 85       	ldd	r20, Y+10	; 0x0a
     9ca:	6b 85       	ldd	r22, Y+11	; 0x0b
     9cc:	8c 85       	ldd	r24, Y+12	; 0x0c
     9ce:	0e 94 10 03 	call	0x620
     9d2:	04 c0       	rjmp	.+8      	; 0x9dc
             }
            else uart_puts_P("CRC Error (lost connection?)");
     9d4:	84 e0       	ldi	r24, 0x04	; 4
     9d6:	93 e0       	ldi	r25, 0x03	; 3
     9d8:	0e 94 94 0b 	call	0x1728
               uart_puts_P("\r");
     9dc:	81 e2       	ldi	r24, 0x21	; 33
     9de:	93 e0       	ldi	r25, 0x03	; 3
     9e0:	02 c0       	rjmp	.+4      	; 0x9e6
          }
         else uart_puts_P("Start meas. failed (short circuit?)");
     9e2:	83 e2       	ldi	r24, 0x23	; 35
     9e4:	93 e0       	ldi	r25, 0x03	; 3
     9e6:	0e 94 94 0b 	call	0x1728
     9ea:	fa 94       	dec	r15
     9ec:	bb cf       	rjmp	.-138    	; 0x964
       }
   
      uart_puts_P( "\rConvert_T for all Sensors and Read Sensor by Sensor\r" ); 	
     9ee:	87 e4       	ldi	r24, 0x47	; 71
     9f0:	93 e0       	ldi	r25, 0x03	; 3
     9f2:	0e 94 94 0b 	call	0x1728
      if ( DS18X20_start_meas( DS18X20_POWER_PARASITE, NULL ) == DS18X20_OK)
     9f6:	60 e0       	ldi	r22, 0x00	; 0
     9f8:	70 e0       	ldi	r23, 0x00	; 0
     9fa:	80 e0       	ldi	r24, 0x00	; 0
     9fc:	0e 94 74 09 	call	0x12e8
     a00:	18 2f       	mov	r17, r24
     a02:	88 23       	and	r24, r24
     a04:	09 f0       	breq	.+2      	; 0xa08
     a06:	41 c0       	rjmp	.+130    	; 0xa8a
       { delay_ms(DS18B20_TCONV_12BIT);
     a08:	66 e4       	ldi	r22, 0x46	; 70
     a0a:	71 e4       	ldi	r23, 0x41	; 65
     a0c:	8f e0       	ldi	r24, 0x0F	; 15
     a0e:	90 e0       	ldi	r25, 0x00	; 0
     a10:	0e 94 b3 06 	call	0xd66
         for ( i=0; i<nSensors; i++ ) 
     a14:	1e 15       	cp	r17, r14
     a16:	e8 f5       	brcc	.+122    	; 0xa92
     a18:	9f ea       	ldi	r25, 0xAF	; 175
     a1a:	c9 2e       	mov	r12, r25
     a1c:	90 e0       	ldi	r25, 0x00	; 0

⌨️ 快捷键说明

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