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

📄 main.lis

📁 该程序通过调试
💻 LIS
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _serial_num::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
 0002                   .dbsym e serial_num _serial_num i
 0002           _PAN_id::
 0002                   .blkb 2
                        .area idata
 0002 2345              .byte 35,'E
                        .area data(ram, con, rel)
 0004                   .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
 0004                   .dbsym e PAN_id _PAN_id A[2:2]c
 0004           _short_addr::
 0004                   .blkb 2
                        .area idata
 0004 1573              .byte 21,'s
                        .area data(ram, con, rel)
 0006                   .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
 0006                   .dbsym e short_addr _short_addr A[2:2]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
 0000                   .dbfunc e main _main fV
 0000           ;             dL -> y+5
 0000           ;             dH -> y+4
 0000           ;              i -> R20
                        .even
 0000           _main::
 0000 2697              sbiw R28,6
 0002                   .dbline -1
 0002                   .dbline 23
 0002           ; /***************************************
 0002           ; *2008,浙江工业大学信息与控制研究所
 0002           ; *All rights reserved
 0002           ; *
 0002           ; *文件名称:main.c
 0002           ; *摘    要:无线接收发送测试程序(接收端)
 0002           ; *
 0002           ; *当前版本:1.0
 0002           ; *作    者:董齐芬
 0002           ; *完成日期:2008.8.20
 0002           ; ****************************************/
 0002           ; 
 0002           ; #include "cc2420.h"
 0002           ; #include "spi.h"
 0002           ; 
 0002           ; unsigned char Data_RXFIFO[TX_length];    //从RXFIFO中读入的数据,包括帧长度,MAC头,MAC有效负载等部分
 0002           ; unsigned int serial_num=0;         //数据序号
 0002           ; unsigned char numbers[2048];        //存放接收到的数据序列号
 0002           ; unsigned char PAN_id[2]={0x23,0x45};  //
 0002           ; unsigned char short_addr[2]={0x15,0x73};
 0002           ; 
 0002           ; void main(void)
 0002           ; {
 0002                   .dbline 27
 0002           ;   unsigned char i;
 0002           ;   unsigned char dH[1],dL[1];
 0002           ;  
 0002           ;   init_spi();
 0002 0E940000          xcall _init_spi
 0006                   .dbline 29
 0006           ;   
 0006           ;   PORTB |=(1<<CSn);                //CSN引脚置位,停止SPI操作,
 0006 C09A              sbi 0x18,0
 0008                   .dbline 30
 0008           ;   PORTB |=1<<SCK;                    // Spi clock line init high
 0008 C19A              sbi 0x18,1
 000A                   .dbline 31
 000A           ;   PORTE |=1<<RST;                     //注意该引脚低电平时,cc2420处于复位状态
 000A 1A9A              sbi 0x3,2
 000C                   .dbline 33
 000C           ;   
 000C           ;   Set_Configure();     //初始化设置配置字
 000C 0E940000          xcall _Set_Configure
 0010                   .dbline 34
 0010           ;   PwDown_Idle();       //从掉电模式转换到空闲模式 
 0010 0E940000          xcall _PwDown_Idle
 0014                   .dbline 36
 0014           ;   
 0014           ;   Write_RAM(0x6a,0x02,2,short_addr);
 0014 80E0              ldi R24,<_short_addr
 0016 90E0              ldi R25,>_short_addr
 0018 9B83              std y+3,R25
 001A 8A83              std y+2,R24
 001C 82E0              ldi R24,2
 001E 8883              std y+0,R24
 0020 22E0              ldi R18,2
 0022 0AE6              ldi R16,106
 0024 0E940000          xcall _Write_RAM
 0028                   .dbline 37
 0028           ;   Write_RAM(0x68,0x02,2,PAN_id);    //向RAM中写入地址,用于地址识别
 0028 80E0              ldi R24,<_PAN_id
 002A 90E0              ldi R25,>_PAN_id
 002C 9B83              std y+3,R25
 002E 8A83              std y+2,R24
 0030 82E0              ldi R24,2
 0032 8883              std y+0,R24
 0034 22E0              ldi R18,2
 0036 08E6              ldi R16,104
 0038 0E940000          xcall _Write_RAM
 003C                   .dbline 39
 003C           ;   
 003C           ;   Idle_Rx();           //进入接收模式
 003C 0E940000          xcall _Idle_Rx
 0040                   .dbline 41
 0040           ;   
 0040           ;   i=0;
 0040 4427              clr R20
 0042 28C0              xjmp L3
 0044           L2:
 0044                   .dbline 43
 0044           ;   while(1)
 0044           ;   {
 0044                   .dbline 44
 0044           ;     if((PINE&(1<<FIFOP))!=0)     //检测到数据
 0044 0E9B              sbis 0x1,6
 0046 26C0              rjmp L5
 0048                   .dbline 45
 0048           ;       {
 0048                   .dbline 46
 0048           ;         Read_RXFIFO(TX_length,Data_RXFIFO);        //因为设置了自动CRC校验,RXFIFO中包含两字节的RSSI,CRC结果等
 0048 20E0              ldi R18,<_Data_RXFIFO
 004A 30E0              ldi R19,>_Data_RXFIFO
 004C 00E7              ldi R16,112
 004E 0E940000          xcall _Read_RXFIFO
 0052                   .dbline 47
 0052           ;         Write_Command(SFLUSHRX);                   //清除RXFIFO,否则会一直请求微处理器读数据
 0052 08E0              ldi R16,8
 0054 0E940000          xcall _Write_Command
 0058                   .dbline 48
 0058           ;         numbers[serial_num]=Data_RXFIFO[3];
 0058 80E0              ldi R24,<_numbers
 005A 90E0              ldi R25,>_numbers
 005C E0910000          lds R30,_serial_num
 0060 F0910100          lds R31,_serial_num+1
 0064 E80F              add R30,R24
 0066 F91F              adc R31,R25
 0068 20900308          lds R2,_Data_RXFIFO+3
 006C 2082              std z+0,R2
 006E                   .dbline 49
 006E           ;         serial_num++;
 006E 80910000          lds R24,_serial_num
 0072 90910100          lds R25,_serial_num+1
 0076 0196              adiw R24,1
 0078 90930100          sts _serial_num+1,R25
 007C 80930000          sts _serial_num,R24
 0080                   .dbline 50
 0080           ;         if(serial_num==2047)
 0080 8F3F              cpi R24,255
 0082 E7E0              ldi R30,7
 0084 9E07              cpc R25,R30
 0086 31F4              brne L8
 0088                   .dbline 51
 0088           ;         {
 0088                   .dbline 52
 0088           ;           serial_num=0;
 0088 2224              clr R2
 008A 3324              clr R3
 008C 30920100          sts _serial_num+1,R3
 0090 20920000          sts _serial_num,R2
 0094                   .dbline 53
 0094           ;         }
 0094           L8:
 0094                   .dbline 54
 0094           ;       }
 0094           L5:
 0094                   .dbline 55
 0094           L3:
 0094                   .dbline 42
 0094 D7CF              xjmp L2
 0096           X0:
 0096                   .dbline -2
 0096           L1:
 0096 2696              adiw R28,6
 0098                   .dbline 0 ; func end
 0098 0895              ret
 009A                   .dbsym l dL 5 A[1:1]c
 009A                   .dbsym l dH 4 A[1:1]c
 009A                   .dbsym r i 20 c
 009A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
 0000           _numbers::
 0000                   .blkb 2048
 0800                   .dbsym e numbers _numbers A[2048:2048]c
 0800           _Data_RXFIFO::
 0800                   .blkb 112
 0870                   .dbsym e Data_RXFIFO _Data_RXFIFO A[112:112]c

⌨️ 快捷键说明

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