📄 nrf905_reference_firmware.lst
字号:
C51 COMPILER V8.02 NRF905_REFERENCE_FIRMWARE 05/12/2006 12:50:33 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE NRF905_REFERENCE_FIRMWARE
OBJECT MODULE PLACED IN nRF905_reference_firmware.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE nRF905_reference_firmware.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /************************************************************************************
2 * NOTICE:
3 * NAME: CRT905ANC.C
4 * USE: The nRF905 RF Module Test Board(both transmit and receive function)
5 * VERSION: V0.1
6 * MCU: AT89C2051 DIP20 (Atmel)
7 * CRYSTAL: 4.00MHz
8 * CHANNEL:
9 * FREQUENCY: 433MHz
10 * FUNCTION DESCRIPTION:
11 1. CRC16
12 2. Address length: 40Bit (5Byte)
13 3. Address: AA,BB,CC,DD,EE(H->L)
14 4. Payload length: 64Bit (8 Bytes,Max 25 Bytes)
15 5. Out Power: 0dBm
16 6. DATA RATE: 100KBps
17 ************************************************************************************/
18 #include <At89x051.h>
19 #include <intrins.h>
20 //AT89C2051 pins define
21 #define START_SW P3_2
22 #define STOP_SW P3_2
23 #define LED1 P3_4
24 #define LED2 P3_3
25
26 #define TRX_CE P1_3
27 #define TXEN P1_2
28 #define PWR_UP P1_1
29 #define AM P1_0
30 #define CD P3_7
31 #define MISO P1_6
32 #define DR P3_5
33 #define SCK P1_7
34 #define MOSI P1_5
35 #define CSN P1_4
36
37 //The const nRF905 config register define
38 const unsigned char config_reg_buf[10]={
39 0x4c,//0b01001100, //CH_NO[7:0]=76,RF freq=422.4+76/10=430MHz
40 0x0c,//0b00001100, //bit[7:6]:not used/bit5:AUTO_RETRAN='0'
41 //bit4:RX_RED_PWR='0'/bit[3:2]:PA_PWR='11' +10dBm
42 //bit1:HFREQ_PLL=0,PLL=433MHz/bit0:CH_N0[8]='0'
43 0x44,//0b01000100, //bit7:not used/bit[6:4]:TX_AFW='100' 4Bytes
44 //bit3:not used/bit[2:0]:RX_AFW='100' 4Bytes
45 0x20,//0b00100000, //bit[7:6]:not use/bit[5:0]:RX_PW='100000' 32Bytes
46 0x20,//0b00100000, //bit[7:6]:not use/bit[5:0]:TX_PW='100000' 32Bytes
47 0xa5, //RX_ADDRESS_BYTE0=TX_ADDRESS_BYTE0
48 0xb5, //RX_ADDRESS_BYTE1=TX_ADDRESS_BYTE1
49 0xc5, //RX_ADDRESS_BYTE2=TX_ADDRESS_BYTE2
50 0xd5, //RX_ADDRESS_BYTE3=TX_ADDRESS_BYTE3
51 0xc3 // //0xc3---4M //0xdb --16m
52 //0b11011011 //bit7:CRC_MODE='1' CRC16/bit6:CRC_EN='1' CRC Enable
53 //bit[5:3]:XOF='011' 16MHz/bit[2]UP_CLK_EN='0' Disable
54 //bit[1:0]:UP_CLK_FRE='11' 500KHz
55 };
C51 COMPILER V8.02 NRF905_REFERENCE_FIRMWARE 05/12/2006 12:50:33 PAGE 2
56
57 //The const nRF905 TX address register define
58 const unsigned char tx_address_reg_buf[4]={
59 0xa5, //TX_ADDRESS_BYTE0=RX_ADDRESS_BYTE0
60 0xb5, //TX_ADDRESS_BYTE1=RX_ADDRESS_BYTE1
61 0xc5, //TX_ADDRESS_BYTE2=RX_ADDRESS_BYTE2
62 0xd5 //TX_ADDRESS_BYTE3=RX_ADDRESS_BYTE3
63 };
64
65 //The address and data of TX and the data of RX buffer define
66 //unsigned char tx_address_buf[4];
67 unsigned char tx_data_buf[3]={0x41,0x0a,0x0d};
68 unsigned char rx_data_buf[32];
69
70 unsigned char task_switch;
71
72 void system_init();
73 void write_spi_one_byte(unsigned char data_buf);
74 unsigned char read_spi_one_byte(void);
75 void write_config();
76 void read_config();
77 void write_tx_payload(unsigned char tx_payload_bytes_num);
78 //void read_tx_payload(unsigned char tx_payload_bytes_num);
79 void write_tx_address(unsigned char tx_address_bytes_num);
80 //void read_tx_address(unsigned char tx_address_bytes_num);
81 void read_rx_payload(unsigned char rx_payload_bytes_num);
82 //void fast_channel_config(unsigned char freq_value,unsigned char ch_no_value);
83 void send_rx_data_to_pc(void);
84 void send_rf_data(void);
85 void transmit_mode(void);
86 void receive_mode(void);
87 void delay_ms(unsigned int delay_counter);
88 void main(void);
89 /****************************************************************************/
90
91
92 void Delay100ms(unsigned char x)
93 {
94 1 unsigned char i,j;
95 1
96 1 while(x-- != 0)
97 1 {//dog=!dog;
98 2 for (j = 0;j < 114; j++)for (i = 0;i < 88; i++){_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;
99 3 _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
-) ;
100 3 _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
-) ;
101 3 _nop_() ;_nop_() ;_nop_() ;};
102 2 }
103 1 }
104 /*********************************************************************************
105 * function: myinit()
106 * use: initilize some normal parameter
107 * input parameter: none
108 * output parameter: none
109 *********************************************************************************/
110
111 void system_init()
112 {
113 1 unsigned char i;
114 1
115 1 delay_ms(10);
C51 COMPILER V8.02 NRF905_REFERENCE_FIRMWARE 05/12/2006 12:50:33 PAGE 3
116 1 task_switch=2; //Set the test board default mode as receive mode
117 1 LED1=0; //Turn on the led indicate the system is already for receive data
118 1
119 1 PWR_UP=1;
120 1 TRX_CE=0;
121 1 TXEN=0;
122 1 CSN=1;
123 1 SCK=0;
124 1
125 1 i=0;
126 1 for(i=0;i<32;i++) //Clear the data buffer
127 1 {
128 2 rx_data_buf[i]=0;
129 2 }
130 1
131 1 write_config();
132 1
133 1 if(START_SW==0) //For the RF frequency test
134 1 { //If the start_button is pressed during the power on
135 2 delay_ms(50);
136 2 if(START_SW==0)
137 2 {
138 3 TXEN=1;
139 3 delay_ms(1);
140 3 write_tx_address(4);
141 3 write_tx_payload(32);
142 3 TRX_CE=1;
143 3 while(1);
144 3 }
145 2 }
146 1
147 1 TMOD=0x20; //config UART rate
148 1 SCON=0x50; //19.2kbps(max 20kbps)
149 1 PCON=0x80;
150 1 TH1=0xfd;
151 1 TL1=0xfd;
152 1 TR1=1;
153 1 EA=0;
154 1 ES=0;
155 1 }
156 /***********************************myinit() END*************************************/
157
158
159
160 /***********************************************************************************
161 * function: write_spi_one_byte()
162 * use:
163 * input parameter:
164 * output parameter:
165 ***********************************************************************************/
166
167 void write_spi_one_byte(unsigned char data_buf)
168 {
169 1 unsigned char i;
170 1 unsigned char j;
171 1
172 1 j=0x80;//0b10000000
173 1 while(j>0)
174 1 {
175 2 i=data_buf&j;
176 2 if(i==0)
177 2 {
C51 COMPILER V8.02 NRF905_REFERENCE_FIRMWARE 05/12/2006 12:50:33 PAGE 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -