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

📄 zhts.lst

📁 51单片学习程序,里面有流水灯
💻 LST
📖 第 1 页 / 共 2 页
字号:
 285   1      
 286   1      }
 287          
 288          
 289          void dazhuanhuan()
 290          {unsigned char a,k;
 291   1        wela=0;
 292   1        dula=0;
 293   1        csda=0;
 294   1        a=0;
 295   1        dawr=0;
 296   1        for(k=0;k<255;k++)
 297   1        {
 298   2        P0=a;
 299   2        delay(50);
 300   2        a++;
 301   2        }
 302   1      }
 303          
C51 COMPILER V6.12  ZHTS                                                                   11/28/2006 16:29:48 PAGE 6   

 304          
 305          void adzhuanhuan()
 306          {uchar a,b,A1,A2,A2t,A3,adval;
 307   1          b=0xf0;
 308   1          while(b==0xf0)
 309   1        {
 310   2          wela=1;
 311   2          P0=0;                       //选通ADCS
 312   2          adwr=0;			//AD写入(随便写个什么都行,主要是为了启动AD转换)
 313   2          _nop_();
 314   2          adwr=1;
 315   2          P0=0xff;                    //关闭ADCS
 316   2          delay(10);
 317   2          wela=0;                     //关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化
 318   2             for(a=20;a>0;a--)        //需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据
 319   2          {                           //这里把显示部分放这里的原因也是为了增加写读之间的时间间隔                
             -                                                                                                                        
             -                                                                                   
 320   3              display(A1,A2,A3);
 321   3           }	//送去显示各位。
 322   2           wela=1;                   //重新打开有AD片选信号锁存器的锁存端
 323   2           P1=0xff;                    //读取P1口之前先给其写全1
 324   2           P0=0;                       //选通ADCS
 325   2           adrd=0;                     //AD读使能
 326   2           adval=P1;			//AD数据读取赋给P1口
 327   2           adrd=1;
 328   2           P0=0xff;                     //关闭ADCS
 329   2           adwr=0;
 330   2           P1=adval;                    //同时把AD的值送八个发光二极显示
 331   2           A1=adval/100;		//分出百,十,和个位
 332   2           A2t=adval%100;
 333   2           A2=A2t/10;
 334   2           A3=A2t%10;
 335   2      
 336   2      	 P3=0xf0;//扫描键盘  看是否有见键按下
 337   2      	 b=P3&0xf0;
 338   2         }
 339   1      }
 340          
 341          
 342          
 343          
 344          //4*4键盘检测程序,按下键后相应的代码显示在数码管上
 345          void display1(unsigned char num)
 346          {
 347   1               P0=table[num];
 348   1         //    P0=0xff;
 349   1               dula=1;
 350   1               dula=0;
 351   1               P0=0xc7;
 352   1               wela=1;
 353   1               wela=0;
 354   1      
 355   1      
 356   1      		
 357   1      }
 358          void jianpan()
 359          {unsigned char temp,key;
 360   1        dula=0;
 361   1        wela=0;
 362   1        while(1)
 363   1        {
C51 COMPILER V6.12  ZHTS                                                                   11/28/2006 16:29:48 PAGE 7   

 364   2          P3=0xfe;
 365   2          temp=P3;
 366   2          temp=temp&0xf0;
 367   2          if(temp!=0xf0)
 368   2          {
 369   3            delay(10);
 370   3            if(temp!=0xf0)
 371   3            {
 372   4              temp=P3;
 373   4              switch(temp)
 374   4              {
 375   5                case 0xee:
 376   5                     key=0;
 377   5                     break;
 378   5      
 379   5                case 0xde:
 380   5                     key=1;
 381   5                     break;
 382   5      
 383   5                case 0xbe:
 384   5                     key=2;
 385   5                     break;
 386   5      
 387   5                case 0x7e:
 388   5                     key=3;
 389   5                     break;
 390   5               }
 391   4               while(temp!=0xf0)
 392   4               {
 393   5                 temp=P3;
 394   5                 temp=temp&0xf0;
 395   5                 beep=0;
 396   5               }
 397   4               beep=1;
 398   4              display1(key);
 399   4              // P0=table[key];
 400   4       /*        P0=0xff;
 401   4               dula=1;
 402   4      
 403   4               while(i--);
 404   4               dula=0;
 405   4               P0=0xc0;
 406   4               wela=1;
 407   4               wela=0;
 408   4        dula=0;
 409   4        wela=0;
 410   4        P0=0xff;
 411   4        dula=1;
 412   4        dula=0;
 413   4        P0=0xc5;
 414   4        wela=1;
 415   4        wela=0; */
 416   4               P1=0xfe;
 417   4            }
 418   3          }
 419   2          P3=0xfd;
 420   2          temp=P3;
 421   2          temp=temp&0xf0;
 422   2          if(temp!=0xf0)
 423   2          {
 424   3            delay(10);
 425   3            if(temp!=0xf0)
C51 COMPILER V6.12  ZHTS                                                                   11/28/2006 16:29:48 PAGE 8   

 426   3            {
 427   4              temp=P3;
 428   4              switch(temp)
 429   4              {
 430   5                case 0xed:
 431   5                     key=4;
 432   5                     break;
 433   5      
 434   5                case 0xdd:
 435   5                     key=5;
 436   5                     break;
 437   5      
 438   5                case 0xbd:
 439   5                     key=6;
 440   5                     break;
 441   5      
 442   5                case 0x7d:
 443   5                     key=7;
 444   5                     break;
 445   5               }
 446   4               while(temp!=0xf0)
 447   4               {
 448   5                 temp=P3;
 449   5                 temp=temp&0xf0;
 450   5                 beep=0;
 451   5               }
 452   4               beep=1;
 453   4               display1(key);
 454   4      /*         P0=table[key];
 455   4               dula=1;
 456   4            //   while(100--);
 457   4               dula=0;
 458   4               P0=0xc0;
 459   4               wela=1;
 460   4               wela=0;
 461   4        */       P1=0xfc;
 462   4            }
 463   3            }
 464   2          P3=0xfb;
 465   2          temp=P3;
 466   2          temp=temp&0xf0;
 467   2          if(temp!=0xf0)
 468   2          {
 469   3            delay(10);
 470   3            if(temp!=0xf0)
 471   3            {
 472   4              temp=P3;
 473   4              switch(temp)
 474   4              {
 475   5                case 0xeb:
 476   5                     key=8;
 477   5                     break;
 478   5      
 479   5                case 0xdb:
 480   5                     key=9;
 481   5                     break;
 482   5      
 483   5                case 0xbb:
 484   5                     key=10;
 485   5                     break;
 486   5      
 487   5                case 0x7b:
C51 COMPILER V6.12  ZHTS                                                                   11/28/2006 16:29:48 PAGE 9   

 488   5                     key=11;
 489   5                     break;
 490   5               }
 491   4               while(temp!=0xf0)
 492   4               {
 493   5                 temp=P3;
 494   5                 temp=temp&0xf0;
 495   5                 beep=0;
 496   5               }
 497   4               beep=1;
 498   4              display1(key);
 499   4           /*    P0=table[key];
 500   4               dula=1;
 501   4            //   while(100--);
 502   4               dula=0;
 503   4               P0=0xc0;
 504   4               wela=1;
 505   4               wela=0;
 506   4          */     P1=0xf8;
 507   4            }
 508   3            }
 509   2          P3=0xf7;
 510   2          temp=P3;
 511   2          temp=temp&0xf0;
 512   2          if(temp!=0xf0)
 513   2          {
 514   3            delay(10);
 515   3            if(temp!=0xf0)
 516   3            {
 517   4              temp=P3;
 518   4              switch(temp)
 519   4              {
 520   5                case 0xe7:
 521   5                     key=12;
 522   5                     break;
 523   5      
 524   5                case 0xd7:
 525   5                     key=13;
 526   5                     break;
 527   5      
 528   5                case 0xb7:
 529   5                     key=14;
 530   5                     break;
 531   5      
 532   5                case 0x77:
 533   5                     key=15;
 534   5                     break;
 535   5               }
 536   4               while(temp!=0xf0)
 537   4               {
 538   5                 temp=P3;
 539   5                 temp=temp&0xf0;
 540   5                 beep=0;
 541   5               }
 542   4               beep=1;
 543   4              display1(key);
 544   4        /*       P0=table[key];
 545   4               dula=1;
 546   4         //      while(100--);
 547   4               dula=0;
 548   4               P0=0xc0;
 549   4               wela=1;
C51 COMPILER V6.12  ZHTS                                                                   11/28/2006 16:29:48 PAGE 10  

 550   4               wela=0;
 551   4          */     P1=0xf0;
 552   4            }
 553   3          }
 554   2        }
 555   1      }
 556          
 557          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1174    ----
   CONSTANT SIZE    =     26    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7      14
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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