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

📄 lcd_dis.lst

📁 cp2001说明程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 207          // 版本:
 208          //      2007/07/19      First version
 209          //              2007/07/24              V1.2 for MCS51 Keil C
 210          //========================================================================
 211          void PutChar_cn(unsigned char x,unsigned char y,unsigned short * GB) 
 212          {
 213   1              //显示ASCII字符
 214   1              SPI_SSSet(0);                                   //SS置低电平    
 215   1              SPI_Send(8);                                    //传送指令0x08
 216   1              SPI_Send(x);                                    //要显示字符的左上角的X轴位置
 217   1              SPI_Send(y);                                    //要显示字符的左上角的Y轴位置
 218   1              
 219   1              SPI_Send((*GB>>8)&0x00ff);      //传送二级字库中汉字GB码的高八位值
 220   1              SPI_Send(*GB&0x00ff);           //传送二级字库中汉字GB码的低八位值
 221   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 222   1      }
 223          //========================================================================
 224          // 函数: void PutString_cn(unsigned char x,unsigned char y,unsigned short *p)
 225          // 描述: 在x、y为起始坐标处写入一串汉字字符
 226          // 参数: x  X轴坐标     y  Y轴坐标
 227          //               p  要显示的字符串  
 228          // 返回: 无
 229          // 备注: 同PutChar_cn中的解释
 230          // 版本:
 231          //      2007/07/19      First version
 232          //              2007/07/24              V1.2 for MCS51 Keil C
 233          //========================================================================
 234          void PutString_cn(unsigned char x,unsigned char y,unsigned short *p)
 235          {
 236   1              while((*p>>8)!=0)
 237   1              {
 238   2                      PutChar_cn(x,y,p);
 239   2                      x += X_Witch_cn;
 240   2                      if((x + X_Witch_cn) > Dis_X_MAX)
 241   2                      {
C51 COMPILER V8.02   LCD_DIS                                                               07/24/2007 00:38:41 PAGE 5   

 242   3                              x = Dis_Zero;
 243   3                              if((Dis_Y_MAX - y) < Y_Witch_cn) break;
 244   3                              else y += Y_Witch_cn;
 245   3                      }
 246   2                      p++;
 247   2              }
 248   1      }
 249          //========================================================================
 250          // 函数: void SetPaintMode(unsigned char Mode,unsigned char Color)
 251          // 描述: 绘图模式设置
 252          // 参数: Mode 绘图模式    Color  像素点的颜色,相当于前景色  
 253          // 返回: 无
 254          // 备注: Mode无效
 255          // 版本:
 256          //      2007/07/19      First version
 257          //========================================================================
 258          void SetPaintMode(unsigned char Mode,unsigned char Color)
 259          {
 260   1              unsigned char ucTemp=0;
 261   1              ucTemp = (Mode<<4)|Color;
 262   1              //设置绘图模式
 263   1              SPI_SSSet(0);                                   //SS置低电平                    
 264   1              SPI_Send(0x83);                                 //传送指令0x83
 265   1              SPI_Send(ucTemp);                               //选择8X16的ASCII字体,字符色为黑色
 266   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 267   1      }
 268          //========================================================================
 269          // 函数: void PutPixel(unsigned char x,unsigned char y)
 270          // 描述: 在x、y点上绘制一个前景色的点
 271          // 参数: x  X轴坐标     y  Y轴坐标
 272          // 返回: 无
 273          // 备注: 使用前景色
 274          // 版本:
 275          //      2007/07/19      First version
 276          //========================================================================
 277          void PutPixel(unsigned char x,unsigned char y)
 278          {
 279   1              //绘点操作      
 280   1              SPI_SSSet(0);                                   //SS置低电平
 281   1              SPI_Send(1);                                    //送指令0x01
 282   1              SPI_Send(x);                                    //送第一个数据,即设置点的X轴位置
 283   1              SPI_Send(y);                                    //点的Y轴位置
 284   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 285   1      }
 286          //========================================================================
 287          // 函数: void Line(unsigned char s_x,unsigned char  s_y,
 288          //                                      unsigned char  e_x,unsigned char  e_y)
 289          // 描述: 在s_x、s_y为起始坐标,e_x、e_y为结束坐标绘制一条直线
 290          // 参数: x  X轴坐标     y  Y轴坐标
 291          // 返回: 无
 292          // 备注: 使用前景色
 293          // 版本:
 294          //      2007/07/19      First version
 295          //========================================================================
 296          void Line(unsigned char s_x,unsigned char  s_y,unsigned char  e_x,unsigned char  e_y)
 297          {  
 298   1              //绘制直线
 299   1              SPI_SSSet(0);                                   //SS置低电平
 300   1              SPI_Send(2);                                    //送指令0x02
 301   1              SPI_Send(s_x);                                  //起点X轴坐标
 302   1              SPI_Send(s_y);                                  //起点Y轴坐标
 303   1              SPI_Send(e_x);                                  //终点X轴坐标
C51 COMPILER V8.02   LCD_DIS                                                               07/24/2007 00:38:41 PAGE 6   

 304   1              SPI_Send(e_y);                                  //终点Y轴坐标
 305   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 306   1      }
 307          //========================================================================
 308          // 函数: void Circle(unsigned char x,unsigned char y,
 309          //                                      unsigned char r,unsigned char mode)
 310          // 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
 311          // 参数: 
 312          // 返回: 无
 313          // 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
 314          // 版本:
 315          //      2007/07/19      First version
 316          //========================================================================
 317          void Circle(unsigned char x,unsigned char y,unsigned char r,unsigned char mode)
 318          {
 319   1              SPI_SSSet(0);
 320   1              if(mode)
 321   1                      SPI_Send(6);
 322   1              else
 323   1                      SPI_Send(5);
 324   1              SPI_Send(x);
 325   1              SPI_Send(y);
 326   1              SPI_Send(r);
 327   1              SPI_SSSet(1);
 328   1      }
 329          //========================================================================
 330          // 函数: void Rectangle(unsigned char left, unsigned char top, unsigned char right,
 331          //                               unsigned char bottom, unsigned char mode)
 332          // 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
 333          // 参数: left - 矩形的左上角横坐标,范围0到126
 334          //               top - 矩形的左上角纵坐标,范围0到62
 335          //               right - 矩形的右下角横坐标,范围1到127
 336          //               bottom - 矩形的右下角纵坐标,范围1到63
 337          //               Mode - 绘制模式,可以是下列数值之一:
 338          //                              0:      矩形框(空心矩形)
 339          //                              1:      矩形面(实心矩形)
 340          // 返回: 无
 341          // 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
 342          // 版本:
 343          //      2007/07/19      First version
 344          //========================================================================
 345          void Rectangle(unsigned char left, unsigned char top, unsigned char right,
 346                                           unsigned char bottom, unsigned char mode)
 347          {
 348   1              SPI_SSSet(0);
 349   1              if(mode)
 350   1                      SPI_Send(4);
 351   1              else
 352   1                      SPI_Send(3);
 353   1              SPI_Send(left);
 354   1              SPI_Send(top);
 355   1              SPI_Send(right);
 356   1              SPI_Send(bottom);
 357   1              SPI_SSSet(1);
 358   1      }
 359          //========================================================================
 360          // 函数: void ClrScreen(void)
 361          // 描述: 清屏函数,执行全屏幕清除或填充前景色
 362          // 参数: 
 363          // 返回: 无
 364          // 备注: 
 365          // 版本:
