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

📄 main.lss

📁 DS18B20测试温度
💻 LSS
📖 第 1 页 / 共 4 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000802  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000012  00800060  00000802  00000896  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000003  00800072  00800072  000008a8  2**0
                  ALLOC
  3 .stab         0000036c  00000000  00000000  000008a8  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000084  00000000  00000000  00000c14  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000020  00000000  00000000  00000c98  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 00000127  00000000  00000000  00000cb8  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   00000802  00000000  00000000  00000ddf  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 00000199  00000000  00000000  000015e1  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   000004f0  00000000  00000000  0000177a  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  000000f0  00000000  00000000  00001c6a  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    000001e1  00000000  00000000  00001d5a  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    00000360  00000000  00000000  00001f3b  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  2c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  30:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d4 e0       	ldi	r29, 0x04	; 4
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	e2 e0       	ldi	r30, 0x02	; 2
  68:	f8 e0       	ldi	r31, 0x08	; 8
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	a2 37       	cpi	r26, 0x72	; 114
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	a2 e7       	ldi	r26, 0x72	; 114
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	a5 37       	cpi	r26, 0x75	; 117
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 6b 02 	jmp	0x4d6	; 0x4d6 <main>

0000008a <__bad_interrupt>:
  8a:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>

0000008e <delay>:
#define  sei() asm("sei")
#define  cli() asm("cli")

