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

📄 fyd.lst

📁 基于51系列单片机以DS18B20为温度传感器的数字温度计
💻 LST
📖 第 1 页 / 共 2 页
字号:
 235   3          case 3:second--;if(second<=0)second=59;break;
 236   3              case 4:hh--;  if(hh<=0)  hh=23;break;
 237   3          case 5:ff--;if(ff<=0)    ff=59;break;
 238   3          //case 6:ss--;if(ss<=0)    ss=59;break;
 239   3          default:break;
 240   3         }
 241   2        }
C51 COMPILER V7.50   FYD                                                                   08/01/2008 14:37:53 PAGE 5   

 242   1        while(dec==0);
 243   1      }
 244          
 245          void key_scan()
 246          {
 247   1       if(set==0) 
 248   1          {
 249   2                delay(10);
 250   2                if(set==0)
 251   2            key_set();
 252   2               }
 253   1       else if(ret==0)
 254   1          {
 255   2                delay(10);
 256   2                if(ret==0)
 257   2            key_ret(); 
 258   2              }
 259   1       else if(add==0)
 260   1              {
 261   2               delay(10);
 262   2               if(add==0)
 263   2               key_add();
 264   2              }
 265   1       else           
 266   1       {
 267   2        delay(10);
 268   2        if(dec==0) 
 269   2        key_dec();
 270   2       }
 271   1      }
 272          /*******************************************************************/
 273          
 274          /****************************************************/
 275          
 276          /*******************************显示函数*******************************/
 277           void display(void)
 278          {
 279   1        uint i;
 280   1       T[2]=tvalue/1000+0x30;   T[3]=tvalue%1000/100+0x30;
 281   1       T[4]=tvalue%100/10+0x30; T[6]=tvalue%10+0x30;
 282   1      
 283   1       sheding[1]=hh/10+0x30;   sheding[2]=hh%10+0x30;
 284   1       sheding[4]=ff/10+0x30;   sheding[5]=ff%10+0x30;
 285   1           
 286   1            if(tflag==0)
 287   1             T[1]=0x20;//正温度不显示符号
 288   1           else
 289   1             T[1]=0x2d;//负温度显示负号:-
 290   1      
 291   1           if(T[2]==0x30)
 292   1            {
 293   2              T[2]=0x20;//如果百位为0,不显示
 294   2             if(T[3]==0x30)
 295   2              {
 296   3                T[3]=0x20;//如果百位为0,十位为0也不显示
 297   3               }
 298   2            }
 299   1      
 300   1                if(KT==0)
 301   1                 sheding[7]=0x01;
 302   1                else
 303   1                  sheding[7]=0x1d;
C51 COMPILER V7.50   FYD                                                                   08/01/2008 14:37:53 PAGE 6   

 304   1         Writelcd( 0x8c,0 );
 305   1         for(i=0;i<8;i++)
 306   1         {
 307   2          Writelcd( T[i],1 );
 308   2         }
 309   1         
 310   1         Writelcd( 0x94,0 );   //时显示
 311   1         {
 312   2          Writelcd( (hour/10)+0x30,1 );
 313   2          Writelcd( (hour%10)+0x30,1 );
 314   2         }
 315   1      
 316   1            Writelcd( 0x95,0 );// 冒号和分十位
 317   1         {
 318   2          Writelcd( 0x3a,1 );
 319   2          Writelcd( (minite/10)+0x30,1 );
 320   2         }
 321   1      
 322   1            Writelcd( 0x96,0 ); //分个位和冒号
 323   1         {
 324   2          Writelcd( (minite%10)+0x30,1 );
 325   2          Writelcd( 0x3a,1 );
 326   2         }
 327   1      
 328   1            Writelcd( 0x97,0 );//秒显示
 329   1         {
 330   2          Writelcd( (second/10)+0x30,1 );
 331   2          Writelcd( (second%10)+0x30,1 );
 332   2         }
 333   1      
 334   1         Writelcd( 0x9c,0 );
 335   1         for(i=0;i<8;i++)
 336   1         {
 337   2          Writelcd( sheding[i],1 );
 338   2         }
 339   1      
 340   1      }
 341          
 342          /***************************************************************/
 343           void initdisplay(void)               //开机画面
 344          { unsigned char xxx=2,i;
 345   1        for(;xxx>0;xxx--)
 346   1        {     
 347   2          Writelcd( 0x80,0 );
 348   2          for(i=0;i<16;i++)
 349   2          Writelcd( huanyinghuamian[i],1 );   //开机画面
 350   2         
 351   2          Writelcd( 0x90,0 );  //说明:word:要写的内容 dat:1为数据 0为指令
 352   2          for(i=0;i<16;i++)
 353   2          Writelcd( word[i],1 );
 354   2      
 355   2      
 356   2          Writelcd( 0x88,0 );
 357   2          for(i=0;i<16;i++)
 358   2          Writelcd( guanggao[i],1 );
 359   2                              
 360   2                      
 361   2          Writelcd( 0x98,0 );
 362   2          for(i=0;i<16;i++)
 363   2          Writelcd( tegong[i],1 );
 364   2        }
 365   1      }
