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

📄 sc_t6963.lst

📁 驱动15X20D液晶屏
💻 LST
📖 第 1 页 / 共 3 页
字号:
 192   1      }
 193          
 194          /***************************************************************
 195                  Function:       //      T6963_OutCommand1byte
 196                  Description://  写1个参数的命令
 197                  Calls:          //      T6963_OutData   T6963_OutCommand0byte
 198          ***************************************************************/
 199          void T6963_OutCommand1byte(uchar uData,uchar uCommand)
 200          {
 201   1              T6963_OutData(uData);
 202   1              T6963_OutCommand0byte(uCommand);
 203   1      }
 204          
 205          /***************************************************************
 206                  Function:       //      T6963_OutCommand2byte
 207                  Description://  写2个参数的命令
 208                  Calls:          //      T6963_OutData   T6963_OutCommand0byte
 209          ***************************************************************/
 210          void T6963_OutCommand2byte(uchar Data1,uchar Data2,uchar uCommand)
 211          {
 212   1              T6963_OutData(Data1);
 213   1              T6963_OutData(Data2);
 214   1              T6963_OutCommand0byte(uCommand);
 215   1      }
 216          
 217          //----------------------------------------------------------------------------------//
 218          //--------------------------------高层函数------------------------------------------//
 219          //----------------------------------------------------------------------------------//
 220          
 221          /***************************************************************
 222                  Function:       //      LcdCls
 223                  Description://  液晶屏初始化
 224          ***************************************************************/
 225          
 226          void LcdInit(void)
 227          {
 228   1              T6963_COMMAND_REG &= T6963_RESET_ENABLE;
 229   1              T6963_Delay(50);        //将RESET脚电平拉低保持5个时钟周期以上(液晶屏使用6MHZ的晶振)
 230   1              T6963_COMMAND_REG |= T6963_RESET_DISABLE;       //LCM复位
 231   1              T6963_OutCommand0byte(T6963_DISPLAY_OFF);       //关闭显示
 232   1              T6963_OutCommand2byte(0x00,0x00,T6963_SET_TXT_HOME_ADD);        //设置文本显存页起始地址至0x0000
 233   1              T6963_OutCommand2byte(30,0x00,T6963_SET_TXT_AREA);                      //设置文本区域(字符列数)
 234   1              T6963_OutCommand2byte(0x00,0x10,T6963_SET_GRAPH_HOME_ADD);      //设置图形显存页起始地址至0x1000
 235   1              T6963_OutCommand2byte(30,0x00,T6963_SET_GRAPH_AREA);            //设置文本区域(点阵列数/8)
 236   1              T6963_OutCommand0byte(T6963_CUR_8LINE);         //设置光标形状
 237   1              T6963_OutCommand0byte(T6963_OR_MODE);           //设置文本与图形的叠加模式
 238   1      //      T6963_OutCommand0byte(T6963_DISPLAY_ON+T6963_GRAPH_ON+T6963_TXT_ON+T6963_BLINK_ON);     //打开显示
 239   1              T6963_OutCommand0byte(T6963_DISPLAY_ON+T6963_GRAPH_ON+T6963_TXT_ON);    //打开显示
 240   1      }
 241          /***************************************************************
C51 COMPILER V7.20   SC_T6963                                                              03/28/2008 14:02:55 PAGE 5   

 242                  Function:       //      LcdCls
 243                  Description://  清屏(清全部缓存)
 244          ***************************************************************/
 245          void LcdCls(void)
 246          {
 247   1              uint i;
 248   1      //      uint j = 0;
 249   1              T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
 250   1              for(i = 0x00;i < 0x8000;i++)
 251   1              {
 252   2                      T6963_OutData(0x00);
 253   2      //              if(i % 0x1000 == 0)     j++;
 254   2              }
 255   1              T6963_OutCommand0byte(T6963_AUTO_RESET);
 256   1      }
 257          
 258          /***************************************************************
 259                  Function:       //      LcdClsTxt
 260                  Description://  清指定的文本页
 261                  Input:          TPage:  要显示的文本页号 (0-4)
 262          ***************************************************************/
 263          void LcdClsTxt(uchar TPage)
 264          {
 265   1              uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE;
 266   1              uint i;
 267   1              T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
 268   1              T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
 269   1              for(i = 0;i < T6963_TXT_PAGESIZE; i++)
 270   1              {
 271   2                      T6963_OutData(0x00);
 272   2              }
 273   1              T6963_OutCommand0byte(T6963_AUTO_RESET);
 274   1      }
 275          
 276          /***************************************************************
 277                  Function:       //      LcdClsGraph
 278                  Description://  清指定的文本页
 279                  Input:          GPage:  要显示的图形页号 (0-6)
 280          ***************************************************************/
 281          void LcdClsGraph(uchar GPage)
 282          {
 283   1              uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE;
 284   1              uint i;
 285   1              T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
 286   1              T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
 287   1              for(i = 0;i < T6963_GRAPH_PAGESIZE; i++)
 288   1              {
 289   2                      T6963_OutData(0x00);
 290   2              }
 291   1              T6963_OutCommand0byte(T6963_AUTO_RESET);
 292   1      }
 293          
 294          /***************************************************************
 295                  Function:       //      LcdTxtLayer
 296                  Description://  切换显示指定文本页
 297                  Input:          TPage:  要显示的文本页号 (0-4)
 298          ***************************************************************/
 299          void LcdTxtLayer(uchar TPage)
 300          {
 301   1              uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE;
 302   1              T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8),T6963_SET_TXT_HOME_ADD);
 303   1      }
