资源简介
使用STC89C51单片机制作了一款电子温度计,可以通过LCD1602实时显示温度

代码片段和文件信息
#include “DS18B20.h“
bit DQ_Err_Flag = 0;
unsigned char DS18B20_ID[DS18B20_MAXNUM][8]= {0};
unsigned char xdata DS18B20_zhan[(DS18B20_MAXNUM + 1)]= {0};
/**************************************
由于DS18B20延时均以15us为单位,故编写了延时单位为15us的延时函数,
注意:以下延时函数晶振为12MHz
参数:n 延时的微妙数
返回值:空
**************************************/
void DS18B20_Delay5us() //@11.0592MHz
{
}
void DS18B20_Delay10us() //@11.0592MHz
{
unsigned char i;
i = 2;
while (--i);
}
void DS18B20_Delay30us() //@11.0592MHz
{
unsigned char i;
i = 11;
while (--i);
}
void DS18B20_Delay40us() //@11.0592MHz
{
unsigned char i;
_nop_();
i = 15;
while (--i);
}
void DS18B20_Delay60us()
{
unsigned char i;
i = 25;
while (--i);
}
void DS18B20_Delay240us() //@11.0592MHz
{
unsigned char i;
i = 108;
while (--i);
}
/**************************************
复位DS18B20并检测设备是否存在
参数:空
返回值:空
**************************************/
void DS18B20_Reset()
{
unsigned char i = 0;
CY = 1;
while (CY)
{
DQ_Pin = 0; //送出低电平复位信号
DS18B20_Delay240us();
DS18B20_Delay240us();//延时至少480us
DQ_Pin = 1; //释放数据线
DS18B20_Delay60us(); //等待60us
CY = DQ_Pin; //检测存在脉冲
DS18B20_Delay240us(); //等待设备释放数据线
if (CY == 1 && i ++ > 15)
{
DQ_Err_Flag = 1;
break;
}
}
}
/**************************************
从DS18B20读1字节数据
参数:空
返回值:返回从传感读到的数据
**************************************/
unsigned char DS18B20_ReadByte()
{
unsigned char i;
unsigned char dat = 0;
for (i=0; i<8; i++) //8位计数器
{
dat >>= 1;
DQ_Pin = 0; //开始时间片
_nop_(); //延时等待
DQ_Pin = 1; //准备接收
_nop_(); //接收延时
if (DQ_Pin) dat |= 0x80; //读取数据
DS18B20_Delay60us(); //等待时间片结束
}
return dat;
}
/**************************************
*函数 : unsigned char DS18B20_ReadBit(void)
*功能 : 读取DS18B20 1bit数据
*参数 : 无
*返回 : 数据最低位有效
*说明 :无
**************************************/
unsigned char DS18B20_ReadBit(void)
{
unsigned char dat = 0;
DQ_Pin = 0; //拉低总线10-15us
DS18B20_Delay10us();
DQ_Pin = 1; //释放总线
DS18B20_Delay10us();
dat = DQ_Pin;
DS18B20_Delay40us();
return dat;
}
/**************************************
*函数 : unsigned char DS18B20_Read2Bit(void)
*功能 : 读取DS18B20 2bit数据
*参数 : 无
*返回 : 数据
*说明 :无
**************************************/
unsigned char DS18B20_Read2Bit(void)
{
unsigned char idat = 0;
for(i = 0; i < 2; i ++)
{
dat <<= 1;
if(DS18B20_ReadBit())
dat |=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-06 19:31 电子温度计\
目录 0 2017-09-06 19:31 电子温度计\PCB\
文件 692736 2017-03-06 13:59 电子温度计\PCB\PCB1.PcbDoc
文件 39357 2017-03-05 12:54 电子温度计\PCB\PCB_Project1.PrjPCB
文件 80896 2017-03-02 21:06 电子温度计\PCB\Sheet1.SchDoc
目录 0 2017-09-06 19:30 电子温度计\程序\
文件 8536 2017-03-05 14:30 电子温度计\程序\DS18B20.c
文件 773 2017-03-04 16:12 电子温度计\程序\DS18B20.h
文件 3627 2014-08-26 10:17 电子温度计\程序\lcd.c
文件 1068 2017-03-02 14:48 电子温度计\程序\lcd.h
文件 6605 2017-03-02 14:48 电子温度计\程序\lcd.LST
文件 4083 2017-03-02 14:48 电子温度计\程序\lcd.OBJ
文件 61 2017-03-02 14:48 电子温度计\程序\lcd.__i
文件 5062 2017-03-06 17:23 电子温度计\程序\LCD1602.c
文件 959 2017-03-06 18:17 电子温度计\程序\LCD1602.h
文件 9214 2017-03-06 21:29 电子温度计\程序\LCD1602.LST
文件 6783 2017-03-06 21:29 电子温度计\程序\LCD1602.OBJ
文件 2174 2017-03-06 21:29 电子温度计\程序\main.c
文件 4423 2017-03-06 21:29 电子温度计\程序\main.LST
文件 6221 2017-03-06 21:29 电子温度计\程序\main.OBJ
文件 17512 2017-03-06 21:29 电子温度计\程序\pro
文件 989 2017-03-06 21:29 电子温度计\程序\pro.build_log.htm
文件 5243 2017-03-06 21:29 电子温度计\程序\pro.hex
文件 69 2017-03-06 21:29 电子温度计\程序\pro.lnp
文件 22222 2017-03-06 21:29 电子温度计\程序\pro.M51
文件 72219 2017-04-11 16:42 电子温度计\程序\pro.uvgui.eryi1
文件 6463 2017-03-06 18:24 电子温度计\程序\pro.uvopt
文件 14269 2017-03-06 18:24 电子温度计\程序\pro.uvproj
文件 6376 2014-08-26 10:17 电子温度计\程序\STARTUP.A51
文件 14052 2017-03-06 21:29 电子温度计\程序\STARTUP.LST
文件 749 2017-03-06 21:29 电子温度计\程序\STARTUP.OBJ
............此处省略4个文件信息
- 上一篇:jdk8直接可以用的
- 下一篇:Windows下最好用的批量端口转发工具
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
评论
共有 条评论