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

📄 main.lss

📁 16位的AD芯片的ADS1158的驱动程序。
💻 LSS
📖 第 1 页 / 共 3 页
字号:
 ad_write(3,0x01);     
 3d6:	61 e0       	ldi	r22, 0x01	; 1
 3d8:	83 e0       	ldi	r24, 0x03	; 3
 3da:	0e df       	rcall	.-484    	; 0x1f8 <ad_write>
 ad_write(4,0x00);     
 3dc:	60 e0       	ldi	r22, 0x00	; 0
 3de:	84 e0       	ldi	r24, 0x04	; 4
 3e0:	0b df       	rcall	.-490    	; 0x1f8 <ad_write>
 ad_write(5,0x00);
 3e2:	60 e0       	ldi	r22, 0x00	; 0
 3e4:	85 e0       	ldi	r24, 0x05	; 5
 3e6:	08 df       	rcall	.-496    	; 0x1f8 <ad_write>
 ad_write(6,0x00); 
 3e8:	60 e0       	ldi	r22, 0x00	; 0
 3ea:	86 e0       	ldi	r24, 0x06	; 6
 3ec:	05 df       	rcall	.-502    	; 0x1f8 <ad_write>
 ad_write(7,0x00);
 3ee:	60 e0       	ldi	r22, 0x00	; 0
 3f0:	87 e0       	ldi	r24, 0x07	; 7
 3f2:	02 df       	rcall	.-508    	; 0x1f8 <ad_write>
 ad_write(8,0xff);
 3f4:	6f ef       	ldi	r22, 0xFF	; 255
 3f6:	88 e0       	ldi	r24, 0x08	; 8
 3f8:	ff de       	rcall	.-514    	; 0x1f8 <ad_write>
}
 3fa:	cf 91       	pop	r28
 3fc:	df 91       	pop	r29
 3fe:	08 95       	ret

00000400 <SPI_MasterInit>:
#include "ADS1156.h"

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~配置SPI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void SPI_MasterInit(void)     //配置SPI为主机
{
 400:	df 93       	push	r29
 402:	cf 93       	push	r28
 404:	cd b7       	in	r28, 0x3d	; 61
 406:	de b7       	in	r29, 0x3e	; 62
/* 设置MOSI 和SCK 为输出,其他为输入 */
DDRB|=(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB5);
 408:	a7 e3       	ldi	r26, 0x37	; 55
 40a:	b0 e0       	ldi	r27, 0x00	; 0
 40c:	e7 e3       	ldi	r30, 0x37	; 55
 40e:	f0 e0       	ldi	r31, 0x00	; 0
 410:	80 81       	ld	r24, Z
 412:	8e 62       	ori	r24, 0x2E	; 46
 414:	8c 93       	st	X, r24
DDRB&=~(1<<PB4);
 416:	a7 e3       	ldi	r26, 0x37	; 55
 418:	b0 e0       	ldi	r27, 0x00	; 0
 41a:	e7 e3       	ldi	r30, 0x37	; 55
 41c:	f0 e0       	ldi	r31, 0x00	; 0
 41e:	80 81       	ld	r24, Z
 420:	8f 7e       	andi	r24, 0xEF	; 239
 422:	8c 93       	st	X, r24
PORTB|=(1<<PB1)|(1<<PB2)|(1<<PB4); //定义SS的使能端
 424:	a8 e3       	ldi	r26, 0x38	; 56
 426:	b0 e0       	ldi	r27, 0x00	; 0
 428:	e8 e3       	ldi	r30, 0x38	; 56
 42a:	f0 e0       	ldi	r31, 0x00	; 0
 42c:	80 81       	ld	r24, Z
 42e:	86 61       	ori	r24, 0x16	; 22
 430:	8c 93       	st	X, r24
/* 使能SPI 主机模式,设置时钟速率为fck/16 */
SPCR = 0x52; //7e 高位首发,SPI使能,主机模式,SCK空闲保持为低电平,数据在上升沿采样,速率为1:64(FOSC/128) 
 432:	ed e2       	ldi	r30, 0x2D	; 45
 434:	f0 e0       	ldi	r31, 0x00	; 0
 436:	82 e5       	ldi	r24, 0x52	; 82
 438:	80 83       	st	Z, r24
//SPSR = 0x01; //使能倍速1:32
}
 43a:	cf 91       	pop	r28
 43c:	df 91       	pop	r29
 43e:	08 95       	ret