C51 COMPILER V7.20   SC_T6963                                                              03/28/2008 14:02:55 PAGE 6   

 304          
 305          /***************************************************************
 306                  Function:       //      GraphLayer
 307                  Description://  切换显示指图形页
 308                  Input:          GPage:  要显示的文本页号 (0-6)
 309          ***************************************************************/
 310          void LcdGraphLayer(uchar GPage)
 311          {
 312   1              uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE;
 313   1              T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8),T6963_SET_GRAPH_HOME_ADD);
 314   1      }
 315          
 316          
 317          
 318          
 319          
 320          /***************************************************************
 321                  Function:       //      LcdPutChar
 322                  Description://  在屏幕指定位置显示一个字符,应用于文本模式下
 323                                                  8*8大小的字符
 324                                                  T6963自带的字库不好用,字符代码没有和ASCII码对应,显示字符需要查表.
 325                  Input:                  TPage:  要显示的文本页号 (0-4)
 326                                                  CharX:  字符显示的横坐标        0---29
 327                                                  CharY:  字符显示的纵坐标 0---15
 328                                                  uChar:  字符对应的代码,需要查表
 329          ***************************************************************/
 330          void LcdPutChar(uchar TPage, uchar CharX,uchar CharY,uchar uChar)
 331          {
 332   1              uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + CharX + CharY*30;
 333   1              T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
 334   1              T6963_OutCommand1byte(uChar,T6963_DATA_WRITE_NO_ADP);
 335   1      }
 336          
 337          /***************************************************************
 338                  Function:       //      LcdStr
 339                  Description://  应用于文本模式下,在屏幕指定位置显示字符串
 340                                                  格式为 2006-09-13
 341                  Input:                  TPage:  要显示的文本页号 (0-4)
 342                                                  StrX:   字符串在屏幕上显示的横坐标      0---29
 343                                                  StrY:  字符串在屏幕上显示的纵坐标      0---15
 344                                                  uString:        字符串存储的首地址
 345          ***************************************************************/
 346          void LcdStr(uchar TPage,uchar StrX,uchar StrY,uchar *uString)
 347          {
 348   1              uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + StrX + StrY*30;
 349   1              uchar i;
 350   1              T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
 351   1              T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
 352   1              for(i = 0; i < strlen(uString); i++)
 353   1              {
 354   2                      T6963_OutData(*(uString+i) - 0x20); 
 355   2              }
 356   1              T6963_OutCommand0byte(T6963_AUTO_RESET);
 357   1      }
 358          
 359          /***************************************************************
 360                  Function:       //      LcdClearStr
 361                  Description://  应用于文本模式下,清除屏幕指定位置字符串
 362                  Input:                  TPage:  要显示的文本页号 (0-4)
 363                                                  StrX:   清除的字符串在屏幕上显示的横坐标        0---29
 364                                                  StrY:  清除的字符串在屏幕上显示的纵坐标        0---15
 365                                                  Length:         清除的字符串的长度
C51 COMPILER V7.20   SC_T6963                                                              03/28/2008 14:02:55 PAGE 7   

 366          ***************************************************************/
 367          void LcdClearStr(uchar TPage,uchar StrX,uchar StrY,uchar Length)
 368          {
 369   1              uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + StrX + StrY*30;
 370   1              uchar i;
 371   1              T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
 372   1              T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
 373   1              for(i = 0;i < Length;i++)
 374   1                      T6963_OutData(0x00);
 375   1              T6963_OutCommand0byte(T6963_AUTO_RESET);
 376   1      }
 377          
 378          /***************************************************************
 379                  Function:       //      LcdBmp
 380                  Description://  在屏幕指定位置显示一个图形(汉字,字符),
 381                                                  应用于图形模式下
 382                  Input:                  GPage:  要显示的图形页号 (0-6)
 383                                                  BmpX:   图形显示的横坐标        0×8---29×8
 384                                                  BmpY:   图形显示的纵坐标        0---127
 385                                                  BmpWidth:       图形的宽度              1×8---30×8
 386                                                  BmpHeigh:       图形的高度              1---128
 387                                                  BmpAdd: 图形存储数组的首地址
 388          ***************************************************************/
 389          void LcdBmp(uchar GPage, uchar BmpX, uchar BmpY, uchar* BmpAdd)
 390          {
 391   1              uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE + BmpX/8 + BmpY*30;

⌨️ 快捷键说明

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