📄 main.lst
字号:
469 1 halSpiWriteReg(CCxxx0_MDMCFG2,0x73);
470 1 halSpiWriteReg(CCxxx0_MDMCFG1,0x22);
471 1 halSpiWriteReg(CCxxx0_MDMCFG0,0xF8);
472 1
473 1 halSpiWriteReg(CCxxx0_CHANNR,0x00);
474 1 halSpiWriteReg(CCxxx0_DEVIATN,0x01);
475 1 halSpiWriteReg(CCxxx0_FREND1,0xB6);
476 1 halSpiWriteReg(CCxxx0_FREND0,0x10);
477 1 halSpiWriteReg(CCxxx0_MCSM0,0x18);
478 1 halSpiWriteReg(CCxxx0_FOCCFG,0x1D);
479 1 halSpiWriteReg(CCxxx0_BSCFG,0x1C);
480 1 halSpiWriteReg(CCxxx0_AGCCTRL2,0xC7);
481 1 halSpiWriteReg(CCxxx0_AGCCTRL1,0x00);
482 1 halSpiWriteReg(CCxxx0_AGCCTRL0,0xB0);
483 1
484 1 halSpiWriteReg(CCxxx0_FSCAL3,0xEA);
C51 COMPILER V7.20 MAIN 09/04/2008 13:22:12 PAGE 9
485 1 halSpiWriteReg(CCxxx0_FSCAL2,0x0A);
486 1 halSpiWriteReg(CCxxx0_FSCAL1,0x00);
487 1 halSpiWriteReg(CCxxx0_FSCAL0,0x11);
488 1 halSpiWriteReg(CCxxx0_FSTEST,0x59);
489 1 halSpiWriteReg(CCxxx0_TEST2,0x88);
490 1 halSpiWriteReg(CCxxx0_TEST1,0x31);
491 1 halSpiWriteReg(CCxxx0_TEST0,0x0B);
492 1 halSpiWriteReg(CCxxx0_FIFOTHR,0x07);
493 1 halSpiWriteReg(CCxxx0_IOCFG2,0x29);
494 1 halSpiWriteReg(CCxxx0_IOCFG0,0x06);
495 1 halSpiWriteReg(CCxxx0_PKTCTRL1,0x04);
496 1 halSpiWriteReg(CCxxx0_PKTCTRL0,0x05);
497 1 halSpiWriteReg(CCxxx0_ADDR,0x00);
498 1 halSpiWriteReg(CCxxx0_PKTLEN,0xFF);
499 1
500 1 // 校正
501 1 halSpiStrobe(CCxxx0_SCAL);
502 1 while(halSpiReadStatus(CCxxx0_FSCAL1) == 0x3F);
503 1
504 1 // 清空RX FIFO Buffer
505 1 halSpiStrobe(CCxxx0_SFRX);
506 1
507 1
508 1 // 进入接收状态
509 1 halSpiStrobe(CCxxx0_SRX);
510 1 }
511 //************************************************************************************//
512 /////////////////////////////LCD12864
513 //************************************************************************************//
514 unsigned char code font1[]=
515 {
516 0x40,0x44,0x4C,0x7D,0x77,0x66,0x7C,0x5C,
517 0x44,0xFE,0xFE,0x42,0x62,0xFA,0x9E,0x06,
518 0x00,0x00,0x7E,0x7E,0x22,0x22,0x22,0x7E,
519 0x7E,0xFF,0xFF,0x08,0x08,0x18,0x1F,0x0F,/*"部",0*/
520
521 0x00,0x00,0xF8,0xF9,0x07,0x06,0x02,0x02,
522 0x02,0x02,0x02,0x02,0x02,0xFE,0xFE,0x00,
523 0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,
524 0x00,0x00,0x00,0x40,0xC0,0xFF,0x7F,0x00,/*"门",1*/
525 };
526 void Delay(unsigned int n)
527 {
528 1 while(n--);
529 1 return;
530 1 }
531 void Write_Data(uchar dat)
532 {
533 1 uchar i;
534 1 SCLK = 1;
535 1 SCLK = 0;
536 1 CS1 = 0;
537 1 A0 = 1;
538 1 for(i=0;i<8;i++)
539 1 {
540 2 SID = dat & 0x80;//取最高位
541 2 SCLK = 1;
542 2 SCLK = 0;
543 2 dat <<= 1;//左移
544 2 }
545 1 CS1 = 1;
546 1 return;
C51 COMPILER V7.20 MAIN 09/04/2008 13:22:12 PAGE 10
547 1 }
548
549 void Write_Instruction(uchar cmd)
550 {
551 1 uchar i;
552 1 SCLK = 1;
553 1 SCLK = 0;
554 1 CS1 = 0;
555 1 A0 = 0;
556 1 for(i=0;i<8;i++)
557 1 {
558 2 SID = cmd & 0x80;//取最高位
559 2 SCLK = 1;
560 2 SCLK = 0;
561 2 cmd <<= 1;//左移
562 2 }
563 1 CS1 = 1;
564 1 return;
565 1 }
566
567 void Initial_Dispay_Line(unsigned char line)
568 {
569 1 line|=0x40;
570 1 Write_Instruction(line);
571 1 return;
572 1 }
573 void Set_Page_Address(unsigned char add)
574 {
575 1 add=0xb0|add;
576 1 Write_Instruction(add);
577 1 return;
578 1 }
579 void Set_Column_Address(unsigned char add)
580 {
581 1 Write_Instruction((0x10|(add>>4)));
582 1 Write_Instruction((0x0f&add));
583 1 return;
584 1 }
585 void Power_Control(unsigned char vol)
586 {
587 1 Write_Instruction((0x28|vol));
588 1 return;
589 1 }
590 void Regulor_Resistor_Select(unsigned char r)
591 {
592 1 Write_Instruction((0x20|r));
593 1 return;
594 1 }
595 void Set_Contrast_Control_Register(unsigned char mod)
596 {
597 1 Write_Instruction(0x81);
598 1 Write_Instruction(mod);
599 1 return;
600 1 }
601 void LcmClear( void )
602 {
603 1 uchar i,j;
604 1 Write_Instruction(0x40); //Set Display Start Line = com0
605 1 for(i=0;i<8;i++)
606 1 {
607 2 Write_Instruction(0xB0|ComTable[i]); //Set Page Address
608 2 Write_Instruction(0x10); //Set Column Address = 0
C51 COMPILER V7.20 MAIN 09/04/2008 13:22:12 PAGE 11
609 2 Write_Instruction(0x01); //Colum from 1 -> 129 auto add
610 2 for(j=0;j<128;j++)
611 2 {
612 3 Write_Data( 0 );
613 3 }
614 2 }
615 1 }
616 void Initial(void)
617 {
618 1 P0M1 =0x00;
619 1 P0M2 =0x00;
620 1 P1M1 =0x00;
621 1 P1M2 =0x00;
622 1 P2M1 =0x00;
623 1 P2M2 =0x00;
624 1 RESET();
625 1 Delay(10000);
626 1 CS1=0;
627 1 CLEAR_ADC();
628 1 SET_SHL();
629 1 SET_BIAS();
630 1 Power_Control(0x07);
631 1 Regulor_Resistor_Select(0x03);
632 1 Set_Contrast_Control_Register(0x0a);//NT7534绿0x28//ST7565蓝0x0a
633 1 Initial_Dispay_Line(0x00);
634 1 DISPLAY_ON();
635 1 }
636
637 void Display_Chinese(unsigned char ft[],uchar x,uchar y)
638 {
639 1 unsigned char i,j,k,num=0;
640 1 i=x;
641 1 for(i;i<x+2;i++) //行
642 1 {
643 2 num=i<<7;
644 2 num=num>>3;
645 2 Set_Page_Address(i);
646 2 Set_Column_Address(y);//列地址
647 2 for(j=0;j<0x02;j++)//行字数
648 2 {
649 3 for(k=0;k<0x10;k++)
650 3 {
651 4 Write_Data(ft[num+k]);
652 4 }
653 3 num+=0x20;
654 3 }
655 2 }
656 1 return;
657 1 }
658
659 void main()
660 {
661 1 uchar len,old_Count;
662 1 Initial();
663 1 Delay(1000);
664 1 LcmClear();
665 1 Display_Chinese(font1,4,2);
666 1
667 1 SPI_Master_Init();
668 1 cc2500_init();
669 1 old_Count = 0x00;
670 1 len=sizeof(package)+1;
C51 COMPILER V7.20 MAIN 09/04/2008 13:22:12 PAGE 12
671 1 while(1)
672 1 {
673 2 len=halSpiReadStatus(CCxxx0_RXBYTES);
674 2 // old_Count =halSpiReadStatus(CCxxx0_MARCSTATE);
675 2 if(halRfReceivePacket(package,PACKAGE_LEN))
676 2 {
677 3 //检测CC2500是否接收到数据包
678 3 // 接收数据
679 3
680 3 // halSpiReadBurstReg(CCxxx0_RXFIFO, (uchar *)package, 0x64);
681 3
682 3 Display_Chinese(package,6,32);
683 3 }
684 2
685 2 //进入空闲模式
686 2 halSpiStrobe(CCxxx0_SIDLE);
687 2 // 清空接收FIFO Buffer
688 2 halSpiStrobe(CCxxx0_SFRX);
689 2 // 进入接收状态
690 2 halSpiStrobe(CCxxx0_SRX);
691 2
692 2 }
693 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1170 ----
CONSTANT SIZE = 72 ----
XDATA SIZE = 64 ----
PDATA SIZE = ---- ----
DATA SIZE = 64 31
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 + -