00000440 <port>:

//--------------------------------------------------------------------------------------------//

void  port (void)
{
 440:	df 93       	push	r29
 442:	cf 93       	push	r28
 444:	cd b7       	in	r28, 0x3d	; 61
 446:	de b7       	in	r29, 0x3e	; 62
  DDRD|=(1<<PD2);    //485  cs
 448:	a1 e3       	ldi	r26, 0x31	; 49
 44a:	b0 e0       	ldi	r27, 0x00	; 0
 44c:	e1 e3       	ldi	r30, 0x31	; 49
 44e:	f0 e0       	ldi	r31, 0x00	; 0
 450:	80 81       	ld	r24, Z
 452:	84 60       	ori	r24, 0x04	; 4
 454:	8c 93       	st	X, r24
  PORTD&=~(1<<PD2);  
 456:	a2 e3       	ldi	r26, 0x32	; 50
 458:	b0 e0       	ldi	r27, 0x00	; 0
 45a:	e2 e3       	ldi	r30, 0x32	; 50
 45c:	f0 e0       	ldi	r31, 0x00	; 0
 45e:	80 81       	ld	r24, Z
 460:	8b 7f       	andi	r24, 0xFB	; 251
 462:	8c 93       	st	X, r24
  DDRB|=(1<<PB0);    //power 灯
 464:	a7 e3       	ldi	r26, 0x37	; 55
 466:	b0 e0       	ldi	r27, 0x00	; 0
 468:	e7 e3       	ldi	r30, 0x37	; 55
 46a:	f0 e0       	ldi	r31, 0x00	; 0
 46c:	80 81       	ld	r24, Z
 46e:	81 60       	ori	r24, 0x01	; 1
 470:	8c 93       	st	X, r24
  PORTB&=~(1<<PB0);  
 472:	a8 e3       	ldi	r26, 0x38	; 56
 474:	b0 e0       	ldi	r27, 0x00	; 0
 476:	e8 e3       	ldi	r30, 0x38	; 56
 478:	f0 e0       	ldi	r31, 0x00	; 0
 47a:	80 81       	ld	r24, Z
 47c:	8e 7f       	andi	r24, 0xFE	; 254
 47e:	8c 93       	st	X, r24
  DDRD&=~(1<<PD3);   //DRDY
 480:	a1 e3       	ldi	r26, 0x31	; 49
 482:	b0 e0       	ldi	r27, 0x00	; 0
 484:	e1 e3       	ldi	r30, 0x31	; 49
 486:	f0 e0       	ldi	r31, 0x00	; 0
 488:	80 81       	ld	r24, Z
 48a:	87 7f       	andi	r24, 0xF7	; 247
 48c:	8c 93       	st	X, r24
  PORTD|=(1<<PD3);  
 48e:	a2 e3       	ldi	r26, 0x32	; 50
 490:	b0 e0       	ldi	r27, 0x00	; 0
 492:	e2 e3       	ldi	r30, 0x32	; 50
 494:	f0 e0       	ldi	r31, 0x00	; 0
 496:	80 81       	ld	r24, Z
 498:	88 60       	ori	r24, 0x08	; 8
 49a:	8c 93       	st	X, r24
  DDRD|=(1<<PD4);    //START
 49c:	a1 e3       	ldi	r26, 0x31	; 49
 49e:	b0 e0       	ldi	r27, 0x00	; 0
 4a0:	e1 e3       	ldi	r30, 0x31	; 49
 4a2:	f0 e0       	ldi	r31, 0x00	; 0
 4a4:	80 81       	ld	r24, Z
 4a6:	80 61       	ori	r24, 0x10	; 16
 4a8:	8c 93       	st	X, r24
  PORTD|=(1<<PD4);  
 4aa:	a2 e3       	ldi	r26, 0x32	; 50
 4ac:	b0 e0       	ldi	r27, 0x00	; 0
 4ae:	e2 e3       	ldi	r30, 0x32	; 50
 4b0:	f0 e0       	ldi	r31, 0x00	; 0
 4b2:	80 81       	ld	r24, Z
 4b4:	80 61       	ori	r24, 0x10	; 16
 4b6:	8c 93       	st	X, r24
  PORTB&=~(1<<PB2);     //复位ADS1256
 4b8:	a8 e3       	ldi	r26, 0x38	; 56
 4ba:	b0 e0       	ldi	r27, 0x00	; 0
 4bc:	e8 e3       	ldi	r30, 0x38	; 56
 4be:	f0 e0       	ldi	r31, 0x00	; 0
 4c0:	80 81       	ld	r24, Z
 4c2:	8b 7f       	andi	r24, 0xFB	; 251
 4c4:	8c 93       	st	X, r24
  PORTB|=1<<PB2;
 4c6:	a8 e3       	ldi	r26, 0x38	; 56
 4c8:	b0 e0       	ldi	r27, 0x00	; 0
 4ca:	e8 e3       	ldi	r30, 0x38	; 56
 4cc:	f0 e0       	ldi	r31, 0x00	; 0
 4ce:	80 81       	ld	r24, Z
 4d0:	84 60       	ori	r24, 0x04	; 4
 4d2:	8c 93       	st	X, r24
}
 4d4:	cf 91       	pop	r28
 4d6:	df 91       	pop	r29
 4d8:	08 95       	ret

