DS18B20温度传感器课程设计报告 - 图文
更新时间:2024-04-29 23:08:01 阅读量: 综合文库 文档下载
单片机课程设计报告
设计题目: DS18B20温度传感器 班 级: 09电信(2)班 姓 名: xxx 学 号: xxx 指导教师: xxx 调试地点: xxx
目 录
一、概述 .......................................................................................................................................... 3 二、内容 .......................................................................................................................................... 3
1、课程设计题目..................................................................................................................... 3 2、课程设计目的..................................................................................................................... 3 3、设计任务和要求................................................................................................................. 3 4、正文..................................................................................................................................... 4
(一)、方案选择与论证 ................................................................................................. 4
三、系统的具体设计与实现........................................................................................................... 6
(1)、系统的总体设计方案 ................................................................................................... 6 (2)、硬件电路设计 ............................................................................................................... 6
a、单片机控制模块 ......................................................................................................... 6 b、温度传感器模块 ........................................................................................................ 7
四、软件设计 ................................................................................................................................ 13
1、 主程序......................................................................................................................... 13 2、 读出温度子程序 ......................................................................................................... 13 3、 温度转换命令子程序 ................................................................................................. 13 4、计算温度子程序............................................................................................................... 14 五、完整程序如下: .................................................................................................................... 14 六、设计体会 ................................................................................................................................ 19 七、参考文献 ................................................................................................................................ 20
一、概述
2009年6月14日随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。
本文主要介绍了一个基于89S51单片机的测温系统,详细描述了利用液晶显示器件传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感DS18B20的数据采集过程。对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词: 单片机AT89C51、DS18B20温度传感器、液晶显示LCD1602。 二、内容
1、课程设计题目
基于DS18B20的温度传感器 2、课程设计目的
通过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,汇编语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。
3、设计任务和要求
以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为±0.5摄氏度。温度显示采用LCD1602显示,两位整数,一位小数。
系统总体仿真图
板上实现效果图 4、正文 (一)、方案选择与论证 根据设计任务的总体要求,本系统可以划分为以下几个基本模块,针对各个模
块的功能要求,分别有以下一些不同的设计方案: (1)、温度传感模块
方案一:采用热敏电阻,热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的,也不能满足测量范围。在温度测量系统中,也常采用单片温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使测温系统的硬件结构较复杂。另外,这种测温系统难以实现多点测温,也要用到复杂的算法,一定程度上也增加了软件实现的难度。
方案二:采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。这样一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。
综上分析,我们选用第二种方案。
温度传感模块仿真图 (2)、显示模块
方案一:采用8位段数码管,将单片机得到的数据通过数码管显示出来。该方案简单易行,但所需的元件较多,且不容易进行操作,可读性差,一旦设定后很难再加入其他的功能,显示格式受限制,且大耗电量大,不宜用电池给系统供电。
方案二:采用液晶显示器件,液晶显示平稳、省电、美观,更容易实现题目要求,对后续的园艺通兼容性高,只需将软件作修改即可,可操作性强,也易于读数,采用RT1602两行十六个字符的显示,能同时显示其它的信息如日期、时间、星期、温度。
综上分析,我们采用了第二个方案
void w_dat(uint8 dat) {
wait(); EN = 0; P0 = dat; RS = 1; RW = 0; EN = 1; EN = 0; }
写命令
void w_cmd(uint8 cmd) {
wait(); EN = 0; P0 = cmd; RS = 0; RW = 0; EN = 1; EN = 0; }
发送字符串到LCD
void w_string(uint8 addr_start, uint8 *p) {
w_cmd(addr_start); while (*p != '\\0') { w_dat(*p++); } }
初始化1602
void Init_LCD1602(void) {
w_cmd(0x38); // 16*2显示,5*7点阵,8位数据接口 w_cmd(0x0c); // 显示器开、光标开、光标允许闪烁 w_cmd(0x06); // 文字不动,光标自动右移 w_cmd(0x01); // 清屏 }
uchar Reset()//完成单总线的复位操作。 {
uchar d;
DQ = 0; // 将 DQ 线拉低
Delayus(29); // 保持 480μs .复位时间为480μs,因此延时时间为(480-24)/16 = 28.5,取29μs。
DQ = 1; // DQ返回高电平
Delayus(3); // 等待存在脉冲.经过70μs之后检测存在脉冲,因此延时时间为(70-24)/16 = 2.875,取3μs。 d = DQ; // 获得存在信号 Delayus(25); // 等待时间隙结束
return(d); // 返回存在信号,0 = 器件存在, 1 = 无器件 }
void write_bit(uchar bitval)//向单总线写入1位值:bitval {
DQ = 0; // 将DQ 拉低开始写时间隙 if(bitval==1)
DQ =1; // 如果写1,DQ 返回高电平 Delayus(5);// 在时间隙内保持电平值,
DQ = 1; // Delayus函数每次循环延时16μs,因此Delayus(5)=5*16+24=104μs }
void ds18write_byte(char val)//向单总线写入一个字节值:val {
uchar i; uchar temp;
for (i=0; i<8; i++)// 写入字节, 每次写入一位 {
temp = val>>i; temp &= 0x01; write_bit(temp); }
Delayus(5); }
uchar read_bit()//从单总线上读取一位信号,所需延时时间为15μs,因此无法调用前面定义 { //的Delayus()函数,而采用一个for()循环来实现延时。 uchar i;
DQ = 0; //将DQ 拉低开始读时间隙 DQ = 1; // 然后返回高电平 for (i=0; i<3; i++); // 延时15μs return(DQ); // 返回 DQ 线上的电平值 }
uchar ds18read_byte()//从单总线读取一个字节的值 {
uchar i;
uchar value = 0; for (i=0;i<8;i++) { // 读取字节,每次读取一个字节
if(read_bit())
value|=0x01<
return(value); }
int Readtemperature()//如果单总线节点上只有一个器件则可以直接掉用本函数。如果节点上有多个器 { //件,为了避免数据冲突,应使用Match ROM函数来选中特定器件。
uchar temp_d,temp_g,k,get[2],temp; Reset();
ds18write_byte(0xcc); // 跳过 ROM ds18write_byte(0x44); // 启动温度转换 Delayus(5); Reset();
ds18write_byte(0xcc); // 跳过 ROM ds18write_byte(0xbe); // 读暂存器 for (k=0;k<2;k++) {
get[k]=ds18read_byte(); }
temp_d = get[0];//低位 temp_g = get[1];//高位
if((temp_g&0xf0)==0xf0) //正负号判断 {
temp_d=~temp_d;
if(temp_d==0xff) //保证-48(1111110100000000)、-32和-16显示正常 {
temp_d=temp_d+0x01;//00000000 temp_g=~temp_g;//00000010 temp_g=temp_g+0x01;//00000011 } else {
temp_d=temp_d+0x01;
temp_g=~temp_g; } w_cmd(0xc5);
w_dat(Xsw[temp_d&0x0f]); //查表得小数位的值 temp=((temp_d&0xf0)>>4)|((temp_g&0x0f)<<4); w_cmd(0xc1); w_dat(0x2d);//负号 }
else //正数 {
w_cmd(0xc5);
w_dat(Xsw[temp_d&0x0f]);//查表得小数位的值 temp=((temp_d&0xf0)>>4)|((temp_g&0x0f)<<4); w_cmd(0xc1);
w_dat(Bw[temp/100]); }
return temp; } main() {
Init_LCD1602();
w_string(0x80,word1); while (1) {
wendu=Readtemperature();
temp_g=wendu0/10+'0';//这里要特别注意啊少了0就差很多 temp_d=wendu+'0'; w_cmd(0xc2); delay(2);
w_dat(temp_g); delay(2);
w_dat(temp_d); delay(2);
w_cmd(0xc4); delay(2);
w_dat(0x2e);//小数点 delay(2);
w_cmd(0xc6); delay(2);
w_dat(0xdf);//温度符号 delay(2); w_dat(0x43); } }
六、设计体会
通过这次基于DS18B20传感器测量温度的设计,我学到了不少新的知识。首先,这次设计让我把书本上学到的理论知识转化成为现实生活中有价值的实物。如果没有这次设计为我 搭建的平台,我就不能对书本上的知识进行很好的理解,也不能熟练的把它们应用到现实生活中。还有,我们学会不能手高眼低,要踏踏实实,从基础学起、做起。但是,具体到设计时,我遇到了很多麻烦,比如如何将传感器得到的温度转换成为对应的电信号,如何将电信号输送到单片机进行控制,如何把测得的温度用数字显示出来等等。这就要求我们学习要一步一
个脚印,掌握扎实的理论基础了。最重要的一点是,我在这次设计中培养了自己的学习能力。由于好多知识超出了我们的课本范围,这就要求我们自己通过资料来增加我们的知识,解决遇到的一些问题。在短时间内从书本资料中筛选出我们所需要的知识,对我们的自主学习能力有很大的帮助。就拿DS18B20来说,我们书本上没有介绍到这种温度传感器,所以我们就通过学习DS18B20的说明书,了解它工作的原理以及特性,清楚在实际应用时要注意的事项,对DS18B20进行初始化、编程的要求和规定等。培养了自主学习的能力,无论以后我要做什么样的设计,我都能够通过查阅资料来实现。最后,本次设计能够顺利完成。 七、参考文献
【1】 梁森,欧阳三泰,王侃夫. 自动检测技术及应用【M】.北京:机械工业出版社.
【2】 万隆.单片机原理及应用技术教程 清华大学出版社.
【3】 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,
【4】 李广弟.单片机基础[M].北京:北京航空航天大学出版社. 【5】 康华光.数字电子技术基础(第四版). 北京:高等教育出版社.
正在阅读:
方山县安全生产集中整治工作情况汇报04-03
七年级数学一元一次不等式与一元一次不等式组同步练习10-18
监理工程师继续教育讲义(1)04-02
工程项目管理施工组织设计10-03
(人社局)招商引资发言材料03-08
中国人民解放军各集团军编制战斗序列大全05-02
江苏省正地厅级干部简历04-24
浙江省仙居县绿道建设效益分析10-12
职业技能实训 - 基础会计03-11
- 2009中西部家居博览会总体策划
- 2009 Revit 1级工程师学生用
- 天津地铁建设工程试验检测机构管理办法(TJDT-ZY-AQ-29)
- 新四年级数学暑期班第七次教案
- 机械制造企业隐患排查治理检查表 - 图文
- 2008届全国百套高考数学模拟试题分类汇编-103概率与统计解答题 -
- 职场健身防病试题及答案
- Excel操作技巧大全II - --数据输入和编辑技巧
- 南开大学2018春季《行政管理学》离线作业考核答案
- 2015年医师定考简易程序试卷及答案
- 新《预算法》对行政事业单位预算管理的挑战解读
- 轴的课件
- 电动汽车充电桩设计 毕业论文
- 必修2、选修2-1、1-1期末模拟试题2
- 桌面远程运维管理系统实施-可行性研究报告120306
- 西气东输水土保持工程工作总结 - 图文
- 正宁县基本县情及经济社会发展情况简介
- SATWE参数设置(巨详细)
- 儒家法思想研究综述
- 生活家政服务电子商务平台建设运营整合方案书【审报完稿】
- 传感器
- 温度
- DS18B20
- 课程
- 图文
- 报告
- 设计
- 整理桩基础习题
- T16车牌识别管理系统V2.0说明书20170314
- 市场调查与预测1
- 2010无机实验试卷答案
- 南部县宏观乡九年一贯制学校“走基层、两维护”活动实施方案
- 2017年度《企业年度工作报告》格式文本
- 《中国戏曲理论》期末考试大题复习范围及答案
- 当代大学生人生追求及信仰的调查报告 完全自己写
- 日本教育
- 广东肇庆市2016届高三第二次统测(期末)文综试题
- 变电所操作规程要点
- 人防工程钢筋施工质量控制要点
- 大学生魅力讲话实操单元测验
- 美的集团的应收账款管理中的问题研究
- 法大法学考研有哪几个方向的专业
- phdgdu胡壮麟《语言学教程》(修订版)测试题
- 法律文书名词解释1
- 2017-2018学年杭州二中高一上学期期中数学试卷及答案
- 探究绘本阅读活动中师幼互动的有效策略
- 论个人形象与组织形象的含义、相互关系及重要性