⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 st7565P,nt7534液晶控制芯片在128X64点阵下的51环境液晶驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -