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

📄 2.4

📁 ILI9325彩屏调试
💻 4
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V9.00   9325TP                                                                09/01/2012 08:49:32 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE 9325TP
OBJECT MODULE PLACED IN 9325TP.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE 9325TP.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*----------------------------------------------------------------
   2           320x240彩屏液晶驱动程序
   3          ----------------------------------------------------------------*/
   4          #include"9325tp.h"
   5          #include"reg52.h"
   6          /*----------------------------------------------------------------
   7                                      全局变量
   8          ----------------------------------------------------------------*/
   9          #define WINDOW_XADDR_START      0x0050 // Horizontal Start Address Set
  10          #define WINDOW_XADDR_END        0x0051 // Horizontal End Address Set
  11          #define WINDOW_YADDR_START      0x0052 // Vertical Start Address Set
  12          #define WINDOW_YADDR_END        0x0053 // Vertical End Address Set
  13          #define GRAM_XADDR                  0x0020 // GRAM Horizontal Address Set
  14          #define GRAM_YADDR                  0x0021 // GRAM Vertical Address Set
  15          #define GRAMWR                      0x0022 // memory write
  16          
  17          #define DataPort P0                //数据口使用DataPort
  18          
  19          /*----------------------------------------------------------------
  20                                     定义硬件端口
  21          ----------------------------------------------------------------*/
  22          sbit CS=P2^2;           //片选
  23          sbit RES=P2^1;          //复位
  24          sbit RS=P2^4;           //数据/命令选择
  25          sbit RW=P2^5;
  26          /*----------------------------------------------------------------
  27                                     清屏函数
  28          输入参数:bColor 清屏所使用的背景色
  29          ----------------------------------------------------------------*/
  30          void CLR_Screen(unsigned int bColor)
  31          {
  32   1       unsigned int i,j;
  33   1       LCD_SetPos(0,240,0,320);//320x240
  34   1       for (i=0;i<320;i++)
  35   1              {
  36   2              
  37   2                 for (j=0;j<240;j++)
  38   2                     Write_Data_U16(bColor);
  39   2      
  40   2              }
  41   1      }
  42          /*----------------------------------------------------------------
  43                                      显示英文字符
  44          输入参数:x 横坐标
  45                    y 纵坐标
  46                            c 需要显示的字符
  47                            fColor 字符颜色
  48                            bColor 字符背景颜色
  49          ----------------------------------------------------------------*/
  50          #include "8X16.h"
  51          void LCD_PutChar8x16(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor)
  52          {
  53   1       unsigned int i,j;
  54   1       LCD_SetPos(x,x+8-1,y,y+16-1);
  55   1       for(i=0; i<16;i++) {
C51 COMPILER V9.00   9325TP                                                                09/01/2012 08:49:32 PAGE 2   

  56   2                      unsigned char m=Font8x16[c*16+i];
  57   2                      for(j=0;j<8;j++) {
  58   3                              if((m&0x80)==0x80) {
  59   4                                      Write_Data_U16(fColor);
  60   4                                      }
  61   3                              else {
  62   4                                      Write_Data_U16(bColor);
  63   4                                      }
  64   3                              m<<=1;
  65   3                              }
  66   2                      }
  67   1      }
  68          
  69          /*----------------------------------------------------------------
  70                                      显示英文字符
  71          输入参数:x 横坐标
  72                    y 纵坐标
  73                            c 需要显示的字符
  74                            fColor 字符颜色
  75                            bColor 字符背景颜色
  76          ----------------------------------------------------------------*/
  77          void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor) {
  78   1      
  79   1                      LCD_PutChar8x16( x, y, c, fColor, bColor );
  80   1              }
  81          
  82          /*----------------------------------------------------------------
  83                                      显示汉字
  84          输入参数:x 横坐标
  85                    y 纵坐标
  86                            c 需要显示的汉字码
  87                            fColor 字符颜色
  88                            bColor 字符背景颜色
  89          ----------------------------------------------------------------*/
  90          #include "GB1616.h"     //16*16汉字字模
  91          
  92          void PutGB1616(unsigned short x, unsigned short  y, unsigned char c[2], unsigned int fColor,unsigned int b
             -Color){
  93   1              unsigned int i,j,k;
  94   1      
  95   1              LCD_SetPos(x,  x+16-1,y, y+16-1);
  96   1      
  97   1              for (k=0;k<64;k++) { //64标示自建汉字库中的个数,循环查询内码
  98   2                if ((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])){ 
  99   3              for(i=0;i<32;i++) {
 100   4                        unsigned short m=codeGB_16[k].Msk[i];
 101   4                        for(j=0;j<8;j++) {
 102   5                              if((m&0x80)==0x80) {
 103   6                                      Write_Data_U16(fColor);
 104   6                                      }
 105   5                              else {
 106   6                                      Write_Data_U16(bColor);
 107   6                                      }
 108   5                              m<<=1;
 109   5                              } 
 110   4                        }
 111   3                      }  
 112   2                }     
 113   1      }
 114          /*----------------------------------------------------------------
 115                                      显示字符串
 116          可以中英文同时显示
C51 COMPILER V9.00   9325TP                                                                09/01/2012 08:49:32 PAGE 3   

 117          输入参数:x 横坐标
 118                    y 纵坐标
 119                            *s 需要显示的字符串
 120                            fColor 字符颜色
 121                            bColor 字符背景颜色
 122          ----------------------------------------------------------------*/
 123          void LCD_PutString(unsigned short x, unsigned short y, unsigned char *s, unsigned int fColor, unsigned int
             - bColor) {
 124   1               unsigned char l=0;
 125   1              while(*s) {
 126   2                      if( *s < 0x80) 
 127   2                          {
 128   3                              LCD_PutChar(x+l*8,y,*s,fColor,bColor);
 129   3                              s++;l++;
 130   3                              }
 131   2                      else
 132   2                          {
 133   3                              PutGB1616(x+l*8,y,(unsigned char*)s,fColor,bColor);
 134   3                              s+=2;l+=2;
 135   3                              }
 136   2                      }
 137   1              }
 138          /*----------------------------------------------------------------
 139                                      显示RGB颜色
 140          输入参数:x0,y0 起始坐标
 141                    x1,y1 结束坐标
 142                            Color  背景颜色
 143          ----------------------------------------------------------------*/
 144          void Show_RGB (unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1,unsigned int Color)
 145          {
 146   1              unsigned int i,j;
 147   1              LCD_SetPos(x0,x1,y0,y1);
 148   1              for (i=y0;i<=y1;i++)
 149   1              {
 150   2                 for (j=x0;j<=x1;j++)
 151   2                     Write_Data_U16(Color);
 152   2      
 153   2              }
 154   1      }
 155          /*----------------------------------------------------------------
 156                                      显示图片
 157          图片必须是320x240,否则不能正确识别
 158          ----------------------------------------------------------------*/
 159          /*void show_photo(void)
 160          {
 161                  unsigned char j;
 162                  unsigned int i;
 163                  unsigned long s=0;
 164          
 165                  LCD_SetPos(0,240,0,320);//320x240
 166          
 167                  for (i=0;i<75;i++)
 168                  {
 169                  for (j=0;j<240;j++)
 170                  Write_Data(0xff,0xff);
 171                          
 172                  }
 173          
 174                  for (i=0;i<170;i++)
 175                  {
 176                  for (j=0;j<55;j++)
 177                          Write_Data(0xff,0xff);
C51 COMPILER V9.00   9325TP                                                                09/01/2012 08:49:32 PAGE 4   

 178          
 179                          for (j=0;j<130;j++)
 180                          Write_Data(pic[s++],pic[s++]);
 181                          
 182                          for (j=0;j<55;j++)
 183                          Write_Data(0xff,0xff);
 184                  }
 185          
 186              for (i=0;i<75;i++)
 187                  {
 188                  for (j=0;j<240;j++)
 189                  Write_Data(0xff,0xff);
 190                          
 191                  }
 192          }
 193          */
 194          /*----------------------------------------------------------------
 195                                   写命令、写数据
 196          输入参数:x 需要输入的命令 16位
 197                    y 需要输入的数据 16位
 198          ----------------------------------------------------------------*/
 199          void  Write_Cmd_Data (unsigned char x,unsigned int y)
 200          {
 201   1              unsigned char m,n;
 202   1              m=y>>8;
 203   1              n=y;
 204   1              Write_Cmd(0x00,x);
 205   1              Write_Data(m,n);
 206   1      
 207   1      }
 208          
 209          /*----------------------------------------------------------------
 210                                   写16位数据
 211          ----------------------------------------------------------------*/
 212          void  Write_Data_U16(unsigned int y)
 213          {
 214   1              unsigned char m,n;
 215   1              m=y>>8;
 216   1              n=y;
 217   1              Write_Data(m,n);
 218   1      
 219   1      }
 220          /*----------------------------------------------------------------
 221                                     写命令
 222          ----------------------------------------------------------------*/
 223          
 224          void Write_Cmd(unsigned char DH,unsigned char DL)
 225          {
 226   1              CS=0;
 227   1              RS=0;
 228   1      
 229   1              DataPort=DH;
 230   1              RW=0;
 231   1              RW=1;
 232   1      
 233   1              DataPort=DL;
 234   1              
 235   1              RW=0;
 236   1              RW=1;
 237   1              CS=1;
 238   1      }
 239          
C51 COMPILER V9.00   9325TP                                                                09/01/2012 08:49:32 PAGE 5   

 240          /*----------------------------------------------------------------
 241                                     写数据 双8位
 242          ----------------------------------------------------------------*/
 243          
 244          void Write_Data(unsigned char DH,unsigned char DL)
 245          {
 246   1              
 247   1              CS=0;
 248   1              
 249   1              RS=1;
 250   1              DataPort=DH;
 251   1              RW=0;
 252   1          RW=1;
 253   1      
 254   1              DataPort=DL;    
 255   1              RW=0;
 256   1              RW=1;
 257   1              CS=1;
 258   1      }
 259          /*----------------------------------------------------------------
 260                                  延时函数
 261          ----------------------------------------------------------------*/
 262          void delayms(unsigned int count)
 263          {
 264   1          int i,j;                                                                                
 265   1          for(i=0;i<count;i++)                                                                    
 266   1             {
 267   2                   for(j=0;j<260;j++);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -