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

📄 ds18b20.lst

📁 STC51系列单片机学习板演示程序(汇编语言) 有详细注释 适合初学单片机的朋友
💻 LST
📖 第 1 页 / 共 2 页
字号:
 184          *****************************************************************************/
 185          void Led7Scan()
 186          {       
 187   1              static unsigned char a=0;
 188   1      
 189   1              switch(a)/*判断数码管动态扫描值*/
 190   1              {
 191   2              case 0:/*处理数码管第一位*/
 192   2                      LED7D_STATUS=1;/*设置数码管第四位为无效*/
 193   2                      LED7A_STATUS=0;/*设置数码管第一位位有效*/
 194   2                      break; 
 195   2      
 196   2              case 1:/*处理数码管第二位*/
 197   2                      LED7A_STATUS=1;/*设置数码管第一位为无效*/
 198   2                      LED7B_STATUS=0;/*设置数码管第二位位有效*/
 199   2                      break; 
 200   2      
 201   2              case 2:/*处理数码管第三位*/
 202   2                      LED7B_STATUS=1;/*设置数码管第二位为无效*/
 203   2                      LED7C_STATUS=0;/*设置数码管第三位位有效*/
 204   2                      break; 
 205   2      
 206   2              case 3:/*处理数码管第四位*/
 207   2                      LED7C_STATUS=1;/*设置数码管第三位为无效*/
 208   2                      LED7D_STATUS=0;/*设置数码管第四位位有效*/
 209   2                      break; 
 210   2              }
 211   1      
 212   1              LED7_STATUS=m_ucLedTab[m_ucLedBuf[a]];/*将显示码送数码管状态引脚*/      
 213   1              
 214   1              a++;/*数码管动态扫描值加1,若该值4则置为0*/
 215   1              if(a>3)
 216   1                      a=0;
 217   1      }
 218          
 219          /****************************************************************************
 220          名称:DS18B20Delay
 221          说明:DS18B20延时
 222          参数:unsigned int uiDelay 时间延时
 223          返回: 无
 224          ****************************************************************************/
 225          void DS18B20Delay(unsigned char ucDelay)
 226          {
 227   1              unsigned char a;
 228   1      
 229   1              for(a=0;a<ucDelay;a++);
 230   1      }
 231          
 232          /****************************************************************************
 233          名称:DS18B20Init
 234          说明:DS18B20初始化
 235          参数:无
 236          返回: 无
 237          ****************************************************************************/
 238          unsigned char DS18B20Init()
 239          {
 240   1              DS18B20_IO=0;
 241   1              DS18B20Delay(30);
C51 COMPILER V7.20   DS18B20                                                               03/24/2007 02:38:50 PAGE 5   

 242   1              DS18B20_IO=1;
 243   1              DS18B20Delay(30);
 244   1              return DS18B20_IO;
 245   1      }
 246          
 247          /****************************************************************************
 248          名称:DS18B20WriteChar
 249          说明:DS18B20写字节操作
 250          参数:unsigned char ucData 写字节
 251          返回: 无
 252          ****************************************************************************/
 253          void DS18B20WriteChar(unsigned char ucData)
 254          {
 255   1              unsigned char a,b;
 256   1      
 257   1              EA=0;
 258   1              for(a=0;a<8;a++)
 259   1              {
 260   2                      b=ucData>>a;
 261   2                      b&=0x01;
 262   2                      DS18B20WriteBit(b);
 263   2              }
 264   1              EA=1;
 265   1      
 266   1              DS18B20Delay(5);
 267   1      }
 268          
 269          /****************************************************************************
 270          名称:DS18B20WriteBit
 271          说明:DS18B20写位操作
 272          参数:unsigned char ucData 写位
 273          ****************************************************************************/
 274          void DS18B20WriteBit(unsigned char ucData)
 275          {
 276   1              DS18B20_IO=0;
 277   1      
 278   1              if(ucData==1)
 279   1                      DS18B20_IO=1;
 280   1      
 281   1              DS18B20Delay(5);
 282   1              DS18B20_IO=1;
 283   1      }
 284          
 285          /****************************************************************************
 286          名称:DS18B20ReadChar
 287          说明:DS18B20读字节操作
 288          参数:无
 289          返回: unsigned char ucData 读字节
 290          ****************************************************************************/
 291          unsigned char DS18B20ReadChar()
 292          {
 293   1              unsigned char a,b=0;
 294   1      
 295   1              for(a=0;a<8;a++)
 296   1              {          
 297   2                      EA=0;
 298   2                      if(DS18B20ReadBit())
 299   2                              b|=0x01<<a;
 300   2                      EA=1;
 301   2      
 302   2                      DS18B20Delay(6);
 303   2              }
C51 COMPILER V7.20   DS18B20                                                               03/24/2007 02:38:50 PAGE 6   

 304   1      
 305   1              return b;
 306   1      }
 307          
 308          /****************************************************************************
 309          名称:DS18B20ReadBit
 310          说明:DS18B20读位操作
 311          参数:无
 312          返回: unsigned char ucData 读位
 313          ****************************************************************************/
 314          unsigned char DS18B20ReadBit()
 315          {
 316   1              unsigned char a;
 317   1      
 318   1              DS18B20_IO=0;
 319   1      
 320   1              DS18B20_IO=1;
 321   1      
 322   1              for(a=0;a<3;a++);
 323   1      
 324   1              return(DS18B20_IO);
 325   1      }
 326          
 327          
 328          /****************************************************************************
 329          名称:DS18B20ReadTemp
 330          说明:DS18B20读取当前温度
 331          参数:无
 332          返回: unsigned char 温度值
 333          ****************************************************************************/
 334          unsigned char DS18B20ReadTemp()
 335          {
 336   1              unsigned char ucTempL,ucTempM;
 337   1              unsigned char ucTemp;
 338   1      
 339   1              DS18B20Init();  
 340   1              DS18B20WriteChar(DS18B20_ORDER_JMPROM); 
 341   1              DS18B20WriteChar(DS18B20_ORDER_START);
 342   1              DS18B20Delay(5);
 343   1              
 344   1              DS18B20Init();  
 345   1              DS18B20WriteChar(DS18B20_ORDER_JMPROM);
 346   1              DS18B20WriteChar(DS18B20_ORDER_READREG);
 347   1              ucTempL=DS18B20ReadChar();
 348   1              ucTempM=DS18B20ReadChar();
 349   1      
 350   1              ucTempL=ucTempL>>4;           
 351   1              ucTemp=(ucTempM&0x3)<<4;          
 352   1              ucTemp=ucTempL|ucTemp;   
 353   1      
 354   1              return ucTemp;  
 355   1      }
 356          
 357          
 358          
 359                                     


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    408    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.20   DS18B20                                                               03/24/2007 02:38:50 PAGE 7   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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