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

📄 lcd_dis.lst

📁 1602液晶显示程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 169   1      }
 170          //========================================================================
 171          // 函数: void PutChar(unsigned char x,unsigned char y,unsigned char a) 
 172          // 描述: 写入一个标准ASCII字符
 173          // 参数: x  X轴坐标     y  Y轴坐标
 174          //               a  要显示的字符在字库中的偏移量  
 175          // 返回: 无
 176          // 备注: ASCII字符可直接输入ASCII码即可
 177          // 版本:
 178          //      2007/07/19      First version
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 4   

 179          //========================================================================
 180          void PutChar(unsigned char x,unsigned char y,unsigned char a) 
 181          {
 182   1              //显示ASCII字符
 183   1              SPI_SSSet(0);                                   //SS置低电平    
 184   1              SPI_Send(7);                                    //传送指令0x07
 185   1              SPI_Send(x);                                    //要显示字符的左上角的X轴位置
 186   1              SPI_Send(y);                                    //要显示字符的左上角的Y轴位置
 187   1              SPI_Send(a);                                    //要显示字符ASCII字符的ASCII码值
 188   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 189   1      }
 190          //========================================================================
 191          // 函数: void PutString(int x,int y,char *p)
 192          // 描述: 在x、y为起始坐标处写入一串标准ASCII字符
 193          // 参数: x  X轴坐标     y  Y轴坐标
 194          //               p  要显示的字符串  
 195          // 返回: 无
 196          // 备注: 仅能用于自带的ASCII字符串显示
 197          // 版本:
 198          //      2007/07/19      First version
 199          //========================================================================
 200          void PutString(unsigned char x,unsigned char y,unsigned char *p)
 201          {
 202   1              while(*p!=0)
 203   1              {
 204   2                      PutChar(x,y,*p);
 205   2                      x += X_Witch;
 206   2                      if((x + X_Witch) > Dis_X_MAX)
 207   2                      {
 208   3                              x = Dis_Zero;
 209   3                              if((Dis_Y_MAX - y) < Y_Witch) break;
 210   3                              else y += Y_Witch;
 211   3                      }
 212   2                      p++;
 213   2              }
 214   1      }
 215          //========================================================================
 216          // 函数: void PutChar_cn(unsigned char x,unsigned char y,unsigned short * GB) 
 217          // 描述: 写入一个二级汉字库汉字
 218          // 参数: x  X轴坐标     y  Y轴坐标
 219          //               a  GB码  
 220          // 返回: 无
 221          // 备注: 
 222          // 版本:
 223          //      2007/07/19      First version
 224          //              2007/07/24              V1.2 for MCS51 Keil C
 225          //========================================================================
 226          void PutChar_cn(unsigned char x,unsigned char y,unsigned char * GB) 
 227          {
 228   1              //显示ASCII字符
 229   1              SPI_SSSet(0);                                   //SS置低电平    
 230   1              SPI_Send(8);                                    //传送指令0x08
 231   1              SPI_Send(x);                                    //要显示字符的左上角的X轴位置
 232   1              SPI_Send(y);                                    //要显示字符的左上角的Y轴位置
 233   1              
 234   1              SPI_Send(*(GB++));      //传送二级字库中汉字GB码的高八位值
 235   1              SPI_Send(*GB);          //传送二级字库中汉字GB码的低八位值
 236   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 237   1      }
 238          //========================================================================
 239          // 函数: void PutString_cn(unsigned char x,unsigned char y,unsigned short *p)
 240          // 描述: 在x、y为起始坐标处写入一串汉字字符
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 5   

 241          // 参数: x  X轴坐标     y  Y轴坐标
 242          //               p  要显示的字符串  
 243          // 返回: 无
 244          // 备注: 同PutChar_cn中的解释
 245          // 版本:
 246          //      2007/07/19      First version
 247          //              2007/07/24              V1.2 for MCS51 Keil C
 248          //========================================================================
 249          void PutString_cn(unsigned char x,unsigned char y,unsigned char *p)
 250          {
 251   1              while(*p!=0)
 252   1              {
 253   2                      if(*p<128)
 254   2                      {
 255   3                              PutChar(x,y,*p);
 256   3                              x += X_Witch+1;
 257   3                      if((x/* + X_Witch*/) > Dis_X_MAX)
 258   3                      {
 259   4                              x = Dis_Zero;
 260   4                              if((Dis_Y_MAX - y) < Y_Witch) break;
 261   4                              else y += Y_Witch_cn;
 262   4                      }
 263   3                      p+=1;
 264   3                      }
 265   2                      else
 266   2                      {
 267   3                      PutChar_cn(x,y,p);
 268   3                      x += X_Witch_cn+1;
 269   3                      if((x/* + X_Witch_cn*/) > Dis_X_MAX)
 270   3                      {
 271   4                              x = Dis_Zero;
 272   4                              if((Dis_Y_MAX - y) < Y_Witch_cn) break;
 273   4                              else y += Y_Witch_cn;
 274   4                      }
 275   3                      p+=2;
 276   3                      }
 277   2              }
 278   1      }
 279          //========================================================================
 280          // 函数: void SetPaintMode(unsigned char Mode,unsigned char Color)
 281          // 描述: 绘图模式设置
 282          // 参数: Mode 绘图模式    Color  像素点的颜色,相当于前景色  
 283          // 返回: 无
 284          // 备注: Mode无效
 285          // 版本:
 286          //      2007/07/19      First version
 287          //========================================================================
 288          void SetPaintMode(unsigned char Mode,unsigned char Color)
 289          {
 290   1              unsigned char ucTemp=0;
 291   1              ucTemp = (Mode<<4)|Color;
 292   1              //设置绘图模式
 293   1              SPI_SSSet(0);                                   //SS置低电平                    
 294   1              SPI_Send(0x83);                                 //传送指令0x83
 295   1              SPI_Send(ucTemp);                               //选择8X16的ASCII字体,字符色为黑色
 296   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 297   1      }
 298          //========================================================================
 299          // 函数: void PutPixel(unsigned char x,unsigned char y)
 300          // 描述: 在x、y点上绘制一个前景色的点
 301          // 参数: x  X轴坐标     y  Y轴坐标
 302          // 返回: 无
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 6   

 303          // 备注: 使用前景色
 304          // 版本:
 305          //      2007/07/19      First version
 306          //========================================================================
 307          void PutPixel(unsigned char x,unsigned char y)
 308          {
 309   1              //绘点操作      
 310   1              SPI_SSSet(0);                                   //SS置低电平
 311   1              SPI_Send(1);                                    //送指令0x01
 312   1              SPI_Send(x);                                    //送第一个数据,即设置点的X轴位置
 313   1              SPI_Send(y);                                    //点的Y轴位置
 314   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 315   1      }
 316          //========================================================================
 317          // 函数: void Line(unsigned char s_x,unsigned char  s_y,
 318          //                                      unsigned char  e_x,unsigned char  e_y)
 319          // 描述: 在s_x、s_y为起始坐标,e_x、e_y为结束坐标绘制一条直线
 320          // 参数: x  X轴坐标     y  Y轴坐标
 321          // 返回: 无
 322          // 备注: 使用前景色
 323          // 版本:
 324          //      2007/07/19      First version
 325          //========================================================================
 326          void Line(unsigned char s_x,unsigned char  s_y,unsigned char  e_x,unsigned char  e_y)
 327          {  
 328   1              //绘制直线
 329   1              SPI_SSSet(0);                                   //SS置低电平
 330   1              SPI_Send(2);                                    //送指令0x02
 331   1              SPI_Send(s_x);                                  //起点X轴坐标
 332   1              SPI_Send(s_y);                                  //起点Y轴坐标
 333   1              SPI_Send(e_x);                                  //终点X轴坐标
 334   1              SPI_Send(e_y);                                  //终点Y轴坐标
 335   1              SPI_SSSet(1);                                   //完成操作置SS高电平
 336   1      }
 337          //========================================================================
 338          // 函数: void Circle(unsigned char x,unsigned char y,
 339          //                                      unsigned char r,unsigned char mode)
 340          // 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
 341          // 参数: 
 342          // 返回: 无
 343          // 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
 344          // 版本:

⌨️ 快捷键说明

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