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

📄 yijia.lst

📁 一个大型洗衣设备晾衣架的光电控制系统的C51程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 250   3                 udf=1;              /*设置更新显示标志 */
 251   3              }
 252   2              if(udf)                /*更新显示的操作  */
 253   2              {
 254   3                updatedisp(skv,k1f,shift);
 255   3      
 256   3                udf=0;
 257   3              }
 258   2          }  /*end of while loop  */
 259   1      
 260   1      }
 261          /*更新显示,*disp--显示内容,twif--是否闪烁标志,twip--闪烁位  */
 262           void  updatedisp(unsigned char* disp,bit twif,unsigned char twip)
 263           {
 264   1           if(twif)        /*闪烁        */
 265   1           {
 266   2              if(twip==0)
 267   2                 ch451_write(CH451_TWINKLE1);
 268   2              else if(twip==1)
 269   2                 ch451_write(CH451_TWINKLE2);
 270   2              else if(twip==2)
 271   2                 ch451_write(CH451_TWINKLE3);
 272   2              else if(twip==3)
 273   2                 ch451_write(CH451_TWINKLE4);
 274   2           }
 275   1           else
 276   1              ch451_write(CH451_TWINKLE);     /*不闪烁     */
 277   1           /*显示各个位数据               */
 278   1           ch451_write(CH451_DIG0 | disp[0]);
 279   1           ch451_write(CH451_DIG1 | disp[1]);
 280   1           ch451_write(CH451_DIG2 | disp[2]);
 281   1           ch451_write(CH451_DIG3 | disp[3]);
 282   1       }
 283          
 284           /*读操作,ax:地址,以字为单位*/
 285           U16 read93(U8 ax)
 286           {
 287   1           char i;
 288   1           U8 db,ay;
 289   1           U16 dx;
 290   1           /* 前导条件  */
 291   1           c=0;
 292   1           d=0;
 293   1           s=0;
 294   1           s=1;
 295   1           d=1;
C51 COMPILER V3.20,  SN-50203013  YIJIA                                                    06/29/07  20:42:04  PAGE 6   

 296   1           c=1;
 297   1           c=0;
 298   1           /* 发送读操作码  */
 299   1           d=1;
 300   1           c=1;
 301   1           c=0;
 302   1           d=0;
 303   1           c=1;
 304   1           c=0;
 305   1           /* 发送地址  */
 306   1           for(i=5;i>=0;i--)
 307   1           {
 308   2               ay=(ax>>i) & 1;
 309   2               if(ay==1)
 310   2                   d=1;
 311   2               else
 312   2                   d=0;
 313   2               c=1;
 314   2               c=0;
 315   2           }
 316   1           /*输出前导0
                   c=0;
                   c=1;      */
 319   1           /*读数据*/
 320   1           dx=0;
 321   1           for(i=15;i>=0;i--)
 322   1           {
 323   2               c=1;
 324   2               if(q==1)
 325   2                   db=1;
 326   2               else
 327   2                   db=0;
 328   2               dx=dx | (db<<i);
 329   2               c=0;
 330   2           }
 331   1      
 332   1           s=0;
 333   1           return dx;
 334   1       }
 335          
 336           /*写操作,ax:地址,dx:数据,以字为单位*/
 337           /*总的写操作之前,要调用擦写使能函数*/
 338           /*总的写操作之后,要调用擦写禁止函数*/
 339           void write93(U8 ax, U16 dx)
 340           {
 341   1           char i;
 342   1           U8   ay;
 343   1           /* 前导条件  */
 344   1           c=0;
 345   1           d=0;
 346   1           s=0;
 347   1           s=1;
 348   1           d=1;
 349   1           c=1;
 350   1           c=0;
 351   1           /* 发送写操作码  */
 352   1           d=0;
 353   1           c=1;
 354   1           c=0;
 355   1           d=1;
 356   1           c=1;
 357   1           c=0;
C51 COMPILER V3.20,  SN-50203013  YIJIA                                                    06/29/07  20:42:04  PAGE 7   

 358   1           /* 发送地址  */
 359   1           for(i=5;i>=0;i--)
 360   1           {
 361   2               ay=(dx>>i) & 1;
 362   2               if(ay==1)
 363   2                   d=1;
 364   2               else
 365   2                   d=0;
 366   2               c=1;
 367   2               c=0;
 368   2           }
 369   1           /* 发送数据  */
 370   1           for(i=15;i>=0;i--)
 371   1           {
 372   2               ay=(dx>>i) & 1;
 373   2               if(ay==1)
 374   2                   d=1;
 375   2               else
 376   2                   d=0;
 377   2               c=1;
 378   2               c=0;
 379   2           }
 380   1           /*启动写操作*/
 381   1           
 382   1           s=0;
 383   1           q=1;
 384   1           s=1;
 385   1           /*等待写操作结束*/
 386   1            while(q==0)
 387   1            {
 388   2                c=1;
 389   2                c=0;
 390   2            }
 391   1          /* delay();
                   delay();  */
 393   1           s=0;
 394   1       }
 395          
 396           /*擦写使能*/
 397           void erwren93(void)
 398           {
 399   1           char i;
 400   1           /* 前导条件  */
 401   1           c=0;
 402   1           d=0;
 403   1           s=0;
 404   1           s=1;
 405   1           d=1;
 406   1           c=1;
 407   1           c=0;
 408   1           /* 发送操作码  */
 409   1           d=0;
 410   1           c=1;
 411   1           c=0;
 412   1           c=1;
 413   1           c=0;
 414   1           /* 发送"地址"  */
 415   1           for(i=0;i<6;i++)
 416   1           {
 417   2               d=1;
 418   2               c=1;
 419   2               c=0;
C51 COMPILER V3.20,  SN-50203013  YIJIA                                                    06/29/07  20:42:04  PAGE 8   

 420   2           }
 421   1      
 422   1           s=0;
 423   1       }
 424          
 425           /*擦写禁止*/
 426           void erwrdisen93(void)
 427           {
 428   1           char i;
 429   1           /* 前导条件  */
 430   1           c=0;
 431   1           d=0;
 432   1           s=0;
 433   1           s=1;
 434   1           d=1;
 435   1           c=1;
 436   1           c=0;
 437   1           /* 发送操作码  */
 438   1           d=0;
 439   1           c=1;
 440   1           c=0;
 441   1           c=1;
 442   1           c=0;
 443   1           /* 发送"地址"  */
 444   1           for(i=0;i<6;i++)
 445   1           {
 446   2               d=0;
 447   2               c=1;
 448   2               c=0;
 449   2           }
 450   1      
 451   1           s=0;
 452   1       }
 453          
 454           /*擦除操作,ax:地址*/
 455           void erase93(U8 ax)
 456           {
 457   1           char i;
 458   1           /* 前导条件  */
 459   1           c=0;
 460   1           d=0;
 461   1           s=0;
 462   1           s=1;
 463   1           d=1;
 464   1           c=0;
 465   1           c=1;
 466   1           /* 发送操作码  */
 467   1           d=1;
 468   1           c=0;
 469   1           c=1;
 470   1           c=0;
 471   1           c=1;
 472   1           /* 发送地址  */
 473   1           for(i=5;i>=0;i--)
 474   1           {
 475   2               d=(ax>>i) & 1;
 476   2               c=0;
 477   2               c=1;
 478   2           }
 479   1      
 480   1           /*启动擦除操作*/
 481   1           s=0;
C51 COMPILER V3.20,  SN-50203013  YIJIA                                                    06/29/07  20:42:04  PAGE 9   

 482   1           s=1;
 483   1           /*等待擦除操作结束*/
 484   1            while(q==0);
 485   1          /* delay();
                   delay();    */
 487   1           s=0;
 488   1       }
 489          
 490           /*擦除全部操作*/
 491          
 492           void eraseall93(void)
 493           {
 494   1           char i;
 495   1           /* 前导条件  */
 496   1           c=0;
 497   1           d=0;
 498   1           s=0;
 499   1           s=1;
 500   1           d=1;
 501   1           c=0;
 502   1           c=1;
 503   1           /* 发送操作码  */
 504   1           d=0;
 505   1           c=0;
 506   1           c=1;
 507   1           c=0;
 508   1           c=1;
 509   1      
 510   1           d=1;
 511   1           c=0;
 512   1           c=1;
 513   1           /* 发送地址  */
 514   1           for(i=4;i>=0;i--)
 515   1           {

⌨️ 快捷键说明

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