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

📄 c1335_driver.lst

📁 需要控制320*240的lcd的朋友可以看看
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   C1335_DRIVER                                                          08/03/2007 15:37:15 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE C1335_DRIVER
OBJECT MODULE PLACED IN c1335_driver.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE c1335_driver.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include        "..\uv2_prj\config.h"
*** WARNING C318 IN LINE 1 OF c1335_driver.c: can't open file '..\uv2_prj\config.h'
   2          #include "config.h"    
   3          #include        "c1335_define.h"
   4          #include        "c1335_driver.h"
   5          #include        "c1335_font.h"
   6          
   7          //#include<math.h>   
   8          //#include<intrins.h>
   9          #define paraP9          0x28            // 相对于320 X 240
  10          unsigned char   code    OnlyBitTable[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; 
  11          /*======================================================================**
  12          **函 数 名:void DispBitmap(uchar *addr,uchar LineX,uchar RowY);        **
  13          **功能介绍:显示 2 区图形方式显示16*16汉字                              **
  14          **传人参数:汉字字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39)       **
  15          **                                                                      **
  16          **======================================================================*/
  17          void DispBitmap(        unsigned char *addr,
  18                                                  unsigned char X,
  19                                                  unsigned char Y,
  20                                                  unsigned char color, 
  21                                                  unsigned char Length) 
  22          {
  23   1              unsigned char i; 
  24   1              unsigned int XYtemp;
  25   1              i = color;
  26   1              XYtemp = Y * 40 + X+BasePart2*256;              //计算显示位置
  27   1              WriteCMD(CSR_DIR_D);
  28   1              WriteCMD(CSR_W);
  29   1              WriteDATA((unsigned char)XYtemp);
  30   1              WriteDATA((unsigned char)(XYtemp >> 8));
  31   1              WriteCMD(MEM_WRITE);
  32   1              for(i=0;i<Length;i++,addr++)
  33   1              {                
  34   2              if(!color)      WriteDATA(*addr);
  35   2                      else        WriteDATA(~(*addr));
  36   2              } 
  37   1      }
  38          void DispCHAR_16x8(     unsigned char *addr,
  39                                                  unsigned char X,
  40                                                  unsigned char Y,
  41                                                  unsigned char color) 
  42          {
  43   1              DispBitmap(addr,X,Y,color,16);
  44   1      }
  45          /*======================================================================**
  46          **函 数 名:void DispHZ_16_16(uchar *addr,uchar LineX,uchar RowY);      **
  47          **功能介绍:显示 2 区图形方式显示16*16汉字                              **
  48          **传人参数:汉字字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39)       **
  49          **                                                                      **
  50          **======================================================================*/
  51          void DispHZ_16_16(      unsigned char *addr,
  52                                                  unsigned char X,
  53                                                  unsigned char Y,
  54                                                  unsigned char color) 
C51 COMPILER V7.50   C1335_DRIVER                                                          08/03/2007 15:37:15 PAGE 2   

  55          {  
  56   1              DispBitmap(addr,                X,              Y,              color,16);
  57   1              DispBitmap(addr+16,             X+1,    Y,              color,16);
  58   1      }
  59                  
  60          /*======================================================================**
  61          **函 数 名:Disp_ASCII(uchar *addr,uchar LineX,uchar RowY,bit Inverse); **
  62          **功能介绍:显示 2 区图形方式显示ASCII,要求以'\0'结尾                   **
  63          **传人参数:ASCII字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39)      **
  64          **              -----(bit)Inverse,正常显示(0),反白显示(1)  ---          **
  65          ========================================================================*/
  66          void DispASCIIStr(      unsigned char *addr,
  67                                                  unsigned char X,
  68                                                  unsigned char Y,
  69                                                  unsigned char color)
  70          {     
  71   1              unsigned int    p;
  72   1      
  73   1              for ( ;*addr != 0;addr++ )
  74   1              {
  75   2                      if(*addr < 0x80)//ASICII 字符
  76   2                      {
  77   3                              p = (*addr - 0x20)*16 ;         
  78   3                              DispCHAR_16x8(ASCII_16+p,X,Y,color);    //DispCHAR_16x8(&Ascii_16[p],Y0,X0,color);   
  79   3                              X++;
  80   3                      }
  81   2                      else    // >=0x80,汉字
  82   2                      {
  83   3                              p = (*addr - 0x80)*32 ;         
  84   3                              DispHZ_16_16(HZ_16X16+p,X,Y,color);     //DispCHAR_16x8(&Ascii_16[p],Y0,X0,color);   
  85   3                              X +=2;
  86   3                      }
  87   2              }   
  88   1      }
  89          void    NumberToChar(unsigned int       nDecadeData,
  90                                                   unsigned char * pChar,
  91                                                   unsigned char Length)
  92          {
  93   1              unsigned char   uc;
  94   1              for (uc = Length;uc ; )
  95   1              {
  96   2                      pChar[--uc] = nDecadeData%10 + 0x30;
  97   2                      nDecadeData /=10;
  98   2              }
  99   1      }
 100          #define memset(x,y,z);          
 101          /*======================================================================**
 102          **函 数 DispBmp16x24(uchar *addr,uchar X,uchar Y,color);                        **
 103          **功能介绍:显示 2 区图形方式显示位图                                                   **
 104          **传人参数:    **
 105          **              -----color,正常显示(0),反白显示(1)  ---         **
 106          ========================================================================*/
 107          void    DispDecimalNum( unsigned int    nDecadeData,
 108                                                          unsigned char   X,
 109                                                          unsigned char   Y,
 110                                                          unsigned char   Length,
 111                                                          unsigned char   color)
 112          {
 113   1              unsigned char   ucTemp[5];
 114   1              memset(ucTemp,0,sizeof(ucTemp));
 115   1              NumberToChar(nDecadeData,ucTemp,Length);
 116   1              DispASCIIStr(ucTemp,X,Y,color);
C51 COMPILER V7.50   C1335_DRIVER                                                          08/03/2007 15:37:15 PAGE 3   

 117   1      }
 118          /*======================================================================**
 119          **函 数 DispBmp16x24(uchar *addr,uchar X,uchar Y,color);                        **
 120          **功能介绍:显示 2 区图形方式显示位图                                                   **
 121          **传人参数:    **
 122          **              -----color,正常显示(0),反白显示(1)  ---         **
 123          ========================================================================*/
 124          void    DispBmp16x24(unsigned char *addr,
 125                                                  unsigned char X,
 126                                                  unsigned char Y,
 127                                                  unsigned char color) 
 128          {
 129   1              DispBitmap(addr,                X,              Y,              color,16);
 130   1              DispBitmap(addr+16,             X+1,    Y,              color,16);
 131   1              DispBitmap(addr+16+16,  X+2,    Y,              color,16);
 132   1      }
 133          
 134          void    HorLine(unsigned        char Data,
 135                                          unsigned        char X,
 136                                          unsigned        char Y,
 137                                          unsigned        char Length)
 138          {
 139   1              unsigned char   i;
 140   1              unsigned int   XYtemp;  
 141   1          XYtemp  =  (Y) * 40 + X + BasePart2*256;
 142   1              WriteCMD(CSR_DIR_R);
 143   1          WriteCMD(CSR_W);
 144   1              WriteDATA((unsigned char)XYtemp);
 145   1              WriteDATA((unsigned char)(XYtemp >> 8));
 146   1              WriteCMD(MEM_WRITE);
 147   1              for(i=0;i<Length;i++)
 148   1                              WriteDATA(Data);
 149   1      }
 150          void    VerLine(unsigned        char Data,
 151                                          unsigned        char X,
 152                                          unsigned        char Y,
 153                                          unsigned        char Length)
 154          {
 155   1              unsigned char   i;
 156   1              unsigned int   XYtemp;  
 157   1          XYtemp  =  (Y) * 40 + X + BasePart2*256;
 158   1              WriteCMD(CSR_DIR_D);
 159   1          WriteCMD(CSR_W);
 160   1              WriteDATA((unsigned char)XYtemp);
 161   1              WriteDATA((unsigned char)(XYtemp >> 8));
 162   1              WriteCMD(MEM_WRITE);
 163   1              for(i=0;i<Length;i++)
 164   1                              WriteDATA(Data);
 165   1      }
 166          /*=================================================================**
 167          **函 数 名:void DrawRect(unsigned int X,unsigned  char Y,unsigned char attr);**
 168          **功能介绍:在(x,y)坐标绘制一个点。x=[0,319],y=[0,239]                     **
 169          **传人参数:attr是 (1)画点,(0)消点                   **
 170          ===================================================================*/
 171          void    DrawRect(unsigned int X,unsigned  char Y,unsigned char attr)
 172          {
 173   1              unsigned char   i,Data;
 174   1              if(attr)        Data = 0xc0;
 175   1              else            Data = 0x00;
 176   1              VerLine(Data,X,         Y,24);
 177   1      
 178   1              if(attr)        Data = 0x03;
C51 COMPILER V7.50   C1335_DRIVER                                                          08/03/2007 15:37:15 PAGE 4   

 179   1              else            Data = 0x00;
 180   1              VerLine(Data,X+4,       Y,24);
 181   1      
 182   1              if(attr)        Data = 0xff;
 183   1              else            Data = 0x00;
 184   1              for(i=0;i<2;i++)                
 185   1                      HorLine(Data,X,Y+i,5);
 186   1              for(i=22;i<24;i++)              
 187   1                      HorLine(Data,X,Y+i,5);
 188   1      }
 189          /*======================================================================**
 190          **函 数 名:DispRegNO(RowX,ColumnY,X,Y);                                                        **
 191          **功能介绍:显示 2 区图形方式显示ASCII,要求以'\0'结尾                   **
 192          **传人参数:ASCII字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39)      **
 193          **              -----(bit)Inverse,正常显示(0),反白显示(1)  ---          **
 194          ========================================================================*/
 195          void DispRegNO(         unsigned char RowX,
 196                                                  unsigned char ColumnY,
 197                                                  unsigned char X,
 198                                                  unsigned char Y,
 199                                                  unsigned char color)
 200          {     
 201   1              unsigned int    p;
 202   1              unsigned char   ucTemp;
 203   1              ucTemp = ColumnY*12 +RowX;
 204   1              if(ucTemp < 31)
 205   1              {
 206   2                      p = 32*ucTemp;  
 207   2                      DispHZ_16_16(PROVINCE_NAME+p,X,Y,color);                
 208   2              }
 209   1              else if ((ucTemp > 30)&&(ucTemp < 72))
 210   1              {
 211   2                      if(ucTemp < 46)         p = (ucTemp-20)*16;
 212   2                      else                            p = (ucTemp-13)*16 ;
 213   2                      DispCHAR_16x8(ASCII_16+p,X,Y,color); 
 214   2              }
 215   1      }
 216          /*======================================================================**
 217          **函 数 名:initLCD();                                                                                                  **
 218          **功能介绍:初始化LCD                                                                                                   **
 219          **传人参数:无                                                                                                                  **
 220          **                                                                                                                                              .
 221          0**
 222          **======================================================================*/
 223          void initLCD()
 224          {
 225   1              unsigned  int i; 
 226   1      
 227   1              C8155=0x02; //B output,C&A input
 228   1              C8155=0x02; //B output,C&A input
 229   1      
 230   1              WriteCMD(SYSTEM_SET);//C1335=0x40;
 231   1              for(i=0;i<8;i++)
 232   1              {
 233   2              WriteDATA(SYSTEMSET_PARAM[i]);//D1335 = SYS_PARA_TABLE8[i];
 234   2              }
 235   1              WriteCMD(SCROLL);//C1335=0x44;
 236   1              for(i=0;i<10;i++)
 237   1              {

⌨️ 快捷键说明

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