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

📄 lcm_drive.lst

📁 * 功能:DP_51PRO实验仪图形液晶显示实验。在屏幕上半部分显示一幅图片 * 在屏幕下半部分显示“重庆科技学院”等
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   LCM_DRIVE                                                             08/21/2007 11:05:02 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCM_DRIVE
OBJECT MODULE PLACED IN LCM_DRIVE.OBJ
COMPILER INVOKED BY: C:\Program Files\kei51\C51\BIN\C51.EXE LCM_DRIVE.c OPTIMIZE(2,SPEED) BROWSE INTVECTOR(0X8000) DEFIN
                    -E(MONITOR51) DEBUG OBJECTEXTEND

line level    source

   1          /***********************************************************************
   2          * 文件名:LCM_DRIVE.C
   3          * 功能:图形液晶TG12864B-2驱动程序。
   4          * 说明:在LCM_DRIVE.H文件中定义了LCM操作地址,左半屏的写命令操作地址为2004H,写
   5          *      数据操作地址为2005H,右半屏的写命令操作地址为2000H,写数据操作地址为2001H;
   6          *      由于GRAPHICS.C中使用了disp_buf作为作图缓冲区,所以LCM_WriteByte()、LCM_
   7          *      DispFill()均要更新disp_buf。
   8          ***********************************************************************/
   9          #include  "CONFIG.H"
  10          uint8 xdata  disp_buf[LCM_YMAX/8][LCM_XMAX];
  11          
  12          /* LCM复位控制脚定义 */
  13          sbit    LCM_RST         = P1^0;                 
  14          
  15          /***********************************************************************
  16          * 名称:LCM_Wr1Command()
  17          * 功能:写命令子程序,所选屏为左半屏(CS1)。
  18          * 入口参数:command     要写入LCM的命令字
  19          ***********************************************************************/
  20          #define LCM_Wr1Command(command)         LCMCS1W_COM = command
  21          
  22          /***********************************************************************
  23          * 名称:LCM_Wr2Command()
  24          * 功能:写命令子程序,所选屏为右半屏(CS2)。
  25          * 入口参数:command     要写入LCM的命令字
  26          ***********************************************************************/
  27          #define LCM_Wr2Command(command)         LCMCS2W_COM = command
  28          
  29          /***********************************************************************
  30          * 名称:LCM_Wr1Data()
  31          * 功能:写数据子程序,所选屏为左半屏(CS1)。
  32          * 入口参数:wrdata      要写入LCM的数据
  33          ***********************************************************************/
  34          #define LCM_Wr1Data(wrdata)             LCMCS1W_DAT = wrdata
  35          
  36          /***********************************************************************
  37          * 名称:LCM_Wr2Data()
  38          * 功能:写数据子程序,所选屏为右半屏(CS2)。
  39          * 入口参数:wrdata      要写入LCM的数据
  40          ***********************************************************************/
  41          #define LCM_Wr2Data(wrdata)             LCMCS2W_DAT = wrdata
  42          
  43          
  44          /***********************************************************************
  45          * 名称:LCM_DispIni()
  46          * 功能:LCM显示初始化。使能显示,设置显示起始行为0并清屏。
  47          * 入口参数:无
  48          * 出口参数:无
  49          ***********************************************************************/
  50          void  LCM_DispIni(void)
  51          {  uint16  i;
  52   1      
  53   1         LCM_RST = 0;                         // 复位驱动芯片
  54   1         for(i=0; i<500; i++);
C51 COMPILER V7.50   LCM_DRIVE                                                             08/21/2007 11:05:02 PAGE 2   

  55   1         LCM_RST = 1;    
  56   1      
  57   1         LCM_Wr1Command(LCM_DISPON);          // 打开显示
  58   1         LCM_Wr1Command(LCM_STARTROW);        // 设置显示起始行为0
  59   1         LCM_Wr2Command(LCM_DISPON);  
  60   1         LCM_Wr2Command(LCM_STARTROW);                
  61   1         LCM_DispClr();                       // 清屏
  62   1              
  63   1         LCM_Wr1Command(LCM_ADDRSTRY+0);      // 设置页(8个行)地址
  64   1         LCM_Wr1Command(LCM_ADDRSTRX+0);      // 设置列地址,即列
  65   1         LCM_Wr2Command(LCM_ADDRSTRY+0);
  66   1         LCM_Wr2Command(LCM_ADDRSTRX+0);
  67   1      }
  68          
  69          /***********************************************************************
  70          * 名称:LCM_DispFill()
  71          * 功能:向显示屏填充数据
  72          * 入口参数:filldata    要写入LCM的填充数据
  73          * 出口参数:无
  74          * 说明:会更新disp_buf相应存储单元
  75          ***********************************************************************/
  76          void  LCM_DispFill(uint8 filldata)
  77          {  uint8  x, y;
  78   1              
  79   1         LCM_Wr1Command(LCM_STARTROW);        // 设置显示起始行为0
  80   1         LCM_Wr2Command(LCM_STARTROW);        
  81   1      
  82   1         for(y=0; y<8; y++)
  83   1         {  LCM_Wr1Command(LCM_ADDRSTRY+y);   // 设置页(8个行)地址
  84   2            LCM_Wr1Command(LCM_ADDRSTRX);     // 设置列地址
  85   2            LCM_Wr2Command(LCM_ADDRSTRY+y);
  86   2            LCM_Wr2Command(LCM_ADDRSTRX);
  87   2         
  88   2            for(x=0; x<64; x++)
  89   2            {  LCM_Wr1Data(filldata);
  90   3               LCM_Wr2Data(filldata);
  91   3               disp_buf[y][x] = filldata;
  92   3               disp_buf[y][x+64] = filldata;
  93   3            } 
  94   2         }
  95   1      }
  96          
  97          
  98          /* ASCII码对应的点阵数据表 */
  99          uint8 code  ASCII_TAB20[80] = { 0x00, 0x00, 0x00, 0x00, 0x00,
 100                                          0x00, 0x00, 0x9e, 0x00, 0x00,
 101                                          0x00, 0x0e, 0x00, 0x0e, 0x00,
 102                                          0x28, 0xfe, 0x28, 0xfe, 0x28,
 103                                          0x48, 0x54, 0xfe, 0x54, 0x24,
 104                                          0x46, 0x26, 0x10, 0xc8, 0xc4,
 105                                          0x6c, 0x92, 0xaa, 0x44, 0xa0,
 106                                          0x00, 0x0a, 0x06, 0x00, 0x00,
 107                                          0x00, 0x38, 0x44, 0x82, 0x00,
 108                                          0x00, 0x82, 0x44, 0x38, 0x00,
 109                                          0x28, 0x10, 0x7c, 0x10, 0x28,
 110                                          0x10, 0x10, 0x7c, 0x10, 0x10,
 111                                          0x00, 0xa0, 0x60, 0x00, 0x00,
 112                                          0x10, 0x10, 0x10, 0x10, 0x10,
 113                                          0x00, 0xc0, 0xc0, 0x00, 0x00,
 114                                          0x40, 0x20, 0x10, 0x08, 0x04
 115                                         };
 116          
