单片机数字温度计的设计.docx
- 文档编号:9625704
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:30
- 大小:180.62KB
单片机数字温度计的设计.docx
《单片机数字温度计的设计.docx》由会员分享,可在线阅读,更多相关《单片机数字温度计的设计.docx(30页珍藏版)》请在冰豆网上搜索。
单片机数字温度计的设计
毕业设计题目:
单片机数字温度计的设计
毕业设计主要内容和要求:
主要内容:
要求用所学知识,查阅资料,掌握数字温度计的设计原理,基于AT89S52单片机和温度传感器DS18B20设计一个性能稳定的温度计。
毕业设计要完成相应的电路设计图,并进行调试,达到设计要求。
设计要求:
1、提供设计方案和元器件的参数。
2、设计原理和依据要系统正确。
3、设计的温度计能进行普通的温度测量。
系主任签字:
指导教师签字:
本论文介绍了本论文介绍了AT89S52单片机和温度传感器DS18B20的工作原理和功能特性,利用AT89S52单片机和温度传感器DS18B20,设计了一个数字温度计。
该生通过毕业设计掌握了相关的理论知识,锻炼了实践操作技能,完成了相应的设计任务,毕业设计的内容正确,设计的数字温度计具有一定的理论和实际参考价值。
摘要
温度是一种最基本的环境参数,人民的生活环境与温度息息相关,因此研究温度的测量方法和装置具有重要意义。
温度测量在工业、农业、国防等行业有着广泛的应用,而且随着科学技术的发展对温度测量的应用范围愈来愈广。
利用单片机技术的温度测控系统以其体积小,可靠性高而被广泛采用。
由于AT89S52单片机可以直接应用在对温度测量的各种测温器件。
本文就介绍了一种基于单片机的温度测量的方法。
用此方法所设计的数字温度计,结构简单,体积较小,可靠性高,操作方便,测量精度高,只需接通电源便可进行及时有效的温度测量,在各行各业均具有较广泛的用途,发展前景良好。
关键词:
单片机、DS18B20、基于单片机的数字温度计采用温度传感器DS18B20作为测温元件用来满足温度测量、采用的显示模块为SMC1602A液晶显示器。
目录
1方案论证…………………………………………………………………………1
1.1系统功能定义……………………………………………………………1
1.2总体方案……………………………………………………………………1
2系统硬件电路………………………………………………………………2
2.1系统硬件框图………………………………………………………………2
2.2测温模块……………………………………………………………………2
2.2.1DS18B20的主要特征…………………………………………………2
2.2.2DS18B20的工作原理…………………………………………………3
2.3主控模块………………………………………………………………3
2.3.1主控模块功能分………………………………………………………3
2.3.2AT89S52芯片的功能特性………………………………………………4
2.4显示模块…………………………………………………………………5
2.5报警模块…………………………………………………………………6
2.6电路原理图的绘制和电路的焊接…………………………………………7
2.6.1PROTEL简介……………………………………………………………7
2.6.2电路的焊接……………………………………………………………7
3系统软件设计……………………………………………………………………8
3.1主控程序设计……………………………………………………………….8
3.2温度信息的采集……………………………………………………………8
3.3温度的显示控制………………………………………………………….11
4调试与总结……………………………………………………………………14
感言…………………………………………………………………………….15
致谢…………………………………………………………………………….16
参考文献……………………………………………………………………….17
附录1系统主程序…………………………………………………………18
1方案论证
1.1系统功能定义
根据设计要求,可以先大致勾勒出要完成设计,需要几个模块具有如下图所示的的能,
图1.1功能模块框图
1.2总体方案
通过对系统功能的定义,可以将基于单片机的数字温度计采用温度传感器DS18B20作为测温元件用来满足温度测量,并将温度信号经由其本身所具有的A/D转换功能,转换成数字信号经单片机处理显示于液晶显示器,从而完成温度的测量和显示。
整个系统控制将由AT89S52单片机芯片为核心构成。
选用DS18B20作为测温元件,SMC1602A作为显示器件,各个检测信号、显示信号可由单片机的I/O口进行。
设计任务:
用单片机设计一个测温范围在—55~125℃的数字温度计。
设计要求:
完成该系统的软硬件设计,学习掌握单片机采集温度的设计方法提高学习新知识、新技能的能力,培养独立设计的能力。
2系统硬件电路设计
2.1系统硬件框图
根据系统功能要求,可以先大致勾勒出完成任务所需的系统硬件框图如下:
图2.1硬件结构框图
主控模块采用性价比较高的单片机芯片,在其内部将预设好的程序储存,可通过程序的运行控制测温模块进行测温,测温模块主要是由DS18B20构成,将其与所测对象进行接触即可获取被测对象的温度数据,报警模块只有当温度超出预定值时才会工作,而所测得的温度将通过显示模块的液晶显示器以数字形式显示。
2.2测温模块
本设计的测温元件采用的是DS18B20测温元件,DS18B20是由DALLAS(达拉斯)公司生产的一种温度传感器。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20很受欢迎。
这是世界上第一片支持“一线总线”接口的温度传感器。
DS18B20数字温度计提供9位(二进制)温度读数,指示器件的温度。
信息经过单线接口送入DS18B20或从DS18B20送出,因此从单片机到DS18B20仅需一条线连接即可。
它可在1秒钟(典型值)内把温度变换成数字。
2.2.1DS18B20的主要特征有以下几点:
●全数字温度转换及输出;
●先进的单总线数据通信;
●最高12位分辨率,精度可达土0.5℃;
●12位分辨率时的最大工作周期为750毫秒;
●可选择寄生工作方式;
●检测温度范围为–55℃——+125℃;
●内置EEPROM,限温报警功能;
●64位光刻ROM,内置产品序列号,方便多机挂接;
●多样封装形式,适应不同硬件系统。
DS18B20芯片其封装结构如下:
图2.2DS18B20芯片封装结构图
由其引脚可看出,其3个引脚:
GND为电压地直接接地;DQ为单数据总线用来与单片机相连接,本系统中DQ与单片机P2.2接口连接,仅此一个连接就能保证DS18B20与单片机之间的数据交换;VDD引脚接电源电压[12]。
2.2.2DS18B20的工作原理:
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
一个工作周期可分为两个部分,即温度检测和数据处理。
18B20共有三种形态的存储器资源,分别是:
ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM,RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20的硬件简单结果就会导致软件的巨大开消。
2.3主控模块
2.3.1主控模块功能分析
在本系统中,主控模块居于非常重要的地位。
它是整个系统的中枢,系统运行所需的每个操作指令都要由其发出。
它一方面控制着测温模块进行温度信息的采集,另一方面也控制着显示模块的工作。
最重要的是,由测温模块所采集到的温度信息必须经由主控模块的处理才能在显示模块上显示,从而使整个系统进行正常的运转和工作。
针对以上分析本系统主控模块中的单片机芯片采用了AT89S52芯片,此芯片功能强大,能够完全满足系统运行的需求。
2.3.2AT89S52芯片的功能特性
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
其主要性能如下:
●与MCS-51单片机产品兼容
●8K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态操作:
0Hz~33Hz
●三级加密程序存储器
●32个可编程I/O口线
●三个16位定时器/计数器
●八个中断源
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●看门狗定时器
●双数据指针
●掉电标识符
AT89S52引脚结构
图2.3AT89S52引脚结构图[4]
在本系统中,将DS18B20的单数据总线与单片机的P2.2端口相连,用一根数据线就完成了测温模块与单片机芯片的连接。
2.4显示模块
本系统最突出的特点就是能方便直观地对所测温度进行读取,因此显示模块的选取极为重要。
在本系统中所采用的显示模块为SMC1602A液晶显示器。
液晶显示器以其直观的显示模式,简单的软件设计从而得到了很多人的认可,逐渐占据主流地位,因此选用液晶显示器也更能体现当下较为先进的技术。
其主要技术参数:
表2.1SMC1602A技术参数表
SMC1602A是LCD1602中的一种,它一共有16个引脚,各引脚接口信号说明如下:
表2.2SMC1602A引脚说明表
SMC1602A的7—14引脚经过一个上拉排阻与单片机的P0口相连,第3引脚上届一个滑动变阻器,用来调整液晶显示器的偏压信号。
其基本操作时序共有4个状态分别是:
1读状态:
输入:
RS=L,RW=H,E=H输出:
D0~D7=状态字
2写指令:
输入:
RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
无
3读数据:
输入:
RS=H,RW=H,E=H输出:
D0~D7=数据
4写数据:
输入:
RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
状态字说明:
表2.3SMC1602A状态字说明表
STA7
D7
STA6
D6
STA5
D5
STA4
D4
STA3
D3
STA2
D2
STA1
D1
STA0
D0
表2.4SMC1602A状态字功能表
STD0-6
当前数据地址指针的数值
STA7
读写操作使能
1:
禁止0:
允许
对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0.
控制器内部带有80×8位(80字节)的RAM缓冲区,对应关系如图所示:
图2.5SMC1602A内部RAM缓冲区对应关系图[3]
2.5报警模块
本系统中报警模块采用的是蜂鸣器报警,蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
蜂鸣器的结构原理
1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
有的压电式蜂鸣器外壳上还装有发光二极管。
多谐振荡器由晶体管或集成电路构成。
当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。
在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
2.6电路原理图的绘制和电路的焊接
在硬件的设计前期,根据框图对电路中可能出现的电路,进行了模拟实验,并根据实验结果对后期的硬件设计进行了合理化的修改完善。
在第一章中已分析了系统并绘制了框图,并根据框图分别设计了各部分电路。
由于温度传感器DS18B20集成度较高,所以在硬件电路设计时不需要太多其他元件即可实现预期功能。
因此在PROTEL上对原理图进行了绘制,从而得出了最终的完整电路原理图[附录一]。
2.6.1PROTEL简介
PROTEL是PORTEL公司在80年代末推出的EDA软件,在电子行业的CAD软件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD,PSPICE,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB的100%布通率。
Protel99SE采用数据库的管理方式。
该软件沿袭了Protel以前版本方便易学的特点,内部界面与Protel99大体相同,新增加了一些功能模块,功能更加强大。
新增的层堆栈管理功能,可以设计32个信号层,16个地电层,16个机械层。
新增的3D功能在加工印制版之前可以看到板的三维效果。
其具有的打印功能,可以轻松修改打印设置控制打印结果。
Protel99SE容易使用的特性还体现在其帮助功能,按下右上角的小问号,然后输入你所要的信息,可以很快地看到特性的功能,然后用到设计中,按下状态栏末端的按钮,使用帮助顾问。
2.6.2电路的焊接
当通过PROTEL绘制出完整的电路原理图后,就可以按照绘制好的原理图进行电路的焊接,焊接时要注意虚焊和短路情况出现。
焊接是要先焊单片机的主电路,以便于对各部分电路的测试。
当焊完一部分子电路后,要先输入子程序进行检测,看是否有输入或输出。
焊完后,就可以进行电路总体性能测试了。
在测试之前,一定要先对电路检测,看是否有短路情况出现,以免芯片损坏。
电源输入电压也是关键因素,在供电之前先量量。
3系统软件设计
3.1主控程序设计
通过对系统工作原理的了解,我们可以大致知道系统软件运行工作的流程图如下:
图3.1系统运行流程图
当接通电源开始工作后,单片机中的程序开始运行,将对DS18B20进行初始化,以便单片机芯片和DS18B20达成通信协议。
完成初始化后,由于本系统只有一个测温元件,单片机会向其发出跳过ROM指令,接下来便可向其发送操作指令,设定温度上下限,启动测温程序。
测温过程完成后,发出温度转换指令,从而便可将温度转化成数字模式进行显示读取。
3.2温度信息的采集
通过DS18B20单线总线的所有执行处理都从一个初始化序列开始。
初始化序列包括一个由总线控制器发出的复位脉冲和随后由从机发出的存在脉冲:
1、复位:
首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。
当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。
2、存在脉冲:
在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。
至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。
3、控制器发送ROM指令:
双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。
各自功能如下:
ReadROM(读ROM)[33H](方括号中的为16进制的命令字)
这个命令允许总线控制器读到DS18B20的64位ROM。
只有当总线上只存在一个DS18B20的时候才可以使用此指令。
MatchROM(指定匹配芯片)[55H]
这个指令后面紧跟着由控制器发出了64位序列号,当总线上有多只DS18B20时,只有与控制发出的序列号相同的芯片才能做出反应,其它芯片将等待下一次复位。
这条指令适合单芯片和多芯片挂接。
SkipROM(跳跃ROM指令)[CCH]
这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。
如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。
SearchROM(搜索芯片)[F0H]
在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的64位ROM。
AlarmSearch(报警芯片搜索)[ECH]
在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH或小于TL报警条件的芯片做出反应。
只要芯片不掉电,报警状态将被保持,直到再一次测得温度值达不到报警条件为止。
ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。
其主要目的是为了分辨一条总线上挂接的多个器件并作处理。
诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:
此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。
4、控制器发送存储器操作指令:
在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。
操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。
WriteScratchpad(向RAM中写数据)[4EH]:
这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM之TH)和地址3(报警RAM之TL)。
写入过程中可以用复位信号中止写入。
ReadScratchpad(从RAM中读数据)[BEH]:
此指令将从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。
芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。
CopyScratchpad(将RAM数据复制到EEPROM中)[48H]:
此指令将RAM中的数据存入EEPROM中,以使数据掉电不丢失。
此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,来维持芯片工作。
ConvertT(温度转换)[44H]:
收到此指令后芯片将进行一次温度转换,将转换的温度值放入RAM的第1、2地址。
此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持500MS,来维持芯片工作。
RecallEEPROM(将EEPROM中的报警值复制到RAM)[B8H]:
此指令将EEPROM中的报警值复制到RAM中的第3、4个字节里。
由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
另外,此指令将在芯片上电复位时将被自动执行。
这样RAM中的两个报警字节位将始终为EEPROM中数据的镜像。
ReadPowerSupply(工作方式切换)[B4H]:
此指令发出后发出读时间隙,芯片会返回它的电源状态字,“0”为寄生电源状态,“1”为外部电源状态。
存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。
5、执行或数据读写:
一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。
DS18B20需要严格的协议以确保数据的完整性。
协议包括几种单线信号类型:
复位脉冲、存在脉冲、写0、写1、读0和读1。
所有这些信号,除存在脉冲外,都是由总线控制器发出的。
和DS18B20间的任何通讯都需要以初始化序列开始。
一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据(适当的ROM命令和存储器操作命令)。
DS18B20的复位时序
图3.2DS18B20的复位时序图
DS18B20的读时序
对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时隙是从主机把单总线拉低之后,在15us之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
图3.3DS18B20的读时序图
DS18B20的写时序:
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
图3.4DS18B20的写时序图[13]
3.3温度的显示控制
当所测温度从DS18B20输送到单片机上之后,下一步就是要将其在液晶显示器上显示出来。
首先应该对液晶显示器SMC1602A进行初始化设置,设置指令如下:
表3.1SMC1602A的初始化设置指令表
指令码
功能
0
0
1
1
1
0
0
0
设置16×2显示,8位数据接口
0
0
0
0
1
D
C
B
D=1开显示;D=0关显示
C=1显示光标;C=0不显示光标
B=1光标闪烁;B=0光标不显示
0
0
0
0
0
1
N
S
N=1当读或写一个字符后地址指针加一,且
光标加一
N=0当读或写一个字符后地址指针减一,且
光标减一
S=1当写一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数字 温度计 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)