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

📄 text1.lst

📁 用c语言编程完成温度检测与液晶显示显示功能。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 247   1           else
 248   1           DQ0=1;
 249   1         delay15();
 250   1         delay15();                  //----delay 30us-----
 251   1        // while(DQ);
 252   1          if(dqhao)
 253   1                  {
 254   2               while(DQ1);               //无DS18B20存在时,等待      
 255   2               for(i=0;i<8;i++)
 256   2                   delay60();
 257   2               }
 258   1           else    
 259   1               {
 260   2               while(DQ0);
 261   2               for(i=0;i<8;i++)
 262   2                delay60();
 263   2               }
 264   1       //DQ=1;             //over
 265   1           if(dqhao)
 266   1           DQ1=1;
 267   1           else
 268   1           DQ0=1;
 269   1      }
 270          
 271          void bit_w(uchar b,uchar dqhao)       //write bit data to DQ
 272          {
 273   1      // DQ=1;
 274   1           if(dqhao)
 275   1           DQ1=1;
 276   1           else
 277   1           DQ0=1;
 278   1      
 279   1        // DQ=0;
 280   1           if(dqhao)
 281   1           DQ1=0;
 282   1           else
 283   1           DQ0=0;
 284   1           _nop_ ;
*** WARNING C275 IN LINE 284 OF TEXT1.C: expression with possibly no effect
 285   1           _nop_ ;
*** WARNING C275 IN LINE 285 OF TEXT1.C: expression with possibly no effect
 286   1               _nop_ ;
*** WARNING C275 IN LINE 286 OF TEXT1.C: expression with possibly no effect
 287   1           _nop_ ;
*** WARNING C275 IN LINE 287 OF TEXT1.C: expression with possibly no effect
 288   1           _nop_ ;
*** WARNING C275 IN LINE 288 OF TEXT1.C: expression with possibly no effect
 289   1       // DQ=b;
 290   1           if(dqhao)
 291   1           DQ1=b;
 292   1           else
 293   1           DQ0=b;
 294   1           delay60();        //delay 60us
 295   1        // DQ=1;                 //over
 296   1           if(dqhao)
 297   1           DQ1=1;
 298   1           else
C51 COMPILER V7.06   TEXT1                                                                 05/11/2008 06:39:19 PAGE 6   

 299   1           DQ0=1;
 300   1           _nop_ ;
*** WARNING C275 IN LINE 300 OF TEXT1.C: expression with possibly no effect
 301   1      }
 302          
 303          void byte_w(uchar byte,uchar dqhao)            //write byte data to DQ
 304          {
 305   1          uchar i;
 306   1              uchar b;
 307   1            for(i=0;i<8;i++)
 308   1              {
 309   2               b=byte&0x01;
 310   2               bit_w(b,dqhao);
 311   2               byte=byte>>1;
 312   2                      }
 313   1      }
 314          
 315          bit bit_r(uchar dqhao)                //从DQ读一位数据
 316          {
 317   1           bit b;
 318   1          // DQ =1;
 319   1           if(dqhao)
 320   1           DQ1=1;
 321   1           else
 322   1           DQ0=1;
 323   1          // DQ=0;
 324   1           if(dqhao)
 325   1           DQ1=0;
 326   1           else
 327   1           DQ0=0;
 328   1           _nop_;
*** WARNING C275 IN LINE 328 OF TEXT1.C: expression with possibly no effect
 329   1           _nop_;
*** WARNING C275 IN LINE 329 OF TEXT1.C: expression with possibly no effect
 330   1           _nop_;
*** WARNING C275 IN LINE 330 OF TEXT1.C: expression with possibly no effect
 331   1          // DQ=1;
 332   1           if(dqhao)
 333   1           DQ1=1;
 334   1           else
 335   1           DQ0=1;
 336   1           _nop_;
*** WARNING C275 IN LINE 336 OF TEXT1.C: expression with possibly no effect
 337   1           _nop_;
*** WARNING C275 IN LINE 337 OF TEXT1.C: expression with possibly no effect
 338   1              // b=DQ;
 339   1           if(dqhao)
 340   1           b=DQ1;
 341   1           else
 342   1           b=DQ0;
 343   1           delay60();
 344   1           // DQ=1;                //over
 345   1           if(dqhao)
 346   1           DQ1=1;
 347   1           else
 348   1           DQ0=1;
 349   1           _nop_;
*** WARNING C275 IN LINE 349 OF TEXT1.C: expression with possibly no effect
 350   1           return b;
 351   1      }
 352          
 353          
