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

📄 ceshi.lst

📁 单片机初学者可用
💻 LST
📖 第 1 页 / 共 2 页
字号:
 243   1         wela=0;
 244   1         delay(5);
 245   1      
 246   1         P0=table[g_c];       //显示个位
 247   1         dula=1;
 248   1         dula=0;
 249   1      
 250   1         P0=0x7b;
 251   1         wela=1;
 252   1         wela=0;
 253   1         delay(5);
 254   1      }
 255               da();//DA
 256          void main()
 257          { uchar liushui;
 258   1        k=0xfe;
 259   1        for(liushui=0;liushui<8;liushui++)
 260   1        {
 261   2            delay10ms();
 262   2            beep=0;
 263   2            delay10ms();
 264   2            beep=1;
 265   2            j=_crol_(k,1);
 266   2            k=j;
 267   2            P1=j;
 268   2         }
 269   1         dazhuanhuan();
 270   1      wendu();
 271   1      adzhuanhuan();
 272   1      jianpan();
 273   1      }
 274          void dazhuanhuan()
 275          {unsigned char a,k;
 276   1        wela=0;
 277   1        dula=0;
 278   1        csda=0;
 279   1        a=0;
 280   1        dawr=0;
 281   1        for(k=0;k<255;k++)
 282   1        {
 283   2        P0=a;
 284   2        delay(50);
 285   2        a++;
 286   2        }
 287   1      }
 288          
 289          
 290          void adzhuanhuan()
 291          {uchar a,b,A1,A2,A2t,A3,adval;
 292   1          b=0xf0;
 293   1          while(b==0xf0)
 294   1        {
 295   2          wela=1;
 296   2          P0=0;                       //选通ADCS
 297   2          adwr=0;         //AD写入(随便写个什么都行,主要是为了启动AD转换)
 298   2          _nop_();
 299   2          adwr=1;
 300   2          P0=0xff;                    //关闭ADCS
 301   2          delay(10);
 302   2          wela=0;                     //关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化
 303   2             for(a=20;a>0;a--)        //需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据
C51 COMPILER V7.50   CESHI                                                                 08/08/2008 15:17:00 PAGE 6   

 304   2          {                           //这里把显示部分放这里的原因也是为了增加写读之间的时间间隔                
             -                                                                                                                        
             -                                                                                   
 305   3              display(A1,A2,A3);
 306   3           }  //送去显示各位。
 307   2           wela=1;                   //重新打开有AD片选信号锁存器的锁存端
 308   2           P1=0xff;                    //读取P1口之前先给其写全1
 309   2           P0=0;                       //选通ADCS
 310   2           adrd=0;                     //AD读使能
 311   2           adval=P1;          //AD数据读取赋给P1口
 312   2           adrd=1;
 313   2           P0=0xff;                     //关闭ADCS
 314   2           adwr=0;
 315   2           P1=adval;                    //同时把AD的值送八个发光二极显示
 316   2           A1=adval/100;      //分出百,十,和个位
 317   2           A2t=adval%100;
 318   2           A2=A2t/10;
 319   2           A3=A2t%10;
 320   2      
 321   2           P3=0xf0;//扫描键盘  看是否有见键按下
 322   2           b=P3&0xf0;
 323   2         }
 324   1      }
 325          //4*4键盘检测程序,按下键后相应的代码显示在数码管上
 326          void display1(unsigned char num)
 327          {
 328   1               P0=table[num];
 329   1         //    P0=0xff;
 330   1               dula=1;
 331   1               dula=0;
 332   1               P0=0xc7;
 333   1               wela=1;
 334   1               wela=0;
 335   1      }
 336          void jianpan()
 337          {unsigned char temp,key;
 338   1        dula=0;
 339   1        wela=0;
 340   1        while(1)
 341   1        {
 342   2          P3=0xfe;
 343   2          temp=P3;
 344   2          temp=temp&0xf0;
 345   2          if(temp!=0xf0)
 346   2          {
 347   3            delay(10);
 348   3            if(temp!=0xf0)
 349   3            {
 350   4              temp=P3;
 351   4              switch(temp)
 352   4              {
 353   5                case 0xee:key=0;
 354   5                     break;
 355   5                case 0xde: key=1;
 356   5                     break;
 357   5                case 0xbe:key=2;
 358   5                     break;
 359   5                case 0x7e:key=3;
 360   5                     break;
 361   5               }
 362   4               while(temp!=0xf0)
 363   4               {
C51 COMPILER V7.50   CESHI                                                                 08/08/2008 15:17:00 PAGE 7   

 364   5                 temp=P3;
 365   5                 temp=temp&0xf0;
 366   5                 beep=0;
 367   5               }
 368   4               beep=1;
 369   4              display1(key);
 370   4      
 371   4               P1=0xfe;
 372   4            }
 373   3          }
 374   2          P3=0xfd;
 375   2          temp=P3;
 376   2          temp=temp&0xf0;
 377   2          if(temp!=0xf0)
 378   2          {
 379   3            delay(10);
 380   3            if(temp!=0xf0)
 381   3            {
 382   4              temp=P3;
 383   4              switch(temp)
 384   4              {
 385   5                case 0xed: key=4;
 386   5                     break;
 387   5                case 0xdd:key=5;
 388   5                     break;
 389   5                case 0xbd: key=6;
 390   5                     break;
 391   5                case 0x7d: key=7;
 392   5                     break;
 393   5               }
 394   4               while(temp!=0xf0)
 395   4               {
 396   5                 temp=P3;
 397   5                 temp=temp&0xf0;
 398   5                 beep=0;
 399   5               }
 400   4               beep=1;
 401   4               display1(key);
 402   4             P1=0xfc;
 403   4            }
 404   3            }
 405   2          P3=0xfb;
 406   2          temp=P3;
 407   2          temp=temp&0xf0;
 408   2          if(temp!=0xf0)
 409   2          {
 410   3            delay(10);
 411   3            if(temp!=0xf0)
 412   3            {
 413   4              temp=P3;
 414   4              switch(temp)
 415   4              {
 416   5                case 0xeb:key=8;
 417   5                      break;
 418   5                case 0xdb:key=9;
 419   5                      break;
 420   5                case 0xbb:key=10;
 421   5                      break;
 422   5                case 0x7b:key=11;
 423   5                      break;
 424   5               }
 425   4               while(temp!=0xf0)
C51 COMPILER V7.50   CESHI                                                                 08/08/2008 15:17:00 PAGE 8   

 426   4               {
 427   5                 temp=P3;
 428   5                 temp=temp&0xf0;
 429   5                 beep=0;
 430   5               }
 431   4               beep=1;
 432   4              display1(key);
 433   4              P1=0xf8;
 434   4            }
 435   3            }
 436   2          P3=0xf7;
 437   2          temp=P3;
 438   2          temp=temp&0xf0;
 439   2          if(temp!=0xf0)
 440   2          {
 441   3            delay(10);
 442   3            if(temp!=0xf0)
 443   3            {
 444   4              temp=P3;
 445   4              switch(temp)
 446   4              {
 447   5                case 0xe7: key=12;
 448   5                     break;
 449   5                case 0xd7: key=13;
 450   5                     break;
 451   5                case 0xb7:key=14;
 452   5                     break;
 453   5                case 0x77:key=15;
 454   5                     break;
 455   5               }
 456   4               while(temp!=0xf0)
 457   4               {
 458   5                 temp=P3;
 459   5                 temp=temp&0xf0;
 460   5                 beep=0;
 461   5               }
 462   4               beep=1;
 463   4              display1(key);
 464   4              P1=0xf0;
 465   4            }
 466   3          }
 467   2              if(ss1==0)
 468   2              {
 469   3                      delay(5);
 470   3                      if(ss1==0);
 471   3                      delay(5);
 472   3                      tmpchange();
 473   3              }
 474   2        }
 475   1      }
 476          


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

C51 COMPILER V7.50   CESHI                                                                 08/08/2008 15:17:00 PAGE 9   


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

⌨️ 快捷键说明

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