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

📄 yk1602.lst

📁 hao da jia lai fen xiang
💻 LST
📖 第 1 页 / 共 2 页
字号:
 257   1      
 258   1              DATAPORT = 0xff;
 259   1      
 260   1              RS =0; RW = 1; _nop_(); Elcm = 1; _nop_(); _nop_();
 261   1              
 262   1              while( DATAPORT & busy );
 263   1      
 264   1              Elcm = 0;
 265   1      }       
 266          
 267          
 268          
 269          
 270          
 271          
 272          // 短延时
 273          void delay5ms(void)
 274          {
 275   1              uint i = 5552;
 276   1              while(i--);
 277   1      }
 278          
 279          //长延时
 280          void delay400ms(void)
 281          {
 282   1              uchar i = 5;
 283   1              uint j;
 284   1              while(i--)
 285   1              {
 286   2                      j=7269;
 287   2                      while(j--);
 288   2              };
 289   1      }
 290          
 291          
 292          /*-------延时---------------*/
 293          void delay(void){
 294   1              int r;
 295   1              int e;
 296   1              for(r=0;r<500;r++){                             /*外层循环*/
 297   2               _nop_ ();                      /* delay for hardware */
 298   2               _nop_ ();                      /* delay for hardware */
 299   2               _nop_ ();                      /* delay for hardware */
 300   2               for(e=0;e<3;e++){                                      /*内层循环*/
 301   3               _nop_ ();                      /* delay for hardware */
 302   3                _nop_ ();                     /* delay for hardware */
 303   3               _nop_ ();                      /* delay for hardware */
C51 COMPILER V7.02b   YK1602                                                               11/27/2002 10:43:45 PAGE 6   

 304   3               _nop_ ();                      /* delay for hardware */
 305   3               _nop_ ();                      /* delay for hardware */
 306   3               }
 307   2               }
 308   1      }
 309          
 310          /*----------功能键识别子程序--------------*/
 311          void acct_1(void){
 312   1              
 313   1      tf:     _nop_();
 314   1              if(menu){
 315   2                      menu=0;
 316   2                      conh++;
 317   2                      if(conh==3) conh=0;
 318   2                      }
 319   1              
 320   1              
 321   1              if(conh==1){key_hit(min);               //低位设置
 322   2                                      conv();
 323   2                                      disp1(3,0);
 324   2                                      delay();
 325   2                              }
 326   1              if(conh==2){key_hit(hour);              //高位设置
 327   2                                      conv();
 328   2                                      disp1(3,0);
 329   2                                      delay();
 330   2                                              
 331   2                              }
 332   1      /*      if(conh==3){key_hit(thtl)               //显示高位,低位
 333   1                                      conv();
 334   1                                      
 335   1                                      
 336   1                                      delay();
 337   1                                      delay();
 338   1                                      delay();
 339   1                                      delay();
 340   1                                      delay();
 341   1                              }
 342   1              if(conh==4){key_hit(save);      
 343   1                                      conv();
 344   1                                      disp();
 345   1                                      delay();
 346   1                                              
 347   1                              }*/
 348   1              yk();
 349   1              if(!conh==0) goto tf;                           /*功能设置完毕?未设置则继续执行功能键处理*/
 350   1      }
 351                  
 352                  
 353          /*-----------加减键处理子程序-------------*/
 354          /*按键处理*/
 355          void key_hit(unsigned char add3)
 356          {       
 357   1              if(dw){         
 358   2                      dw=0;           /*减键*/
 359   2                      add3--;
 360   2                      if(add3>=60) add3=0;
 361   2                      if(conh==1) min=add3;
 362   2                      if(conh==2) hour=add3;
 363   2                      conv();
 364   2                      disp1(3,0);
 365   2                              }
C51 COMPILER V7.02b   YK1602                                                               11/27/2002 10:43:45 PAGE 7   

 366   1                              
 367   1              if(up){                 /*加键*/
 368   2                      up=0;           /*减键*/
 369   2                      add3++;
 370   2                      if(add3==60) add3=0;
 371   2                      if(conh==1) min=add3;
 372   2                      if(conh==2) hour=add3;
 373   2                      conv();
 374   2                      disp1(3,0);
 375   2                              
 376   2                      }
 377   1                      
 378   1                      
 379   1                      if(conh==1) min=add3;
 380   1                      if(conh==2) hour=add3;
 381   1                      
 382   1              }
 383                  
 384                  
 385          //遥控码识别
 386          void    yk(void){
 387   1              if(temp2==0xe2){
 388   2                              if(temp4==0xf1){
 389   3                                      if(temp3==0x2c){
 390   4                                                      if(temp5==0x16){        //功能键
 391   5                                                              menu=1;
 392   5                                                              temp3=0;
 393   5                                                              temp5=0;
 394   5                                                              }
 395   4                                              
 396   4                                              }
 397   3                                      if(temp3==0x44){
 398   4                                                      if(temp5==0x22){        //加键
 399   5                                                              up=1;
 400   5                                                              temp3=0;
 401   5                                                              temp5=0;
 402   5                                                              }
 403   4                                              }
 404   3                                      if(temp3==0x54){
 405   4                                                      if(temp5==0x2a){        //减键
 406   5                                                              dw=1;
 407   5                                                              temp3=0;
 408   5                                                              temp5=0;
 409   5                                                              }
 410   4                                              
 411   4                                              }
 412   3                                      }
 413   2                      
 414   2                      
 415   2                      }
 416   1              }
 417          
 418          
 419          
 420          //遥控中断
 421          
 422          void    int0a()interrupt 0 using 2{
 423   1      //              TH1=TL1=0;
 424   1                      
 425   1                      //TR0=1;                        //启动定时器
 426   1                      yt++;                           //中断次数
 427   1                      if(yt==1){
C51 COMPILER V7.02b   YK1602                                                               11/27/2002 10:43:45 PAGE 8   

 428   2                              TH1=TL1=0;
 429   2                              TR1=1;                  //启动定时器
 430   2                              }
 431   1                              
 432   1                      if(yt==2){
 433   2                              temp1=TH1;              //为起始
 434   2                              TH1=TL1=0;
 435   2                              if(temp1>=0x1f){        //大于8ms
 436   3                                      start=1;        //置起码标志
 437   3                                      }
 438   2                              else {start=0;
 439   3                                      yt=0;
 440   3                                      TR1=0;
 441   3                                      }
 442   2                              }
 443   1                      
 444   1                      
 445   1                      else{
 446   2                                      if(start==1){   //是起始才可以继续接收
 447   3                                              temp1=TH1;      //装入上次定时值
 448   3                                              TH1=TL1=0;      //重新计数
 449   3                                              if(temp1>=0x05){        //大于1.2ms
 450   4                                                      h=1;
 451   4                                                      }
 452   3                                              else if(temp1>=0x01){   //大于0.25ms
 453   4                                                      
 454   4                                                      h=0;
 455   4                                                      }
 456   3                                              da*=2;
 457   3                                              if(h) da++;
 458   3                                              gt++;
 459   3                                              if(gt==8){              //读8位
 460   4                                                      gt=0;gv++;
 461   4                                                      if(gv==1) temp2=da;
 462   4                                                      if(gv==2) temp3=da;
 463   4                                                      if(gv==3) temp4=da;
 464   4                                                      if(gv==4) {temp5=da;
 465   5                                                              gv=0;
 466   5                                                              start=0;
 467   5                                                              yt=0;
 468   5                                                              TR1=0;
 469   5                                                              }
 470   4                                                      
 471   4                                                      da=0;
 472   4                                                      }
 473   3                                              
 474   3                                              }
 475   2                      
 476   2                      
 477   2                      
 478   2                      }
 479   1              }
 480          /*------------------------*/
 481          
 482          void main(void){
 483   1              init_timer();
 484   1              led6[0]=0;
 485   1              led6[1]=2;
 486   1              led6[2]=2;
 487   1              led6[3]=2;
 488   1              led6[4]=2;
 489   1              led6[5]=2;
C51 COMPILER V7.02b   YK1602                                                               11/27/2002 10:43:45 PAGE 9   

 490   1              lcdreset();             //初始化
 491   1              delay400ms();
 492   1              disp1(3,0);
 493   1              disp(2,1,love);         //显示
 494   1              
 495   1              delay400ms();
 496   1              
 497   1      //      DispOneChar(0,1,time[1]);
 498   1              while(1){
 499   2                      delay400ms();
 500   2                      disp1(3,0);
 501   2                      acct_1();
 502   2                      yk();
 503   2                      }
 504   1              
 505   1              
 506   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1086    ----
   CONSTANT SIZE    =     38    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17      22
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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