?? t905.lst
字號:
149 void SpiWrite(uchar byte)
150 {
151 1 uchar i;
152 1 DATA_BUF=byte; // Put function's parameter into a bdata variable
153 1 for (i=0;i<8;i++) // Setup byte circulation bits
154 1 {
155 2
156 2 if (flag) // Put DATA_BUF.7 on data line
157 2 MOSI=1;
158 2 else
159 2 MOSI=0;
160 2 SCK=1; // Set clock line high
161 2 DATA_BUF=DATA_BUF<<1; // Shift DATA_BUF
162 2 SCK=0; // Set clock line low
163 2 }
164 1 }
165 /*******************************************************************************************/
166 //function SpiRead();
167 /*******************************************************************************************/
168 uchar SpiRead(void)
169 {
170 1 uchar i;
171 1 for (i=0;i<8;i++) // Setup byte circulation bits
172 1 {
173 2 DATA_BUF=DATA_BUF<<1; // Right shift DATA_BUF
174 2 SCK=1; // Set clock line high
175 2 if (MISO)
176 2 flag1=1; // Read data
177 2 else
178 2 flag1=0;
179 2
C51 COMPILER V7.08 T905 04/08/2004 18:54:17 PAGE 4
180 2
181 2 SCK=0; // Set clock line low
182 2 }
183 1 return DATA_BUF; // Return function parameter
184 1 }
185 /*******************************************************************************************/
186 //function TxPacket();
187 /*******************************************************************************************/
188 void TxPacket(void)
189 {
190 1 uchar i;
191 1 //Config905();
192 1 CSN=0; // Spi enable for write a spi command
193 1 SpiWrite(WTP); // Write payload command
194 1 for (i=0;i<32;i++)
195 1 {
196 2 SpiWrite(TxBuf[i]); // Write 32 bytes Tx data
197 2 }
198 1 CSN=1; // Spi disable
199 1 Delay(1);
200 1 CSN=0; // Spi enable for write a spi command
201 1 SpiWrite(WTA); // Write address command
202 1 for (i=0;i<4;i++) // Write 4 bytes address
203 1 {
204 2 SpiWrite(RxTxConf.buf[i+5]);
205 2 }
206 1 CSN=1; // Spi disable
207 1 TRX_CE=1; // Set TRX_CE high,start Tx data transmission
208 1 Delay(1); // while (DR!=1);
209 1 TRX_CE=0; // Set TRX_CE low
210 1 }
211 /*******************************************************************************************/
212 //function RxPacket();
213 /*******************************************************************************************/
214 void RxPacket(void)
215 {
216 1 uchar i,xx;
217 1 TRX_CE=0; // Set nRF905 in standby mode
218 1 CSN=0; // Spi enable for write a spi command
219 1 SpiWrite(RRP); // Read payload command
220 1 for (i=0;i<32;i++)
221 1 {
222 2 RxBuf[i]=SpiRead(); // Read data and save to buffer
223 2 }
224 1 CSN=1; // Disable spi
225 1 while(DR||AM);
226 1 P0= RxBuf[0]; // Buffer[0] output from P0 port...
227 1 TRX_CE=1;
228 1 xx=(RxBuf[0]>>4)&0x0f;
229 1 TxData(xx);
230 1 Delay(500); // ...light led
231 1 P0=0xff; // Close led
232 1 }
233 /*******************************************************************************************/
234 //function SetTxMode();
235 /*******************************************************************************************/
236 void SetTxMode(void)
237 {
238 1 TX_EN=1;
239 1 TRX_CE=0;
240 1 Delay(1); // delay for mode change(>=650us)
241 1 }
C51 COMPILER V7.08 T905 04/08/2004 18:54:17 PAGE 5
242 /*******************************************************************************************/
243 //function SetRxMode();
244 /*******************************************************************************************/
245 void SetRxMode(void)
246 {
247 1 TX_EN=0;
248 1 TRX_CE=1;
249 1 Delay(1); // delay for mode change(>=650us)
250 1 }
251 /*******************************************************************************************/
252 //Functon Scankey();
253 /*******************************************************************************************/
254 void Scankey()
255 {
256 1 uchar Temp,xx;
257 1 P0=0xff;
258 1 Temp=P0&0x0f; // Read key value from port P0
259 1 if (Temp!=0x0f)
260 1 { Delay(10);
261 2 Temp=P0&0x0f; // Read key value from port P0
262 2 if (Temp!=0x0f)
263 2 {
264 3 xx=Temp;
265 3 Temp=Temp<<4; // Left shift 4 bits
266 3 TxBuf[0]=Temp; // Turn On the LED
267 3 P0=Temp; // Save to Tx buffer[0]
268 3 SetTxMode(); // Set Tx Mode
269 3 TxPacket(); // Transmit Tx buffer data
270 3 TxData (xx);
271 3 Delay(500); // Delay for LED light
272 3 P0=0xff; // Close LED display
273 3 SetRxMode(); // Set Rx Mode
274 3
275 3 while((P0&0x0f)!=0x0f);
276 3 }
277 2 }
278 1 }
279 /*******************************************************************************************/
280 //Function TxData ();
281 /*******************************************************************************************/
282 void TxData (uchar x)
283 {
284 1 SBUF=x;
285 1 while(TI==0);
286 1 TI=0;
287 1
288 1 }
289 /*******************************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 404 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 65 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -