📄 nrf905.lst
字号:
265 1 for(e=0;e<32;e=e+32)
266 1 {
267 2 for(a=0;a<8;a++)
268 2 {
269 3 for(b=0;b<8;b++)
270 3 {
271 4 for(c=0;c<32;c++)
272 4 {
273 5
274 5
275 5
276 5 SBUF=~(text[e+c+32]>>(8-a)|text[e+c+1]<<a);
277 5
278 5 while(TI==0);
279 5 TI=0;
280 5 SBUF=~(text[e+c+1]>>(8-a)|text[e+c]<<a);
281 5 while(TI==0);
282 5 TI=0;
283 5 c++;
284 5 P14=1; //存储寄存器时钟输入
285 5 P1=d;
286 5 P15=0; //使能74HC154
287 5 Delayled(3);
288 5 P14=0;
289 5 P15=1; //禁止74HC154
290 5 d++;
291 5 if(d==16)d=0;
292 5
293 5
294 5 }
295 4 }
296 3 }
297 2 for(a=0;a<8;a++)
298 2 {
299 3 for(b=0;b<8;b++)
300 3 {
301 4 for(c=0;c<32;c++)
302 4 {
303 5
C51 COMPILER V8.05a NRF905 06/08/2008 20:18:03 PAGE 6
304 5 SBUF=~(text[e+c+1+32]>>(8-a)|text[e+c+32]<<a);
305 5 while(TI==0);
306 5 TI=0;
307 5 SBUF=~(text[e+c+32]>>(8-a)|text[e+c+1]<<a);
308 5 while(TI==0);
309 5 TI=0;
310 5 c++;
311 5 P14=1;
312 5 P1=d;
313 5 P15=0;
314 5 Delayled(3);
315 5 P14=0;
316 5 P15=1;
317 5 d++;
318 5 if(d==16)d=0;
319 5 }
320 4 }
321 3 }
322 2
323 2 }
324 1
325 1
326 1
327 1 }
328
329 void Display_Init()
330 {
331 1 unsigned int a,e;
332 1 unsigned char b,c,d=0;
333 1 SCON=0;
334 1
335 1
336 1 for(e=0;e<192;e=e+32)
337 1 {
338 2 for(a=0;a<8;a++)
339 2 {
340 3 for(b=0;b<8;b++)
341 3 {
342 4 for(c=0;c<32;c++)
343 4 {
344 5
345 5
346 5
347 5 SBUF=~(Int[e+c+32]>>(8-a)|Int[e+c+1]<<a);
348 5
349 5 while(TI==0);
350 5 TI=0;
351 5 SBUF=~(Int[e+c+1]>>(8-a)|Int[e+c]<<a);
352 5 while(TI==0);
353 5 TI=0;
354 5 c++;
355 5 P14=1; //存储寄存器时钟输入
356 5 P1=d;
357 5 P15=0; //使能74HC154
358 5 Delayled(3);
359 5 P14=0;
360 5 P15=1; //禁止74HC154
361 5 d++;
362 5 if(d==16)d=0;
363 5
364 5
365 5 }
C51 COMPILER V8.05a NRF905 06/08/2008 20:18:03 PAGE 7
366 4 }
367 3 }
368 2 for(a=0;a<8;a++)
369 2 {
370 3 for(b=0;b<8;b++)
371 3 {
372 4 for(c=0;c<32;c++)
373 4 {
374 5
375 5 SBUF=~(Int[e+c+1+32]>>(8-a)|Int[e+c+32]<<a);
376 5 while(TI==0);
377 5 TI=0;
378 5 SBUF=~(Int[e+c+32]>>(8-a)|Int[e+c+1]<<a);
379 5 while(TI==0);
380 5 TI=0;
381 5 c++;
382 5 P14=1;
383 5 P1=d;
384 5 P15=0;
385 5 Delayled(3);
386 5 P14=0;
387 5 P15=1;
388 5 d++;
389 5 if(d==16)d=0;
390 5 }
391 4 }
392 3 }
393 2
394 2 }
395 1
396 1
397 1
398 1 }
399
400 unsigned char temp [32]=
401 {
402 0x04,0x04,0xFE,0xFE,0x28,0x84,0x28,0xFC,
403 0xFE,0x84,0xAA,0xFC,0xAA,0x20,0xAE,0xA0,
404 0xC2,0xFC,0x83,0x20,0x82,0x20,0xFE,0xFC,
405 0x82,0x20,0x82,0x24,0xFF,0xFE,0x82,0x00 //醒
406
407 };
408
409 bit wfg = 0; //display
410 bit shfg = 0; //唤醒 睡眠 数据备份flag
411
412 unsigned char r = 0;
413 void main()
414 {
415 1
416 1
417 1 //SCON=0x50; //模式1
418 1 //TMOD=0x21; //定时模式2
419 1 //IE=0x90;
420 1
421 1 //=====9600=======设置串口通讯寄存器
422 1 //PCON=0x00; //波特率9600BPS,晶振11.0592MHZ
423 1 // TH1=0xFD; //
424 1 // TL1=0xFD; //计数器初值
425 1 //================NRF905初始化
426 1 CSN=1; // Spi disable
427 1 SCK=0; // Spi clock line init high
C51 COMPILER V8.05a NRF905 06/08/2008 20:18:03 PAGE 8
428 1 DR=1; // Init DR for input
429 1 AM=1; // Init AM for input
430 1 PWR_UP=1; // nRF905 power on
431 1 TRX_CE=0; // Set nRF905 in standby mode
432 1 TX_EN=0; // set radio in Rx mode
433 1
434 1 // TI = 0;//串行中断标志位清零
435 1 // TR1 = 1;//打开计数器1
436 1 //================
437 1 Config905(); // Config nRF905 module
438 1 SetRxMode();
439 1 Adjust_res_18B20(0x3f);
440 1 ReadTemperature();
441 1
442 1
443 1
444 1 // print_Char('a');
445 1 /*
446 1 Adjust_res_18B20(0x3f);
447 1 ReadTemperature();
448 1 print_Char(sdata/10 +'0');
449 1 print_Char(sdata%10 +'0');
450 1 print_Char('.');
451 1 print_Char(xiaoshu/10 +'0');
452 1 print_Char(xiaoshu%10 +'0');
453 1 print_Char('\n');
454 1 */
455 1
456 1 //WriteNByte(0xa0,0,TXBuffer,32);
457 1 //ReadNByte(0xa0,0,RXBuffer,32);
458 1 // Display_Init();
459 1
460 1 while(1)
461 1 {
462 2 if(wfg==0)
463 2 {
464 3 Display_Init();
465 3 }
466 2
467 2 if(wfg==1)
468 2 {
469 3 Display();
470 3
471 3 if (shfg == 0)
472 3 {
473 4 for (r=0; r<32; ++r)
474 4 {
475 5 temp[r] = text[r+32];
476 5 }
477 4 }
478 3 } //Displayadd();
479 2
480 2 //=====================等待NRF905接收
481 2 if (DR)
482 2 { // If recive data ready...
483 3 RxPacket(); // ... recive data
484 3 //print_Str(RxBuf);
485 3 // print_Char('b');
486 3 if (RxBuf[0]==0x11&&RxBuf[1]=='\0') //接收到睡眠命令
487 3 {
488 4 if (flg==0) //睡眠
489 4 {
C51 COMPILER V8.05a NRF905 06/08/2008 20:18:03 PAGE 9
490 5 // print_Char('f');
491 5 // P15 = 1; //禁止74HC154
492 5 for (r=0; r<32; ++r)
493 5 {
494 6 text[r+32] = 0x00;
495 6 }
496 5
497 5 shfg = 1; //禁止备份
498 5
499 5 }
500 4 else //唤醒
501 4 {
502 5 // print_Char('l');
503 5
504 5 Read_24c04_32bit((keycount-1));
505 5
506 5 for (r=0; r<32; ++r)
507 5 {
508 6 text[r+32] = temp[r];
509 6 }
510 5
511 5 shfg = 0; //开始备份
512 5
513 5
514 5 }
515 4 flg = ~flg;
516 4
517 4
518 4 wfg = 1;
519 4
520 4
521 4 }
522 3 else if (RxBuf[0]==0x02&&RxBuf[1]=='\0') //接收到发送温度命令
523 3 {
524 4 //Adjust_res_18B20(0x3f);
525 4 ReadTemperature();
526 4 delays_key();
527 4 delays_key();
528 4 delays_key();
529 4 delays_key();
530 4 delays_key();
531 4 delays_key();
532 4 TxBuf[0] = sdata/10;
533 4 TxBuf[1] = sdata%10;
534 4 TxBuf[2] = xiaoshu/10;
535 4 TxBuf[3] = xiaoshu%10;
536 4 SetTxMode(); // Set Tx Mode
537 4 TxPacket(); // Transmit Tx buffer data
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -