文档库 最新最全的文档下载
当前位置:文档库 › 采用LCD1602显示18B20数字温度计温度程序

采用LCD1602显示18B20数字温度计温度程序

采用LCD1602显示18B20数字温度计温度程序
采用LCD1602显示18B20数字温度计温度程序

采用LCD1602显示18B20数字温度计温度程序

端口说明

18B20数据引脚接P3.7

LCD引脚RS接P3.0,RW接P3.1,EN接P3.2,Data0~7接P2口

温度精确到1为小数

#include

#define uchar unsigned char

#define uint unsigned int

sbit DQ=P3^7;//ds18b20与单片机连接口

sbit RS=P3^0;

sbit RW=P3^1;

sbit EN=P3^2;

unsigned char code str1[]={"temperature: "};

unsigned char code str2[]={" "};

uchar data disdata[5];

uint tvalue;//温度值

uchar tflag;//温度正负标志

/*************************lcd1602程序**************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的)

{unsigned int i,j;

for(i=0;i

for(j=0;j<100;j++);

}

void wr_com(unsigned char com)//写指令//

{ delay1ms(1);

RS=0;

RW=0;

EN=0;

P2=com;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

void wr_dat(unsigned char dat)//写数据//

{ delay1ms(1);;

RS=1;

RW=0;

EN=0;

P2=dat;

delay1ms(1);

EN=1;

delay1ms(1);

EN=0;

}

void lcd_init()//初始化设置//

{delay1ms(15);

wr_com(0x38);delay1ms(5);

wr_com(0x08);delay1ms(5);

wr_com(0x01);delay1ms(5);

wr_com(0x06);delay1ms(5);

wr_com(0x0c);delay1ms(5);

}

void display(unsigned char *p)//显示//

{

while(*p!='\0')

{

wr_dat(*p);

p++;

delay1ms(1);

}

}

init_play()//初始化显示

{ lcd_init();

wr_com(0x80);

display(str1);

wr_com(0xc0);

display(str2);

}

/**************************ds1820程序*********************************/ void delay_18B20(unsigned int i)//延时1微秒

{

while(i--);

}

void ds1820rst()/*ds1820复位*/

{ unsigned char x=0;

DQ = 1; //DQ复位

delay_18B20(4); //延时

DQ = 0; //DQ拉低

delay_18B20(100); //精确延时大于480us

DQ = 1; //拉高

delay_18B20(40);

}

uchar ds1820rd()/*读数据*/

{ unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{ DQ = 0; //给脉冲信号

dat>>=1;

DQ = 1; //给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(10);

}

return(dat);

}

void ds1820wr(uchar wdata)/*写数据*/

{unsigned char i=0;

for (i=8; i>0; i--)

{ DQ = 0;

DQ = wdata&0x01;

delay_18B20(10);

DQ = 1;

wdata>>=1;

}

}

read_temp()/*读取温度值并转换*/

{uchar a,b;

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

ds1820wr(0x44);//*启动温度转换*/

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/

ds1820wr(0xbe);//*读取温度*/

a=ds1820rd();

b=ds1820rd();

tvalue=b;

tvalue<<=8;

tvalue=tvalue|a;

if(tvalue<0x0fff)

tflag=0;

else

{tvalue=~tvalue+1;

tflag=1;

}

tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数return(tvalue);

}

/*******************************************************************/ void ds1820disp()//温度值显示

{ uchar flagdat;

disdata[0]=tvalue/1000+0x30;//百位数

disdata[1]=tvalue%1000/100+0x30;//十位数

disdata[2]=tvalue%100/10+0x30;//个位数

disdata[3]=tvalue%10+0x30;//小数位

if(tflag==0)

flagdat=0x20;//正温度不显示符号

else

flagdat=0x2d;//负温度显示负号:-

if(disdata[0]==0x30)

{disdata[0]=0x20;//如果百位为0,不显示

if(disdata[1]==0x30)

{disdata[1]=0x20;//如果百位为0,十位为0也不显示

}

}

wr_com(0xc0);

wr_dat(flagdat);//显示符号位

wr_com(0xc1);

wr_dat(disdata[0]);//显示百位

wr_com(0xc2);

wr_dat(disdata[1]);//显示十位

wr_com(0xc3);

wr_dat(disdata[2]);//显示个位

wr_com(0xc4);

wr_dat(0x2e);//显示小数点

wr_com(0xc5);

wr_dat(disdata[3]);//显示小数位

}

/********************主程序***********************************/

void main()

{ init_play();//初始化显示

while(1)

{read_temp();//读取温度

ds1820disp();//显示

}

}

DS18B20温度检测程序

(1)先将数据线置高电平“1”。 (2)延时(该时间要求的不是很严格,但是尽可能的短一点) (3)数据线拉到低电平“0”。 (4)延时750微秒(该时间的时间范围可以从480到960微秒)。 (5)数据线拉到高电平“1”。 (6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 (7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。 (8)将数据线再次拉高到高电平“1”后结束。

(1)数据线先置低电平“0”。 (2)延时确定的时间为15微秒。 (3)按从低位到高位的顺序发送字节(一次只发送一位)。 (4)延时时间为45微秒。 (5)将数据线拉到高电平。 (6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7)最后将数据线拉高。 DS18B20的写操作时序图如图

DS18B20的读操作 (1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。 (4)延时15微秒。 (5)将数据线拉高“1”。 (6)延时15微秒。 (7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时30微秒。DS18B20的读操作时序图如图所示。

DS18B20的Protues仿真图 源程序代码: #include "reg51.h" #include "intrins.h" // 此头文件中有空操作语句NOP 几个微秒的延时可以用NOP 语句,但本人没用NOP,直接用了I++来延时 #define uchar unsigned char #define uint unsigned int uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x38,0x39}; sbit ds18b20_io=P2^0; //单片机与DS18B20的连接口 sbit lcdrs=P2^6; //1602与单片机的接口 sbit lcden=P2^7;

简易数字温度计设计汇总

课程设计任务书 2015—2016学年第二学期 专业:学号姓名: 课程设计名称:电子技术课程设计 设计题目:简易数字温度计的设计 完成期限:自2016 年6月13 日至2016 年 6 月26 日共 2 周 一、设计依据 本课题要求利用电子技术相关知识设计出一个能够实现±0.1℃精度的数字温度计。电路由温度采集电路、数字频率计电路和LED显示电路构成。通过本课题练习,学生的综合知识应用能力、设计能力将有较大提高,对今后从事电子产品的研制、生产、经营维修等打下基础。 二、主要内容及要求 主要内容: 1、给出详细的总体设计方案; 2、完成各部分具体功能电路设计,主要包括基于热敏电阻的温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计; 3、给出正确的电路图,仿真、调试验证各部分设计的正确性; 4、整理设计成果,完成课程设计说明书的撰写。 要求所设计数字温度计的输出温度的范围-20~+45℃、误差范围±0.1℃,具体温度显示采用数码管实现。 三、途径和方法 利用模拟电子技术和数字电子技术的相关知识设计一个数控温度计,可以先查阅相关资料(网上查找或参考相关书籍手册),明确课题的方向和目的,然后学习完成课题所需的理论知识,了解温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计的工作原理;在理解的基础上确定设计电路方案,完成电路设计,画出原理图及PCB印制版图,通过仿真分析验证设计的正确性,最后提交课程设计说明书一份。 四、时间安排

课题讲解:2小时 阅读资料:10小时 撰写设计说明书:12小时 修订设计说明书:6小时 五、主要参考资料 [1]孙丽霞.数字电子技术[M].北京:高等教育出版社,2006:174-196. [2]杨素行.模拟电子技术基础简明教程[M].北京:高等教育出版社,2007:40-92. [3]高吉祥.全国大学生电子设计竞赛培训系列教程-基本技能训练与单元电路设计[M].北京:电子工业出版社,2007:24-57. [4]黄智伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社, 2005.1:43-66. [5]彭介华.电子技术课程设计指导[M] .北京:高等教育出版社,2002.12:37-228. [6]陈永甫.新编555集成电路应用800例[M].北京:电子工业出版,2000:80-130. [7]萧宝瑾. protel 99 SE操作指导与电路设计实例(第一版)[M]. 太原:太原理工大学,2004:198-230. [8]张义申,陆坤. 电子设计技术[M]. 西安:电子科技大学出版,1996:48-62. 指导教师(签字):教研室主任(签字): 批准日期:年月日

《 3位半数字显示温度计 》设计报告

《3位半数字显示温度计》 设计报告 设计时间: 班级: 姓名: 报告页数:

广东工业大学课程设计报告 设计题目_______ 学院专业班 学号姓名 (合作者号) 成绩评定_______ 教师签名_______ 一、设计任务与要求: 设计任务:

LM35, A/D转换器、数字显示器设计一个日常温度数字温 度计。 课程目标: ?1、加深对以上三门课程所学内容的理解; ?2、能够在设计中综合运用所学知识解决实际问题; ?3、初步掌握工程设计的一般方法,具备一定的工程设计能力。 ?4.培养独立思考和独立解决问题的能力,培养科学精神和严谨的工作作风。 标及技术要求: ?①温度显示范围:0℃~50℃; ?②数字显示分辨率:0.1℃; ?③精度误差≤0.5℃; ?④电路工作电源可在5~9V范围内工作. 二、设计方案及比较(设计可行性分析): 方案思路一------基于LM35芯片以51单片机作为核心的三位半数字显示温度计: 外接一个温度采集LM35,根据采集器的输出参数特性利用TX-1C开发板编程相关程序直接处理温度信息并将处理结果显示在开发板自带的液晶屏上 方案思路二------基于LM35芯片以ICL7106作为核心的三位半数字显示温度计: 1. 模拟信号采集部分:LM35采集温度信息转化为可处理的模拟信号并将该信号输入至数模转换部分 2. 模数转换部分:用ICL7106芯片以及相关原件组成的外围电路组成一个直流电压测量电路或一个数字电压表,利用ICL7106将模拟部分输出的模拟信号转换为数字信号,并通过7106自带的BCD译码器输出液晶屏所需输入信号 3. 液晶屏显示部分:液晶屏链接ICL7106对应的输出接口输入显示信号,显示该数字电压

数字温度计课程设计报告

一.数字温度计的总体方案设计 根据系统设计的功能,本时钟温度系统的设计必须采用单片机软件系统实现,用单片机的自动控制能力来测量、显示温度数值。 初步确定设计系统由单片机主控模块、测温模块、显示模块共3个模块组成,电路系统框图如图所示。 图系统基本方框图 对于单片机的选择,如果用8051系列,由于它没有内部RAM,系统又需要一定的内存存储数据。AT89S52是一个低功耗、高性能CMOS 8位的单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,兼容标准MCS-51指令系统及80C51引脚结构,功能强大的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。而AT89S52与AT89C51相比,外型管脚完全相同,AT89C51的HEX程序无须任何转换可直接在AT89S52运行,且AT89S52比AT89C51新增了一些

功能,相比较后,在本设计中选用AT89S52更能很好的实现温度计控制功能。 测温电路可以使用热敏电阻之类的器件,利用其感温效应,将被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据处理。但是这种感温电路比较复杂,且采用热敏电阻精度低,重复性、可靠性都比较差。 如果采用温度传感器DS18B20可以减少外部硬件电路,而且可以很容易直接读取被测温度值,进而转换,且成本低、易使用,可以很好的满足设计要求。所以本文采用传感器DS18B20代替传统的测温电路。 温度的显示可以采用LED数码管来显示,LED亮度高、醒目,但是电路复杂,占用资源多且信息量小。而采用液晶显示器有明显的优点:工作电流比LED小几个数量级,功耗低;尺寸小,厚度约为LED的1/3;字迹清晰、美观、使人舒服;寿命长,使用方便,可得性强。故本设计采用LCD来显示温度。 二、系统器件的具体选择 单片机的选择 本次设计采用的是单片机AT89C52。

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.wendangku.net/doc/bd13080816.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

简易数字温度计设计

简易数字温度计设计 Prepared on 22 November 2020

课程设计任务书 2015—2016学年第二学期 专业:学号姓名: 课程设计名称:电子技术课程设计 设计题目:简易数字温度计的设计 完成期限:自2016年6月13日至2016年6月26日共2周 一、设计依据 本课题要求利用电子技术相关知识设计出一个能够实现±℃精度的数字温度计。电路由温度采集电路、数字频率计电路和LED显示电路构成。通过本课题练习,学生的综合知识应用能力、设计能力将有较大提高,对今后从事电子产品的研制、生产、经营维修等打下基础。 二、主要内容及要求 主要内容: 1、给出详细的总体设计方案; 2、完成各部分具体功能电路设计,主要包括基于热敏电阻的温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计; 3、给出正确的电路图,仿真、调试验证各部分设计的正确性; 4、整理设计成果,完成课程设计说明书的撰写。 要求所设计数字温度计的输出温度的范围-20~+45℃、误差范围±℃,具体温度显示采用数码管实现。 三、途径和方法

利用模拟电子技术和数字电子技术的相关知识设计一个数控温度计,可以先查阅相关资料(网上查找或参考相关书籍手册),明确课题的方向和目的,然后学习完成课题所需的理论知识,了解温度信号采集电路、555振荡电路、频率计电路、LED显示电路设计的工作原理;在理解的基础上确定设计电路方案,完成电路设计,画出原理图及PCB印制版图,通过仿真分析验证设计的正确性,最后提交课程设计说明书一份。 四、时间安排 课题讲解:2小时 阅读资料:10小时 撰写设计说明书:12小时 修订设计说明书:6小时 五、主要参考资料 [1]孙丽霞.数字电子技术[M].北京:高等教育出版社,2006:174-196. [2]杨素行.模拟电子技术基础简明教程[M].北京:高等教育出版社,2007:40-92. [3]高吉祥.全国大学生电子设计竞赛培训系列教程-基本技能训练与单元电路设计[M].北京:电子工业出版社,2007:24-57. [4]黄智伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社,:43-66. [5]彭介华.电子技术课程设计指导[M].北京:高等教育出版社,:37-228. [6]陈永甫.新编555集成电路应用800例[M].北京:电子工业出版,2000:80-130. [7]萧宝瑾.protel99SE操作指导与电路设计实例(第一版)[M].太原:太原理工大学,2004:198-230. [8]张义申,陆坤.电子设计技术[M].西安:电子科技大学出版,1996:48-62.

数字温度计设计

数字温度计 摘要:温度计在实际生产和人们的生活中都有广泛应用。该设计是数字温度计,首先是对总体方案的选择和设计;然后通过控制LM35进行温度采集;将温度的变化转为电压的变化,其次设计电压电路,将变化的电压量通过放大系统转化为所需要的电压;再通过TC7107将模拟的电压转化为数字量后直接驱动数码管LED对实时温度进行动态显示。最后在Proteus仿真软件中构建了数字温度计仿真电路图,仿真结果表明:在温度变化时,可以通过电压的变化形式传递,最终通过3位十进制数显示出来。 关键词:温度计;电路设计;仿真

目录 1 设计任务与要求 (1) 2 方案设计与论证 (1) 3 单元电路的设计及仿真 (2) 3.1传感器 (2) 3.2放大系统 (2) 3.3 A/D转换器及数字显示 (4) 4 总电路设计及其仿真调试过程 (6) 4.1总电路设计 (6) 4.2仿真结果及其分析 (7) 5 结论与心得 (9) 6 参考文献 (11)

1 设计任务与要求 温度计是工农业生产及科学研究中最常用的测量仪表。本课题要求用中小规模集成芯片设计并制作一数字式温度计,即用数字显示被测温度。具体要求如下:(1)测量范围0~100度。 (2)测量精度0.1度。 (3)3位LED数码管显示。 掌握线性系统的根轨迹、时域和频域分析与计算方法; (2)掌握线性系统的超前、滞后、滞后-超前、一二阶最佳参数、PID等校正方法;(3)掌握MATLAB线性系统性能分析、校正设计与检验的基本方法。 2 方案设计与论证 数字温度计的原理是:通过控制传感器进行温度采集,将温度的变化转化为电压的变化;然后设计电压电路,将变化的电压通过放大系统转化为需要的电压;再通过A/D转换器将模拟的电压转换为数字量后驱动数码管对实时温度进行动态显示。 原理框图如图2-1所示: 传感器放大系统A/D转换显示 图2-1 数字温度计原理框图 由设计任务与要求可知道,本设计实验主要分为四个部分,即传感器、放大系统、模数转换器以及显示部分。经过分析,传感器可以选择对温度比较敏感的器件,做好是在某参数与温度成线性关系,比如用温敏晶体管构成的集成温度传感器或热敏电阻等;放大系统可以由集成运放组成或反相比例运算放大器;A/D转换器需要选择有LED 驱动显示功能的,而可供选择的参考元件有ICL7107,ICL7106,MC14433等;显示部分用3位LED数码管显示。 方案一:用一个热敏电阻,通过热敏电阻把温度转化为电压,再得到每一度热敏电

电子技术基础数字温度计课程设计要点

课程设计(论文) 题目名称数字温度计 课程名称电子技术课程设计 学生姓名屈鹏 学号1141201112 系、专业电气工程系电气工程及其自动化 指导教师李海娜 2013年12月17日

邵阳学院课程设计(论文)任务书 年级专业11级电气工程及其自动化学生姓名屈鹏学号1141201112 题目名称数字温度计设计设计时间2013.12.9—2013.12.20 课程名称电子技术课程设计课程编号121202306 设计地点电工电子实验室408、409 一、课程设计(论文)目的 电子技术课程设计是电气工程及自动化专业的一个重要的实践性教学环节,是对已学模拟电子技术、数字电子技术知识的综合性训练,这种训练是通过学生独立进行某一课题的设计、安装和调试来完成,着重培养学生工程实践的动手能力、创新能力和进行综合设计的能力,并要求能设计出完整的电路或产品,从而为以后从事电子电路设计、研制电子产品奠定坚实的基础。 二、已知技术参数和条件 用中小规模集成芯片设计并制作一数字式温度计,具体要求如下: 1、温度范围0-100度。 2、测量精度0.2度。 3、三位LED数码管显示温度。 三、任务和要求 1.按学校规定的格式编写设计论文。 2.论文主要内容有:①课题名称。②设计任务和要求。③方案选择与论证。④方案的原理框图,系统电路图,以及运行说明;单元电路设计与计算说明;元器件选择和电路参数计算的说明等。 ⑤必须用proteus或其它仿真软件对设计电路仿真调试。对调试中出现的问题进行分析,并说明解决的措施;测试、记录、整理与结果分析。⑥收获体会、存在问题和进一步的改进意见等。 注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效; 2.此表1式3份,学生、指导教师、教研室各1份。

简易数字式温度计设计

摘要 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该高精度数字式温度计采用了由DALLAS公司生产的单线数字温度传感器DS18B20,它具有独特的单线总线接口方式。本毕业论文详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,该温度计具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。 关键词:DS18B20 温度传感器STC89C51

目录 第一章绪论3 1.1 课题背景及研究意义3 1.2 国外的现状3 1.3 设计的目的4 1.4 设计实现的目标4 1.5 数字温度计简介5

第一章绪论 1.1 课题背景及研究意义 随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。本系统所使用的加热器件是电炉丝,功率为三千瓦,要求温度在400~1000℃。静态控制精度为2.43℃。 本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。 1.2 国外的现状 温度控制系统在国各行各业的应用虽然已经十分广泛,但从国生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工

数字温度计DS18B20课程设计资料报告材料

基于单片机的DS18B20数字温度计设计 学生:侯晋启 专业名称:自动化专业 班级:2014级自动化1班 学号:20144786

摘要 本设计采用的主控芯片是ATMEL公司的AT89C51单片机,数字温度传感器是DALLAS 公司的DS18B20。本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。 单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。本次设计采用的AT89C51是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。本次设计的数字温度计采用的是DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。 本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。本设计属于一种多功能温度计,温度测量围是-55℃到125℃。温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的围时,就会启动报警程序报警。本设计的显示模块是用液晶显示屏1602实现温度显示。在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。 一、实验设计概述 本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,测温上下限为10°C~40°C。DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温围广,测温准确,上下限报警功能。其输出温度采用LCD1602显示,主要用于对测温比较准确的场所。 该设计控制器使用的是51单片机AT89C51,AT89C51单片机在工控、测量、仪器仪表中应用还是比较广泛的。测温传感器使用的是DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。显示是用液晶显示屏1602实现温度显示。蜂鸣器用来实现当测量温度超过设定的上下限时的报警功能。 二、系统总体方案及硬件设计

DS18B20温度显示演示程序-LCD1602显示

/*DS18B20温度显示演示程序-LCD1602显示 开机时对DS18B20进行检测,如果DS18B20检测不正常,LCD1602显示: DS18B20 ERROR PLEASE CHECK 蜂鸣器报警。 DS18B20检测正常,LCD1602显示: DS18B20 OK TEMP: 100.8℃ 如果温度值高位为0,将不显示出来。 你可以通过拔插DS18B20查看DS18B20的检测功能。*/ #include < reg51.h > #include < intrins.h > #define uchar unsigned char #define uint unsigned int sbit DQ = P3^2 ; //定义DS18B20端口DQ sbit BEEP=P1^0 ; //蜂鸣器驱动线 bit presence ; sbit LCD_RS = P1^0 ; sbit LCD_RW = P1^1; sbit LCD_EN = P1^2 ; uchar code cdis1[ ] = {" DS18B20 OK "} ; uchar code cdis2[ ] = {" TEMP: . C "} ; uchar code cdis3[ ] = {" DS18B20 BUSY "} ; uchar code cdis4[ ] = {" PLEASE WAIT "} ; unsigned char data temp_data[2] = {0x00,0x00} ; unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00} ; unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} ; void beep() ; unsigned char code mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00} ; #define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ; /*******************************************************************/ void delay1(int ms)

简易数字温度计课程设计

唐山学院 单片机原理课程设计 题目简易数字温度计 系 (部) 智能与信息工程学院 班级 姓名 学号 指导教师 2017 年 1 月 2 日至 1 月 6 日共 1 周 2017年1月4日

《单片机原理》课程设计任务书

课程设计成绩评定表

目录 1.方案论证 0 2.硬件设计............................................ 错误!未定义书签。 2.1系统构成 (1) 2.2器件选择 (1) 2.2.1 AT89C51概述 (1) 2.2.2 AT89C51引脚功能 (3) 2.2.3复位电路的设计 (4) 2.3数字温度传感器 (5) 2.3.1 DS1621的技术指标 (5) 2.3.2 DS1621的工作原理 (6) 2.4 单片机和DS1621接口电路...................... 错误!未定义书签。 2.5 七段LED数码显示电路 (7) 3.系统软件设计 (9) 3.1 编程语言选择 (9) 3.2 主程序的设计 (9) 3.3 温度采集模块设计 (10) 3.4 温度计算模块设计 (10) 3.5 串行总线编程 (11) 4.软硬件调试结果分析 (12) 5.设计总结 (13) 6.参考文献 (14) 附录A 多点温度采集系统电路原理图 (15)

1.方案论证 该系统可以使用方案一:热敏电阻;方案二:数字温度芯片DS1621实现。采用数字温度芯片DS1621 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS1621 的最大特点之一采用了单总线的数据传输,由数字温度计DS1621和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。 控制工作,还可以与PC 机通信上传数据,另外AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。 该系统利用AT89C51芯片控制温度传感器DS1621进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。故采用了方案二。 测温电路的总体设计方框图如图1-1所示,控制器采用单片机AT89C51,温度传感器采用DS1621,用5位LED数码管以串口传送数据实现温度显示。 图1-1 测温电路的总体设计方框图

DS18B20数字温度计设计实验报告

单片机原理及应用 课程设计报告书 题目:DS18B20数字温度计 姓名学号:20133522080 赵晓磊 20130123096 段石磊 20133522028 付成 指导老师:万青 设计时间: 2015年12月

电子与信息工程学院 目录 1.引言 (3) 1.1.设计意义 (3) 1.2.系统功能要求 (3) 2.方案设计 (4) 3.硬件设计 (2) 4.软件设计 (5) 5.系统调试 (7) 6.设计总结 (8) 7.附录 (9) 8.作品展示 (15) 9.参考文献 (17)

DS18B20数字温度计设计 1.引言 1.1. 设计意义 在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。其缺点如下: ●硬件电路复杂; ●软件调试复杂; ●制作成本高。 本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。 DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。 1.2. 系统功能要求 设计出的DS18B20数字温度计测温范围在-55~125℃,误差在±0.5℃以内,采用LED数码管直接读显示。

2. 方案设计 按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电 路和显示电路。 数字温度计总体电路结构框图如4.1图所示: 图4.1 3. 硬件设计 温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传 感器使用DS18B20,使用四位共阳LED 数码管以动态扫描法实现温度显示。 主控制器 单片机AT89C2051 具有低电压供电和小体积等特点, 两个端口刚好满足电路系统的设计需AT89C2051 主 控 制 器 DS18B20 显示电路 扫描驱动

数字温度计课程设计报告

课程设计报告书 课程名称:电工电子课程设计 题目:数字温度计 学院:信息工程学院 系:电气工程及其自动化 专业班级:电力系统及其自动化113 学号:6100311096 学生姓名:李超红 起讫日期:6月19日——7月2日 指导教师:郑朝丹职称:讲师 学院审核(签名): 审核日期:

内容摘要: 目前,单片机已经在测控领域中获得了广泛的应用,它除了可以测量电信以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。 单片机是一种特殊的计算机,它是在一块半导体的芯片上集成了CPU,存储器,RAM,ROM,及输入与输出接口电路,这种芯片称为:单片机。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便的优点,使它迅速的得到了推广应用,目前已成为测量控制系统中的优选机种和新电子产品中的关键部件。单片机已不仅仅局限于小系统的概念,现已广泛应用于家用电器,机电产品,办公自动化用品,机器人,儿童玩具,航天器等领域。 本次课程设计,就是用单片机实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于51单片机的数字温度计的设计。 本文介绍了一个基于STC89C52单片机和数字温度传感器DS18B20的测温 系统,并用LED数码管显示温度值,易于读数。系统电路简单、操作简便,能 任意设定报警温度并可查询最近的10个温度值,系统具有可靠性高、成本低、功耗小等优点。 关键词:单片机数字温度传感器数字温度计

DS18B20与数码管温度显示C程序

#include #define uchar unsigned char #define uint unsigned int sbit DQ=P1^4;//ds18b20与单片机连接口 unsigned char code str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39};//共阴数码管字码表 unsigned char code str1[]={0x0bf,0x86,0x0db,0x0cf,0x0e6,0x0ed,0x0fd,0x87,0x0ff,0x0ef,0x39};//个位带小数点字码表 unsigned char code wei[]={0x0fe,0x0fd,0x0fb,0x0f7}; uchar data disdata[5]; uint tvalue;//温度值 uchar tflag;//温度正负标志 /******************************ds1820程序***************************************/ void delay_18B20(unsigned int i)//延时1微秒 { while(i--); } void ds1820rst()/*ds1820复位*/ { unsigned char x=0; DQ = 1; //DQ复位 delay_18B20(4); //延时 DQ = 0; //DQ拉低 delay_18B20(100); //精确延时大于480us DQ = 1; //拉高 delay_18B20(40); } uchar ds1820rd()/*读数据*/ { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; //给脉冲信号 dat>>=1; DQ = 1; //给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10);

简易数字温度计的设计与制作

简易数字温度计的设计与制作 来源:21IC中国电子网作者:郇玉龙赵宁 摘要:单片机在日用电子产品中的应用越来越广泛,温度则是人们日常生活中常常需要测量和控制的一个量。本文作者采用AT89C51单片机和温度传感器AD5 90从硬件和软件两方面介绍了一款简易数字温度计的设计过程,并对硬件原理图和程序流程图作了简洁的描述。 关键词:单片机AT89C51;温度传感器AD590;数字温度计;模数转换;数码显示 1.前言 随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器AD590具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,本文作者利用集成温度传感器AD590设计并制作了一款基于AT89C51的4位数码管显示的数字温度计,其电路简单,软硬件结构模块化,易于实现。 2.系统功能原理及硬件组成 该数字温度计利用AD590集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器ADC0804转换成单片机能够处理的数字信号,然后送到单片机AT89C51中进行处理变换,最后将温度值显示在D4、D3、D 2、D1共4位七段码LED显示器上。 系统以AT89C51单片机为控制核心,加上AD590测温电路、ADC模数转换电路、4位温度数据显示电路以及外围电源、时钟电路等组成。系统组成框图如图1所示。

图1 系统组成框图 2.1 AT89C51单片机 Atmel公司的生产的AT89C51单片机是一种低功耗/低电压、高性能的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,片内集成4K字节可改变程序Flash存储器,具有低功耗,速度快,程序擦写方便等优点,完全满足本系统设计需要。 单片机P0口作为ADC0804转换数据的输入端,P2.0接ADC0804的INTR端检测数据转换是否结束。P1.0~P1.3的输出信号接到译码器7447上作为数码管的显示,P1.4~P1.7则作为4个数码管的位选信号控制。P3口有特殊的功能,P3. 6用于控制ADC0804的启动,P3.7用于控制读取ADC0804的转换结果。 2.2 AD590温度传感器 AD590是美国模拟器件公司生产的单片集成两端感温电流源。AD590测温范围为-55℃~+150℃,满足人们日常生产和生活中的温度范围。AD590电源电压可在4V~6V范围变化,可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。AD590产生的电流与绝对温度成正比,它有非常好的线性输出性能,温度每增加1℃,其电流增加1μA。 AD590温度与电流的关系如下表所示:

《 3位半数字显示温度计 》设计报告

《 3位半数字显示温度计》 设计报告 设计时间: 班级: 姓名: 报告页数:

工业大学课程设计报告 设计题目_______ 学院专业班 学号 (合作者号 ) 成绩评定_______ 教师签名_______ 一、设计任务与要求: 设计任务:

LM35, A/D转换器、数字显示器设计一个日常温度数字温度 计。 课程目标: ?1、加深对以上三门课程所学容的理解; ?2、能够在设计中综合运用所学知识解决实际问题; ?3、初步掌握工程设计的一般方法,具备一定的工程设计能力。 ?4.培养独立思考和独立解决问题的能力,培养科学精神和严谨的工作作风。 标及技术要求: ?①温度显示围:0℃~50℃; ?②数字显示分辨率:0.1℃; ?③精度误差≤0.5℃; ?④电路工作电源可在5~9V围工作. 二、设计方案及比较(设计可行性分析): 方案思路一------基于LM35芯片以51单片机作为核心的三位半数字显示温度计: 外接一个温度采集LM35,根据采集器的输出参数特性利用TX-1C开发板编程相关程序直接处理温度信息并将处理结果显示在开发板自带的液晶屏上 方案思路二------基于LM35芯片以ICL7106作为核心的三位半数字显示温度计: 1. 模拟信号采集部分:LM35采集温度信息转化为可处理的模拟信号并将该信号输入至数模转换部分 2. 模数转换部分: 用ICL7106芯片以及相关原件组成的外围电路组成一个直流电压测量电路或一个数字电压表,利用ICL7106将模拟部分输出的模拟信号转换为数字信号,并通过7106自带的BCD译码器输出液晶屏所需输入信号 3. 液晶屏显示部分:液晶屏ICL7106对应的输出接口输入显示信号,显示该数字电压表的

数字温度计DS18B20课程设计报告

数字温度计DS18B20课程设计报告 专业名称: 自动化专业班级: 全文结束》》级自动化1班学号: 全文结束》》4786 摘要本设计采用的主控芯片是ATMEL公司的AT89C51单片机,数字温度传感器是DALLAS公司的 DS18B20。本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。本次设计采用的AT89C51是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。本次设计的数字温度计采用的是 DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报

警程序报警。本设计的显示模块是用液晶显示屏1602实现温度显示。在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。 一、实验设计概述本系统所设计的数字温度计采用的是 DS18B20数字温度传感器测温,测温上下限为10°C~40°C。 DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。其输出温度采用LCD1602显示,主要用于对测温比较准确的场所。该设计控制器使用的是51单片机AT89C51,AT89C51单片机在工控、测量、仪器仪表中应用还是比较广泛的。测温传感器使用的是 DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。显示是用液晶显示屏1602实现温度显示。蜂鸣器用来实现当测量温度超过设定的上下限时的报警功能。 二、系统总体方案及硬件设计 2、1系统总体设计框图由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。 温度计电路设计总体设计框图如图2-1所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,显示采用液晶显示

简易数字式温度计的设计

分数: 单片机技能+电子初级工程师认证培训 设计报告 题目:简易数字式温度计的设计 指导老师:文丽 完成时间: 2012-5-15 华南理工大学广州学院电子信息工程学院

目录 1 引言 2方案设计 3 系统的硬件设计 4 proteus 仿真图 5 系统的软件设计 6 心理体会 7 参考文献

1 引言 在当下,人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。 2方案设计 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下: ●利用温度传感器(DS18B20)测量某一环境温度 ●测量范围为-55℃~+127℃,精度为±0.5℃ ●如果测量范围超过+127℃或低于-55℃蜂鸣器就会自动进行报警 ●用液晶显示器LCD进行实际温度值显示 采用AT89S52单片机P3.5口控制温度传感器DS18B20的温度测量,以液晶显示器LCD形式输出测量温度。 图2.1原理图

相关文档