DS18B20 程序

  • l3_873472
    了解作者
  • 45.4KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-02 00:02
    上传日期
单片机读写DS18b20 没有数码管和液晶显示 串口查看
DS18B20.rar
  • DS18B20
  • 18b20_uvopt.bak
    55.4KB
  • STARTUP.OBJ
    749B
  • 18b20.plg
    167B
  • 18b20_uvproj.bak
    13.3KB
  • 18b20.__b
    57B
  • 18b20.uvopt
    55.6KB
  • STC12C5A.h
    45.1KB
  • DS18B20.C
    3.2KB
  • 18b20test_uvopt.bak
    55.1KB
  • 18b20test.uvproj
    13.6KB
  • DS18B20.H
    418B
  • STARTUP.A51
    6.2KB
  • DS18B20.LST
    6.6KB
  • 18b20test_uvproj.bak
    13.4KB
  • main.LST
    6.2KB
  • 18b20.LIB
    3.1KB
  • STARTUP.LST
    13.7KB
  • 18b20.hex
    1.3KB
  • 18b20.lnp
    89B
  • 18b20test.uvopt
    55.6KB
  • DS18B20.OBJ
    2.4KB
  • main.OBJ
    1.6KB
  • 18b20.M51
    13.3KB
  • main.c
    2.4KB
内容介绍
#include "ds18b20.h" //DS18B20_Temp_L=0x00; // DS18B20_Temp_H=0x00; //sbit DQ = P3^4; //定义DS18B20的数据总线 unsigned char DS18B20_Temp_L =0x00; unsigned char DS18B20_Temp_H =0x00; /****************************************************** *函数名称:void Delay15us() *输 入:-- *返 回 值:-- *函数功能:15us延时函数 ******************************************************/ void Delay15us() { unsigned int i; for(i=0;i<30;i++) { _nop_(); } } /****************************************************** *函数名称:void Delay15(unsigned char n) *输 入:-- *返 回 值:-- *函数功能:15us的n倍延时 ******************************************************/ void Delay15(unsigned char n) { do{ Delay15us(); n--; }while(n); } /****************************************************** *函数名称:void Delay2us() *输 入:-- *输 出:-- *返 回 值:-- *函数功能:2us延时函数 ******************************************************/ void Delay2us() { unsigned int i; for(i=0;i<4;i++) { _nop_(); } } /****************************************************** *函数名称:void RST18B20(void) *输 入:-- *返 回 值:-- *函数功能:初始化18B20 ******************************************************/ void RST18B20(void) { DQ=0; //拉低总线 开始复位信号 Delay15(36); //延时540us DQ=1; //释放总线 Delay15(6); //延时 等待DS18B20 发送存在脉冲 Delay15(24); //延时 } /****************************************************** *函数名称:void WR18B20(unsigned char i_data) *输 入:unsigned char i_data *返 回 值:-- *函数功能:向DS18B20写入一个字节 ******************************************************/ void WR18B20(unsigned char i_data) { unsigned char i; for(i=8;i>0;i--) { DQ=0; Delay15(1); DQ=i_data&0x01; Delay15(1); DQ=1; Delay15(1); i_data=i_data>>1; } } /****************************************************** *函数名称:unsigned char RD18B20(void) *输 入:-- *返 回 值:unsigned char i_data *函数功能:从DS18B20读取一个字节 ******************************************************/ unsigned char RD18B20(void) { unsigned char i; unsigned char i_data=0x00; for(i=8;i>0;i--) { i_data>>=1; DQ=0; Delay2us(); DQ=1; Delay2us(); if(DQ) i_data|=0x80; Delay15(3); Delay2us(); Delay2us(); } return(i_data); } /****************************************************** *函数名称:void ConvertT(void) *输 入:-- *返 回 值:-- *函数功能:开始温度转换 ******************************************************/ void ConvertT(void) { RST18B20(); //初始化DS18B20 WR18B20(0xCC); //发送Skip Rom命令 WR18B20(0x44); //发送温度转换命令 } /****************************************************** *函数名称:void ReadT(void) *输 入:-- *返 回 值:-- *函数功能:读取转换完成的温度 ******************************************************/ void ReadT(void) { RST18B20(); //初始化DS18B20 WR18B20(0xCC); //发送Skip Rom命令 WR18B20(0xBE); //发送读取暂存器命令 DS18B20_Temp_L=RD18B20(); //读温度的低字节 DS18B20_Temp_H=RD18B20(); //读温度的高字节 }
评论
    相关推荐
    • 单片机课件
      单片机的课件及例题, 单片机的课件及例题, 单片机的课件及例题, 单片机的课 件及例题,
    • 爱上单片机
      一本电子爱好者都能看懂,会边看边笑的单片机入门书籍,作者杜洋曾在《无线电》上发表过“趣味单片机制作专题”、“单片机编程魔法学校”等深受读者喜爱、让无数单片机入门者热血沸腾的系列文章。本书通过生动的语言...
    • 单片机资料
      内含30个单片机应用开发的资料,包括配套单片机入门PPT。
    • 单片机课件
      单片机课的课件,对单片机的基础进行了全面的概述,也有非常精细的指导。
    • 单片机工具
      单片机工具 供单片机学习使用 免费资源 日后还会有更多资源 请联系我
    • 单片机
      单片机c 和汇编程序
    • 单片机课件
      单片机课件 ppt文件格式 介绍了单片机的结构、程序设计、定时器、中断等
    • 单片机教程
      这是一个单片机的教程,可以用于初次学习单片机的人学习。
    • 单片机入门
      很好的单片机学习资源,入门比较好适合对单片机的学习有兴趣的人,而且是名校的精彩讲解,
    • 单片机
      利用protues仿真实现基于51单片机的大棚温湿度检测系统设计