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

📄 cgm12864b.lst

📁 C8051f020在CGM12864B点阵液晶模块上显示两个位图及两个汉字
💻 LST
📖 第 1 页 / 共 3 页
字号:
 172          /*--  文字:  字  --*/
 173          char code Zi[]=
 174          {
 175          0x00,0x00,0x10,0x0C,0x14,0x14,0x14,0x15,0xD6,0x54,0x34,0x14,0x14,0x8C,0x00,0x00,
 176          0x00,0x01,0x01,0x01,0x01,0x01,0x11,0x21,0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
 177          };
 178          //-------------------------------------------------------------------------
 179          //函数名称:      void LCD_WaitReady1(void)
C51 COMPILER V7.05   CGM12864B                                                             02/14/2006 09:35:46 PAGE 4   

 180          //函数功能:      判断LCD是否处于忙状态
 181          //入口参数:      无
 182          //出口参数:      无
 183          //全局变量引用:  无
 184          //调用模块:      _nop_();
 185          //----------------------------------------------------------------------
 186          void LCD_WaitReady1(void) //判断LCD控制芯片KS0108是否忙
 187          {
 188   1              LCD_DATA=0xff;
 189   1              _nop_();
 190   1              LCD_CS2=SELECTCS;
 191   1              LCD_RW=1;
 192   1              LCD_RS=0;
 193   1              LCD_E=1;
 194   1              while (LCD_DATA&0x80);
 195   1              LCD_CS2=!SELECTCS;
 196   1      }
 197          //-------------------------------------------------------------------------
 198          //函数名称:      void LCD_WaitReady2(void)
 199          //函数功能:      判断LCD是否处于忙状态
 200          //入口参数:      无
 201          //出口参数:      无
 202          //全局变量引用:  无
 203          //调用模块:      _nop_();
 204          //----------------------------------------------------------------------
 205          
 206          void LCD_WaitReady2(void) 
 207          {
 208   1              LCD_DATA=0xff;
 209   1              _nop_();
 210   1              LCD_CS1=SELECTCS;
 211   1              LCD_RW=1;
 212   1              LCD_RS=0;
 213   1              LCD_E=1;
 214   1              while (LCD_DATA&0x80);
 215   1              LCD_CS1=!SELECTCS;
 216   1      }
 217          
 218          //-------------------------------------------------------------------------
 219          //函数名称:      void LCD_WriteCommand1(char ch)
 220          //函数功能:      向LCD控制芯片KS0108发送控制命令
 221          //入口参数:      char ch 控制命令参数
 222          //出口参数:      无
 223          //全局变量引用:  无
 224          //调用模块:      LCD_WaitReady1()
 225          //----------------------------------------------------------------------
 226          
 227          void LCD_WriteCommand1(char ch) 
 228          {
 229   1              LCD_WaitReady1(); //判断LCD是否处于忙状态
 230   1              LCD_CS2=SELECTCS;
 231   1              LCD_RW=0;
 232   1              LCD_RS=0;
 233   1              LCD_DATA=ch;
 234   1              LCD_E=1;
 235   1              LCD_E=0;
 236   1              LCD_CS2=!SELECTCS;
 237   1      }
 238          //-------------------------------------------------------------------------
 239          //函数名称:      void LCD_WriteCommand2(char ch)
 240          //函数功能:      向LCD控制芯片KS0108发送控制命令
 241          //入口参数:      char ch 控制命令参数
