send8000(add_com_11.0592m_car).lst
来自「基于89c2051开发的ptr8000一对多无线通信程序.」· LST 代码 · 共 454 行 · 第 1/2 页
LST
454 行
210 2 comsbuf[13]=P3;
211 2 comsbuf[14]=count_car;
212 2 count_car=0;
213 2 RLED=0;
214 2 }
215 1 }
216
217 void Ptimer1(void) interrupt 3 using 1
218 {
219 1 TH1=(65536-46080)/256; /* Fosc=733728MHz/4=1.8432MHz */
220 1 TL1=(65536-46080)%256; /* 50ms timer interrupt */
221 1 TR1=1;
222 1 if(++tim_cnt==20)
223 1 {
224 2 tim_cnt=0;
225 2 Flag_scd=1;
226 2 if(tim_scd++==60)
227 2 {
228 3 tim_scd=0;
229 3 if(tim_mnt++==60)
230 3 {
231 4 tim_mnt=0;
232 4 if(tim_hur++==24) tim_hur=0;
233 4 }
234 3 }
235 2 }
236 1 }
237
238
C51 COMPILER V7.06 SEND8000_ADD_COM_11_0592M_CAR_ 02/01/2007 15:32:19 PAGE 5
239 /************************************************************************************************/
240 main()
241 {
242 1 uchar i;
243 1 for(i=0;i<4;i++) comsbuf[i]=TX_ADDRESS[i];
244 1 comsbuf[4]=RX_ADDRESS_0;
245 1 comsbuf[5]=RX_ADDRESS_1;
246 1 comsbuf[6]=RX_ADDRESS_2;
247 1 comsbuf[7]=RX_ADDRESS_3;
248 1 comsbuf[8]=0xff;
249 1 comsbuf[9]=0xd7;
250 1 comsbuf[10]=0x06;
251 1 comsbuf[11]='S';
252 1 comsbuf[14]=0x00;
253 1 comsbuf[15]='E';
254 1
255 1 /*IO口模式设置00准双向;01推挽;10高阻输入;11开漏 */
256 1 //P0M1=0x00; /* P0M1: 00000000 键盘 双向*/
257 1 //P0M2=0x0F; /* P0M2: 00001111 LED 推挽*/
258 1 //P1M1=0x2C; /* P1M1: 00101100 P1.2/P1.3配置为开漏,外接上拉电阻;P1.5(RST)仅能为输入(高阻);*/
259 1 //P1M2=0x0C; /* P1M2: 00001100 中断1,串口为准双向;*/
260 1 //P2M1=0x00; /* P2M1: 00000000 */
261 1 //P2M2=0x00; /* P2M2: 00000000 */
262 1 //P3M1=0x00; /* IO口模式设置: 准双向口00,使用内部时钟 */
263 1 //P3M2=0x00;
264 1
265 1 //P0=0xFF; /* 初化P0口 */
266 1 //P1=0xFF;
267 1 //P2=0xFF; /* */
268 1 //P3=0xFF; /* */
269 1
270 1 //DIVM=2; /* 降低工作频率,以便程序移植 */
271 1 TR0 = 1;
272 1 IE = 0x82; //Enable timer0.
273 1
274 1 uart_init(); /* 串口初始化9600BPS */
275 1 Spi_init(); /* 初始化SPI端口 */
276 1
277 1 ChangeMode(Standby); /* nRF905进入待机SPI通讯模式 */
278 1 //Delayus(1000);
279 1 Delayms(1);
280 1 Config905(); /* 配置nRF905 */
281 1
282 1 //TMOD|=0x10; /* Timer1 mode set Mode1 */
283 1 //TH1=(65536-46080)/256; /* Fosc=1.8432MHz,50ms timer interrupt */
284 1 //TL1=(65536-46080)%256;
285 1 //ET1=1;TR1=1;
286 1 //EA=1;
287 1
288 1 //eeprom_read(E2ADRSYS,Databuf,16); /* 读取本系统地址及参数 */
289 1 //ADDRESS = BUFADR;
290 1 //if(ADDRESS==0xFF) /* 地址为0xFF时,初始化地址为1 */
291 1 //{
292 1 // BUFADR = ADDRESS = 0x01; /* 本系统地址存储为0x01 */
293 1 // for(i=1;i<16;i++)Databuf[i]=i;
294 1 // eeprom_write(E2ADRSYS,Databuf,16); /* 存储本系统地址及参数 */
295 1 //}
296 1 //mscom_snd(Databuf,16);
297 1
298 1 RF905_Read(RC,Databuf);
299 1 //mscom_snd(Databuf,16);
300 1 ChangeMode(RXMode); /**/
C51 COMPILER V7.06 SEND8000_ADD_COM_11_0592M_CAR_ 02/01/2007 15:32:19 PAGE 6
301 1
302 1 while(1)
303 1 {
304 2 while(RF_DR && RF_AM)
305 2 {
306 3 ChangeMode(Standby);
307 3 Delayms(1);
308 3 RF905_Read(RRP,Databuf);
309 3 ChangeMode(RXMode);
310 3 //Delayus(300);
311 3 //Delayms(1);
312 3 //mscom_snd(Databuf,16);
313 3 if(Databuf[15]=='E' && Databuf[14]==0x00 && Databuf[11]=='S')
314 3 {
315 4 triggle1=1;
316 4 }
317 3 }
318 2 if(triggle1)
319 2 {
320 3 //triggle=0;
321 3 triggle1=0;
322 3 ChangeMode(TXMode);
323 3 //Delayus(3100);
324 3 Delayms(3);
325 3 RF905_Write(WTA,TX_ADDRESS);
326 3 //RF905_Write(WTP,Databuf);
327 3 RF905_Write(WTP,comsbuf);
328 3 ChangeMode(TXData);
329 3 //mscom_snd(TX_ADDRESS,4);
330 3 //mscom_snd(Databuf,16);
331 3 //Delayus(650); // ensure nRF905 have began TX
332 3 //Delayms(2);
333 3 while(!RF_DR);
334 3 ChangeMode(RXMode);
335 3 }
336 2 if(trigglecom)
337 2 {
338 3 trigglecom=0;
339 3 mscom_snd(comsbuf,16);
340 3 }
341 2 /*
342 2 switch (URT_rcv)
343 2 {
344 2 case 0x00:
345 2 for(i=0;i<16;i++) Databuf[i]=i;
346 2 //eeprom_write(E2ADRSYS,Databuf,16);
347 2 //eeprom_read(E2ADRSYS,Databuf,16);
348 2 //mscom_snd(Databuf,16);
349 2 URT_rcv =0x10;
350 2 break;
351 2 case 0x01:
352 2 ChangeMode(Standby);
353 2 Delayus(3100);
354 2 RF905_Read(RC,Databuf);
355 2 ChangeMode(RXMode);
356 2 mscom_snd(Databuf,16);
357 2 URT_rcv =0x10;
358 2 break;
359 2 case 0x02:
360 2 ChangeMode(TXMode);
361 2 Delayus(3100);
362 2 RF905_Write(WTA,TX_ADDRESS);
C51 COMPILER V7.06 SEND8000_ADD_COM_11_0592M_CAR_ 02/01/2007 15:32:19 PAGE 7
363 2 RF905_Write(WTP,Databuf);
364 2 ChangeMode(TXData);
365 2 //mscom_snd(TX_ADDRESS,4);
366 2 //mscom_snd(Databuf,16);
367 2 Delayus(650); // ensure nRF905 have began TX
368 2 ChangeMode(RXMode);
369 2 URT_rcv =0x10;
370 2 break;
371 2 case 0x03:
372 2 ChangeMode(Standby);
373 2 RF905_Read(RTP,Databuf);
374 2 Delayus(650);
375 2 ChangeMode(RXMode);
376 2 mscom_snd(Databuf,16);
377 2 URT_rcv =0x10;
378 2 break;
379 2 case 0x04:
380 2 ChangeMode(Standby);
381 2 RF905_Read(RRP,Databuf);
382 2 Delayus(650);
383 2 ChangeMode(RXMode);
384 2 //mscom_snd(Databuf,16);
385 2 URT_rcv =0x10;
386 2 break;
387 2 case 0x05:
388 2 for(i=0;i<16;i++) Databuf[i]=15-i;
389 2 //eeprom_write(E2ADRSYS,Databuf,16);
390 2 //eeprom_read(E2ADRSYS,Databuf,16);
391 2 //mscom_snd(Databuf,16);
392 2 URT_rcv =0x10;
393 2 break;
394 2 case 0x06:
395 2 for(i=0;i<16;i++) Databuf[i]=0x06;
396 2 //eeprom_write(E2ADRSYS,Databuf,16);
397 2 //eeprom_read(E2ADRSYS,Databuf,16);
398 2 //mscom_snd(Databuf,16);
399 2 URT_rcv =0x10;
400 2 break;
401 2 case 0x07:
402 2 ChangeMode(PowerDown);
403 2 URT_rcv =0x10;
404 2 default:
405 2 ChangeMode(RXMode);
406 2 URT_rcv =0x10;
407 2 break;
408 2 }
409 2 */
410 2 }
411 1 }
412
413
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 654 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 5
IDATA SIZE = 65 ----
BIT SIZE = 6 ----
END OF MODULE INFORMATION.
C51 COMPILER V7.06 SEND8000_ADD_COM_11_0592M_CAR_ 02/01/2007 15:32:19 PAGE 8
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?