C51 COMPILER V7.50   FYD                                                                   08/01/2008 14:37:53 PAGE 7   

 366          
 367           void initdisplay1(void)               //开机画面
 368          {  
 369   1            //uchar i,j;
 370   1                uchar i;
 371   1          //Serial_int();// 液晶初始化
 372   1           
 373   1          //for(j=1;j<10;j++)      //不停的显示,这个参数需要修改
 374   1         // {
 375   1          
 376   1          Writelcd( 0x80,0 );
 377   1          for(i=0;i<16;i++)
 378   1          Writelcd( tegong[i],1 );
 379   1      
 380   1          Writelcd( 0x90,0 );  //说明:word:要写的内容 dat:1为数据 0为指令
 381   1          for(i=0;i<16;i++)
 382   1          Writelcd( numble[i],1 );
 383   1      
 384   1      
 385   1          Writelcd( 0x88,0 );
 386   1          for(i=0;i<8;i++)
 387   1          Writelcd( name[i],1 );
 388   1                              
 389   1                      
 390   1          Writelcd( 0x98,0 );
 391   1          for(i=0;i<8;i++)
 392   1          Writelcd( zhifu[i],1 );
 393   1        //  }
 394   1      }
 395          
 396          /***************************************************/
 397          
 398          void B_J()
 399          {
 400   1       if(((hour==hh)&&(minite==ff)&&(second<=30))||(tvalue>=350)||(tvalue<=150))
 401   1       {
 402   2        led1=0;buzzer=1;
 403   2       }
 404   1       else
 405   1       {led1=1;buzzer=0;}
 406   1      }
 407          
 408          /****************************************************/
 409          
 410          /********************主程序***************************/
 411          void main()
 412          {
 413   1       set=1;ret=1;add=1;dec=1;buzzer=0;led1=1;
 414   1       TMOD=0X01;
 415   1       TH0=0X3C;
 416   1       TL0=0Xb0;
 417   1       EA=1;
 418   1       ET0=1;
 419   1       TR0=1;
 420   1       Serial_int();
 421   1       initdisplay();
 422   1       delay(5000);
 423   1       initdisplay1();
 424   1       while(1)
 425   1         {
 426   2          read_temp();
 427   2          display();
C51 COMPILER V7.50   FYD                                                                   08/01/2008 14:37:53 PAGE 8   

 428   2              key_scan();     
 429   2              B_J();
 430   2         }
 431   1      }
 432          
 433          /*********************定时中断服务程序**********************/
 434          void time(void) interrupt 1 using 1
 435          {
 436   1       //ET0=0;TR0=1;
 437   1       TH0=0X3C;
 438   1       TL0=0Xb0;
 439   1       //TR0=1;
 440   1       ms50++;
 441   1       if(ms50==20)
 442   1       {
 443   2        ms50=0;
 444   2        second++;
 445   2        if(second==60)
 446   2         {
 447   3          second=0;minite++;
 448   3          if(minite==60)
 449   3           { 
 450   4            minite=0;
 451   4            hour++;
 452   4            if(hour==24)
 453   4             hour=0;
 454   4           }
 455   3         }
 456   2       }
 457   1       //ET0=1;
 458   1      }
 459          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1379    ----
   CONSTANT SIZE    =    114    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     27       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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