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

📄 sc52x+

📁 SC52X开发板1.8寸SPI彩屏
💻
字号:
C51 COMPILER V6.12  ST7735                                                                 08/09/2012 16:08:04 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE ST7735
OBJECT MODULE PLACED IN .\Out Hex\ST7735.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Program\ST7735.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Out Hex\ST7735.lst) OBJE
                    -CT(.\Out Hex\ST7735.obj) 

stmt level    source

   1          
   2          //     
   3          /***************************************************/
   4          
   5          #include<reg51.h>
   6          #include<absacc.h>
   7          #include<intrins.h>
   8          #include<string.h>
   9          #define uchar unsigned char
  10          #define uint unsigned int
  11          
  12          sbit cs        =P0^3;	//片选
  13          sbit rs        =P0^0;	//数据或命令选择
  14          sbit sda       =P0^1;	//数据总线
  15          sbit scl       =P0^2;	//时钟总线
  16          sbit reset     =P1^7;  //复位
  17          
  18          
  19          sbit WM=P1^0;	       //数码管使能
  20          sbit DM2=P1^1;		   //数码管使能
  21          sbit LSD=P1^2;		   //流水灯管使能
  22          sbit DZ=P1^3;		   //点阵使能
  23          
  24          
  25          uchar bdata bitdata;
  26          sbit bit7=bitdata^7;
  27          sbit bit6=bitdata^6;
  28          sbit bit5=bitdata^5;
  29          sbit bit4=bitdata^4;
  30          sbit bit3=bitdata^3;
  31          sbit bit2=bitdata^2;
  32          sbit bit1=bitdata^1;
  33          sbit bit0=bitdata^0;
  34          
  35          void delay(uint time)
  36          {
  37   1       uint i,j;
  38   1        for(i=0;i<time;i++)
  39   1         for(j=0;j<250;j++);
  40   1      }
  41          
  42          void LCD_commandWrite_IC(uchar c)
  43          {
  44   1      bitdata=c;
  45   1      cs=0;
  46   1      rs=0;
  47   1      sda=bit7;scl=0;scl=1;
  48   1      sda=bit6;scl=0;scl=1;
  49   1      sda=bit5;scl=0;scl=1;
  50   1      sda=bit4;scl=0;scl=1;
  51   1      sda=bit3;scl=0;scl=1;
  52   1      sda=bit2;scl=0;scl=1;
  53   1      sda=bit1;scl=0;scl=1;
  54   1      sda=bit0;scl=0;scl=1;
C51 COMPILER V6.12  ST7735                                                                 08/09/2012 16:08:04 PAGE 2   

  55   1      cs=1;
  56   1      
  57   1      
  58   1      }
  59          void  LCD_DataWrite_IC(uchar d)  
  60          {
  61   1      
  62   1      bitdata=d;
  63   1      cs=0;
  64   1      rs=1;
  65   1      sda=bit7;scl=0;scl=1;
  66   1      sda=bit6;scl=0;scl=1;
  67   1      sda=bit5;scl=0;scl=1;
  68   1      sda=bit4;scl=0;scl=1;
  69   1      sda=bit3;scl=0;scl=1;
  70   1      sda=bit2;scl=0;scl=1;
  71   1      sda=bit1;scl=0;scl=1;
  72   1      sda=bit0;scl=0;scl=1;
  73   1      cs=1;
  74   1      }
  75          
  76          void LCD_DataWrite(uchar LCD_DataH,uchar LCD_DataL)
  77          {
  78   1      LCD_DataWrite_IC(LCD_DataH);
  79   1      LCD_DataWrite_IC(LCD_DataL);
  80   1      }
  81          
  82          
  83          void  write_command(uchar c)
  84          {
  85   1      bitdata=c;
  86   1      cs=0;
  87   1      rs=0;
  88   1      sda=bit7;scl=0;scl=1;
  89   1      sda=bit6;scl=0;scl=1;
  90   1      sda=bit5;scl=0;scl=1;
  91   1      sda=bit4;scl=0;scl=1;
  92   1      sda=bit3;scl=0;scl=1;
  93   1      sda=bit2;scl=0;scl=1;
  94   1      sda=bit1;scl=0;scl=1;
  95   1      sda=bit0;scl=0;scl=1;
  96   1      cs=1;      
  97   1      }
  98          
  99          void  write_data(uchar d)
 100          {
 101   1      bitdata=d;
 102   1      cs=0;
 103   1      rs=1;
 104   1      sda=bit7;scl=0;scl=1;
 105   1      sda=bit6;scl=0;scl=1;
 106   1      sda=bit5;scl=0;scl=1;
 107   1      sda=bit4;scl=0;scl=1;
 108   1      sda=bit3;scl=0;scl=1;
 109   1      sda=bit2;scl=0;scl=1;
 110   1      sda=bit1;scl=0;scl=1;
 111   1      sda=bit0;scl=0;scl=1;
 112   1      cs=1;
 113   1      }
 114          
 115          						  //TFT初始化设置
 116          
