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

📄 12864

📁 这是TOPWAY公司的LCD驱动程序
💻
📖 第 1 页 / 共 3 页
字号:

 180          * 全局静态变量:
 181          * 局部静态变量:
 182          *----------------------------------------修改历史------------------------------------------
 183          * 当前版本    :                         修改人:                  修改日期:
 184          * 修改说明    :
 185          ******************************************************************************************/
 186          unsigned char ReadData( void )
 187          {
 188   1           CheckBusy();
 189   1           SendByte(0xfe);            //11111,RW(1),RS(1),0
 190   1           return ReceiveByte();
 191   1      }
 192          /******************************************************************************************
 193          * 函数名称    :Delay
 194          * 功能描述    :
 195          * 参数        :  参数名称:    输入/输出?     类型            描述
 196          * 
 197          * 返回值      :
 198          * 作者        :
 199          * 创建日期    :2006-12-19
 200          * 全局变量    :
 201          * 全局静态变量:
 202          * 局部静态变量:
 203          *----------------------------------------修改历史------------------------------------------
 204          * 当前版本    :                         修改人:                  修改日期:
 205          * 修改说明    :
 206          ******************************************************************************************/
 207          void Delay(unsigned int MS)
 208          {
 209   1           unsigned char us,usn;
 210   1           while(MS!=0)            //for 12M
 211   1                 { usn = 2;
 212   2                       while(usn!=0)
 213   2                             {
 214   3                                   us=0xf5;
 215   3                                   while (us!=0){us--;};
 216   3                                   usn--;
 217   3                             }
 218   2                       MS--;
 219   2                 }
 220   1      }
 221          /******************************************************************************************
 222          * 函数名称    :DelayKey
 223          * 功能描述    :
 224          * 参数        :  参数名称:    输入/输出?     类型            描述
 225          * 
 226          * 返回值      :
 227          * 作者        :
 228          * 创建日期    :2006-12-19
 229          * 全局变量    :
 230          * 全局静态变量:
 231          * 局部静态变量:
 232          *----------------------------------------修改历史------------------------------------------
 233          * 当前版本    :                         修改人:                  修改日期:
 234          * 修改说明    :
 235          ******************************************************************************************/
 236          void DelayKey(unsigned int Second , unsigned int MS100)
 237          {                              //输入精确到0.1S,是用","
 238   1           unsigned int i;
 239   1           for(i=0;i<Second*100+MS100*10;i++)
 240   1           {
 241   2                 if(Key==0)
C51 COMPILER V7.50   12864_串行C51演蔩程序                                                 07/24/2007 11:25:30 PAGE 5   

 242   2                 {
 243   3                       Delay(20);
 244   3                       while(Key==0) {Delay(20);}
 245   3                       break;
 246   3                 }
 247   2                 else Delay(10);
 248   2           }
 249   1      }
 250          /******************************************************************************************
 251          * 函数名称    :LcmInit
 252          * 功能描述    :
 253          * 参数        :  参数名称:    输入/输出?     类型            描述
 254          * 
 255          * 返回值      :
 256          * 作者        :
 257          * 创建日期    :2006-12-19
 258          * 全局变量    :
 259          * 全局静态变量:
 260          * 局部静态变量:
 261          *----------------------------------------修改历史------------------------------------------
 262          * 当前版本    :                         修改人:                  修改日期:
 263          * 修改说明    :
 264          ******************************************************************************************/
 265          void LcmInit( void )
 266          {
 267   1           WriteCommand(0x30);      //8BitMCU,基本指令集合
 268   1           WriteCommand(0x03);      //AC归0,不改变DDRAM内容
 269   1           WriteCommand(0x0C);      //显示ON,游标OFF,游标位反白OFF
 270   1           WriteCommand(0x01);      //清屏,AC归0
 271   1           WriteCommand(0x06);      //写入时,游标右移动
 272   1      }
 273          
 274          /******************************************************************************************
 275          * 函数名称    :LcmClearTXT
 276          * 功能描述    :文本区清RAM函数
 277          * 参数        :  参数名称:    输入/输出?     类型            描述
 278          * 
 279          * 返回值      :
 280          * 作者        :
 281          * 创建日期    :2006-12-19
 282          * 全局变量    :
 283          * 全局静态变量:
 284          * 局部静态变量:
 285          *----------------------------------------修改历史------------------------------------------
 286          * 当前版本    :                         修改人:                  修改日期:
 287          * 修改说明    :
 288          ******************************************************************************************/
 289          void LcmClearTXT( void )
 290          {
 291   1           unsigned char i;
 292   1           WriteCommand(0x30);      //8BitMCU,基本指令集合
 293   1           WriteCommand(0x80);      //AC归起始位
 294   1           for(i=0;i<64;i++)
 295   1              WriteData(0x20);
 296   1      }
 297          
 298          /******************************************************************************************
 299          * 函数名称    :LcmClearBMP
 300          * 功能描述    :图形区清RAM函数
 301          * 参数        :  参数名称:    输入/输出?     类型            描述
 302          * 图形区和文本区显示在两个不同的RAM区
 303          * 返回值      :
C51 COMPILER V7.50   12864_串行C51演蔩程序                                                 07/24/2007 11:25:30 PAGE 6   

 304          * 作者        :
 305          * 创建日期    :2006-12-19
 306          * 全局变量    :
 307          * 全局静态变量:
 308          * 局部静态变量:
 309          *----------------------------------------修改历史------------------------------------------
 310          * 当前版本    :                         修改人:                  修改日期:
 311          * 修改说明    :
 312          ******************************************************************************************/
 313          void LcmClearBMP( void )
 314          {
 315   1           unsigned char i,j;
 316   1           WriteCommand(0x34);      //8Bit扩充指令集,即使是36H也要写两次
 317   1           WriteCommand(0x36);      //绘图ON,基本指令集里面36H不能开绘图
 318   1           for(i=0;i<32;i++)            //12864实际为256x32
 319   1           {
 320   2                 WriteCommand(0x80|i);      //行位置
 321   2                 WriteCommand(0x80);      //列位置
 322   2                 for(j=0;j<32;j++)            //256/8=32 byte
 323   2                      WriteData(0);
 324   2           }
 325   1      }
 326          /******************************************************************************************
 327          * 函数名称    :PutStr
 328          * 功能描述    :
 329          * 参数        :  参数名称:    输入/输出?     类型            描述
 330          * 
 331          * 返回值      :
 332          * 作者        :
 333          * 创建日期    :2006-12-19
 334          * 全局变量    :
 335          * 全局静态变量:
 336          * 局部静态变量:
 337          *----------------------------------------修改历史------------------------------------------
 338          * 当前版本    :                         修改人:                  修改日期:
 339          * 修改说明    :
 340          ******************************************************************************************/
 341          void PutStr(unsigned char row,unsigned char col,unsigned char *puts)
 342          {
 343   1           WriteCommand(0x30);      //8BitMCU,基本指令集合
 344   1           WriteCommand(AC_TABLE[8*row+col]);      //起始位置
 345   1           while(*puts != '\0')      //判断字符串是否显示完毕
 346   1           {
 347   2                 if(col==8)            //判断换行
 348   2                 {            //若不判断,则自动从第一行到第三行
 349   3                       col=0;
 350   3                       row++;
 351   3                 }
 352   2                 if(row==4) row=0;      //一屏显示完,回到屏左上角
 353   2                 WriteCommand(AC_TABLE[8*row+col]);
 354   2                 WriteData(*puts);      //一个汉字要写两次
 355   2                 puts++;
 356   2                 WriteData(*puts);
 357   2                 puts++;
 358   2                 col++;
 359   2           }
 360   1      }
 361          /******************************************************************************************
 362          * 函数名称    :PutBMP
 363          * 功能描述    :
 364          * 参数        :  参数名称:    输入/输出?     类型            描述
 365          * 
C51 COMPILER V7.50   12864_串行C51演蔩程序                                                 07/24/2007 11:25:30 PAGE 7   

⌨️ 快捷键说明

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