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

📄 adc-disp.lss

📁 在winavr上调试的一个adc程序
💻 LSS
📖 第 1 页 / 共 2 页
字号:
		ret/=6;
 17c:	c9 01       	movw	r24, r18
 17e:	66 e0       	ldi	r22, 0x06	; 6
 180:	70 e0       	ldi	r23, 0x00	; 0
 182:	0e 94 80 01 	call	0x300	; 0x300 <__udivmodhi4>

	ADCSRA=0;//关闭ADC
 186:	16 b8       	out	0x06, r1	; 6
	
	return ret;
}
 188:	cb 01       	movw	r24, r22
 18a:	df 91       	pop	r29
 18c:	cf 91       	pop	r28
 18e:	1f 91       	pop	r17
 190:	0f 91       	pop	r16
 192:	ff 90       	pop	r15
 194:	08 95       	ret

00000196 <Led_disp>:

int Led_disp(void)
{
 196:	44 e0       	ldi	r20, 0x04	; 4
 198:	50 e0       	ldi	r21, 0x00	; 0
    uchar i;
    for(i=0;i<4;i++)
    {
       PORTC=g_aLed[i];
	   PORTA&=~(1<<(i+4));
 19a:	a1 e0       	ldi	r26, 0x01	; 1
 19c:	b0 e0       	ldi	r27, 0x00	; 0
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 19e:	68 ee       	ldi	r22, 0xE8	; 232
 1a0:	73 e0       	ldi	r23, 0x03	; 3
       _delay_us(1000);
       PORTA=0xf0;
 1a2:	30 ef       	ldi	r19, 0xF0	; 240
int Led_disp(void)
{
    uchar i;
    for(i=0;i<4;i++)
    {
       PORTC=g_aLed[i];
 1a4:	fa 01       	movw	r30, r20
 1a6:	e4 58       	subi	r30, 0x84	; 132
 1a8:	ff 4f       	sbci	r31, 0xFF	; 255
 1aa:	80 81       	ld	r24, Z
 1ac:	85 bb       	out	0x15, r24	; 21
	   PORTA&=~(1<<(i+4));
 1ae:	2b b3       	in	r18, 0x1b	; 27
 1b0:	cd 01       	movw	r24, r26
 1b2:	04 2e       	mov	r0, r20
 1b4:	02 c0       	rjmp	.+4      	; 0x1ba <Led_disp+0x24>
 1b6:	88 0f       	add	r24, r24
 1b8:	99 1f       	adc	r25, r25
 1ba:	0a 94       	dec	r0
 1bc:	e2 f7       	brpl	.-8      	; 0x1b6 <Led_disp+0x20>
 1be:	80 95       	com	r24
 1c0:	82 23       	and	r24, r18
 1c2:	8b bb       	out	0x1b, r24	; 27
 1c4:	cb 01       	movw	r24, r22
 1c6:	01 97       	sbiw	r24, 0x01	; 1
 1c8:	f1 f7       	brne	.-4      	; 0x1c6 <Led_disp+0x30>
       _delay_us(1000);
       PORTA=0xf0;
 1ca:	3b bb       	out	0x1b, r19	; 27
 1cc:	4f 5f       	subi	r20, 0xFF	; 255
 1ce:	5f 4f       	sbci	r21, 0xFF	; 255
}

int Led_disp(void)
{
    uchar i;
    for(i=0;i<4;i++)
 1d0:	48 30       	cpi	r20, 0x08	; 8
 1d2:	51 05       	cpc	r21, r1
 1d4:	39 f7       	brne	.-50     	; 0x1a4 <Led_disp+0xe>
	   PORTA&=~(1<<(i+4));
       _delay_us(1000);
       PORTA=0xf0;
    }
return 0;
}
 1d6:	80 e0       	ldi	r24, 0x00	; 0
 1d8:	90 e0       	ldi	r25, 0x00	; 0
 1da:	08 95       	ret

000001dc <NtoBCD>:
int NtoBCD(void)
{
 1dc:	1f 93       	push	r17
 1de:	df 93       	push	r29
 1e0:	cf 93       	push	r28
 1e2:	cd b7       	in	r28, 0x3d	; 61
 1e4:	de b7       	in	r29, 0x3e	; 62
 1e6:	60 97       	sbiw	r28, 0x10	; 16
 1e8:	0f b6       	in	r0, 0x3f	; 63
 1ea:	f8 94       	cli
 1ec:	de bf       	out	0x3e, r29	; 62
 1ee:	0f be       	out	0x3f, r0	; 63
 1f0:	cd bf       	out	0x3d, r28	; 61
    uchar g_aDisplayBuf[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
 1f2:	de 01       	movw	r26, r28
 1f4:	11 96       	adiw	r26, 0x01	; 1
 1f6:	e0 e6       	ldi	r30, 0x60	; 96
 1f8:	f0 e0       	ldi	r31, 0x00	; 0
 1fa:	80 e1       	ldi	r24, 0x10	; 16
 1fc:	01 90       	ld	r0, Z+
 1fe:	0d 92       	st	X+, r0
 200:	81 50       	subi	r24, 0x01	; 1
 202:	e1 f7       	brne	.-8      	; 0x1fc <NtoBCD+0x20>
    uint num;
	uchar aa,bb,cc;
	num=AdcConvert()*10/41;//1024对应2.49V
 204:	0e 94 51 00 	call	0xa2	; 0xa2 <AdcConvert>
 208:	9c 01       	movw	r18, r24
 20a:	53 e0       	ldi	r21, 0x03	; 3
 20c:	88 0f       	add	r24, r24
 20e:	99 1f       	adc	r25, r25
 210:	5a 95       	dec	r21
 212:	e1 f7       	brne	.-8      	; 0x20c <NtoBCD+0x30>
 214:	22 0f       	add	r18, r18
 216:	33 1f       	adc	r19, r19
 218:	82 0f       	add	r24, r18
 21a:	93 1f       	adc	r25, r19
 21c:	69 e2       	ldi	r22, 0x29	; 41
 21e:	70 e0       	ldi	r23, 0x00	; 0
 220:	0e 94 80 01 	call	0x300	; 0x300 <__udivmodhi4>
 224:	9b 01       	movw	r18, r22
    aa=num/100;
	bb=(num%100)/10;
 226:	cb 01       	movw	r24, r22
 228:	64 e6       	ldi	r22, 0x64	; 100
 22a:	70 e0       	ldi	r23, 0x00	; 0
 22c:	0e 94 80 01 	call	0x300	; 0x300 <__udivmodhi4>
 230:	48 2f       	mov	r20, r24
 232:	19 2f       	mov	r17, r25
	cc=(num%100)%10;
	g_aLed[0]=0x80|g_aDisplayBuf[aa];
 234:	c9 01       	movw	r24, r18
 236:	64 e6       	ldi	r22, 0x64	; 100
 238:	70 e0       	ldi	r23, 0x00	; 0
 23a:	0e 94 80 01 	call	0x300	; 0x300 <__udivmodhi4>
 23e:	9e 01       	movw	r18, r28
 240:	2f 5f       	subi	r18, 0xFF	; 255
 242:	3f 4f       	sbci	r19, 0xFF	; 255
 244:	f9 01       	movw	r30, r18
 246:	e6 0f       	add	r30, r22
 248:	f1 1d       	adc	r31, r1
 24a:	80 81       	ld	r24, Z
 24c:	80 68       	ori	r24, 0x80	; 128
 24e:	80 93 80 00 	sts	0x0080, r24
    g_aLed[1]=g_aDisplayBuf[bb];
 252:	84 2f       	mov	r24, r20
 254:	91 2f       	mov	r25, r17
 256:	6a e0       	ldi	r22, 0x0A	; 10
 258:	70 e0       	ldi	r23, 0x00	; 0
 25a:	0e 94 80 01 	call	0x300	; 0x300 <__udivmodhi4>
 25e:	f9 01       	movw	r30, r18
 260:	e6 0f       	add	r30, r22
 262:	f1 1d       	adc	r31, r1
 264:	80 81       	ld	r24, Z
 266:	80 93 81 00 	sts	0x0081, r24
    g_aLed[2]=g_aDisplayBuf[cc];
 26a:	84 2f       	mov	r24, r20
 26c:	91 2f       	mov	r25, r17
 26e:	6a e0       	ldi	r22, 0x0A	; 10
 270:	70 e0       	ldi	r23, 0x00	; 0
 272:	0e 94 80 01 	call	0x300	; 0x300 <__udivmodhi4>
 276:	28 0f       	add	r18, r24
 278:	31 1d       	adc	r19, r1
 27a:	f9 01       	movw	r30, r18
 27c:	80 81       	ld	r24, Z
 27e:	80 93 82 00 	sts	0x0082, r24
    g_aLed[3]=0x1c;//显示“v”
 282:	8c e1       	ldi	r24, 0x1C	; 28
 284:	80 93 83 00 	sts	0x0083, r24
return 0;
}
 288:	80 e0       	ldi	r24, 0x00	; 0
 28a:	90 e0       	ldi	r25, 0x00	; 0
 28c:	60 96       	adiw	r28, 0x10	; 16
 28e:	0f b6       	in	r0, 0x3f	; 63
 290:	f8 94       	cli
 292:	de bf       	out	0x3e, r29	; 62
 294:	0f be       	out	0x3f, r0	; 63
 296:	cd bf       	out	0x3d, r28	; 61
 298:	cf 91       	pop	r28
 29a:	df 91       	pop	r29
 29c:	1f 91       	pop	r17
 29e:	08 95       	ret

000002a0 <main>:
int main(void)
{
 2a0:	ff 92       	push	r15
 2a2:	0f 93       	push	r16
 2a4:	1f 93       	push	r17
 2a6:	cf 93       	push	r28
 2a8:	df 93       	push	r29
static uint g_aAdValue[8];	//A/D转换缓冲区
static uchar g_aLed[4];

void IoInit(void)
{
   PORTA&=~_BV(PA0);        //初始化pa0
 2aa:	d8 98       	cbi	0x1b, 0	; 27
   DDRC=0xff;
 2ac:	8f ef       	ldi	r24, 0xFF	; 255
 2ae:	84 bb       	out	0x14, r24	; 20
   PORTC=0X00;
 2b0:	15 ba       	out	0x15, r1	; 21
   DDRA=0xf0;
 2b2:	80 ef       	ldi	r24, 0xF0	; 240
 2b4:	8a bb       	out	0x1a, r24	; 26
   PORTA=0xf0;
 2b6:	8b bb       	out	0x1b, r24	; 27
{
    uchar i;
    for(i=0;i<4;i++)
    {
       PORTC=g_aLed[i];
	   PORTA&=~(1<<(i+4));
 2b8:	01 e0       	ldi	r16, 0x01	; 1
 2ba:	10 e0       	ldi	r17, 0x00	; 0
 2bc:	c8 ee       	ldi	r28, 0xE8	; 232
 2be:	d3 e0       	ldi	r29, 0x03	; 3
       _delay_us(1000);
       PORTA=0xf0;
 2c0:	60 ef       	ldi	r22, 0xF0	; 240
 2c2:	f6 2e       	mov	r15, r22
int main(void)
{
    IoInit();
    while(1)
	{
	   NtoBCD(); 
 2c4:	0e 94 ee 00 	call	0x1dc	; 0x1dc <NtoBCD>
 2c8:	44 e0       	ldi	r20, 0x04	; 4
 2ca:	50 e0       	ldi	r21, 0x00	; 0
int Led_disp(void)
{
    uchar i;
    for(i=0;i<4;i++)
    {
       PORTC=g_aLed[i];
 2cc:	fa 01       	movw	r30, r20
 2ce:	e4 58       	subi	r30, 0x84	; 132
 2d0:	ff 4f       	sbci	r31, 0xFF	; 255
 2d2:	80 81       	ld	r24, Z
 2d4:	85 bb       	out	0x15, r24	; 21
	   PORTA&=~(1<<(i+4));
 2d6:	2b b3       	in	r18, 0x1b	; 27
 2d8:	c8 01       	movw	r24, r16
 2da:	04 2e       	mov	r0, r20
 2dc:	02 c0       	rjmp	.+4      	; 0x2e2 <main+0x42>
 2de:	88 0f       	add	r24, r24
 2e0:	99 1f       	adc	r25, r25
 2e2:	0a 94       	dec	r0
 2e4:	e2 f7       	brpl	.-8      	; 0x2de <main+0x3e>
 2e6:	80 95       	com	r24
 2e8:	82 23       	and	r24, r18
 2ea:	8b bb       	out	0x1b, r24	; 27
 2ec:	ce 01       	movw	r24, r28
 2ee:	01 97       	sbiw	r24, 0x01	; 1
 2f0:	f1 f7       	brne	.-4      	; 0x2ee <main+0x4e>
       _delay_us(1000);
       PORTA=0xf0;
 2f2:	fb ba       	out	0x1b, r15	; 27
 2f4:	4f 5f       	subi	r20, 0xFF	; 255
 2f6:	5f 4f       	sbci	r21, 0xFF	; 255
}

int Led_disp(void)
{
    uchar i;
    for(i=0;i<4;i++)
 2f8:	48 30       	cpi	r20, 0x08	; 8
 2fa:	51 05       	cpc	r21, r1
 2fc:	39 f7       	brne	.-50     	; 0x2cc <main+0x2c>
 2fe:	e2 cf       	rjmp	.-60     	; 0x2c4 <main+0x24>

00000300 <__udivmodhi4>:
 300:	aa 1b       	sub	r26, r26
 302:	bb 1b       	sub	r27, r27
 304:	51 e1       	ldi	r21, 0x11	; 17
 306:	07 c0       	rjmp	.+14     	; 0x316 <__udivmodhi4_ep>

00000308 <__udivmodhi4_loop>:
 308:	aa 1f       	adc	r26, r26
 30a:	bb 1f       	adc	r27, r27
 30c:	a6 17       	cp	r26, r22
 30e:	b7 07       	cpc	r27, r23
 310:	10 f0       	brcs	.+4      	; 0x316 <__udivmodhi4_ep>
 312:	a6 1b       	sub	r26, r22
 314:	b7 0b       	sbc	r27, r23

00000316 <__udivmodhi4_ep>:
 316:	88 1f       	adc	r24, r24
 318:	99 1f       	adc	r25, r25
 31a:	5a 95       	dec	r21
 31c:	a9 f7       	brne	.-22     	; 0x308 <__udivmodhi4_loop>
 31e:	80 95       	com	r24
 320:	90 95       	com	r25
 322:	bc 01       	movw	r22, r24
 324:	cd 01       	movw	r24, r26
 326:	08 95       	ret

00000328 <_exit>:
 328:	f8 94       	cli

0000032a <__stop_program>:
 32a:	ff cf       	rjmp	.-2      	; 0x32a <__stop_program>

⌨️ 快捷键说明

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