C51 COMPILER V7.05   CGM12864B                                                             02/14/2006 09:35:46 PAGE 5   

 242          //出口参数:      无
 243          //全局变量引用:  无
 244          //调用模块:      LCD_WaitReady2()
 245          //----------------------------------------------------------------------
 246          
 247          void LCD_WriteCommand2(char ch) 
 248          {
 249   1              LCD_WaitReady2();  //判断LCD是否处于忙状态
 250   1              LCD_CS1=SELECTCS;
 251   1              LCD_RW=0;
 252   1              LCD_RS=0;
 253   1              LCD_DATA=ch;
 254   1              LCD_E=1;
 255   1              LCD_E=0;
 256   1              LCD_CS1=!SELECTCS;
 257   1      }
 258          //-------------------------------------------------------------------------
 259          //函数名称:      void LCD_WriteData1(char ch)
 260          //函数功能:      向LCD控制芯片KS0108发送数据
 261          //入口参数:      char ch 数据参数
 262          //出口参数:      无
 263          //全局变量引用:  无
 264          //调用模块:      LCD_WaitReady1()
 265          //----------------------------------------------------------------------
 266          void LCD_WriteData1(char ch)    
 267          {
 268   1              LCD_WaitReady1(); ////判断LCD是否处于忙状态
 269   1              LCD_CS2=SELECTCS;
 270   1              LCD_RW=0;
 271   1              LCD_RS=1;
 272   1              LCD_DATA=ch;
 273   1              LCD_E=1;
 274   1              LCD_E=0;
 275   1              LCD_CS2=!SELECTCS;
 276   1      }
 277          //-------------------------------------------------------------------------
 278          //函数名称:      void LCD_WriteData2(char ch)
 279          //函数功能:      向LCD控制芯片KS0108发送数据
 280          //入口参数:      char ch 数据参数
 281          //出口参数:      无
 282          //全局变量引用:  无
 283          //调用模块:      LCD_WaitReady2()
 284          //----------------------------------------------------------------------
 285          void LCD_WriteData2(char ch)
 286          {
 287   1              LCD_WaitReady2();   //判断LCD是否处于忙状态
 288   1              LCD_CS1=SELECTCS;
 289   1              LCD_RW=0;
 290   1              LCD_RS=1;
 291   1              LCD_DATA=ch;
 292   1              LCD_E=1;
 293   1              LCD_E=0;
 294   1              LCD_CS1=!SELECTCS;
 295   1      }
 296          //-------------------------------------------------------------------------
 297          //函数名称:      void LCD_WriteHZ(char x,char y,char *Dot) 
 298          //函数功能:      在液晶的指定位置显示16*16点阵汉字
 299          //入口参数:      char x:横向坐标 char y:纵向坐标 char *Dot:汉字点阵的首地址
 300          //出口参数:      无
 301          //全局变量引用:  无
 302          //调用模块:      LCD_WriteCommand1(); LCD_WriteCommand2();
 303          //               LCD_WriteData1();      LCD_WriteData1();
C51 COMPILER V7.05   CGM12864B                                                             02/14/2006 09:35:46 PAGE 6   

 304          //----------------------------------------------------------------------
 305          void LCD_WriteHZ(char x,char y,char *Dot) 
 306          {
 307   1      char i;
 308   1              for (i=0;i<32;i++)
 309   1              {
 310   2                      if ((x+i%16)<64) //横向坐标小于64时在左屏显示汉字
 311   2                      {
 312   3                              LCD_WriteCommand1(0xB8+y+i/16);
 313   3                              LCD_WriteCommand1(0x40+x+i%16);
 314   3                              LCD_WriteData1(Dot[i]);
 315   3                      }
 316   2                      else             //横向坐标大于64时在右屏显示汉字
 317   2                      {
 318   3                              LCD_WriteCommand2(0xB8+y+i/16);
 319   3                              LCD_WriteCommand2(0x40+x-64+i%16);
 320   3                              LCD_WriteData2(Dot[i]);
 321   3                      }
 322   2              }
 323   1      }
 324          //-------------------------------------------------------------------------
 325          //函数名称:      void InitLCD(void)
 326          //函数功能:      初始化液晶并清屏
 327          //入口参数:      无
 328          //出口参数:      无
 329          //全局变量引用:  无
 330          //调用模块:      Delay1ms(1);LCD_WriteCommand1(); LCD_WriteCommand2();
 331          //               LCD_WriteData1();      LCD_WriteData1();
 332          //----------------------------------------------------------------------
 333          
 334          void InitLCD(void)      
 335          {
 336   1              char i,j;
 337   1              LCD_RST=0;
 338   1              Delay1ms(1);
 339   1              LCD_RST=1;
 340   1              LCD_WriteCommand1(0xc0);        
 341   1              LCD_WriteCommand2(0xc0);
 342   1              LCD_WriteCommand1(0x3f);        //开显示
 343   1              LCD_WriteCommand2(0x3f);
 344   1              for (j=0;j<8;j++)                       //清屏
 345   1              {
 346   2                      LCD_WriteCommand1(0xB8+j);      //清左半屏
 347   2                      LCD_WriteCommand1(0x40);
 348   2                      for (i=0;i<64;i++)
 349   2                              LCD_WriteData1(0x00);

⌨️ 快捷键说明

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