C51 COMPILER V7.06   TEXT1                                                                 05/11/2008 06:39:19 PAGE 7   

 354          uchar byte_r(uchar dqhao)                     //read byte data from DQ
 355          {
 356   1          uchar i,j;
 357   1          bit  b;
 358   1          j=0;
 359   1        for(i=0;i<8;i++)
 360   1        {
 361   2             b=bit_r(dqhao);
 362   2           if(b)
 363   2                {
 364   3             j+=1;
 365   3            }
 366   2           j=_cror_(j,1);   //sycle right shift a bit
 367   2         }
 368   1       return j;
 369   1      
 370   1      }
 371          uchar  gettemp(uchar dqhao)
 372          {
 373   1           uchar temp1,temp2;
 374   1           reset(dqhao)        ;
 375   1           byte_w(0xcc,dqhao) ;    //跳过ROM
 376   1           byte_w(0x44,dqhao) ;    //温度变换
 377   1           delay100m()  ;
 378   1           reset(dqhao);
 379   1           byte_w(0xcc,dqhao) ;
 380   1           byte_w(0xBE) ;          //读暂存器
*** WARNING C209 IN LINE 380 OF TEXT1.C: '_byte_w': too few actual parameters
 381   1           temp2=byte_r(dqhao);
 382   1           temp1=byte_r(dqhao);
 383   1           delay100m();
 384   1           temp1=temp1<<4;
 385   1           temp1+=(temp2&0xf0)>>4;
 386   1      
 387   1           return temp1;
 388   1      
 389   1      }
 390          
 391          
 392          /******************************************************************/
 393          /*               文字显示、温度数据显示与发送程序                 */
 394          /******************************************************************/
 395          
 396          void wenzi()        //文字显示
 397           {
 398   1         hz16x16(0,0,xu) ;
 399   1         hz16x16(0,1,hao) ;
 400   1         hz16x16(0,3,wen) ;
 401   1         hz16x16(0,4,du) ;
 402   1         hz16x16(0,6,zhuang) ;
 403   1         hz16x16(0,7,tai) ;
 404   1      
 405   1        }
 406          void send(uchar dat)    //串口发送子程序
 407          {
 408   1        ES=0;
 409   1        SBUF=dat;
 410   1        while(!TI);
 411   1        TI=0;
 412   1        ES=1;
 413   1      }
 414          void wendu(uchar dqhao)   //温度数据显示与发送程序
C51 COMPILER V7.06   TEXT1                                                                 05/11/2008 06:39:19 PAGE 8   

 415          {
 416   1      
 417   1          uchar bai,shi,ge,dq,wenduodata;
 418   1          dq=dqhao;
 419   1          wenduodata=gettemp(dqhao);
 420   1          bai=wenduodata/100;
 421   1          shi=wenduodata%100/10;
 422   1          ge=(wenduodata%100)%10  ;
 423   1            zf8x16(dq+2,0,no);
 424   1            sz8x8(dq+2,2,z[dq]);
 425   1            sz8x8(dq+2,6,z[bai]);
 426   1            sz8x8(dq+2,7,z[shi]);
 427   1            sz8x8(dq+2,8,z[ge]);
 428   1                
 429   1            send(0x30+dq);   //数字加上0x30转为相应字符ASCII码
 430   1            send(0x20);
 431   1            send(0x30+bai);
 432   1            send(0x30+shi);
 433   1            send(0x30+ge);
 434   1            send(0x20);
 435   1                
 436   1      
 437   1            if(wenduodata==0)
 438   1            zf8x16(dq+2,6,off);
 439   1            else
 440   1            zf8x16(dq+2,6,on);
 441   1      }
 442          
 443          
 444          /*****************************************************************/
 445          /*                          main程序                             */
 446          /*****************************************************************/
 447           main()
 448          {
 449   1           TMOD=0x20;
 450   1           TH1=0xfd;
 451   1           TL1=0xfd;
 452   1           TR1=1;
 453   1           SM0=0;
 454   1           SM1=1;
 455   1           REN=1;
 456   1           EA=1;
 457   1           ES=1;
 458   1               
 459   1           lcd_init();
 460   1      
 461   1           wenzi();
 462   1      
 463   1          while(1)
 464   1          {
 465   2           wendu(0);
 466   2           wendu(1);
 467   2          }
 468   1      }
 469          
 470          
 471          
 472          
 473          


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.06   TEXT1                                                                 05/11/2008 06:39:19 PAGE 9   

   CODE SIZE        =   1344    ----
   CONSTANT SIZE    =    320    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      22
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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