📄 nrf905.lst
字号:
C51 COMPILER V8.02 NRF905 01/02/2003 09:36:17 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE NRF905
OBJECT MODULE PLACED IN nrf905.OBJ
COMPILER INVOKED BY: D:\工具\Keil\C51\BIN\C51.EXE nrf905.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************************\
2 ============================================================================================
3 * T905.c
4 *
5 * This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTYT;
6 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7 *
8 *
9 * NOTES:
10 * This program is for the nRF905 with 232 interface;
11 * $write date: 2004.4.7 ;time 11:00$
12 * $Revision: 1 $
13 *
14 /*******************************************************************************************/
15 #include <at89x52.h>
16 #include <intrins.h>
17
18 #define uchar unsigned char
19 #define uint unsigned int
20
21 #define WC 0x00 // Write configuration register command
22 #define RC 0x10 // Read configuration register command
23 #define WTP 0x20 // Write TX Payload command
24 #define RTP 0x21 // Read TX Payload command
25 #define WTA 0x22 // Write TX Address command
26 #define RTA 0x23 // Read TX Address command
27 #define RRP 0x24 // Read RX Payload command
28 /*******************************************************************************************/
29 typedef struct RFConfig
30 {
31 uchar n;
32 uchar buf[10];
33 }RFConfig;
34
35 code RFConfig RxTxConf =
36 {
37 10,
38 0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc, 0xcc, 0xcc,0xcc, 0x58
39 };
40 // The content of this struct is nRF905's initialize data.初始化数据
41 // CH_NO=1;433MHZ;Normal Opration,No Retrans;RX,TX Address is 4 Bytes
42 // RX TX Payload Width is 32 Bytes;Disable Extern Clock;Fosc=16MHZ
43 // 8 Bits CRC And enable
44 /*******************************************************************************************/
45 uchar data TxBuf[32];
46 uchar data RxBuf[32];
47 uchar key,rsbrf,delayf,tf;
48 /*******************************************************************************************/
49 uchar bdata DATA_BUF;
50 sbit flag =DATA_BUF^7;
51 sbit flag1 =DATA_BUF^0;
52 /*******************************************************************************************/
53 sbit TX_EN =P1^7;
54 sbit TRX_CE =P1^6;
55 sbit PWR_UP =P1^5;
C51 COMPILER V8.02 NRF905 01/02/2003 09:36:17 PAGE 2
56 sbit MISO =P1^1;
57 sbit MOSI =P1^0;
58 sbit SCK =P3^7;
59 sbit CSN =P3^3;
60
61 sbit AM =P1^3;
62 sbit DR =P3^2;
63 sbit CD =P1^4;
64
65 sbit LED1 =P3^4;
66 sbit LED2 =P3^5;
67 sbit KEY1 =P3^0;
68 sbit KEY2 =P3^1;
69
70 /*******************************************************************************************/
71 void InitIO(void); // Initialize IO port
72 void Inituart(void); // initialize 232 uart
73 void Config905(void); // Config nRF905 module配置NRF905模式
74 void SetTxMode(void); // Set nRF905 in Tx mode
75 void SetRxMode(void); // Set nRF905 in Rx mode
76 void TxPacket(void); // Send data by nRF905
77 void RxPacket(void); // Recive data by nRF905
78 void SpiWrite(uchar); // Write data to nRF905
79 uchar SpiRead(void); // Read data to nRF905
80 void Delay(uchar n); // Delay 100us
81 void Scankey(void); // Scan key
82 void TxData (uchar x); // Send key_value to CRT display
83 void comdebug(void);
84 /*******************************************************************************************/
85 void Delay(uchar n)
86 {
87 1 uint i;
88 1 while(n--)
89 1 for(i=0;i<80;i++);
90 1 }
91
92 void main()
93 {
94 1 unsigned int cyc=0;
95 1 unsigned int distan=0;
96 1
97 1
98 1 //================NRF905初始化
99 1 CSN=1; // Spi disable
100 1 SCK=0; // Spi clock line init high
101 1 DR=1; // Init DR for input
102 1 AM=1; // Init AM for input
103 1 PWR_UP=1; // nRF905 power on
104 1 TRX_CE=0; // Set nRF905 in standby mode
105 1 TX_EN=0; // set radio in Rx mode
106 1
107 1 //================
108 1 Config905(); // Config nRF905 module
109 1 TxBuf[0] = 1;
110 1 TxBuf[1] = 1;
111 1 SetTxMode(); // Set Tx Mode
112 1 TxPacket(); // Transmit Tx buffer data
113 1 LED1 = 0;
114 1 LED2 = 0;
115 1
116 1 Delay(500); // delay for led light
117 1 LED1 = 1;
C51 COMPILER V8.02 NRF905 01/02/2003 09:36:17 PAGE 3
118 1 LED2 = 1;
119 1 TxBuf[0] = 0xff;
120 1 TxBuf[1] = 0xff;
121 1
122 1 // led close
123 1 SetRxMode(); // Set nRF905 in Rx mode
124 1
125 1 while(1)
126 1 {
127 2 //=====================从键盘获得数据
128 2
129 2
130 2 if(KEY1 ==0 ) { LED1 = 0; TxBuf[0] = 1 ;tf = 1 ; }
131 2 if(KEY2 ==0 ) { LED2 = 0; TxBuf[1] = 1 ;tf = 1 ; }
132 2
133 2 if (tf==1)
134 2 {
135 3
136 3 //===============NRF905发送相应的按键
137 3 SetTxMode(); // Set Tx Mode
138 3 TxPacket(); // Transmit Tx buffer data
139 3 TxBuf[0] = 0xff;
140 3 TxBuf[1] = 0xff;
141 3 SetRxMode(); // Set nRF905 in Rx mode
142 3 tf=0;
143 3 Delay(500);
144 3 LED1 = 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -