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

📄 dianzi.lst

📁 实验学习型电子钟包括红外线控制密码da控制led亮度ad转换语音转换闹铃
💻 LST
📖 第 1 页 / 共 4 页
字号:

 242   1      }
 243          /*********************************************************         7219設置
 244          *********************************************************/
 245          
 246          
 247          void Write7129( uchar Add, uchar Data )
 248          {
 249   1                 uint Send;
 250   1                 uchar i;
 251   1                 Send = Add*0x100 + Data;
 252   1      
 253   1                 LOAD = 1;
 254   1                 CLK = 0;
 255   1                 _nop_();
 256   1                 _nop_();
 257   1                 LOAD = 0;
 258   1      
 259   1                 for( i = 0 ; i < 16 ; i++ )
 260   1                 {
 261   2                            CLK = 0;
 262   2                            DIN = 0;
 263   2                            if( (Send & 0x8000) != 0 )
 264   2                                       DIN = 1;
 265   2                            _nop_();
 266   2                            _nop_();
 267   2                            _nop_();
 268   2                            CLK = 1;
 269   2                            Send = Send << 1 ;    
 270   2                 }
 271   1                 _nop_();
 272   1                 LOAD = 1;
 273   1      }
 274          void Init7219( void )
 275          {
 276   1                 Write7129( 0x0c , 0x01 );                   //开启
 277   1      //         Write7129( 0x09 , 0x00 );                   //译码方式 不译码
 278   1                 Write7129( 0x09 , 0xff );                   //译码方式 B译码
 279   1                 Write7129( 0x0a , 0x08 );                   //亮度
 280   1                 Write7129( 0x0b , 0x07 );                   //扫描界限 
 281   1      }
 282          void DelayMs( uchar n )
 283          {
 284   1                 uchar i;
 285   1                 while( n-- )
 286   1                 {
 287   2                            for( i = 0 ; i < 125 ; i++ )
 288   2                                       ;
 289   2                 }
 290   1      }
 291          /*******************************************************
 292                                                      AD0832驱动
 293          ********************************************************/
 294          
 295          uchar  adc() 
 296          {
 297   1          uchar i;
 298   1          uint rec=0,rec1=0;
 299   1                 ADCCS=1;
 300   1          ADCCLK=0;/*1*/
 301   1      //         ADCDO=1;
 302   1          _nop_();
 303   1          _nop_();
C51 COMPILER V7.06   DIANZI                                                                08/21/2008 22:03:20 PAGE 6   

 304   1          _nop_();
 305   1          
 306   1                 ADCCS=0;
 307   1                 _nop_();
 308   1          _nop_();
 309   1                 _nop_();
 310   1          ADCDO=1;
 311   1                 _nop_();
 312   1          _nop_();
 313   1                 _nop_();
 314   1      
 315   1          ADCCLK=1;/*1*/
 316   1          _nop_();
 317   1          _nop_();
 318   1          ADCCLK=0; 
 319   1          _nop_();
 320   1          _nop_();
 321   1          _nop_();
 322   1      
 323   1         ADCDO=1;
 324   1         _nop_();
 325   1         _nop_();
 326   1         _nop_();
 327   1         _nop_();
 328   1         ADCCLK=1;/*2*/
 329   1          _nop_();
 330   1          _nop_();
 331   1         ADCCLK=0; 
 332   1          _nop_();
 333   1          _nop_();
 334   1                 ADCDO=0;
 335   1          _nop_();
 336   1          _nop_();
 337   1                 _nop_();
 338   1          _nop_();
 339   1         ADCCLK=1;/*3*/
 340   1          _nop_();
 341   1          _nop_();
 342   1         ADCCLK=0; 
 343   1         _nop_();
 344   1         _nop_();
 345   1        
 346   1       ADCDO=1;   
 347   1      
 348   1                 for(i=0;i<8;i++)
 349   1          {
 350   2             ADCCLK=1;
 351   2              _nop_();
 352   2              _nop_();
 353   2                              _nop_();
 354   2              _nop_();
 355   2                   ADCCLK=0;
 356   2             _nop_();
 357   2             _nop_();
 358   2                             _nop_();
 359   2             _nop_();
 360   2             rec<<=1;
 361   2             if( ADCDO == 1 )
 362   2               rec=rec|0x01;     
 363   2                 }
 364   1        ADCDO=1;
 365   1          for(i=0;i<8;i++)
C51 COMPILER V7.06   DIANZI                                                                08/21/2008 22:03:20 PAGE 7   

 366   1          {
 367   2              ADCCLK=0;
 368   2              _nop_();
 369   2              _nop_();
 370   2                            _nop_();
 371   2              _nop_();
 372   2               rec1>>=1;
 373   2             if( ADCDO == 1 )
 374   2               rec1=rec1|0x80;       
 375   2                 ADCCLK=1;
 376   2             _nop_();
 377   2          }
 378   1          _nop_();
 379   1          _nop_();
 380   1         ADCCS=1;
 381   1                 
 382   1                 if( rec1 == rec )
 383   1                            return rec;
 384   1                 else
 385   1                            return 0;
 386   1      
 387   1      }
 388          void Data_Process(void)
 389          {
 390   1                 float tt;
 391   1                 uint dispnmber;
 392   1                 tt = ((adc()*Vref)/255.0-2)*6;//
 393   1           dispnmber =0x0f- tt;
 394   1          Write7129( 0x0a , dispnmber );
 395   1          DispBuf[6]=dispnmber/10;
 396   1          DispBuf[7]=dispnmber%10;
 397   1          //desips7219();
 398   1      }
 399          /*****************************************************
 400                     1420
 401          *****************************************************/
 402          void write1420(uchar Add)
 403          {
 404   1        P0 = Add;
 405   1        _nop_();
 406   1        _nop_();
 407   1        _nop_();
 408   1        PLAYL = 0;
 409   1        _nop_();
 410   1        _nop_();
 411   1        _nop_();
 412   1        //PLAYL = 1;
 413   1      }
 414          /*******************************************************
 415          
 416                    矩形鍵盤
 417          ********************************************************/
 418          uchar scan()
 419          {
 420   1                 uchar a,b,c,i;
 421   1                 P1=0xf0;
 422   1                 if((P1&0xf0)!=0xf0)
 423   1                 {          delay(2);
 424   2                            if((P1&0xf0)!=0xf0)
 425   2                            {          c=0xfe;                          
 426   3                                       a=0;                  
 427   3                                       while((c&0x10)!=0)
C51 COMPILER V7.06   DIANZI                                                                08/21/2008 22:03:20 PAGE 8   

 428   3                                       {          P1=c;
 429   4                                                  if((P1&0x10)==0){b=0;break;}
 430   4                                                  else
 431   4                                                  {          if((P1&0x20)==0){b=4;break;}
 432   5                                                             else
 433   5                                                             {          if((P1&0x40)==0){b=8;break;}
 434   6                                                                        else
 435   6                                                                        {          
 436   7                                                                                   if((P1&0x80)==0){b=12;break;}
 437   7                                                                        }
 438   6                                                             }
 439   5                                                  }
 440   4                                                  a++;
 441   4                                                  c<<=1;
 442   4                                       }
 443   3                                       c=a+b;
 444   3                                       delay(1);
 445   3                                       P1=0xf0;
 446   3                                       while((P1&0xf0)!=0xf0);
 447   3                                       return(c);
 448   3                            }  
 449   2                 }
 450   1          if(yuanma != 20)
 451   1                 {
 452   2           i=yuanma;
 453   2           yuanma=20;
 454   2           return i; 
 455   2          }
 456   1          else return(20);
 457   1      }
 458          /**********************************************************
 459          
 460                       按鍵功能
 461          ***********************************************************/
 462          void Keyboard()
 463          {
 464   1                 uchar key10=0;
 465   1                 static i,Cnt=0,nex = 0;
 466   1                 static bit PassOk = 0;
 467   1                 k = scan();
 468   1                 
 469   1                 switch( k )
 470   1                 {
 471   2                 case 0:
 472   2                               if((PassOk==1)||(key10==1))
 473   2                                                  {
 474   3                                                             k = 0;
 475   3                                                  }
 476   2                                         else 
 477   2                                           {
 478   3                                                             ProcessPlay();
 479   3                                                             
 480   3                      }break;
 481   2                            case 10:  //输入密码
 482   2                            setcode:
 483   2                                                  DispBuf[0]= 10;       
 484   2                                                  DispBuf[1]= 10;
 485   2                                                  DispBuf[2]= 10;
 486   2                                                  DispBuf[3]= 10;
 487   2                                                  DispBuf[4]= 10;
 488   2                                                  DispBuf[5]= 10;
 489   2                                                  desips7219();
C51 COMPILER V7.06   DIANZI                                                                08/21/2008 22:03:20 PAGE 9   

⌨️ 快捷键说明

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