单片机课程设计-数字温度计设计.doc_第1页
单片机课程设计-数字温度计设计.doc_第2页
单片机课程设计-数字温度计设计.doc_第3页
单片机课程设计-数字温度计设计.doc_第4页
单片机课程设计-数字温度计设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书题 目: 数字温度计设计 学生姓名: * 学 号: * 学 院: 船舶与机电工程学院 班 级: A14电气1班 指导教师: 胡 骅 浙江海洋大学教务处年月日摘要单片机是单片微型计算机的简称,其具有体积小、可靠性高、功能强、灵活方便等优点,故可以广泛应用于各种领域。其中数字温度计就是一个典型的例子。本次设计的数字温度计与传统的温度计相比,具有读数方便,测温范围广近-55120,测温准确精度误差在0.5以内等特点。其输出温度采用数字显示,主要用于对测温要求较高的场所,该设计主要使用的元件有AT89C52单片机,DS18B20智能温度传感器和LCD1602液晶显示器。温度传感器元件DS18B20是美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器,其测温范围广,分辨率最大可达0.0625。此外DS18B20可以直接读出被测温度值,而且采用单线与单片机通信,减少了外部的硬件电路,具有高精度和易使用的特点。关键词:数字、高精度、智能目录*封面*浙江海洋大学课程设计成绩考核表*浙江海洋大学课程设计任务书*摘要*目录*基于单片机的数字温度计设计11、系统功能要求12、设计方案分析13、系统硬件的设计原理分析13.1、单片机主控制器的设计13.2、测温单元的设计23.3、显示电路的设计43.4、设定和报警电路的设计53.5、总电路图64、 系统软件的设计64.1、主程序的设计64.2、读取温度子程序的设计64.3、温度转换命令子程序的设计64.4、计算温度子程序的设计74.5、显示数据子程序的设计85、系统调试方法85.1、硬件调试85.2、软件调试85.3、综合调试86、指标测试96.1、测试仪器96.2、指标测试96.2.1、测温范围及测温精度96.2.2、LCD实时显示温度及自主设定报警温度97、结论108、参考文献10基于单片机的数字温度计设计1、 系统功能要求测温范围基本为-55125,精度误差在0.5以内,液晶LCD实时温度显示,可以设定报警温度。2、 设计方案分析根据系统功能要求,数字温度计由主控制器、测温单元、显示电路、设定和报警电路共四个模块组成。总体系统结构框图如图1所示:图1总体系统结构框图其中主控制器采用AT89C52单片机,AT89C52单片机是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。51单片机是基础入门的一个单片机,还是应用最广泛的一种。同时也是我们曾经接触过的,也较为熟悉的控制器。数字温度计设计中必不可少的便是温度传感器,本次设计采用美国DALLAS半导体公司改进推出的智能温度传感器DS18B20作为检测元件,主要由于其广泛的测量范围以及高分辨率。此外DS18B20可以直接读出被测温度值(不用校准),而且采用单线与单片机通信,减少了外部的硬件电路,具有高精度和易使用的特点。温度显示LCD液晶采用LCD1602(LM016L),尽管要求用液晶LCD温度显示,然而其显示质量高,数字式显示,和单片机系统的接口更加简单可靠,操作更加方便,体积小、重量轻,功耗低等特点也使其出类拔萃。由于本次温度显示内容少,采用16*2显示已十分足够。最后设定和报警电路,利用蜂鸣器和指示灯以及三个设定按键配合程序可以很好地达到设定报警温度以及指定温度报警功能。3、 系统硬件的设计原理分析3.1、单片机主控制器的设计AT89C52单片机引脚配置图,如图2所示:图2 AT89C52引脚配置图本次设计AT89C52为核心控制器。EA端接高电平,使单片机从片内RAM读取程序指令。P1.3、P1.4、P1.5、P1.6、P1.7端与设定和报警电路相连,P2端与LCD8为输入端直接相连进行数据指令传输,P3.7端口与DS18B20数据命令端相连进行数据传输指令控制。3.2、测温单元的设计测温单元电路图,如图3:图3 测温单元该单元核心器件为DS18B20温度传感器,其DQ端与单片机相连进行数据指令交换传输,VCC与GND分别为电源端及接地端。DS18B20数字温度计是美国DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20产品的特点:1、只要求一个端口即可实现通信。2、在DS18B20中的每个器件上都有独一无二的序列号。3、实际应用中不需要外部任何元器件即可实现测温。4、测量温度范围在55到125之间。5、数字温度计的分辨率用户可以从9位到12位选择。6、内部有温度上、下限告警设置。DS18B20的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9,10,11或12位,分别以0.5,0.25,0.125和0.0625增量递增。在上电状态下默认的精度为12位。DS18B20启动后保持低功耗等待状态;当需要执行温度测量和AD转换时,总线控制器必须发出44h命令(Convert T温度转换命令)。在那之后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。当DS18B20由外部电源供电时,总线控制器在温度转换指令之后发起“读时序”,DS18B20正在温度转换中返回0,转换结束返回1。如果DS18B20由寄生电源(当总线处于高电平状态,DQ与上拉电阻连接通过单总线对器件供电。同时处于高电平状态的总线信号对内部电容充电,在总线处于低电平状态时,该电容提供能量给器件。这种提供能量的形式被称为“寄生电源”)供电,除非在进入温度转换时总线被一个强上拉拉高,否则将不会由返回值。表1 DS18B20温度与表示值对应表温度/二进制表示十六进制表示1250000 0111 1101 000007D0H850000 0101 010100000550H25.06250000 0001 1001 00010191H10.1250000 0000 1010 001000A2H0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H从DS18B20读取出的二进制值必须先转换成十进制BCD码,才能用于字符的显示。在采用12位转换精度时,温度寄存器中的值是以0.0625为步进的,即温度值为温度寄存器中的二进制值乘以0.0625,就是实际的十进制温度值。由表中可得一个十进制温度值和二进制值之间有很明显的关系如图4所示,以及其可精确至0.1。图4 十进制温度值和二进制关系3.3、显示电路的设计显示电路如图5所示:图5 显示电路显示电路主要元件为LCD1602(LM016L),LCD1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,本设计利用16*2模块。LCD显示的基本原理:点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2所示:表2 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极LCD1602液晶模块内部的控制器共有11条控制指令,如表3所示:表3 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容LCD1602读写时序表,如表4所示:表4 读写时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无根据以上表格可以按照一定的方法进行温度读取数据传输交换等指令程序编写操作。3.4、设定和报警电路的设计设定和报警电路如图6所示:图6 设定和报警电路该电路由两部分组成,一部分为按键,一部分为蜂鸣器和指示灯。其中按键部分主要用于配合程序进行报警温度的自主设定,左侧按键起切换设定温度界面及确认设定值作用,中间按键起上调设定报警温度,而右侧按键起下条设定报警温度作用。蜂鸣器和指示灯通过程序中实测温度值与设定报警温度值的比较来出发其报警(发光及发声),一旦实测温度值超过设定报警温度值,蜂鸣器及指示灯一起报警作用。3.5、总电路图如图7所示:图7 总电路图4、 系统软件的设计4.1、主程序的设计系统主程序主要实现温度的实时显示,读出并处理DS18B20的测量温度值,以及实时监测报警温度设定按键是否按下需进行报警温度重新设定。温度测量约每1s进行一次,程序流程图如图8所示:4.2、读取温度子程序的设计读出温度子程序的主要功能是读出DS18B20中RAM中的9个字节,其中获取的前2个字节数据存有实时温度数据,进行变换及存放。流程图如图9所示:4.3、温度转换命令子程序的设计温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时,转换时间约750ms,在本程序设计中采用约1s显示程序延时法等待转换的完成。流程图如图10所示: 图8 主程序流程图 图9 读取温度子程序流程图 图10 温度转换命令子程序流程图 图11 计算温度子程序流程图4.4、计算温度子程序的设计计算温度子程序将DS18B20的RAM中的读取值进行BCD码的转换运算,并进行温度值正负的判定。流程图如图11所示:4.5、显示数据子程序的设计显示数据子程序将计算温度得出温度值,除符号外各位的数字分别存入字符型变量中,通过写指令写数据命令,完成温度数值的显示。流程图如图12所示:图12 显示数据子程序流程图5、 系统调试方法5.1、硬件调试本次设计无实物设计,硬件调试以Proteus仿真图为主,AT89C52、LCD1602(LM016L)、DS18B20以及三极管蜂鸣器LED灯等接线调试正常,同时简化接线运用了总线和网络标号,使仿真图更加直观清晰。5.2、软件调试本次设计软件采用C语言编程基于AT89C52单片机,根据以上系统软件设计分析,完成程序后,进行编译调试。排查出问题主要有未定义字符,重复定义字符以及多余语句等编程过程由于疏忽导致的语法错误,进过删改,编译成功并生成可写入单片机内的.HEX文件。此外有关程序逻辑错误需进行综合调试。5.3、综合调试将程序.HEX文件加载入AT89C52单片机中进行Proteus仿真,实时温度显示已成功实现,调节DS1820的模拟实时温度调节按钮,实时温度超过报警温度能报警响应已成功实现。按下设定报警温度按键,发现并无反应,多次按下时,发现设定温度显示一闪而过。根据以上调试可得出,是程序方面的缺陷,由于未考虑按键按下延迟抖动等。通过在程序中判断按键按下语句中添加延迟消抖语句(思路为判断按键按下后,延迟10ms左右,再次判断是否按键按下,才执行之后的语句,最后需检测到按键释放才结束),顺利解决这个问题。6、 指标测试6.1、测试仪器计算机6.2、指标测试6.2.1测温范围及测温精度利用Proteus仿真,通过DS18B20模拟实时温度调节器,可以测试出该数字温度计的测温范围为-55128,满足-55125指标。由于模拟调节器只能以整数温度调节,无法给出更精确模拟温度,但根据LCD显示屏可以大致得出测温精度为0.1,满足0.5指标。测试如图13所示:6.2.2LCD实时显示温度及自主设定报警温度根据以上测试,可以很好得出该数字温度计满足实时显示温度指标。按下左侧设定报警温度按键,LCD显示屏能够切换至设定报警温度“set temperature”,并且显示当前设定的报警温度。按下中间的上调按键,设定报警温度值+1;按下右侧的下调按键,设定报警温度值-1,说明已具备可自主调节报警温度功能,如图14所示。再次按下左侧设定报警温度按键,LCD显示屏切换回实时温度。可得该数字温度计满足自主设定报警温度指标。最后通过调节DS18B20模拟实时温度调节器,将实时温度调至报警温度以上,发现报警电路蜂鸣器和指示灯发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论