C51 COMPILER V7.50   LCM_DRIVE                                                             08/21/2007 11:05:02 PAGE 3   

 117          uint8 code  ASCII_TAB30[80] = { 0x7C, 0xA2, 0x92, 0x8A, 0x7C,   //'0'           
 118                                          0x00, 0x84, 0xFE, 0x80, 0x00,                                   //'1'
 119          /*
 120                  0x00, 0x84, 0xFE, 0x80, 0x00,对应1-5列    
 121                     显示 ' 1 '
 122                    0 1 2 3 4 5 6 7 
 123                  7 .     . .     . .     . .     .
 124                  6 .     . .     1 .     . .     .
 125                  5 .     . 1     1 .     . .     .
 126                  4 .     . .     1 .     . .     .
 127                  3 .     . .     1 .     . .     .
 128                  2 .     . .     1 .     . .     .
 129                  1 .     . .     1 .     . .     .
 130                  0 .     . 1     1 1     . .     .
 131          */
 132          
 133                                          0x84, 0xC2, 0xA2, 0x92, 0x8C,                                   //'2'
 134                                          0x42, 0x82, 0x8A, 0x96, 0x62,                                   //'3'
 135                                          0x30, 0x28, 0x24, 0xFE, 0x20,                                   //'4'
 136                                          0x4E, 0x8A, 0x8A, 0x8A, 0x72,                                   //'5'
 137                                          0x78, 0x94, 0x92, 0x92, 0x60,                                   //'6'
 138                                          0x02, 0xE2, 0x12, 0x0A, 0x06,                                   //'7'
 139                                          0x6C, 0x92, 0x92, 0x92, 0x6C,                                   //'8'
 140                                          0x0C, 0x92, 0x92, 0x52, 0x3C,                                   //'9'
 141                                          0x00, 0x6C, 0x6C, 0x00, 0x00,                   
 142                                          0x00, 0xAC, 0x6C, 0x00, 0x00,                   
 143                                          0x10, 0x28, 0x44, 0x82, 0x00,                   
 144                                          0x28, 0x28, 0x28, 0x28, 0x28,                   
 145                                          0x00, 0x82, 0x44, 0x28, 0x10,                   
 146                                          0x04, 0x02, 0xA2, 0x12, 0x0C
 147                                         };                       
 148          
 149          uint8 code  ASCII_TAB40[80] = { 0x64, 0x92, 0xF2, 0x82, 0x7C,                   
 150                                          0xFC, 0x22, 0x22, 0x22, 0xFC,                   
 151                                          0xFE, 0x92, 0x92, 0x92, 0x6C,                   
 152                                          0x7C, 0x82, 0x82, 0x82, 0x44,                   
 153                                          0xFE, 0x82, 0x82, 0x44, 0x38,           
 154                                          0xFE, 0x92, 0x92, 0x92, 0x82,           
 155                                          0xFE, 0x12, 0x12, 0x12, 0x02,                   
 156                                          0x7C, 0x82, 0x92, 0x92, 0xF4,                   
 157                                          0xFE, 0x10, 0x10, 0x10, 0xFE,           
 158                                          0x00, 0x82, 0xFE, 0x82, 0x00,           
 159                                          0x40, 0x80, 0x82, 0x7E, 0x02,                   
 160                                          0xFE, 0x10, 0x28, 0x44, 0x82,                   
 161                                          0xFE, 0x80, 0x80, 0x80, 0x80,           
 162                                          0xFE, 0x04, 0x18, 0x04, 0xFE,                   
 163                                          0xFE, 0x08, 0x10, 0x20, 0xFE,                   
 164                                          0x7C, 0x82, 0x82, 0x82, 0x7C
 165                                         };
 166          
 167          uint8 code  ASCII_TAB50[80] = { 0xFE, 0x12, 0x12, 0x12, 0x0C,
 168                                          0x7C, 0x82, 0xA2, 0x42, 0xBC,
 169                                          0xFE, 0x12, 0x32, 0x52, 0x8C,                   
 170                                          0x8C, 0x92, 0x92, 0x92, 0x62,                   
 171                                          0x02, 0x02, 0xFE, 0x02, 0x02,   
 172                                          0x7E, 0x80, 0x80, 0x80, 0x7E,
 173                                          0x3E, 0x40, 0x80, 0x40, 0x3E,
 174                                          0x7E, 0x80, 0x70, 0x80, 0x7E,
 175                                          0xC6, 0x28, 0x10, 0x28, 0xC6,
 176                                          0x0E, 0x10, 0xE0, 0x10, 0x0E,
 177                                          0xC2, 0xA2, 0x92, 0x8A, 0x86,
 178                                          0x00, 0xFE, 0x82, 0x82, 0x00,
C51 COMPILER V7.50   LCM_DRIVE                                                             08/21/2007 11:05:02 PAGE 4   

 179                                          0x04, 0x08, 0x10, 0x20, 0x40,
 180                                          0x00, 0x82, 0x82, 0xFE, 0x00,
 181                                          0x08, 0x04, 0x02, 0x04, 0x08,
 182                                          0x80, 0x80, 0x80, 0x80, 0x80
 183                                         };
 184          
 185          uint8 code  ASCII_TAB60[80] = { 0x00, 0x02, 0x04, 0x08, 0x00,
 186                                          0x40, 0xA8, 0xA8, 0xA8, 0xF0,
 187                                          0xFE, 0x90, 0x88, 0x88, 0x70,
 188                                          0x70, 0x88, 0x88, 0x88, 0x40,
 189                                          0x70, 0x88, 0x88, 0x90, 0xFE,
 190                                          0x70, 0xA8, 0xA8, 0xA8, 0x30,

⌨️ 快捷键说明

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