C51 COMPILER V8.02   LCD_DIS                                                               07/24/2007 00:38:41 PAGE 7   

 366          //      2007/07/19      First version
 367          //========================================================================
 368          void ClrScreen(void)
 369          {
 370   1              //清屏操作
 371   1              SPI_SSSet(0);                                   //SS置低电平
 372   1              SPI_Send(0x80);                                 //送指令0x80
 373   1              SPI_Send(0);                                    //指令数据
 374   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 375   1      }
 376          //========================================================================
 377          // 函数: void fill_s(unsigned char x,unsigned char y,
 378          //                                      unsigned char * String,unsigned char Number)
 379          // 描述: 在Y轴y位置上对应的page页的x位置开始填充Number个byte的数据,用于用户
 380          //                      自取的图像/文字字模在LCD当中显示
 381          // 参数:        x  填充起点的X轴位置
 382          //                      y  填充起点于哪一页, 该数据低三位无效,如y=10时,表示要填充的是page1,
 383          //                                              y=6时表示page0,注意,这里是指页而不是指哪一行~
 384          //                                              page = y>>3
 385          //                      *String 要填充的数据序列
 386          //                      Number 要填充的数据个数
 387          // 返回: 无
 388          // 备注: 
 389          // 版本:
 390          //      2007/07/23      First version
 391          //========================================================================
 392          void fill_s(unsigned char x,unsigned char y,unsigned char * String,unsigned char Number)
 393          {
 394   1              //清屏操作
 395   1              SPI_SSSet(0);                                   //SS置低电平
 396   1              SPI_Send(0x09);                                 //送指令0x09
 397   1              SPI_Send(x);                                    //指令数据
 398   1              SPI_Send(y);                                    //指令数据
 399   1              TimeDelay(1);                                   //稍稍延一点时间
 400   1              while(Number!=0)
 401   1              {
 402   2                      SPI_Send(*(String++));          //指令数据
 403   2                      Number--;
 404   2              }
 405   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 406   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    692    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5      31
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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