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

📄 lm3229.lst

📁 T6963C 128x128液晶驱动,非常适合学习和使用单片机开发人员用
💻 LST
📖 第 1 页 / 共 3 页
字号:
 206   1              LCD_CD = 0;                                        
 207   1              LCD_RD = 0;     
 208   1          dat = LCD_OutPort;
 209   1              LCD_RD = 1;     ;
 210   1      
 211   1              return dat;
 212   1      }
 213          /*********************************************************************************************************
 214          ** 函数名称: WriteOneDataOneCmd 
 215          ** 功能描述: 写有一个数据,一个命令               
 216          **           
 217          ** 输 入:   dat 传数据
 218          **           cmd 传命令
 219          **
 220          ** 输 出:   无
 221          **         
 222          ** 全局变量: 无 
 223          ** 调用模块: vvoid WriteData(UINT8 dat) 
 224          **           void WriteCommand(UINT8 cmd)
 225          ** 说明 :    无
 226          **-------------------------------------------------------------------------------------------------------
 227          ** 修改人:  
 228          ** 日 期:  
 229          **------------------------------------------------------------------------------------------------------
 230          ********************************************************************************************************/
 231          void WriteOneDataOneCmd(UINT8 dat, UINT8 cmd)
 232          {
 233   1              WriteData(dat);
 234   1              WriteCommand(cmd);
 235   1      }
 236          
 237          /*********************************************************************************************************
 238          ** 函数名称: WriteTwoDataOneCmd 
 239          ** 功能描述: 写有两个数据,一个命令                       
 240          **           
C51 COMPILER V8.08   LM3229                                                                11/28/2007 22:30:54 PAGE 5   

 241          ** 输 入:   data1 传数据1
 242          **           data2 传数据1
 243          **           cmd 传命令
 244          **
 245          ** 输 出:   无
 246          **         
 247          ** 全局变量: 无 
 248          ** 调用模块: vvoid WriteData(UINT8 dat) 
 249          **           void WriteCommand(UINT8 cmd)
 250          ** 说明 :    当data1和data2组合传输一个16位的参数时,data1为低八位,data2为高八位           
 251          ** 作 者:   LUCKY
 252          ** 日 期:   2007 - 11 -20
 253          **-------------------------------------------------------------------------------------------------------
 254          ** 修改人:  
 255          ** 日 期:  
 256          **------------------------------------------------------------------------------------------------------
 257          ********************************************************************************************************/
 258          void WriteTwoDataOneCmd(UINT8 data1, UINT8 data2, UINT8 cmd)
 259          {
 260   1              WriteData(data1);          
 261   1              WriteData(data2);
 262   1              WriteCommand(cmd);      
 263   1      }
 264          /*********************************************************************************************************
 265          ** 函数名称: LCD_Init 
 266          ** 功能描述: 初始化液晶,设置文本图形                     
 267          **           
 268          ** 输 入:   无
 269          **
 270          ** 输 出:   无
 271          **         
 272          ** 全局变量: 无 
 273          ** 调用模块: void WriteTwoDataOneCmd(UINT8 data1, UINT8 data2, UINT8 cmd)
 274          **           void WriteCommand(UINT8 cmd)
 275          ** 说明 :    当data1和data2组合传输一个16位的参数时,data1为低八位,data2为高八位           
 276          ** 作 者:   LUCKY
 277          ** 日 期:   2007 - 11 -20
 278          **-------------------------------------------------------------------------------------------------------
 279          ** 修改人:  
 280          ** 日 期:  
 281          **------------------------------------------------------------------------------------------------------
 282          ********************************************************************************************************/
 283          void LCD_Init(void)
 284          {
 285   1              UINT8 data1,data2,cmd;
 286   1      
 287   1              /*********************设置文本显示*****************************/
 288   1              data1 = 0x00;
 289   1              data2 = 0x00;
 290   1              cmd = 0x40;                //设置文本显示区首地址
 291   1              WriteTwoDataOneCmd(data1,data2,cmd);
 292   1              data1 = 0x10;
 293   1              data2 = 0x00;
 294   1              cmd = 0x41;                //设置文本显示区宽度
 295   1              WriteTwoDataOneCmd(data1,data2,cmd);
 296   1      
 297   1              /*********************设置图形显示*****************************/
 298   1              data1 = 0x00;
 299   1              data2 = 0x08;
 300   1              cmd = 0x42;                //设置图形显示区首地址
 301   1              WriteTwoDataOneCmd(data1,data2,cmd);
 302   1              data1 = 0x1e;
C51 COMPILER V8.08   LM3229                                                                11/28/2007 22:30:54 PAGE 6   

 303   1              data2 = 0x00;
 304   1              cmd = 0x43;                //设置图形显示区宽度
 305   1              WriteTwoDataOneCmd(data1,data2,cmd);
 306   1              
 307   1              /*********************设置图形显示*****************************/
 308   1              cmd = 0x80;                //启用内部字符发生器,显示方式是文本与图形与
 309   1          WriteCommand(cmd);
 310   1      
 311   1              cmd = 0x9e;                //启用光标闪烁,光标不显示,文本显示与图形显示
 312   1          WriteCommand(cmd);
 313   1      
 314   1      }
 315          /*********************************************************************************************************
 316          ** 函数名称: LCD_Clear 
 317          ** 功能描述: 清屏                        
 318          **           
 319          ** 输 入:   无
 320          **
 321          ** 输 出:   无
 322          **         
 323          ** 全局变量: 无 
 324          ** 调用模块: void WriteTwoDataOneCmd(UINT8 data1, UINT8 data2, UINT8 cmd)
 325          **           void WriteCommand(UINT8 cmd)
 326          **           void WriteData(UINT8 dat)
 327          ** 说明 :    当data1和data2组合传输一个16位的参数时,data1为低八位,data2为高八位 
 328          **           在对系统进行初始化时,有必要先将整个存储器清零.          
 329          **-------------------------------------------------------------------------------------------------------
 330          ** 修改人:  
 331          ** 日 期:  
 332          **------------------------------------------------------------------------------------------------------
 333          ********************************************************************************************************/
 334          void LCD_Clear(void)
 335          {
 336   1              UINT8 data1,data2,cmd;
 337   1              UINT16 i;
 338   1      
 339   1              data1 = 0x00;
 340   1              data2 = 0x00;
 341   1              cmd = 0x24;                   //设置地址指针,字符显示首位置
 342   1              WriteTwoDataOneCmd(data1,data2,cmd);
 343   1      
 344   1              cmd = 0xb0;                   //进入自动写模式
 345   1              WriteCommand(cmd);
 346   1              data1  = 0x00;
 347   1              for (i = 256; i != 0; --i)       //字符为8x8 这里写的是128x128 所以共有256个8x8字符单元
 348   1              {
 349   2                      CheckState(CHECK_3);
 350   2                      WriteData(data1);       
 351   2              }
 352   1              cmd = 0xb2;                          //退出自动写模式
 353   1              WriteCommand(cmd);
 354   1      }
 355          /*********************************************************************************************************
 356          ** 函数名称: ShowEnglish8x8 
 357          ** 功能描述: 清屏                        
 358          **           
 359          ** 输 入:   row      取值范围[0 ,15]
 360          **                       col      取值范围[0 ,15]
 361          **                       EnStr    英文字符串
 362          **           strLength字符串长度 <256
 363          ** 输 出:   无
 364          **         
C51 COMPILER V8.08   LM3229                                                                11/28/2007 22:30:54 PAGE 7   

 365          ** 全局变量: 无 
 366          ** 调用模块: void WriteTwoDataOneCmd(UINT8 data1, UINT8 data2, UINT8 cmd)
 367          **           void WriteCommand(UINT8 cmd)
 368          **           void WriteData(UINT8 dat)
 369          ** 说明 :    当data1和data2组合传输一个16位的参数时,data1为低八位,data2为高八位 
 370          **           在对系统进行初始化时,有必要先将整个存储器清零.          
 371          **-------------------------------------------------------------------------------------------------------
 372          ** 修改人:  
 373          ** 日 期:  
 374          **------------------------------------------------------------------------------------------------------
 375          ********************************************************************************************************/
 376          const UINT8 code str[16] = {0x29,0x00,0x41,0x4d,0x00,0x2c,0x55,0x43,0x4b,0x59,0x01,0x27,0x4f,0x00,0x2f,0x4
             -e};
 377          
 378          void ShowEnglish8x8(UINT8 row, UINT8 col, CHAR *EnStr,UINT8 strLength)
 379          {
 380   1              UINT8 data1,data2,cmd;
 381   1              UINT8 i;
 382   1              UINT16 address;
 383   1      
 384   1              address = row * COLUMN + col;
 385   1              data1 = address;                                 //取地址低八位
 386   1              data2 = address>>8;                              //取地址高八位
 387   1              cmd = 0x24;                      //设置地址指针,字符显示首位置
 388   1              WriteTwoDataOneCmd(data1,data2,cmd);
 389   1      
 390   1              cmd = 0xb0;                     //进入自动写模式
 391   1              WriteCommand(cmd);
 392   1              for (i = 0; i < strLength; ++i)
 393   1              {
 394   2                      CheckState(CHECK_3);
 395   2                      WriteData(EnStr[i]);    
 396   2              }
 397   1              cmd = 0xb2;                                     //退出自动写模式
 398   1              WriteCommand(cmd);
 399   1      }
 400          
 401          
 402          
 403          /******************************************************************************************************
 404          ** 说明: 此汉字字模排列格式是1-16字节为汉字左半部分自上而下排列的字模数据,右半同理,
 405          **其中一个字节代表一行的8点数据  字模的左边为高位 即是单子节点阵按 D7---D0位排列
 406          *******************************************************************************************************/
 407          #ifndef CN_LENGTH        //定义字模库的长度
 408          #define CN_LENGTH  608
 409          #endif
 410          const UINT8 code lqf[] = {
 411          0x00,0x3F,0x20,0x3F,0x29,0x25,0x29,0x23,0x2C,0x31,0x26,0x21,0x46,0x40,0x83,0x0C,
 412          0x88,0xFC,0x00,0x78,0x48,0x28,0xC8,0x60,0x5E,0x84,0x40,0x90,0x20,0xC0,0x00,0x00,  //廖" 0x80,0x82,0x81,0x8
             -3
 413          
 414          0x01,0x00,0x3F,0x20,0x20,0x20,0x3F,0x20,0x20,0x21,0x21,0x22,0x22,0x44,0x88,0x30,
 415          0x00,0x88,0xFC,0x80,0x80,0x88,0xFC,0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x0E,0x04,  //庆  0x84,0x86,0x85,0x8
             -7
 416          
 417          0x02,0x01,0x7F,0x40,0x9F,0x00,0x1F,0x10,0x1F,0x00,0x3F,0x21,0x3F,0x21,0x3F,0x20,                         

⌨️ 快捷键说明

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