




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于AT89C52单片机的DS18B20温度传感器设计报告设计时间12月22日12月26日班级应用电子4班姓名梁志勇报告页数25页广东工业大学课程设计报告设计题目基于AT89C52单片机的DS18B20温度传感器学院信息工程学院专业应用电子技术班4班学号3111002702姓名梁志勇合作者_号_成绩评定_教师签名_摘要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本次课程设计主要设计一个基于89C51单片机的数字温度传感器DS18B20开发测温系统,重点学习掌握对传感器在单片机下的硬件连接,软件编程以及各模块系统流程的详尽分析,提高电路设计的技巧。该系统可以方便的实现实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,有广泛的应用前景。关键词单片机;温度采集;AT89C52;DS18B20;目录1设计任务12总体方案设计121方案论证1211方案一1212方案二122总体设计框图及电路23硬件设计331单片机系统332数字温度传感器模块4321DS18B20性能4322DS18B20外形及引脚说明4323DS18B20接线原理图5324DS18B20时序图5325数据处理6331602液晶显示电路74软件设计841主程序模块842读温度值模块943中断模块1044温度报警模块1045程序开发1046PCB电路板的制作195程序的仿真及产品调试206总结与讨论23参考文献24附录元器件清单1设计任务采用方案一(温度传感器LM35,3位半A/D转换器)或者方案二(52单片机,温度传感器DS18B20),数码管或者液晶显示,设计一个日常温度数字计。产品指标及技术要求温度显示范围045摄氏度数字显示分辨率01摄氏度精度误差小于等于05摄氏度电路工作电源可在59V范围内工作2总体方案设计21方案论证211方案一采用温度传感器LM35,3位半A/D转换器,数码管或者液晶显示,设计一个日常温度数字计。本方案主要利用硬件电路连接,通过更改电路器件参数,显示出3位半温度,并没有利用软件编程。本方案设计简单,但电路复杂,这种设计需要用到A/D转换电路,增大了电路的复杂性,而且要做到高精度也比较困难。并且基本电路中所需要的器件和芯片成本不便宜。212方案二采用AT89C52单片机,温度传感器DS18B20,数码管或者液晶显示,设计一个日常温度数字计。本方案主要利用硬件电路连接,通过软件编程,显示出3位半温度。本方案设计比较难,要同时考虑硬件的连接和软件编程,但电路简单,另外DS18B20具有3引脚的小体积封装,测温范围为55125摄氏度,测温分辨率可达00625摄氏度,其测量范围与精度都能符合设计要求。并且基本电路中所需要的器件和芯片成本便宜。以上两种方案相比较,第二种方案的电路、软件设计更简单,成本便宜,此方案设计的系统在功耗、测量精度、范围等方面都能很好地达到要求,故本设计采用方案二。122总体设计框图及电路本方案设计的系统由单片机系统、数字温度传感器、液晶1602显示模块、时钟模块组成,其总体架构如下图1。电路设计AT89C52单片机最小系统DS18B20数字温度传感器模块液晶1602驱动显示模块图1单片机最小系统图2DS18B20数字温度传感器模块温度传感器时钟,复位电路AT89C52单片机1602液晶显示电路2图3液晶1602驱动显示模块3硬件设计31单片机系统AT89C52单片机引脚介绍AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的89C52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接110592MHZ晶振。RST/VPD(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接5V电源的正负端。P0P3为可编程通用I/O脚,其功能用途由软件编程定义。图4晶振电路图图5复位电路图3图6单片机管脚图32数字温度传感器模块321DS18B20性能独特的单线接口仅需一个端口引脚进行通信简单的多点分布应用无需外部器件可通过数据线供电零待机功耗测温范围55125,以05递增可编程的分辨率为912位,对应的可分辨温度分别为05、025、0125和00625温度数字量转换时间200MS,12位分辨率时最多在750MS内把温度转换为数字应用包括温度控制、工业系统、消费品、温度计和任何热感测系统负压特性电源极性接反时,传感器不会因发热而烧毁,但不能正常工作322DS18B20外形及引脚说明GND地DQ单线运用的数据输入/输出引脚VD可选的电源引脚4图7DS18B20外形及引脚323DS18B20接线原理图单总线通常要求接一个约47K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。图8DS18B20接线原理图324DS18B20时序图主机使用时间隙来读写DS18B20的数据位和写命令字的位。1初始化时序5图9DS18B20初始化时序2DS18B20读写时序图10DS18B20读写时序325数据处理高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。6图11字节分配下表为12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于00625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于00625即可得到实际温度。例如125的数字输出为07D0H,实际温度07D0H00625200000625125。例如55的数字输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作运算),实际温度370H006258800062555。可见其中低四位为小数位。图12DS18B20温度数据表331602液晶显示电路LCD1602引脚功能说明第1脚VSS为电源地第2脚VDD接5V电源正极7第3脚V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作。第6脚E或EN端为使能ENABLE端。第714脚D0D7为8位双向数据端。第1516脚空脚或背灯电源。15脚背光正极,16脚背光负极图131602液晶显示电路及实物图4软件设计41主程序模块主程序需要调用3个子程序,分别为实时温度显示子程序驱动液晶1602把实时温度值送出在液晶屏显示中断定时及显示子程序驱动液晶1602把定时时钟送出在液晶屏显示温度设定、报警子程序设定报警温度值,当温度超过或者低于该值时产生报警,即驱动液晶屏显示不同的界面主程序流程图对温度传感器进行设置,读取温度,对中断定时开始数据处理转化显示温度时钟,温度报警返回开始842读温度值模块读温度值模块需要调用4个子程序,分别为DS18B20初始化子程序让单片机知道DS18B20在总线上且已准备好操作DS18B20写字节子程序对DS18B20发出命令DS18B20读字节子程序读取DS18B20存储器的数据延时子程序对DS18B20操作时的时序控制读温度值模块流程图入口DS18B20初始化跳过读序列号启动温度转换延时DS18B20初始化跳过读序列号读取温度值高低位图14读温度值子程序流程图943中断模块中断采用T0定时器方式1,初始值定时为50MS,并不断计数。来模拟时钟中断模块流程图图15中断模块流程图44温度报警模块设定报警温度上限值,当温度超过该值时产生报警,驱动液晶1602在液晶屏第一行显示“WEATERHOT”的界面设定报警温度下限值,当温度低于该值时产生报警,驱动液晶1602在液晶屏第一行显示“WEATERCOLD”的界面当温度在上限值和下限值之间时,不产生报警,驱动液晶1602在液晶数据转换处理返回中断入口定时器重置初值计数值加11秒1分1时是,显示时钟否,返回计数中断返回屏第一行显示“HAPPYEVERYDAY”的界面45程序开发10软件程序使用C语言编写开发,开发环境软件为KEIL4应用KEIL进行软件仿真开发的主要步骤为编写源程序并保存建立工程并添加源文件设置工程编译/汇编、连接,产生目标文件程序调试。KEIL使用“工程”PROJECT的概念,对工程而不能对单一的源程序进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单FILENEW,在源程序编辑器中输入汇编语言或C语言源程序或选择FILEOPEN,直接打开已用其它编辑器编辑好的源程序文档并保存,注意保存时必须在文件名后加上扩展名ASMA51或C;然后选择菜单PROJECTNEWPROJECT,建立新工程并保存保存时无需加扩展名,也可加上扩展名UV2;工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页FILES会出现“TARGET1”,将其前面号展开,接着选择SOURCEGROUP1,右击鼠标弹出快捷菜单,选择“ADDFILETOGROUPSOURCEGROUP1”,出现一个对话框,要求寻找并加入源文件在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件。加入文件后点CLOSE返回主界面,展开“SOURCEGROUP1”前面号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的TARGET1,再选择PROJECTOPTIONFORTARGETTARGET1或点右键弹出快捷菜单再选择该选项,打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在TARGET选项卡中设置晶振频率、在DEBUG选项卡中设置实验仿真板等,如要写片,还必须在OUTPUT选项卡中选中“CREATHEXFI”;其它选项卡内容一般可取默认值。工程设置后按F7键或点击编译工具栏上相应图标进行编译/汇编、连接以及产生目标文件。成功编译/汇编、连接后,还须通过编程器将HEX目标文件烧写入单片机中才能观察目标样机真实的运行状况。如下为编译成功,并生成HEX文件的界面程序代码/基于AT89C52单片机的时钟LCD1602显示DS18B20温度/INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSBITDQP2711SBITRSP24/LCD1602数据、命令选择端SBITRWP23/LCD1602读、写选择线SBITLCDEP22/LCD1602使能线UCHARTP,TPX,NUM,COUNT,MIAO,FEN,SHIUCHARCODETABLE“HAPPYEVERYDAY“UCHARCODETABLE1“UCHARCODETABLE2“WEATHERCOLD“UCHARCODETABLE3“WEATHERHOT“/延时函数/VOIDDELAYUINTZ/MS级延时函数UINTX,YFORXZX0XFORY110Y0Y/VOIDDELAY1/US级延时函数1/VOIDDELAY2UINTI/US级延时函数2WHILEI/DS18B20初始化/VOIDINIT_DS18B20/初始化DQ1/数据线拉高DELAY28/大约80USDQ0/数据线拉低12DELAY280/(480US960US)大约798USDQ1/数据线拉高DELAY214/15US60US40US240US大约154US/DS18B20读一个字节/UCHARREAD_DS18B20_BYTEUCHARI0UCHARDAT0FORI0I1/字节右移一位DQ1/数据线拉高IFDQ1/判断读回是否为1DATDAT|0X80/最高位或上一个1,使得最高位变为1DELAY24/延时6USRETURNDAT/循环8次完成一个字节,并返回数据/DS18B20写一个字节/VOIDWRITE_DS18B20_BYTEUCHARDATEUCHARI0FORI0I1/字节右移一位,接着取第二位/DS18B20读取温度/INTREAD_DS18B20_TEMP/考虑到温度可能为负值,所以使用INT型UCHARA0/用于读取低8位UINTB0/用于读取高8位UINTT0/用于组成新的温度INIT_DS18B20/初始化WRITE_DS18B20_BYTE0XCC/忽略ROM指令WRITE_DS18B20_BYTE0X44/进行温度转换INIT_DS18B20/初始化WRITE_DS18B20_BYTE0XCC/忽略ROM指令WRITE_DS18B20_BYTE0XBE/读暂存器指令AREAD_DS18B20_BYTE/读取低8位BREAD_DS18B20_BYTE/读取高8位AA/将低8位与上0X00FF,设定低8位BBTPSHITPZ/10/取十位TPGETPZ10/取个位WRITECOM0X800X4010WRITEDATETPSHI0X30/显示温度十位WRITEDATETPGE0X30/显示温度个位WRITEDATEWRITEDATETPXIAO0X30WRITEDATE0XDFWRITEDATEC/显示温度符号IFTPZ15WRITECOM0X80FORNUM0NUM25WRITECOM0X80FORNUM0NUM16NUMWRITEDATETABLE3NUMDELAY516/LCD显示时分秒函数/VOIDWRITESFMUCHARADD,UCHARDATEUCHARSHI,GESHIDATE/10/取十位GEDATE10/取个位WRITECOM0X800X40ADD/写入地址WRITEDATE0X30SHI/显示十位WRITEDATE0X30GE/显示个位WRITECOM0X800X40ADD/返回地址/初始化函数/VOIDINITLCDE0WRITECOM0X38/设置LCD液晶16X2显示WRITECOM0X0C/开显示WRITECOM0X06/设置光标加1WRITECOM0X01/清屏DELAY5TMOD0X01/设定T0定时器为工作方式1TH06553650000/256/装T0定时器初值TL06553650000256EA1/开总中断ET01TR01MIAO12FEN12SHI1217/主函数/VOIDMAININITWHILE1WENDUDISPLAYWRITESFM0,SHIWRITESFM3,FENWRITESFM6,MIAOWRITECOM0X800X402WRITEDATEWRITECOM0X800X405WRITEDATE/中断函数/VOIDTIMER0INTERRUPT1TH06553650000/256TL06553650000256COUNTIFCOUNT20COUNT0MIAOIFMIAO60MIAO018FENIFFEN60SHIFEN0IFSHI24SHI046PCB电路板的制作本次设计的电路板采用PROTELPCB技术印制。图16PROTEL电路原理图19图17PROTEL电路PCB图5程序仿真及产品调试程序仿真采用PROTUER软件PROTEUS软件是英国LABCENTERELECTRONICS公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。PROTEUS是世界上著名的EDA工具仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。设置温度上限为25度,温度下限为15度。如图18所示。此时温度为270度,超出上限温度,液晶屏显示“WEATHERHOT”的界面。20图18如图19所示。此时温度为130度,低于下限温度,液晶屏显示“WEATHERCOLD”的界面。图19如图20所示。此时温度为160度,在上限温度和下限温度之间,液晶屏显示“HAPPYEVERYDAY”的界面。图20如图21所示,为整体电路图的仿真。图2121产品的调试包括PCB板的检查和程序的调试。PCB板的检查用万用表检查各焊点和导线的导通情况良好图22实物PCB板程序的调试可以看到产品功能正常图23产品功能显示图226总结与讨论此次课程设计中,难点在于DS18B20的使用,即对它的时序控制、初始化以及字节读写方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能家居合同欺诈案例分析与构成要件探究
- 2025湖北公务员面试题及答案
- 吊顶施工与室内防虫防鼠合同
- 汽车租赁公司股东权益与智能交通合作协议范本
- 智能金融创新-洞察及研究
- 生成对抗网络稳定性与收敛性的联合优化研究-洞察及研究
- 航天科技研发个人连带责任保证担保合同
- 文艺复兴复调发展-洞察及研究
- 专业安保考试题目及答案
- 专业素养面试题目及答案
- 2025年中国卡通公仔相机行业市场调查与发展研究报告
- 老公赌博夫妻协议书
- 小学科学苏教版五年级上册全册教案(2023秋新课标版)
- 项目经理转正述职报告
- 废水管理制度
- 汽车销售退货及换车流程
- 林业行政执法培训课件
- 代办离职委托书模板文档
- 洗浴中心转让合同
- 2024年度新能源汽车充电设施三方入股合作协议书3篇
- 人工智能与虚拟现实技术的融合应用
评论
0/150
提交评论