版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成都理工大学工程技术学院本科课程设计报告成都理工大学工程技术学院单片机课程设计报告数字温度计设计 指导教师: 韩冰老师 学生: 敬海林 2015年01月06日 摘要在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,作为自动化专业的学生,我们学习了单片机,就应该把它熟练应用到生活之中来。本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。本文设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。关键词:单片机,
2、数字控制,数码管显示,温度计,DS18B20,AT89S52。 目录1概述31.1设计目的31.2设计原理31.3设计难点32 系统总体方案及硬件设计32.1数字温度计设计方案论证4 2.2.1 主控制器62.4 系统整体硬件电路设计63系统软件设计73.1初始化程序73.2读出温度子程序83.3读、写时序子程序83.4 温度处理子程序113.5 显示程序114 Proteus软件仿真125硬件实物136课程设计体会.13附录1:14 1概述1.1设计目的 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们
3、对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,可广泛用于食品库、冷库、粮库、温室大棚等需要控制温度的地方。目前,该产品已在温控系统中得到广泛的应用。1.2设计原理 本系统是一个基于单片机AT89S52的数字温度计的设计,用来测量环境温度,测量范围为-50110度。整个设计系统分为4部分:单片机控制、温度传感器、数码显示以及键盘控制电路。整个设计是以AT89
4、S52为核心,通过数字温度传感器DS18B20来实现环境温度的采集和A/D转换,同时因其输出为数字形式,且为串行输出,这就方便了单片机进行数据处理,但同时也对编程提出了更高的要求。单片机把采集到的温度进行相应的转换后,使之能够方便地在数码管上输出。LED采用三位一体共阳的数码管。1.3设计难点 此设计的重点在于编程,程序要实现温度的采集、转换、显示和上下限温度报警,其外围电路所用器件较少,相对简单,实现容易。2 系统总体方案及硬件设计2.1数字温度计设计方案论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片
5、机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2.2总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用4位共阴LED数码管以串口传送数据实现温度显示。 图1 总体设计框图2.2.1 主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路
6、系统的设计需要,适合便携手持式产品的设计使用。AT89S52单片机芯片具有以下特性:1)指令集合芯片引脚与Intel公司的8052兼容;2)4KB片内在系统可编程FLASH程序存储器;3)时钟频率为033MHZ;4)128字节片内随机读写存储器(RAM);5)6个中断源,2级优先级;6)2个16位定时/记数器;7)全双工串行通信接口;8)监视定时器;9)两个数据指针;2.2.2 最小系统 2.2.3温度传感器DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数
7、字值读数方式。DS18B20的性能特点如下:1. 只要求一个端口即可实现通信。2. 在DS18B20中,每个器件上都有独一无二的序列号,可实现多点组网。3. 实际应用中不需要外部任何器件即可实现温度。4. 测量温度范围在-55度到+125度、5. 可通过数据线的寄生电源供电,电压范围3.05.5V.6. 数字温度计可以9位数字量读出。7. 用户可以定义非易失温度报警设置。8. 2.3 DS18B20温度传感器与单片机的接口电路 2.4 系统整体硬件电路设计2.4.1 主板电路 系统整体硬件电路包括,传感器数据采集电路,温度显示电路,单片机主板电路等,单片机主板电路如图5 所示: 图5 单片机主
8、板电路2.4.2 显示电路 图6 温度显示电路3 系统软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.1初始化程序 图7 初始化程序流程图 3.2读出温度子程序读出温度子程序的主要功能是读出RAM中的2字节,读出温度的低八位和高八位,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图8示 图8 读温度程序流程图3.3读、写时序子程序读写的程序是本次设计中的重点和难点,通过我们对其时序的分析,从而写出高效的程序。写1,0时序 读0,1时序 图9 写时序子程序流程图 图10 读时序子程序流程图 3.4 温度处理子
9、程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图11所示 图11 温度处理程序流程图 3.5 显示程序此函数实现的对数码管显示的处理,其亮点在于可以直接对数码管进行操作,其本身是个两变量函数,第一个变量是要开通的位选,第二个变量是要显示的数据,这样我们可以直接方便而又简单直观的对数码管进行操作。程序流程图如图12。 图12 显示程序图 4 Proteus软件仿真5 硬件实物 6 课程设计体会 单片机课程设计总共持续了两周的时间,在这两周里学到了非常多的单片机知识。课程设计完成的是基于AT89S52单片机的数字温度计设计。课程设计完成了程序的编写
10、和电路仿真图,而且也完成了在面包板上的实际电路连接。我更加深刻的认识到了单片机的广泛用途和增强了完成实际电路的动手能力。在完成这次的课程设计中遇到了许多的问题。首先对于DS18B20的原理不够理解,因此在理解程序的时候遇到了非常多的问题,但是在学习了老师给我们的资料之后对程序的理解更加全面了。其次在连接实物图中遇到了非常多困难,因为在连接实物的时候会出现很多不可控的因素,例如:可能连接的线路出现松动的情况和连接线路的问题。所以,连接线路的时候一定要细心在这次的课程设计中,我们遇到了很多困难,过程很艰难,但 是我们都克服了,这是对我们自己的肯定。我们也发现理论和实际的 差别,书本上的知识固然重要
11、,但是我们也需要学会使用它们,把他 们运用到我们的课程设计中。 这次的单片机课程使我们学到了很多,不单单是课本上那些知 识,更重要的是一些课本上没有但是有很重要的知识,像是团队合作 精神,查找电路的故障等等。我们觉得这些无形之中学到的知识更加 弥足珍贵。 最后,感谢韩老师在课程设计中对于我们这组的帮助和支持,希望这样的课程能够继续下去,并不断地前进,帮助更 多的学生了解单片机,并能够在使用中发现它的无穷魅力! 参考文献1DS18b20数据手册。2 求是科技编著8051系列单片机C程序设计完全手册北京: 人民邮电出版社, 20063 余发山,王福忠.单片机原理及应用技术.徐州:中国矿业大学出版社
12、,2003附录1:#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit DQ=P37; sbit D=P07; uint h; uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/小数部分查询; uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x
13、92,0x82,0xf8,0x80,0x90,0xff,0xbf; /0 1 2 3 4 5 6 7 8 9 无数 uchar code scan_con4=0x01,0x02,0x04,0x08; /P2口控制数码管位选; uchar datatemp_data2=0x00,0x00; /读取高低位的临时存放; uchar data display5=0x04,0x03,0x00,0x03,0x00; /处理后的温度数字存放; void delay(uint t) /11us延时函数 for(;t>0;t-); void scan() /显示扫描函数uchar k;for(k=1;k&
14、lt;4;k+)P0=dis_7displayk;if(k=2)D=0;P2=scan_conk;/ 位选段码;delay(90);P0=0xff;void ow_reset(void)char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();DQ=0; /delay(50); / 550usDQ=1; / delay(6); / 66uspresence=DQ; / presence=0继续下一步delay(45); /延时500uspresence = DQ;DQ=1; void write_byte(uchar
15、val) /写函数命令;uchar i;for (i=8; i>0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay(6); /66usval=val/2; /右移一位DQ = 1;delay(1); uchar read_byte(void) /从总线上读取一个字节;uchar i;uchar value = 0;for (i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>
16、=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66usDQ=1;return(value);int read_temp()/读出温度函数int temp = 0;ow_reset(); /总线复位;write_byte(0xcc); /跳过romwrite_byte(0xbe); /发出读命令;temp_data0=read_byte(); /低8位;temp_data1=read_byte();/高八位;ow_reset();write_byte(0xcc); /跳过Rom;write_byte(0x44); /温度变化;temp =temp_data1 ; temp <<= 8;temp |= temp_data0;return temp;void work_temp(int temp)/温度数据处理; uint tp;if(temp<0)temp=temp;tp=temp&0x000f;temp=temp>>4;display3=ditabtp; display1=temp/10;display2=temp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版房屋买卖合同中的房屋抵押及解押约定3篇
- 二零二五河南事业单位100人招聘项目合同执行标准3篇
- 二零二五版建筑工程项目现场勘察与监测服务合同3篇
- 二零二五版混凝土结构防雷接地施工合同2篇
- 二零二五年度草场承包管理与开发合同范本3篇
- 二零二五版国际贸易实务实验报告与国际贸易实务实训合同3篇
- 二零二五年度虚拟现实(VR)技术研发合同3篇
- 二零二五年度特种货物安全运输服务合同范本2篇
- 二零二五年度体育设施建设与运营管理复杂多条款合同3篇
- 二零二五年度电梯门套安装与安全性能检测合同3篇
- 山东省潍坊市2023-2024学年高二下学期期末考试 历史 含解析
- 中医诊疗规范
- 报建协议书模板
- 第14课《叶圣陶先生二三事》导学案 统编版语文七年级下册
- 贵州省2024年中考英语真题(含答案)
- 施工项目平移合同范本
- 北师大版八年级上册数学期中综合测试卷(含答案解析)
- 幼儿园创意美劳培训
- 同济大学第四版线性代数课后习题答案
- 医疗领域人工智能技术应用的伦理与法规
- 工地春节停工复工计划安排
评论
0/150
提交评论