000004da <main>:



//--------------------------------------------------------------------------------------------
 main(void) 
{ 
 4da:	df 93       	push	r29
 4dc:	cf 93       	push	r28
 4de:	cd b7       	in	r28, 0x3d	; 61
 4e0:	de b7       	in	r29, 0x3e	; 62
 4e2:	c1 54       	subi	r28, 0x41	; 65
 4e4:	d0 40       	sbci	r29, 0x00	; 0
 4e6:	0f b6       	in	r0, 0x3f	; 63
 4e8:	f8 94       	cli
 4ea:	de bf       	out	0x3e, r29	; 62
 4ec:	0f be       	out	0x3f, r0	; 63
 4ee:	cd bf       	out	0x3d, r28	; 61
  unsigned long int d=0,p[12],n=0,m=0;
 4f0:	1e 86       	std	Y+14, r1	; 0x0e
 4f2:	1f 86       	std	Y+15, r1	; 0x0f
 4f4:	18 8a       	std	Y+16, r1	; 0x10
 4f6:	19 8a       	std	Y+17, r1	; 0x11
 4f8:	1a 86       	std	Y+10, r1	; 0x0a
 4fa:	1b 86       	std	Y+11, r1	; 0x0b
 4fc:	1c 86       	std	Y+12, r1	; 0x0c
 4fe:	1d 86       	std	Y+13, r1	; 0x0d
 500:	1e 82       	std	Y+6, r1	; 0x06
 502:	1f 82       	std	Y+7, r1	; 0x07
 504:	18 86       	std	Y+8, r1	; 0x08
 506:	19 86       	std	Y+9, r1	; 0x09
  unsigned char aa=0,a=0,b=0,c=0,i=0;
 508:	1d 82       	std	Y+5, r1	; 0x05
 50a:	1c 82       	std	Y+4, r1	; 0x04
 50c:	1b 82       	std	Y+3, r1	; 0x03
 50e:	1a 82       	std	Y+2, r1	; 0x02
 510:	19 82       	std	Y+1, r1	; 0x01
  port();     //端口初始化
 512:	96 df       	rcall	.-212    	; 0x440 <port>
  SPI_MasterInit();  //SPI端口初始化 
 514:	75 df       	rcall	.-278    	; 0x400 <SPI_MasterInit>
  USART_Init(1);     //串口初始化
 516:	81 e0       	ldi	r24, 0x01	; 1
 518:	90 e0       	ldi	r25, 0x00	; 0
 51a:	a1 dd       	rcall	.-1214   	; 0x5e <USART_Init>
  ADS1158();         //初始化ADS1158
 51c:	25 df       	rcall	.-438    	; 0x368 <ADS1158>
  sei();
 51e:	78 94       	sei
   
  while(1) 
  {
    aa=sum;
 520:	80 91 60 00 	lds	r24, 0x0060
 524:	8d 83       	std	Y+5, r24	; 0x05
	if(aa==1)
 526:	8d 81       	ldd	r24, Y+5	; 0x05
 528:	81 30       	cpi	r24, 0x01	; 1
 52a:	39 f5       	brne	.+78     	; 0x57a <main+0xa0>
	  {sum=0;
 52c:	10 92 60 00 	sts	0x0060, r1
	   d=ad_read();
 530:	84 de       	rcall	.-760    	; 0x23a <ad_read>
 532:	dc 01       	movw	r26, r24
 534:	cb 01       	movw	r24, r22
 536:	8e 87       	std	Y+14, r24	; 0x0e
 538:	9f 87       	std	Y+15, r25	; 0x0f
 53a:	a8 8b       	std	Y+16, r26	; 0x10
 53c:	b9 8b       	std	Y+17, r27	; 0x11
	   a=d%256;
 53e:	8e 85       	ldd	r24, Y+14	; 0x0e
 540:	8c 83       	std	Y+4, r24	; 0x04
	   d=d>>8;
 542:	8e 85       	ldd	r24, Y+14	; 0x0e
 544:	9f 85       	ldd	r25, Y+15	; 0x0f
 546:	a8 89       	ldd	r26, Y+16	; 0x10
 548:	b9 89       	ldd	r27, Y+17	; 0x11
 54a:	89 2f       	mov	r24, r25
 54c:	9a 2f       	mov	r25, r26
 54e:	ab 2f       	mov	r26, r27
 550:	bb 27       	eor	r27, r27
 552:	8e 87       	std	Y+14, r24	; 0x0e
 554:	9f 87       	std	Y+15, r25	; 0x0f
 556:	a8 8b       	std	Y+16, r26	; 0x10
 558:	b9 8b       	std	Y+17, r27	; 0x11
	   b=d%256;
 55a:	8e 85       	ldd	r24, Y+14	; 0x0e
 55c:	8b 83       	std	Y+3, r24	; 0x03
	   d=d>>8;
 55e:	8e 85       	ldd	r24, Y+14	; 0x0e
 560:	9f 85       	ldd	r25, Y+15	; 0x0f
 562:	a8 89       	ldd	r26, Y+16	; 0x10
 564:	b9 89       	ldd	r27, Y+17	; 0x11
 566:	89 2f       	mov	r24, r25
 568:	9a 2f       	mov	r25, r26
 56a:	ab 2f       	mov	r26, r27
 56c:	bb 27       	eor	r27, r27
 56e:	8e 87       	std	Y+14, r24	; 0x0e
 570:	9f 87       	std	Y+15, r25	; 0x0f
 572:	a8 8b       	std	Y+16, r26	; 0x10
 574:	b9 8b       	std	Y+17, r27	; 0x11
	   c=d%256;
 576:	8e 85       	ldd	r24, Y+14	; 0x0e
 578:	8a 83       	std	Y+2, r24	; 0x02
	   //USART_Transmit(b);
	   //USART_Transmit(a);
	   
	  }
	  
	 if(aa==2)
 57a:	8d 81       	ldd	r24, Y+5	; 0x05
 57c:	82 30       	cpi	r24, 0x02	; 2
 57e:	71 f4       	brne	.+28     	; 0x59c <main+0xc2>
	  {
	   PORTB&=~(1<<PB2);     //复位ADS1256
 580:	a8 e3       	ldi	r26, 0x38	; 56
 582:	b0 e0       	ldi	r27, 0x00	; 0
 584:	e8 e3       	ldi	r30, 0x38	; 56
 586:	f0 e0       	ldi	r31, 0x00	; 0
 588:	80 81       	ld	r24, Z
 58a:	8b 7f       	andi	r24, 0xFB	; 251
 58c:	8c 93       	st	X, r24
       PORTB|=1<<PB2;
 58e:	a8 e3       	ldi	r26, 0x38	; 56
 590:	b0 e0       	ldi	r27, 0x00	; 0
 592:	e8 e3       	ldi	r30, 0x38	; 56
 594:	f0 e0       	ldi	r31, 0x00	; 0
 596:	80 81       	ld	r24, Z
 598:	84 60       	ori	r24, 0x04	; 4
 59a:	8c 93       	st	X, r24
	  }
	  
	  
	 if(aa==3)
 59c:	8d 81       	ldd	r24, Y+5	; 0x05
 59e:	83 30       	cpi	r24, 0x03	; 3
 5a0:	51 f4       	brne	.+20     	; 0x5b6 <main+0xdc>
	  {USART_Transmit(aa);
 5a2:	8d 81       	ldd	r24, Y+5	; 0x05
 5a4:	77 dd       	rcall	.-1298   	; 0x94 <USART_Transmit>
	   sum=0;
 5a6:	10 92 60 00 	sts	0x0060, r1
	   ad_write(7,0);
 5aa:	60 e0       	ldi	r22, 0x00	; 0
 5ac:	87 e0       	ldi	r24, 0x07	; 7
 5ae:	24 de       	rcall	.-952    	; 0x1f8 <ad_write>
	   ad_write(8,0xff);
 5b0:	6f ef       	ldi	r22, 0xFF	; 255
 5b2:	88 e0       	ldi	r24, 0x08	; 8
 5b4:	21 de       	rcall	.-958    	; 0x1f8 <ad_write>
	  }
	  
	 if(aa==4)
 5b6:	8d 81       	ldd	r24, Y+5	; 0x05
 5b8:	84 30       	cpi	r24, 0x04	; 4
 5ba:	09 f0       	breq	.+2      	; 0x5be <main+0xe4>
 5bc:	b1 cf       	rjmp	.-158    	; 0x520 <main+0x46>
	  {USART_Transmit(aa);
 5be:	8d 81       	ldd	r24, Y+5	; 0x05
 5c0:	69 dd       	rcall	.-1326   	; 0x94 <USART_Transmit>
	   sum=0;
 5c2:	10 92 60 00 	sts	0x0060, r1
	   ad_write(7,0);
 5c6:	60 e0       	ldi	r22, 0x00	; 0
 5c8:	87 e0       	ldi	r24, 0x07	; 7
 5ca:	16 de       	rcall	.-980    	; 0x1f8 <ad_write>
	   ad_write(8,0x0f);
 5cc:	6f e0       	ldi	r22, 0x0F	; 15
 5ce:	88 e0       	ldi	r24, 0x08	; 8
 5d0:	13 de       	rcall	.-986    	; 0x1f8 <ad_write>
 5d2:	a6 cf       	rjmp	.-180    	; 0x520 <main+0x46>

000005d4 <_exit>:
 5d4:	f8 94       	cli

000005d6 <__stop_program>:
 5d6:	ff cf       	rjmp	.-2      	; 0x5d6 <__stop_program>

⌨️ 快捷键说明

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