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

📄 lcd12864.lst

📁 单片机上的贪吃蛇。12864显示。含详细资料
💻 LST
📖 第 1 页 / 共 2 页
字号:
 178   1                      return 0;
 179   1              else
C51 COMPILER V8.02   LCD12864                                                              03/12/2009 22:02:27 PAGE 4   

 180   1                      return 1;
 181   1      }
 182          
 183          /***************************************
 184          向LCD指定位置画一条长度为Length的指定颜色的水平线
 185          ****************************************/
 186          void Lcd_HoriLine(unsigned char x,unsigned char y,unsigned char Length,unsigned char Color)
 187          {
 188   1              unsigned char i;
 189   1              if(Length==0)
 190   1                      return;
 191   1              for(i=0;i<Length;i++)
 192   1              {
 193   2                      Lcd_PutPixel(x+i,y,Color);
 194   2              }
 195   1      }
 196          
 197          /***************************************
 198          向LCD指定位置画一条长度为Length的指定颜色的垂直线
 199          ****************************************/
 200          void Lcd_VertLine(unsigned char x,unsigned char y,unsigned char Length,unsigned char Color)
 201          {
 202   1              unsigned char i;
 203   1              if(Length==0)
 204   1                      return;
 205   1              for(i=0;i<Length;i++)
 206   1              {
 207   2                      Lcd_PutPixel(x,y+i,Color);
 208   2              }
 209   1      }
 210          
 211          /*******************************************
 212          向LCD指定起始坐标和结束坐标之间画一条指定颜色的直线
 213          ********************************************/
 214          void Lcd_Line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char Color)
 215          {
 216   1              unsigned int x,y; 
 217   1              unsigned int d_x,d_y;//d_x=x2-x1;d_y=y2-y1;
 218   1              int err=0;
 219   1              unsigned char temp=0;
 220   1              if(y2<y1)
 221   1              {
 222   2                      x=x1;
 223   2                      y=y1;
 224   2                      x1=x2;
 225   2                      y1=y2;
 226   2                      x2=x;
 227   2                      y2=y;
 228   2              }
 229   1              d_y=y2-y1;
 230   1              if (d_y==0)
 231   1              {
 232   2                      if (x1>x2) 
 233   2                      {
 234   3                              x=x1;
 235   3                              x1=x2;
 236   3                              x2=x;
 237   3                      }
 238   2                      for (x=x1;x<=x2;x++) 
 239   2                              Lcd_PutPixel(x,y1,Color);
 240   2              }
 241   1      
C51 COMPILER V8.02   LCD12864                                                              03/12/2009 22:02:27 PAGE 5   

 242   1              else
 243   1              {
 244   2                      if(x2>=x1)
 245   2                      {
 246   3                              temp=1;
 247   3                              d_x=x2-x1;
 248   3                      }
 249   2                      else 
 250   2                              d_x=x1-x2;
 251   2                      x=x1;
 252   2                      y=y1;
 253   2                      Lcd_PutPixel(x,y,1);
 254   2      
 255   2                      if(temp&&(d_y<=d_x))
 256   2                              while(x!=x2)
 257   2                              {
 258   3                                      if(err<0)
 259   3                                      {
 260   4                                              x=x+1;
 261   4                                              err=err+(y2-y);
 262   4                                      }
 263   3                                      else 
 264   3                                      {
 265   4                                              x=x+1;
 266   4                                              y=y+1;
 267   4                                              err=err+(y2-y)-(x2-x);
 268   4                                      }
 269   3                                      Lcd_PutPixel(x,y,Color);
 270   3                              }
 271   2      
 272   2                      else if(temp&&(d_y>d_x))
 273   2                              while(y!=y2)
 274   2                              {
 275   3                                      d_x=x2-x;
 276   3                                      d_y=y2-y; 
 277   3                                      if(err<0)
 278   3                                      {
 279   4                                              x=x+1;
 280   4                                              y=y+1;
 281   4                                              err=err+d_y-d_x;
 282   4                                      }
 283   3                                      else 
 284   3                                      {
 285   4                                              y=y+1;
 286   4                                              err=err-d_x;
 287   4                                      }
 288   3                                      Lcd_PutPixel(x,y,Color);
 289   3      
 290   3                              }
 291   2      
 292   2                      else if(!temp&&(d_y<=d_x))
 293   2                              while(x!=x2)
 294   2                              {
 295   3                                      d_x=x-x2;
 296   3                                      d_y=y2-y; 
 297   3                                      if(err<0)
 298   3                                      {
 299   4                                              x=x-1;
 300   4                                              err=err+d_y;
 301   4                                      }
 302   3                                      else 
 303   3                                      {
C51 COMPILER V8.02   LCD12864                                                              03/12/2009 22:02:27 PAGE 6   

 304   4                                              x=x-1;
 305   4                                              y=y+1;
 306   4                                              err=err+d_y-d_x;
 307   4                                      }
 308   3                                      Lcd_PutPixel(x,y,Color);
 309   3                              }
 310   2      
 311   2                      else if(!temp &&(d_y>d_x))
 312   2                              while(y!=y2)
 313   2                              {
 314   3                                      d_x=x-x2;
 315   3                                      d_y=y2-y; 
 316   3                                      if(err<0)
 317   3                                      {
 318   4                                              x=x-1;
 319   4                                              y=y+1;
 320   4                                              err=err+d_y-d_x;
 321   4                                      }
 322   3                                      else 
 323   3                                      {
 324   4                                              y=y+1;
 325   4                                              err=err-d_x;
 326   4                                      }
 327   3                                      Lcd_PutPixel(x,y,Color);
 328   3                              }
 329   2              }
 330   1      }
 331          
 332          /*******************************************
 333          向LCD指定左上角坐标和右下角坐标画一个指定颜色的矩形
 334          ********************************************/
 335          void Lcd_Rectangle(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char Color
             -)
 336          {
 337   1              unsigned char Temp;
 338   1              if(x0>x1)
 339   1              {
 340   2                      Temp=x0;
 341   2                      x0=x1;
 342   2                      x1=Temp;
 343   2              }       
 344   1              if(y0>y1)
 345   1              {
 346   2                      Temp=y0;
 347   2                      y0=y1;
 348   2                      y1=Temp;
 349   2              }
 350   1              Lcd_VertLine(x0,y0,y1-y0+1,Color);
 351   1              Lcd_VertLine(x1,y0,y1-y0+1,Color);
 352   1              Lcd_HoriLine(x0,y0,x1-x0+1,Color);
 353   1              Lcd_HoriLine(x0,y1,x1-x0+1,Color);      
 354   1      }
 355          
 356          /****************************************
 357          对称法画圆的8个镜像点
 358          *****************************************/
 359          void CircleDot(unsigned char x,unsigned char y,char xx,char yy,unsigned char Color)//内部函数,对称法画圆

⌨️ 快捷键说明

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