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

📄 nrf905_temperature.lis

📁 ADC采集温度数据通过nrf905发送出去
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module nrf905_temperature.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
                        .area data(ram, con, rel)
 0000                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 0000           _StepCount::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 0001                   .dbsym e StepCount _StepCount c
 0001           _num::
 0001                   .blkb 1
                        .area idata
 0001 01                .byte 1
                        .area data(ram, con, rel)
 0002                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 0002                   .dbsym e num _num c
 0002           _LPCData:
 0002                   .blkb 1
                        .area idata
 0002 FF                .byte 255
                        .area data(ram, con, rel)
 0003                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 0003                   .dbsym s LPCData _LPCData c
 0003           _SecondCount::
 0003                   .blkb 2
                        .area idata
 0003 0000              .word 0
                        .area data(ram, con, rel)
 0005                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 0005                   .dbsym e SecondCount _SecondCount i
 0005           _Count::
 0005                   .blkb 2
                        .area idata
 0005 0000              .word 0
                        .area data(ram, con, rel)
 0007                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 0007                   .dbsym e Count _Count i
                        .area text(rom, con, rel)
 0000                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 0000                   .dbfunc e EEPROM_read _EEPROM_read fc
 0000           ;      uiAddress -> R16,R17
                        .even
 0000           _EEPROM_read::
 0000                   .dbline -1
 0000                   .dbline 223
 0000           ; 
 0000           ; /***********************************************************************************
 0000           ; Project:          uRF905 demo program (V2.1)
 0000           ; Filename:         uRF905_Sample_Code.c
 0000           ; Prozessor:        Mega8 family
 0000           ; Compiler:         ICCAVR Version 6.14
 0000           ; Autor:            YUAN
 0000           ; Copyrigth:        (c) Sensirion AG
 0000           ; ***********************************************************************************/
 0000           ; 
 0000           ; #include<iom8v.h>
 0000           ; #include <math.h>
 0000           ; #include<macros.h>
 0000           ; #include<eeprom.h>
 0000           ; #include<string.h>
 0000           ; #include<stdio.h>
 0000           ; 
 0000           ; #define CH_NO_FREQ_422_4MHz  0x000                     //工作频率422.4MHz(433MHz频段最低频率)
 0000           ; #define CH_NO_FREQ_422_5MHz  0x001                     //工作频率422.5MHz
 0000           ; #define CH_NO_FREQ_425_0MHz  0x01a                     //工作频率425.0MHz
 0000           ; #define CH_NO_FREQ_427_5MHz  0x033                     //工作频率427.5MHz
 0000           ; 
 0000           ; #define CH_NO_FREQ_430_0MHz  0x04c                     //工作频率430.0MHz
 0000           ; #define CH_NO_FREQ_433_0MHz  0x06a                     //工作频率433.0MHz(433MHz频段基准频率)
 0000           ; #define CH_NO_FREQ_433_1MHz  0x06b                     //工作频率433.1MHz
 0000           ; #define CH_NO_FREQ_433_2MHz  0x06c                     //工作频率433.2MHz
 0000           ; #define CH_NO_FREQ_434_7MHz  0x07b                     //工作频率434.7MHz
 0000           ; #define CH_NO_FREQ_473_5MHz  0x1ff                     //工作频率473.5MHz(433MHz频段最高频率)
 0000           ; 
 0000           ; #define CH_NO_FREQ_844_8MHz  0x000                     //工作频率844.8MHz(868MHz频段最低频率)
 0000           ; 
 0000           ; #define CH_NO_FREQ_862_0MHz  0x056                     //工作频率862.0MHz
 0000           ; #define CH_NO_FREQ_868_0MHz  0x074                     //工作频率868.0MHz(868MHz频段基准频率)
 0000           ; #define CH_NO_FREQ_868_2MHz  0x075                     //工作频率868.2MHz
 0000           ; #define CH_NO_FREQ_868_4MHz  0x076                     //工作频率868.4MHz
 0000           ; #define CH_NO_FREQ_869_8MHz  0x07d                     //工作频率869.8MHz
 0000           ; #define CH_NO_FREQ_895_8MHz  0x0ff                     //工作频率895.8MHz
 0000           ; #define CH_NO_FREQ_896_0MHz  0x100                     //工作频率896.0MHz
 0000           ; #define CH_NO_FREQ_900_0MHz  0x114                     //工作频率900.0MHz
 0000           ; #define CH_NO_FREQ_902_2MHz  0x11f                     //工作频率902.2MHz
 0000           ; #define CH_NO_FREQ_902_4MHz  0x120                     //工作频率902.4MHz
 0000           ; #define CH_NO_FREQ_915_0MHz  0x15f                     //工作频率915.0MHz(915MHz频段基准频率)
 0000           ; #define CH_NO_FREQ_927_8MHz  0x19f                     //工作频率927.8MHz
 0000           ; 
 0000           ; #define CH_NO_FREQ_947_0MHz  0x1ff                     //工作频率947.0MHz(915MHz频段最高频率)
 0000           ; 
 0000           ; #define CH_NO_FREQ           CH_NO_FREQ_430_0MHz       //工作频率433.0MHz
 0000           ; //#define CH_NO_FREQ           CH_NO_FREQ_915_0MHz       //工作频率915.0MHz
 0000           ; 
 0000           ; 
 0000           ; #define CH_NO_BYTE           CH_NO_FREQ & 0xff         //工作频率低8位       Byte0       01101100
 0000           ; 
 0000           ; #define AUTO_RETRAN          0x20                      //重发数据包          Byte1.5     0
 0000           ; #define RX_RED_PWR           0x10                      //接收低功耗模式      Byte1.4     0
 0000           ; #define PA_PWR__10dBm        0x00                      //输出功率-10dBm      Byte1.3~2   00
 0000           ; #define PA_PWR_2dBm          0x04                      //输出功率+2dBm       Byte1.3~2
 0000           ; #define PA_PWR_6dBm          0x08                      //输出功率+6dBm       Byte1.3~2
 0000           ; #define PA_PWR_10dBm         0x0c                      //输出功率+10dBm      Byte1.3~2
 0000           ; #define HFREQ_PLL_433MHz     0x00                      //工作在433MHz频段    Byte1.1     0
 0000           ; #define HFREQ_PLL_868MHz     0x02                      //工作在868MHz频段    Byte1.1
 0000           ; #define HFREQ_PLL_915MHz     0x02                      //工作在915MHz频段    Byte1.1
 0000           ; #define CH_NO_BIT8           CH_NO_FREQ >> 8           //工作频率第9位       Byte1.0     0
 0000           ; 
 0000           ; #define       ADDR_1                          'G'
 0000           ; #define       ADDR_2                          'W'
 0000           ; #define       ADDR_3                          'Z'
 0000           ; #define       ADDR_4                          'D'
 0000           ; 
 0000           ; #define CMD_ASKDATA                                   0x00
 0000           ; #define CMD_RETDATA                                   0x01
 0000           ; #define CMD_DOWNPARA                          0x02
 0000           ; #define CMD_RETPARA                                   0x03
 0000           ; 
 0000           ; #define CMD_SETID                   0X05
 0000           ; #define CMD_SETID_OK                0X06
 0000           ; #define CMD_READID                    0x07
 0000           ; 
 0000           ; typedef unsigned char BOOLEAN;
 0000           ; typedef unsigned char INT8U;
 0000           ; typedef signed char           INT8S;
 0000           ; typedef unsigned int  INT16U;
 0000           ; typedef signed int            INT16S;
 0000           ; typedef unsigned long INT32U;
 0000           ; typedef signed long           INT32S;
 0000           ; 
 0000           ; #define BIT_H(x)      (1<<x)
 0000           ; #define BIT_L(x)      (~(1<<x))
 0000           ; 
 0000           ; #define TX_STATUS     (PORTD |= BIT_H(PD2))
 0000           ; #define RX_STATUS     (PORTD &= BIT_L(PD2))
 0000           ; 
 0000           ; #define       PWR_UP_H        (PORTB |= BIT_H(PB0))
 0000           ; #define       PWR_UP_L        (PORTB &= BIT_L(PB0))
 0000           ; 
 0000           ; #define       CSN_H           (PORTB |= BIT_H(PB2))
 0000           ; #define       CSN_L           (PORTB &= BIT_L(PB2))
 0000           ; 
 0000           ; #define       MOSI_H          (PORTB |= BIT_H(PB3))
 0000           ; #define       MOSI_L          (PORTB &= BIT_L(PB3))
 0000           ; 
 0000           ; #define       MISO_H          (PORTB |= BIT_H(PB4))
 0000           ; #define       MISO_L          (PORTB &= BIT_L(PB4))
 0000           ; 
 0000           ; #define       SCK_H           (PORTB |= BIT_H(PB5))
 0000           ; #define       SCK_L           (PORTB &= BIT_L(PB5))
 0000           ; 
 0000           ; #define       CD                      (PIND & BIT_H(PD2))
 0000           ; #define       DR                      (PIND & BIT_H(PD3))
 0000           ; #define       AM                      (PIND & BIT_H(PD4))
 0000           ; 
 0000           ; #define       TX_EN_H         (PORTD |= BIT_H(PD5))
 0000           ; #define       TX_EN_L         (PORTD &= BIT_L(PD5))
 0000           ; 
 0000           ; #define       TRX_CE_H        (PORTD |= BIT_H(PD6))
 0000           ; #define       TRX_CE_L        (PORTD &= BIT_L(PD6))
 0000           ; 
 0000           ; #define       LED_H           (PORTD |= BIT_H(PD7))
 0000           ; #define       LED_L           (PORTD &= BIT_L(PD7))
 0000           ; 
 0000           ; #define noACK 0
 0000           ; #define ACK   1
 0000           ; 
 0000           ; #define fosc          7372800
 0000           ; #define baud          115200
 0000           ; #define AD_NUM                30
 0000           ; 
 0000           ; #define MS_COUNT      fosc/1000/17            //延时计数
 0000           ; #define SR_NOP()      asm("nop")                      //空指令
 0000           ; 
 0000           ; #define ID_L_ADDR                     0x1fe                           
 0000           ; #define ID_H_ADDR             0x1fd   
 0000           ; 
 0000           ; #define LIMIT_START_ARRD    0x1c0
 0000           ; 
 0000           ; #define  num_ADDR   0x1b0
 0000           ; 
 0000           ; #define RXBUF_LEN     32
 0000           ; #define RXBUF_LEN1    RXBUF_LEN-1
 0000           ; 
 0000           ; #define SPI_BUF_LEN           16
 0000           ; #define SPI_BUF_LEN1  SPI_BUF_LEN-1
 0000           ; 
 0000           ; #define       BYTE    unsigned char
 0000           ; #define       WORD    unsigned int
 0000           ; 
 0000           ; static        WORD    adc_val;                //AD结果
 0000           ; 
 0000           ; WORD  adc_mux;                //AD通道
 0000           ; 
 0000           ; 
 0000           ; static        WORD    adc_mul;                //AD放大倍数,4--1倍,3-10倍,2--100倍,1--1000倍,0--10000倍
 0000           ; static        WORD    adc_num;
 0000           ; static        WORD    adc_num1;
 0000           ; static        WORD    adc_count;
 0000           ; 
 0000           ; BYTE  TxFlag[6];
 0000           ; 
 0000           ; BYTE  Mode;                                   //      运行模式        0 -- 正常,1 -- 测试
 0000           ; 
 0000           ; BYTE  SPI_Received;
 0000           ; BYTE  Register[10];
 0000           ; 
 0000           ; BYTE  StepCount=0;
 0000           ; BYTE    num = 1;
 0000           ; 
 0000           ; BYTE    data[16];
 0000           ; BYTE    startnum;
 0000           ; BYTE    no;
 0000           ; WORD    limit[8][3];
 0000           ; 
 0000           ; BYTE   alarmno;
 0000           ; 
 0000           ; static INT8U  rxbuf[RXBUF_LEN],LPCData=0xff;
 0000           ; static INT8U  rxpt;
 0000           ; static INT8U  handlept;
 0000           ; 
 0000           ; WORD  Alarm_flag_prev[8];                      
 0000           ; BYTE   alarm_flag[8];
 0000           ; 
 0000           ; 
 0000           ; static BYTE           tx_addr[4];
 0000           ; static BYTE           tx_buf[RXBUF_LEN];
 0000           ; static BYTE           tx_len;
 0000           ; static BYTE           lastcmd;
 0000           ; 
 0000           ; static INT8U  spi_rxbuf[SPI_BUF_LEN];
 0000           ; static INT8U  spi_rxpt;
 0000           ; static INT8U  spi_handlept;
 0000           ; //static INT8U        spi_txflag;
 0000           ; 
 0000           ; #define                       W_CONFIG                        0x00
 0000           ; #define                       R_CONFIG                        0x10
 0000           ; #define                       W_TX_PAYLOAD            0x20
 0000           ; #define                       R_TX_PAYLOAD            0x21
 0000           ; #define                       W_TX_ADDRESS            0x22
 0000           ; #define                       R_TX_ADDRESS            0x23
 0000           ; #define                       R_RX_PAYLOAD            0x24
 0000           ; #define                       CHANNEL_CONFIG          0x8c
 0000           ; #define                       SPI_CMD_NUM                     8
 0000           ; 
 0000           ; static        INT8U   ID_L;
 0000           ; static  INT8U   ID_H;
 0000           ;       
 0000           ; WORD  TCNTData;
 0000           ; WORD  SecondCount=0;
 0000           ; WORD  Count=0;
 0000           ; 
 0000           ; BYTE  FlashFlag;              //灯闪烁标志
 0000           ; BYTE  SendDataFlag;
 0000           ; 
 0000           ; #define       SENDTIMER       3                               //      每10秒钟发送一次数据
 0000           ; #define       NODATALIMIT     300                             //      3分钟收不到命令则复位
 0000           ; #define       FLASHLIMIT      2                               //      每收到一组数据闪烁1次
 0000           ; 
 0000           ; BYTE  temperature_L,temperature_H;
 0000           ; 
 0000           ; void handle(void);
 0000           ; void InitSPI(void);
 0000           ; void SendGram(BYTE cmd);
 0000           ; 
 0000           ; /////////////////////////////////////////////////////////////
 0000           ; BYTE EEPROM_read(WORD uiAddress)
 0000           ; {
 0000           L2:
 0000                   .dbline 224
 0000           ;       while(EECR&(1<<EEWE));          //等待写入前一个字节
 0000           L3:
 0000                   .dbline 224
 0000 E199              sbic 0x1c,1
 0002 FECF              rjmp L2
 0004           X0:
 0004                   .dbline 225
 0004           ;       EEAR=uiAddress;                         //设置地址寄存器
 0004 1FBB              out 0x1f,R17
 0006 0EBB              out 0x1e,R16
 0008                   .dbline 226
 0008           ;       EECR |= (1<<EERE);                      //通过设置EERE,开始读EEPROM
 0008 E09A              sbi 0x1c,0
 000A                   .dbline 227
 000A           ;       return EEDR;                            //返回数据寄存器
 000A 0DB3              in R16,0x1d
 000C                   .dbline -2
 000C           L1:
 000C                   .dbline 0 ; func end
 000C 0895              ret
 000E                   .dbsym r uiAddress 16 i
 000E                   .dbend
 000E                   .dbfunc e EEPROM_write _EEPROM_write fV
 000E           ;         ucData -> R18
 000E           ;      uiAddress -> R16,R17
                        .even
 000E           _EEPROM_write::
 000E                   .dbline -1
 000E                   .dbline 232
 000E           ; }
 000E           ; 
 000E           ; /////////////////////////////////////////////////////////////////////////////////
 000E           ; void EEPROM_write( WORD uiAddress, BYTE ucData)
 000E           ; {
 000E           L6:
 000E                   .dbline 233
 000E           ;       while(EECR&(1<<EEWE));          //等待写入前一个字节
 000E           L7:
 000E                   .dbline 233
 000E E199              sbic 0x1c,1
 0010 FECF              rjmp L6
 0012           X1:
 0012                   .dbline 234
 0012           ;       EEAR=uiAddress;                         //设置地址寄存器
 0012 1FBB              out 0x1f,R17
 0014 0EBB              out 0x1e,R16
 0016                   .dbline 235
 0016           ;       EEDR=ucData;                            //设置数据寄存器
 0016 2DBB              out 0x1d,R18
 0018                   .dbline 236

⌨️ 快捷键说明

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