C51 COMPILER V6.12  ST7735                                                                 08/09/2012 16:08:04 PAGE 3   

 117          //////////////////////////////////////////////////////////////////////////////////////////////
 118          
 119          void lcd_initial()
 120          {
 121   1      
 122   1         reset=0;
 123   1         delay(100);
 124   1         reset=1;
 125   1         delay(100);
 126   1       
 127   1      //------------------------------------------------------------------//  
 128   1      //-------------------Software Reset-------------------------------//
 129   1      
 130   1      write_command(0x11);//Sleep exit 
 131   1      delay (120);
 132   1       
 133   1      //ST7735R Frame Rate  帧速率设置
 134   1      write_command(0xB1); //正常模式全色彩
 135   1      write_data(0x02); write_data(0x2C); write_data(0x2D); 
 136   1      write_command(0xB2);//在待机模式
 137   1      write_data(0x02); write_data(0x2C); write_data(0x2D); 
 138   1      write_command(0xB3);//在部分模式全彩 
 139   1      write_data(0x02); write_data(0x2C); write_data(0x2D); 
 140   1      write_data(0x02); write_data(0x2C); write_data(0x2D); 
 141   1      
 142   1      write_command(0xB4); //Column inversion  显示逆控制 
 143   1      write_data(0x07); 
 144   1       
 145   1      //ST7735R Power Sequence
 146   1      write_command(0xC0);//功率控制1
 147   1      write_data(0xA2); write_data(0x02); write_data(0x84); 
 148   1      write_command(0xC1); write_data(0xC5); //功率控制2
 149   1      write_command(0xC2); //功率控制3 (正常模式/全彩)
 150   1      write_data(0x06); write_data(0x00); 
 151   1      write_command(0xC3);//控制功率4在空闲模式
 152   1      write_data(0x8A); write_data(0x2A); 
 153   1      write_command(0xC4);//功率控制5在部分模式/全彩
 154   1      write_data(0x8A); write_data(0xEE); 
 155   1       
 156   1      write_command(0xC5); //VCOM 控制11
 157   1      write_data(0x0E); 
 158   1       
 159   1      write_command(0x36); //MX, MY, RGB mode 
 160   1      write_data(0xC8); 
 161   1      
 162   1      //ST7735R Gamma Sequence +伽码校正特性设置
 163   1      write_command(0xe0); 
 164   1      write_data(0x0f); write_data(0x1a); 
 165   1      write_data(0x0f); write_data(0x18); 
 166   1      write_data(0x2f); write_data(0x28); 
 167   1      write_data(0x20); write_data(0x22); 
 168   1      write_data(0x1f); write_data(0x1b); 
 169   1      write_data(0x23); write_data(0x37); write_data(0x00); 
 170   1      
 171   1      write_data(0x07); 
 172   1      write_data(0x02); write_data(0x10); 
 173   1      write_command(0xe1);//-伽码校正特性设置 
 174   1      write_data(0x0f); write_data(0x1b); 
 175   1      write_data(0x0f); write_data(0x17); 
 176   1      write_data(0x33); write_data(0x2c); 
 177   1      write_data(0x29); write_data(0x2e); 
 178   1      write_data(0x30); write_data(0x30); 
C51 COMPILER V6.12  ST7735                                                                 08/09/2012 16:08:04 PAGE 4   

 179   1      write_data(0x39); write_data(0x3f); 
 180   1      write_data(0x00); write_data(0x07); 
 181   1      write_data(0x03); write_data(0x10);  
 182   1      
 183   1      write_command(0x2a);//列地址设置
 184   1      write_data(0x00);write_data(0x00);
 185   1      write_data(0x00);write_data(0x7f);
 186   1      write_command(0x2b);//行地址设置
 187   1      write_data(0x00);write_data(0x00);
 188   1      write_data(0x00);write_data(0x9f);
 189   1      
 190   1      write_command(0xF0); //Enable test command  使能测试命令
 191   1      write_data(0x01); 
 192   1      write_command(0xF6); //Disable ram power save mode 
 193   1      write_data(0x00); 
 194   1       
 195   1      write_command(0x3A); //65k mode 接口像素格式
 196   1      write_data(0x05);  //18-bit/pixel
 197   1       
 198   1      
 199   1      	write_command(0x29);//Display on
 200   1      }
 201          
 202          
 203          							    //刷屏函数
 204          /***********************************************************************************
 205           ***********************************************************************************
 206           **********************************************************************************/
 207          
 208          void dsp_single_colour(DH,DL)
 209          {
 210   1       uchar i,j;
 211   1       //RamAdressSet();
 212   1       for (i=0;i<160;i++)
 213   1          for (j=0;j<128;j++)
 214   1              LCD_DataWrite(DH,DL);
 215   1      }
 216          
 217          
 218          		   //主函数
 219           /*****************************************************************
 220           *****************************************************************
 221           *****************************************************************/
 222          
 223          main()
 224          {
 225   1      
 226   1        P0=0XFF;
 227   1       WM=DM2=LSD=DZ=0;
 228   1       lcd_initial();
 229   1      
 230   1            while(1)
 231   1        {
 232   2       write_command(0x2C);
 233   2        //  Disp_gradscal(); //灰阶
 234   2         // delay(500); 
 235   2            
 236   2          dsp_single_colour(0x84,0x10);//灰色
 237   2          delay(500);	
 238   2      
 239   2          dsp_single_colour(0xff,0xff);//白色
 240   2          delay(500);	
C51 COMPILER V6.12  ST7735                                                                 08/09/2012 16:08:04 PAGE 5   

 241   2          	
 242   2          dsp_single_colour(0x00,0x00);//黑色
 243   2          delay(500);	
 244   2          	
 245   2          dsp_single_colour(0xf8,0x00);//红色
 246   2          delay(500);	
 247   2          	
 248   2          dsp_single_colour(0x07,0xe0);//绿色
 249   2          delay(500);	
 250   2          	
 251   2          dsp_single_colour(0x00,0x1f);//蓝色
 252   2          delay(500);	
 253   2      
 254   2      	dsp_single_colour(0x07,0xff);//青
 255   2      	delay(500);	
 256   2      
 257   2      	dsp_single_colour(0xff,0xe0);//黄
 258   2      	delay(500);
 259   2      
 260   2      	dsp_single_colour(0x7b,0xef);//紫
 261   2      	delay(500);
 262   2          }
 263   1      
 264   1       }
 265          
 266          
 267          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    902    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       2
   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 + -