void delay(uchar _delay_n)
{
  8e:	38 2f       	mov	r19, r24
  90:	20 e0       	ldi	r18, 0x00	; 0
  92:	e0 e2       	ldi	r30, 0x20	; 32
  94:	fe e4       	ldi	r31, 0x4E	; 78
  96:	04 c0       	rjmp	.+8      	; 0xa0 <delay+0x12>
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  98:	cf 01       	movw	r24, r30
  9a:	01 97       	sbiw	r24, 0x01	; 1
  9c:	f1 f7       	brne	.-4      	; 0x9a <delay+0xc>

void delay(uchar _delay_n)
{
   uchar i;
   for(i=0;i<_delay_n;i++)
  9e:	2f 5f       	subi	r18, 0xFF	; 255
  a0:	23 17       	cp	r18, r19
  a2:	d1 f7       	brne	.-12     	; 0x98 <delay+0xa>
  a4:	08 95       	ret

000000a6 <send_byte>:
}

//对一个164进行操作 ************************************************************
void send_byte(uchar x)
{
  a6:	20 e0       	ldi	r18, 0x00	; 0
  a8:	30 e0       	ldi	r19, 0x00	; 0
  aa:	68 2f       	mov	r22, r24
  ac:	77 27       	eor	r23, r23
  ae:	e0 91 73 00 	lds	r30, 0x0073
  b2:	47 e0       	ldi	r20, 0x07	; 7
  b4:	50 e0       	ldi	r21, 0x00	; 0
    uchar i ;
    for(i=0;i<8;i++)
    {
        cbi_clk();
  b6:	d8 98       	cbi	0x1b, 0	; 27
        // 产生164时钟信号,
        //判断每位数据的电平,及小数点判断
        if((x&(1<<(7-i)))||((dp==1)&&(i==0)))sbi_data();
  b8:	cb 01       	movw	r24, r22
  ba:	04 2e       	mov	r0, r20
  bc:	02 c0       	rjmp	.+4      	; 0xc2 <send_byte+0x1c>
  be:	95 95       	asr	r25
  c0:	87 95       	ror	r24
  c2:	0a 94       	dec	r0
  c4:	e2 f7       	brpl	.-8      	; 0xbe <send_byte+0x18>
  c6:	80 fd       	sbrc	r24, 0
  c8:	04 c0       	rjmp	.+8      	; 0xd2 <send_byte+0x2c>
  ca:	e1 30       	cpi	r30, 0x01	; 1
  cc:	21 f4       	brne	.+8      	; 0xd6 <send_byte+0x30>
  ce:	22 23       	and	r18, r18
  d0:	11 f4       	brne	.+4      	; 0xd6 <send_byte+0x30>
  d2:	d9 9a       	sbi	0x1b, 1	; 27
  d4:	01 c0       	rjmp	.+2      	; 0xd8 <send_byte+0x32>
        //若为高则输出高电平
        else 
        cbi_data();
  d6:	d9 98       	cbi	0x1b, 1	; 27
        //若为低则输出低电平
        sbi_clk();
  d8:	d8 9a       	sbi	0x1b, 0	; 27
  da:	2f 5f       	subi	r18, 0xFF	; 255
  dc:	3f 4f       	sbci	r19, 0xFF	; 255
  de:	41 50       	subi	r20, 0x01	; 1
  e0:	50 40       	sbci	r21, 0x00	; 0
  e2:	28 30       	cpi	r18, 0x08	; 8
  e4:	31 05       	cpc	r19, r1
  e6:	39 f7       	brne	.-50     	; 0xb6 <send_byte+0x10>
  e8:	08 95       	ret

000000ea <ClearAll>:
  ea:	1f 93       	push	r17
  ec:	10 e0       	ldi	r17, 0x00	; 0
  ee:	80 e0       	ldi	r24, 0x00	; 0
  f0:	0e 94 53 00 	call	0xa6	; 0xa6 <send_byte>
  f4:	1f 5f       	subi	r17, 0xFF	; 255
  f6:	18 30       	cpi	r17, 0x08	; 8
  f8:	d1 f7       	brne	.-12     	; 0xee <ClearAll+0x4>
  fa:	1f 91       	pop	r17
  fc:	08 95       	ret

000000fe <disp_Initial>:
  fe:	83 e0       	ldi	r24, 0x03	; 3
 100:	8a bb       	out	0x1a, r24	; 26
 102:	0e 94 75 00 	call	0xea	; 0xea <ClearAll>
 106:	08 95       	ret

00000108 <PrintInt>:
        // 产生164时钟信号,上升沿
    }
}
//输出8位以内的整数*************************************************************
void PrintInt(long m_lData)
{
 108:	af 92       	push	r10
 10a:	bf 92       	push	r11
 10c:	cf 92       	push	r12
 10e:	df 92       	push	r13
 110:	ef 92       	push	r14
 112:	ff 92       	push	r15
 114:	0f 93       	push	r16
 116:	1f 93       	push	r17
 118:	5b 01       	movw	r10, r22
 11a:	6c 01       	movw	r12, r24
    long temp=10000000 ;
    //当temp=10000000时,显示8位整数
    long i ;
    ClearAll();
 11c:	0e 94 75 00 	call	0xea	; 0xea <ClearAll>
    i=m_lData/temp ;
 120:	c6 01       	movw	r24, r12
 122:	b5 01       	movw	r22, r10
 124:	20 e8       	ldi	r18, 0x80	; 128
 126:	36 e9       	ldi	r19, 0x96	; 150
 128:	48 e9       	ldi	r20, 0x98	; 152
 12a:	50 e0       	ldi	r21, 0x00	; 0
 12c:	0e 94 b0 03 	call	0x760	; 0x760 <__divmodsi4>
 130:	80 e8       	ldi	r24, 0x80	; 128
 132:	e8 2e       	mov	r14, r24
 134:	86 e9       	ldi	r24, 0x96	; 150
 136:	f8 2e       	mov	r15, r24
 138:	88 e9       	ldi	r24, 0x98	; 152
 13a:	08 2f       	mov	r16, r24
 13c:	11 2d       	mov	r17, r1
 13e:	11 c0       	rjmp	.+34     	; 0x162 <PrintInt+0x5a>
    while(i==0)
    {
        send_byte(0x00);
 140:	80 e0       	ldi	r24, 0x00	; 0
 142:	0e 94 53 00 	call	0xa6	; 0xa6 <send_byte>
        temp/=10 ;
 146:	c8 01       	movw	r24, r16
 148:	b7 01       	movw	r22, r14
 14a:	2a e0       	ldi	r18, 0x0A	; 10
 14c:	30 e0       	ldi	r19, 0x00	; 0
 14e:	40 e0       	ldi	r20, 0x00	; 0
 150:	50 e0       	ldi	r21, 0x00	; 0
 152:	0e 94 b0 03 	call	0x760	; 0x760 <__divmodsi4>
 156:	79 01       	movw	r14, r18
 158:	8a 01       	movw	r16, r20
        i=m_lData/temp ;
 15a:	c6 01       	movw	r24, r12
 15c:	b5 01       	movw	r22, r10
 15e:	0e 94 b0 03 	call	0x760	; 0x760 <__divmodsi4>
 162:	21 15       	cp	r18, r1
 164:	31 05       	cpc	r19, r1
 166:	41 05       	cpc	r20, r1
 168:	51 05       	cpc	r21, r1
 16a:	51 f3       	breq	.-44     	; 0x140 <PrintInt+0x38>
 16c:	21 c0       	rjmp	.+66     	; 0x1b0 <PrintInt+0xa8>
        
        
    }
    while(temp)
    {
        send_byte(disp_table[(uchar)(m_lData/temp)]);
 16e:	c6 01       	movw	r24, r12
 170:	b5 01       	movw	r22, r10
 172:	a8 01       	movw	r20, r16
 174:	97 01       	movw	r18, r14
 176:	0e 94 b0 03 	call	0x760	; 0x760 <__divmodsi4>
 17a:	da 01       	movw	r26, r20
 17c:	c9 01       	movw	r24, r18
 17e:	99 27       	eor	r25, r25
 180:	80 5a       	subi	r24, 0xA0	; 160
 182:	9f 4f       	sbci	r25, 0xFF	; 255
 184:	fc 01       	movw	r30, r24
 186:	80 81       	ld	r24, Z
 188:	0e 94 53 00 	call	0xa6	; 0xa6 <send_byte>
        m_lData=m_lData%temp ;
 18c:	c6 01       	movw	r24, r12
 18e:	b5 01       	movw	r22, r10
 190:	a8 01       	movw	r20, r16
 192:	97 01       	movw	r18, r14
 194:	0e 94 b0 03 	call	0x760	; 0x760 <__divmodsi4>
 198:	5b 01       	movw	r10, r22
 19a:	6c 01       	movw	r12, r24
        temp/=10 ;
 19c:	c8 01       	movw	r24, r16
 19e:	b7 01       	movw	r22, r14
 1a0:	2a e0       	ldi	r18, 0x0A	; 10
 1a2:	30 e0       	ldi	r19, 0x00	; 0
 1a4:	40 e0       	ldi	r20, 0x00	; 0
 1a6:	50 e0       	ldi	r21, 0x00	; 0
 1a8:	0e 94 b0 03 	call	0x760	; 0x760 <__divmodsi4>
 1ac:	79 01       	movw	r14, r18
 1ae:	8a 01       	movw	r16, r20
 1b0:	e1 14       	cp	r14, r1
 1b2:	f1 04       	cpc	r15, r1
 1b4:	01 05       	cpc	r16, r1
 1b6:	11 05       	cpc	r17, r1
 1b8:	d1 f6       	brne	.-76     	; 0x16e <PrintInt+0x66>
 1ba:	1f 91       	pop	r17
 1bc:	0f 91       	pop	r16
 1be:	ff 90       	pop	r15
 1c0:	ef 90       	pop	r14
 1c2:	df 90       	pop	r13
 1c4:	cf 90       	pop	r12
 1c6:	bf 90       	pop	r11
 1c8:	af 90       	pop	r10
 1ca:	08 95       	ret

000001cc <PrintFloat>:
    }
}

//用于显示8位以内的浮点数 ******************************************************
/*
void PrintFloat(float m_lData)
{
    long temp=10000000 ;
    uchar i,j=8,m,dot_position=0 ;
    i=m_lData/temp ;
    while(i==0)
    {
        temp/=10 ;
        i=m_lData/temp ;
        dot_position++;
        if(dot_position==7)   i=1 ;
    }
    for(m=0;m<dot_position;m++)
    m_lData*=10 ;
    temp=10000000 ;
    while(temp)
    {
        if(j==dot_position+1)
        dp=1 ;
        j--;
        send_byte(disp_table[(uchar)(m_lData/temp)]);
        m_lData=(long)m_lData%temp ;
        temp/=10 ;
        dp=0 ;
    }
    
}*/

void PrintFloat(float m_lData)
{
 1cc:	5f 92       	push	r5
 1ce:	6f 92       	push	r6
 1d0:	7f 92       	push	r7
 1d2:	8f 92       	push	r8
 1d4:	9f 92       	push	r9
 1d6:	af 92       	push	r10
 1d8:	bf 92       	push	r11
 1da:	cf 92       	push	r12
 1dc:	df 92       	push	r13
 1de:	ef 92       	push	r14

⌨️ 快捷键说明

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