📄 main.lss
字号:
3a6: 80 81 ld r24, Z
3a8: 80 61 ori r24, 0x10 ; 16
3aa: 8c 93 st X, r24
PORTD&=~(1<<PD4);
3ac: a2 e3 ldi r26, 0x32 ; 50
3ae: b0 e0 ldi r27, 0x00 ; 0
3b0: e2 e3 ldi r30, 0x32 ; 50
3b2: f0 e0 ldi r31, 0x00 ; 0
3b4: 80 81 ld r24, Z
3b6: 8f 7e andi r24, 0xEF ; 239
3b8: 8c 93 st X, r24
//PORTB&=~(1<<PB2); //复位ADS1256
//PORTB|=1<<PB2;
ad_write(0,0x02);
3ba: 62 e0 ldi r22, 0x02 ; 2
3bc: 80 e0 ldi r24, 0x00 ; 0
3be: 1c df rcall .-456 ; 0x1f8 <ad_write>
ad_write(1,0x03);
3c0: 63 e0 ldi r22, 0x03 ; 3
3c2: 81 e0 ldi r24, 0x01 ; 1
3c4: 19 df rcall .-462 ; 0x1f8 <ad_write>
ad_write(2,0x00);
3c6: 60 e0 ldi r22, 0x00 ; 0
3c8: 82 e0 ldi r24, 0x02 ; 2
3ca: 16 df rcall .-468 ; 0x1f8 <ad_write>
ad_write(3,0x01);
3cc: 61 e0 ldi r22, 0x01 ; 1
3ce: 83 e0 ldi r24, 0x03 ; 3
3d0: 13 df rcall .-474 ; 0x1f8 <ad_write>
ad_write(4,0x00);
3d2: 60 e0 ldi r22, 0x00 ; 0
3d4: 84 e0 ldi r24, 0x04 ; 4
3d6: 10 df rcall .-480 ; 0x1f8 <ad_write>
ad_write(5,0x00);
3d8: 60 e0 ldi r22, 0x00 ; 0
3da: 85 e0 ldi r24, 0x05 ; 5
3dc: 0d df rcall .-486 ; 0x1f8 <ad_write>
ad_write(6,0x00);
3de: 60 e0 ldi r22, 0x00 ; 0
3e0: 86 e0 ldi r24, 0x06 ; 6
3e2: 0a df rcall .-492 ; 0x1f8 <ad_write>
ad_write(7,0x00);
3e4: 60 e0 ldi r22, 0x00 ; 0
3e6: 87 e0 ldi r24, 0x07 ; 7
3e8: 07 df rcall .-498 ; 0x1f8 <ad_write>
ad_write(8,0xff);
3ea: 6f ef ldi r22, 0xFF ; 255
3ec: 88 e0 ldi r24, 0x08 ; 8
3ee: 04 df rcall .-504 ; 0x1f8 <ad_write>
}
3f0: cf 91 pop r28
3f2: df 91 pop r29
3f4: 08 95 ret
000003f6 <SPI_MasterInit>:
#include "ADS1156.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~配置SPI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void SPI_MasterInit(void) //配置SPI为主机
{
3f6: df 93 push r29
3f8: cf 93 push r28
3fa: cd b7 in r28, 0x3d ; 61
3fc: de b7 in r29, 0x3e ; 62
/* 设置MOSI 和SCK 为输出,其他为输入 */
DDRB|=(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB5);
3fe: a7 e3 ldi r26, 0x37 ; 55
400: b0 e0 ldi r27, 0x00 ; 0
402: e7 e3 ldi r30, 0x37 ; 55
404: f0 e0 ldi r31, 0x00 ; 0
406: 80 81 ld r24, Z
408: 8e 62 ori r24, 0x2E ; 46
40a: 8c 93 st X, r24
DDRB&=~(1<<PB4);
40c: a7 e3 ldi r26, 0x37 ; 55
40e: b0 e0 ldi r27, 0x00 ; 0
410: e7 e3 ldi r30, 0x37 ; 55
412: f0 e0 ldi r31, 0x00 ; 0
414: 80 81 ld r24, Z
416: 8f 7e andi r24, 0xEF ; 239
418: 8c 93 st X, r24
PORTB|=(1<<PB1)|(1<<PB2)|(1<<PB4); //定义SS的使能端
41a: a8 e3 ldi r26, 0x38 ; 56
41c: b0 e0 ldi r27, 0x00 ; 0
41e: e8 e3 ldi r30, 0x38 ; 56
420: f0 e0 ldi r31, 0x00 ; 0
422: 80 81 ld r24, Z
424: 86 61 ori r24, 0x16 ; 22
426: 8c 93 st X, r24
/* 使能SPI 主机模式,设置时钟速率为fck/16 */
SPCR = 0x52; //7e 高位首发,SPI使能,主机模式,SCK空闲保持为低电平,数据在上升沿采样,速率为1:64(FOSC/128)
428: ed e2 ldi r30, 0x2D ; 45
42a: f0 e0 ldi r31, 0x00 ; 0
42c: 82 e5 ldi r24, 0x52 ; 82
42e: 80 83 st Z, r24
//SPSR = 0x01; //使能倍速1:32
}
430: cf 91 pop r28
432: df 91 pop r29
434: 08 95 ret
00000436 <port>:
//--------------------------------------------------------------------------------------------//
void port (void)
{
436: df 93 push r29
438: cf 93 push r28
43a: cd b7 in r28, 0x3d ; 61
43c: de b7 in r29, 0x3e ; 62
DDRD|=(1<<PD2); //485 cs
43e: a1 e3 ldi r26, 0x31 ; 49
440: b0 e0 ldi r27, 0x00 ; 0
442: e1 e3 ldi r30, 0x31 ; 49
444: f0 e0 ldi r31, 0x00 ; 0
446: 80 81 ld r24, Z
448: 84 60 ori r24, 0x04 ; 4
44a: 8c 93 st X, r24
PORTD&=~(1<<PD2);
44c: a2 e3 ldi r26, 0x32 ; 50
44e: b0 e0 ldi r27, 0x00 ; 0
450: e2 e3 ldi r30, 0x32 ; 50
452: f0 e0 ldi r31, 0x00 ; 0
454: 80 81 ld r24, Z
456: 8b 7f andi r24, 0xFB ; 251
458: 8c 93 st X, r24
DDRB|=(1<<PB0); //power 灯
45a: a7 e3 ldi r26, 0x37 ; 55
45c: b0 e0 ldi r27, 0x00 ; 0
45e: e7 e3 ldi r30, 0x37 ; 55
460: f0 e0 ldi r31, 0x00 ; 0
462: 80 81 ld r24, Z
464: 81 60 ori r24, 0x01 ; 1
466: 8c 93 st X, r24
PORTB&=~(1<<PB0);
468: a8 e3 ldi r26, 0x38 ; 56
46a: b0 e0 ldi r27, 0x00 ; 0
46c: e8 e3 ldi r30, 0x38 ; 56
46e: f0 e0 ldi r31, 0x00 ; 0
470: 80 81 ld r24, Z
472: 8e 7f andi r24, 0xFE ; 254
474: 8c 93 st X, r24
DDRD&=~(1<<PD3); //DRDY
476: a1 e3 ldi r26, 0x31 ; 49
478: b0 e0 ldi r27, 0x00 ; 0
47a: e1 e3 ldi r30, 0x31 ; 49
47c: f0 e0 ldi r31, 0x00 ; 0
47e: 80 81 ld r24, Z
480: 87 7f andi r24, 0xF7 ; 247
482: 8c 93 st X, r24
PORTD|=(1<<PD3);
484: a2 e3 ldi r26, 0x32 ; 50
486: b0 e0 ldi r27, 0x00 ; 0
488: e2 e3 ldi r30, 0x32 ; 50
48a: f0 e0 ldi r31, 0x00 ; 0
48c: 80 81 ld r24, Z
48e: 88 60 ori r24, 0x08 ; 8
490: 8c 93 st X, r24
DDRD|=(1<<PD4); //START
492: a1 e3 ldi r26, 0x31 ; 49
494: b0 e0 ldi r27, 0x00 ; 0
496: e1 e3 ldi r30, 0x31 ; 49
498: f0 e0 ldi r31, 0x00 ; 0
49a: 80 81 ld r24, Z
49c: 80 61 ori r24, 0x10 ; 16
49e: 8c 93 st X, r24
PORTD|=(1<<PD4);
4a0: a2 e3 ldi r26, 0x32 ; 50
4a2: b0 e0 ldi r27, 0x00 ; 0
4a4: e2 e3 ldi r30, 0x32 ; 50
4a6: f0 e0 ldi r31, 0x00 ; 0
4a8: 80 81 ld r24, Z
4aa: 80 61 ori r24, 0x10 ; 16
4ac: 8c 93 st X, r24
PORTB&=~(1<<PB2); //复位ADS1256
4ae: a8 e3 ldi r26, 0x38 ; 56
4b0: b0 e0 ldi r27, 0x00 ; 0
4b2: e8 e3 ldi r30, 0x38 ; 56
4b4: f0 e0 ldi r31, 0x00 ; 0
4b6: 80 81 ld r24, Z
4b8: 8b 7f andi r24, 0xFB ; 251
4ba: 8c 93 st X, r24
PORTB|=1<<PB2;
4bc: a8 e3 ldi r26, 0x38 ; 56
4be: b0 e0 ldi r27, 0x00 ; 0
4c0: e8 e3 ldi r30, 0x38 ; 56
4c2: f0 e0 ldi r31, 0x00 ; 0
4c4: 80 81 ld r24, Z
4c6: 84 60 ori r24, 0x04 ; 4
4c8: 8c 93 st X, r24
}
4ca: cf 91 pop r28
4cc: df 91 pop r29
4ce: 08 95 ret
000004d0 <main>:
//--------------------------------------------------------------------------------------------
main(void)
{
4d0: df 93 push r29
4d2: cf 93 push r28
4d4: cd b7 in r28, 0x3d ; 61
4d6: de b7 in r29, 0x3e ; 62
4d8: c1 54 subi r28, 0x41 ; 65
4da: d0 40 sbci r29, 0x00 ; 0
4dc: 0f b6 in r0, 0x3f ; 63
4de: f8 94 cli
4e0: de bf out 0x3e, r29 ; 62
4e2: 0f be out 0x3f, r0 ; 63
4e4: cd bf out 0x3d, r28 ; 61
unsigned long int d=0,p[12],n=0,m=0;
4e6: 1e 86 std Y+14, r1 ; 0x0e
4e8: 1f 86 std Y+15, r1 ; 0x0f
4ea: 18 8a std Y+16, r1 ; 0x10
4ec: 19 8a std Y+17, r1 ; 0x11
4ee: 1a 86 std Y+10, r1 ; 0x0a
4f0: 1b 86 std Y+11, r1 ; 0x0b
4f2: 1c 86 std Y+12, r1 ; 0x0c
4f4: 1d 86 std Y+13, r1 ; 0x0d
4f6: 1e 82 std Y+6, r1 ; 0x06
4f8: 1f 82 std Y+7, r1 ; 0x07
4fa: 18 86 std Y+8, r1 ; 0x08
4fc: 19 86 std Y+9, r1 ; 0x09
unsigned char aa=0,a=0,b=0,c=0,i=0;
4fe: 1d 82 std Y+5, r1 ; 0x05
500: 1c 82 std Y+4, r1 ; 0x04
502: 1b 82 std Y+3, r1 ; 0x03
504: 1a 82 std Y+2, r1 ; 0x02
506: 19 82 std Y+1, r1 ; 0x01
port(); //端口初始化
508: 96 df rcall .-212 ; 0x436 <port>
SPI_MasterInit(); //SPI端口初始化
50a: 75 df rcall .-278 ; 0x3f6 <SPI_MasterInit>
USART_Init(1); //串口初始化
50c: 81 e0 ldi r24, 0x01 ; 1
50e: 90 e0 ldi r25, 0x00 ; 0
510: a6 dd rcall .-1204 ; 0x5e <USART_Init>
ADS1158(); //初始化ADS1158
512: 33 df rcall .-410 ; 0x37a <ADS1158>
sei();
514: 78 94 sei
while(1)
{
aa=sum;
516: 80 91 60 00 lds r24, 0x0060
51a: 8d 83 std Y+5, r24 ; 0x05
if(aa<=8)
51c: 8d 81 ldd r24, Y+5 ; 0x05
51e: 89 30 cpi r24, 0x09 ; 9
520: 78 f5 brcc .+94 ; 0x580 <main+0xb0>
{sum=10;
522: 8a e0 ldi r24, 0x0A ; 10
524: 80 93 60 00 sts 0x0060, r24
d=ads_sum(aa); //发送要读取的通道命令0、1、2、3、4、5、6、7,并近回蹈孟通道的AD转换值。
528: 8d 81 ldd r24, Y+5 ; 0x05
52a: eb de rcall .-554 ; 0x302 <ads_sum>
52c: dc 01 movw r26, r24
52e: cb 01 movw r24, r22
530: 8e 87 std Y+14, r24 ; 0x0e
532: 9f 87 std Y+15, r25 ; 0x0f
534: a8 8b std Y+16, r26 ; 0x10
536: b9 8b std Y+17, r27 ; 0x11
a=d%256;
538: 8e 85 ldd r24, Y+14 ; 0x0e
53a: 8c 83 std Y+4, r24 ; 0x04
d=d>>8;
53c: 8e 85 ldd r24, Y+14 ; 0x0e
53e: 9f 85 ldd r25, Y+15 ; 0x0f
540: a8 89 ldd r26, Y+16 ; 0x10
542: b9 89 ldd r27, Y+17 ; 0x11
544: 89 2f mov r24, r25
546: 9a 2f mov r25, r26
548: ab 2f mov r26, r27
54a: bb 27 eor r27, r27
54c: 8e 87 std Y+14, r24 ; 0x0e
54e: 9f 87 std Y+15, r25 ; 0x0f
550: a8 8b std Y+16, r26 ; 0x10
552: b9 8b std Y+17, r27 ; 0x11
b=d%256;
554: 8e 85 ldd r24, Y+14 ; 0x0e
556: 8b 83 std Y+3, r24 ; 0x03
d=d>>8;
558: 8e 85 ldd r24, Y+14 ; 0x0e
55a: 9f 85 ldd r25, Y+15 ; 0x0f
55c: a8 89 ldd r26, Y+16 ; 0x10
55e: b9 89 ldd r27, Y+17 ; 0x11
560: 89 2f mov r24, r25
562: 9a 2f mov r25, r26
564: ab 2f mov r26, r27
566: bb 27 eor r27, r27
568: 8e 87 std Y+14, r24 ; 0x0e
56a: 9f 87 std Y+15, r25 ; 0x0f
56c: a8 8b std Y+16, r26 ; 0x10
56e: b9 8b std Y+17, r27 ; 0x11
c=d%256;
570: 8e 85 ldd r24, Y+14 ; 0x0e
572: 8a 83 std Y+2, r24 ; 0x02
USART_Transmit(c);
574: 8a 81 ldd r24, Y+2 ; 0x02
576: 8e dd rcall .-1252 ; 0x94 <USART_Transmit>
USART_Transmit(b);
578: 8b 81 ldd r24, Y+3 ; 0x03
57a: 8c dd rcall .-1256 ; 0x94 <USART_Transmit>
USART_Transmit(a);
57c: 8c 81 ldd r24, Y+4 ; 0x04
57e: 8a dd rcall .-1260 ; 0x94 <USART_Transmit>
}
if(aa==9)
580: 8d 81 ldd r24, Y+5 ; 0x05
582: 89 30 cpi r24, 0x09 ; 9
584: 41 f6 brne .-112 ; 0x516 <main+0x46>
{
sum=10;
586: 8a e0 ldi r24, 0x0A ; 10
588: 80 93 60 00 sts 0x0060, r24
USART_Transmit(aa);
58c: 8d 81 ldd r24, Y+5 ; 0x05
58e: 82 dd rcall .-1276 ; 0x94 <USART_Transmit>
ADS1158(); //初始化ADS1256
590: f4 de rcall .-536 ; 0x37a <ADS1158>
592: c1 cf rjmp .-126 ; 0x516 <main+0x46>
00000594 <_exit>:
594: f8 94 cli
00000596 <__stop_program>:
596: ff cf rjmp .-2 ; 0x596 <__stop_program>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -