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

📄 disp160_128.lst

📁 手表在液晶上动态显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
 186   2                                      {
 187   3                                      for(i=x1;i<=x2;i++)
 188   3                                              {
 189   4                                              j++;k++;
 190   4                                              Point(i,y1,n);
 191   4                                              if(k==shang2)j=k=0;
 192   4                                              else if(j==shang1){y1++;j=0;}
 193   4                                              }
 194   3                                      }
 195   2                              else if((y2<y1)&&(x2<x1))
 196   2                                      {
 197   3                                      for(i=x2;i<=x1;i++)
 198   3                                              {
 199   4                                              j++;k++;
 200   4                                              Point(i,y2,n);
 201   4                                              if(k==shang2)j=k=0;
 202   4                                              else if(j==shang1){y2++;j=0;}
 203   4                                              }
 204   3                                      }
 205   2                              else if((y2<y1)&&(x2>x1))
 206   2                                      {
 207   3                                      for(i=x1;i<=x2;i++)
 208   3                                              {
 209   4                                              j++;k++;
 210   4                                              Point(i,y1,n);
 211   4                                              if(k==shang2)j=k=0;
 212   4                                              else if(j==shang1){y1--;j=0;}
 213   4                                              }
 214   3                                      }
 215   2                              else if((y2>y1)&&(x2<x1))
 216   2                                      {
 217   3                                      for(i=x2;i<=x1;i++)
 218   3                                              {
 219   4                                              j++;k++;
 220   4                                              Point(i,y2,n);
 221   4                                              if(k==shang2)j=k=0;
 222   4                                              else if(j==shang1){y2--;j=0;}
 223   4                                              }
 224   3                                      }
 225   2                              }
 226   1                              else
 227   1                              {
 228   2                              shang1=_y/_x;
 229   2                              yu_shu=_y%_x;
 230   2                              shang2=_y/yu_shu;
 231   2                              if((y2>y1)&&(x2>x1))
 232   2                                      {
 233   3                                      for(i=y1;i<=y2;i++)
 234   3                                              {
 235   4                                              j++;k++;
 236   4                                              Point(x1,i,n);
 237   4                                              if(k==shang2)j=k=0;
 238   4                                              else if(j==shang1){x1++;j=0;}
 239   4                                              }
 240   3                                      }
 241   2                              else if((y2<y1)&&(x2<x1))
C51 COMPILER V7.50   DISP160_128                                                           05/21/2009 07:54:16 PAGE 5   

 242   2                                      {
 243   3                                      for(i=y2;i<=y1;i++)
 244   3                                              {
 245   4                                              j++;k++;
 246   4                                              Point(x2,i,n);
 247   4                                              if(k==shang2)j=k=0;
 248   4                                              else if(j==shang1){x2++;j=0;}
 249   4                                              }
 250   3                                      }
 251   2                              
 252   2                              else if((y2>y1)&&(x2<x1))
 253   2                                      {
 254   3                                      for(i=y1;i<=y2;i++)
 255   3                                              {
 256   4                                              j++;k++;
 257   4                                              Point(x1,i,n);
 258   4                                              if(k==shang2)j=k=0;
 259   4                                              else if(j==shang1){x1--;j=0;}
 260   4                                              }
 261   3                                      }
 262   2                              else if((y2<y1)&&(x2>x1))
 263   2                                      {
 264   3                                      for(i=y2;i<=y1;i++)
 265   3                                              {
 266   4                                              j++;k++;
 267   4                                              Point(x2,i,n);
 268   4                                              if(k==shang2)j=k=0;
 269   4                                              else if(j==shang1){x2--;j=0;}
 270   4                                              }
 271   3                                      }
 272   2                              }
 273   1      }
 274          //画圆子程序,其中x0,y0表示圆心,R表示半径
 275          //圆方程为(x-x0)^2+(y-y0)^2=R^2
 276          //先打第一象限内的1/4段圆弧(顺时针和反时针各打一次),再依据对称原理打出其他3段圆弧
 277          void Circle(unsigned char x0,unsigned char y0,unsigned R,bit n)
 278          {
 279   1      unsigned char i,j=0;
 280   1      Point(x0,y0,n);
 281   1      for(i=0;i<=R;i++)
 282   1         {
 283   2         while(1)
 284   2            {
 285   3            if(R*R-i*i<=j*j)break;
 286   3            j++;
 287   3            }
 288   2      //第一象限打点
 289   2            Point(x0-j,y0+i,n);
 290   2                Point(x0-i,y0+j,n);
 291   2                //Delay_500ms();
 292   2      //第二象限打点
 293   2            Point(x0+j,y0+i,n);
 294   2                Point(x0+i,y0+j,n);
 295   2                //Delay_500ms();
 296   2      //第三象限打点
 297   2            Point(x0+j,y0-i,n);
 298   2            Point(x0+i,y0-j,n);
 299   2               // Delay_500ms();
 300   2      //第四象限打点
 301   2            Point(x0-j,y0-i,n);
 302   2                Point(x0-i,y0-j,n);
 303   2                //Delay_500ms();
C51 COMPILER V7.50   DISP160_128                                                           05/21/2009 07:54:16 PAGE 6   

 304   2                j=0;
 305   2         }
 306   1      }
 307          /********************************没有用到的驱动******************************/
 308          //显示图片程序,Addr1/Addr2为图片的地址,I表示图片的大小,
 309          /*void Map_Display(unsigned  char Addr1,unsigned char Addr2,unsigned int i)
 310          {
 311          Write_Data2(Addr1,Addr2,ADR_POS);//设置写地址
 312          Write_Com(AUT_WR);      //设置自动写方式
 313          for(;i>0;i--)
 314                  {
 315                  Enable();
 316                  _CD=0;
 317                  P2=Map[i];
 318                  _WR=0;
 319                  _WR=1;
 320                  }
 321                  Write_Com(AUT_WO);      //自动写结束
 322          }
 323          //bit2数据自动读状态位,为1时候空闲
 324          void Aut_Read()
 325          {
 326          while(1)
 327          if((Read_State()&4)==4)break;
 328          }
 329          //写数据函数(注意:此处只能写一个字节)
 330          void Write_Data(unsigned char Data)
 331          {
 332          Enable();
 333          _CD=0;
 334          P2=Data;
 335          _WR=0;
 336          _WR=1;
 337          }
 338          //读数据函数(注意:此处只能读一个字节)
 339          unsigned char Read_Data()
 340          {
 341          unsigned char a;
 342          Enable();
 343          _CD=0;
 344          P2=0xff;//读状态之前先将数据线拉高
 345          _RD=0;
 346          _RD=1;
 347          a=P2;
 348          return a;
 349          }
 350          //读8字节数据函数
 351          unsigned char Read_8_Data(unsigned char Way)
 352          {
 353          unsigned char a;
 354          Aut_Read();//判断是否能自动读
 355          Write_Com(AUT_RD);//自动读开始
 356          Write_Com(Way);
 357          a=Read_Data();
 358          Write_Com(AUT_RO);//自动读结束
 359          return a;
 360          }
 361          *//*****************************************************************/
 362          
 363          


C51 COMPILER V7.50   DISP160_128                                                           05/21/2009 07:54:16 PAGE 7   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1612    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     54    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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