基于单片机的数字温度计课程设计报告.docx
《基于单片机的数字温度计课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计课程设计报告.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的数字温度计课程设计报告
一.课程设计目的………………………………………………………………………4
二.设计任务……………………………………………………………………………4
三.设计要求…………………………………………………………………………4
四.设计方案及比较(设计可行性分析)…………………………………4
五.系统设计整体思路…………………………………………………………6
六.系统原理框图及工作原理分析……………………………………………6
1.温度计设计系统流程图…………………………………………………6
2.数字温度计应用系统的硬件设计………………………………………8
(1).单片机小系统的大体组成及其选择………………………………8
(2).电源…………………………………………………………………8
(3).晶振操纵……………………………………………………………8
(4).I/O口&接口…………………………………………………………9
(5).要紧芯片及其功能…………………………………………………10
①AT89S52……………………………………………………………10
②DS18B20……………………………………………………………12
③1602液晶显示屏…………………………………………………18
七.系统软件程序的设计……………………………………………………19
1.软件流程框图……………………………………………………………19
语言程序………………………………………………………………21
八.系统仿真调试………………………………………………………………25
1.仿真器的介绍………………………………………………………………27
⑴.keil软件的开发运用…………………………………………………27
①.KeilC51单片机软件开发系统的整体结构………………………27
②.利用独立的Keil仿真器时,注意事项………………………28
⑵.proteus软件的开发运用.……………………………………………28
①.Protues软件介绍.………………………………………………28
②.proteus的工作进程.………………………………………………28
…………………………………………………………………28
⑴.仿真调试结果……………………………………………………………28
⑵.仿真结果分析……………………………………………………………29
九.PCB板制作和成品制作调试……………………………………………29
十.实验结果……………………………………………………………………30
十一.结论(设计分析)………………………………………………………30
十二.课程设计心得体会……………………………………………………30
一课程设计目的
1、增强学生理论联系实际的能力,提高学生的动手能力;
2、学会大体电子元器件的识别和检测;
3、学会应用EDA软件Proteus,Multisim进行电路的设计和仿真;
4、大体把握单片机的大体原理,并能将其应用于系统的设计:
5.学会运用Altium Designer Pcb进行pcb板制作;
6.通过实训,提高学生的学习爱好,激发自主学习能力,培育创新意识。
二设计任务
先焊制一个单片机最小系统,并以制作的单片机最小系统为核心,设计并制作一个数字温度计应用系统。
三设计要求
1采用DS18B20作为温度传感器进行温度检测;
2对搜集温度进行显示,采纳两路设计(显示温度分辨率℃);
3搜集温度数值应采纳数字滤波方法,保证显示数据稳固;
4显示数据,无数据位必需消隐。
四、设计方案及比较(设计可行性分析)
该系统要紧由温度测量和数据搜集两部份电路组成,实现的方式有很多种,下面将列出两种在日常生活中和工农业生产中常经常使用到的实现方案。
方案一
采纳热电偶温差电路测温,温度检测部份能够利用低温热偶,热电偶由两个焊接在一路的异金属导线所组成(热电偶的组成如图),热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。
通过将参考结点维持在已知温度并测量该电压,即可推断出检测结点的温度。
数据搜集部份那么利用带有A/D通道的单片机,在将随被测温度转变的电压或电流搜集过来,进行A/D转换后,就能够够用单片机进行数据的处置,在显示电路上,就能够够将被测温度显示出来。
热电偶的优势是工作温度范围超级宽,且体积小,可是它们也存在着输出电压小、容易蒙受来自导线环路的噪声阻碍和漂移较高的缺点,而且这种设计需要用到A/D转换电路,感温电路比较麻烦。
图热电偶电路图
系统要紧包括对A/D0809的数据搜集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处置。
另外还有复位电路,晶振电路,启动电路等。
故现场输入硬件有手动复位键、A/D转换芯片,处置芯片为51芯片,执行机构有4位数码管、报警器等。
方案二
采纳数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处置及操纵,省去传统的测温方式的很多外围电路。
且该芯片的物理化学性很稳固,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形误差小于1摄氏度。
DS18B20的最大特点之一采纳了单总线的数据传输,由数字温度计DS18B20和微操纵器AT89C51(52)组成的温度测量装置,它直接输出温度的数字信号,可直接与运算机连接。
如此,测温系统的结构就比较简单,体积也不大。
采纳51单片机操纵,软件编程的自由度大,可通过编程实现各类各样的算术算法和逻辑操纵,而且体积小,硬件实现简单,安装方便。
既能够单独对多DS18B20
操纵工作,还能够与PC机通信上传数据,另外AT89S51(52)在工业操纵上也有着普遍的应用,编程技术及外围功能电路的配合利用都很成熟。
该系统利用AT89C51(52)芯片操纵温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并能够依照需要设定上下限报警温度。
该系统扩展性超级强,它能够在设计中加入时钟芯片DS1302以获取时刻数据,在数据处置同时显示时刻,并能够利用AT24C16芯片作为存储器件,以此来对某些时刻点的温度数据进行存储,利用键盘来进行调时和温度查询,取得的数据能够通过MAX232芯片与运算机的RS232接口进行串口通信,方便的搜集和整理时刻温度数据。
系统框图如图
1602显示器
单片机芯片
AT89S52
晶振控制
第一路
温度检测电DS18B20
第二路
温度检测电DS18B20
从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,可是线性误差较大。
方案二的测温装置电路简单、精准度较高、实现方便、软件设计也比较简单,还能够进行各类功能的扩展,例如报警系统,时刻显示等,故本次设计采纳了方案二,并采纳两路设计。
五系统设计整体思路
设计方案及其整体设计框图
单片机芯片
AT89S52
1602显示器
晶振控制
第一路
温度检测电DS18B20
第二路
温度检测电路DS18B20
六系统原理框图及工作原理分析
系统设计原理:
本次课程设计是基于单片机的数字温度计设计,在开始课程设计的时候我们要理解并掌握对单片机的开发,学会使用KEIL及Proteus,Multisim等仿真软件。
根据设计任务要求选择好器件,编写好程序运行成功之后进行软件联调,验证系统是否正确。
通过筛选,我们组选用单片机AT89S52作为主控制系统;用1602液晶显示模块芯片作为温度数据显示装置;智能温度传感器采用DS18B20器件作为测温电路主要组成部分。
开始
进入缓冲区初始化
复位DS18B20发跳过ROM命令
温度转换命令
延时
复位DS18B20,跳过ROM命令
读存储器命令
读温度命令
更新数据缓冲区
将温度转换为BCD码
二、数字温度计应用系统的硬件设计
(1)、单片机小系统的大体组成及其选择
单片机选型参考
•①AT89S51、AT89S52:
具有ISP下载功能,能够利用USBASP程序下载线或并口下载
•②STC89C51、STC89C52:
利用串口线+MAX232烧写程序。
•③AT89C51、AT89C52:
能够在最小系统板上利用,但需要另外用编程器烧写程序
本次课程设计选用AT89S52型号单片机进行操作。
AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S52具有如下特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
AT89S52引脚图 此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
AT89S52引脚图
另外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM按时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保留RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
(2)电源
•①电源适配器供电:
DC座(三个管脚)
•②usb供电:
(3)晶振操纵
晶振控制
电路结构原理如右图所示
(4)I/O口&接口
•①所有I/O用排针引出
•②串行通信口:
•③ISP:
单片机共有4个8位双向并行I/O通道口,每位均有自己的锁存器、输出驱动器和输入缓冲器组成。
这种结构,在数据输出时可以锁存,及输出新的数据以前,通道口上的原始数据不变。
但对输入信息是不锁存的,所以从外部输入的信息必须保持到取数指令执行完为止。
(5)要紧芯片及其功能
①AT89S52(也能够用AT89S51)
引脚说明
AT89S52是一种低功耗、高性能CMOS8位微操纵器,具有8K在系统可编程
AT89S52引脚图DIP封装
Flash 。
利用Atmel公司高密度非 技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash许诺在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式操纵应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,,2个数据指针,三个16位按时器/,一个6向量2级中断结构,全双工,片内晶振及。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种可选择节电模式。
空闲模式下,CPU停止工作,许诺RAM、/、串口、中断继续工作。
掉电爱惜方式下,RAM内容被保留,振荡器被冻结, 一切工作停止,直到下一个中断或硬件复位为止。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,用作高阻抗输入。
当访问外部和数据时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash时,P0口也用来接收指令;在校验时,输出指令字节。
校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,现在能够作为输入口利用。
作为输入利历时,被外部拉低的由于内部电阻的缘故,将输出电流(IIL)。
另外,和别离作/2的外部计数输入(T2)和/计数器2的触发输入(T2EX)。
在flash和校验时,P1口接收低8位地址字节。
号第二功能:
T2(/T2的外部计数输入),时钟输出
T2EX(按时器/T2的捕捉/重载触发信号和方向操纵)
MOSI(在用)
MISO(用)
SCK(用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动
AT89S52引脚图PLCC封装
4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,现在能够作为输入口利用。
作为输入利历时,被外部拉低的引脚由于内部电阻的缘故,将输出电流(IIL)。
在访问外部或用16位地址读取(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口利用很强的内部上拉发送1。
在利用8位地址(如MOVX@RI)访问存储器时,P2口输出P2的内容。
在flash编程和校验时,P2口也接收高8位地址和一些。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,现在能够作为输入口利用。
作为输入利历时,被外部拉低的引脚由于内部电阻的缘故,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)利用,如下表所示。
在flash编程和校验时,P3口也接收一些。
端口 第二功能:
RXD(串行输入口)
TXD(串行输出口)
INTO(外中断0)
INT1(外中断1)
TO(按时/0)
T1(按时/1)
WR(写选通)
RD(读选通)
另外,P3口还接收一些用于和校验的。
RST:
复位输入。
当振荡器工作时,RST引脚显现两个以上高电平将是复位。
ALE/PROG:
当访问外部或数据时,ALE(许诺)输出脉冲用于锁存地址的低8位字节。
一样情形下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于按时目的。
要注意的是:
每当访问存储器时将跳过一个ALE脉冲。
对FLASH期间,该还用于输入编程脉冲(PROG)。
如有必要,可通过对(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
另外,该会被微弱拉高,执行外部时,应设置ALE禁止位无效。
PSEN:
贮存许诺(PSEN)输出是外部的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每一个两次PSEN有效,即输出两个脉冲,在此期间,当访问存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问许诺,欲使CPU仅访问外部(地址为0000H-FFFFH),EA端必需维持低电平(接地)。
需注意的是:
若是加密位LB1被,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU那么执行内部程序存储器的指令。
FLASH时,该加上+12V的编程许诺电源Vpp,固然这必需是该器件是利用12V编程电压Vpp。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
②DS18B20
②DS18B20
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相较,它能直接读出被测温度,而且可依如实际要求通过简单的编程实现9-12位的数字值读数方式。
TO-92封装的DS18B20的引脚排列见以下图,其引脚功能描述见表3-3。
(底视图)
图3-3DS18B20引脚图
表3-3 DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时此引脚必须接地。
DS18B20的性能特点如下:
独特的单线接口仅需要一个端口引脚进行通信;
多个DS18B20能够并联在惟一的三线上,实现多点组网功能;
不必外部器件;可通过数据线供电,电压范围为~V;
零待机功耗;温度以9或12位数字;用户可概念报警设置;
报警搜索命令识别并标志超进程序限定温度(温度报警条件)的器件;
负电压特性,电源极性接反时,温度计可不能因发烧而烧毁,但不能正常工作;
DS18B20采纳3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3-4所示。
I/O
C
64
位
ROM
和
单
线
接
口
高速缓存
存储器与控制逻辑
温度传感器
高温触发器TH
低温触发器TL
配置寄存器
8位CRC发生器
Vdd
图3-4DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每一个器件的惟一的序号,共有48位,最后8位是前面56位的CRC查验码,这也是多个DS18B20能够采纳一线进行通信的缘故。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图3-4所示。
头2个字节包括测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄放器,它的内容用于确信温度值的数字转换分辨率。
DS18B20工作时寄放器中的分辨率转换为相应精度的温度数值。
该字节列位的概念如图3-5所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式仍是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率.
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图3-5DS18B20字节概念
DS18B20温度转换的时刻比较长,而且分辨率越高,所需要的温度数据转换时刻越长。
因此,在实际应用中要将分辨率和转换时刻衡量考虑。
高速暂存RAM的第六、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来查验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第一、2字节。
单片性能够通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,能够直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表2是一部份温度值对应的二进制温度数据。
表3-4DS18B20温度转换时刻表
R1
R0
分辨率/位
温度最大转换时间/ms
0
0
9
0
1
10
1
0
11
375
1
1
12
750
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
假设T>TH或T<TL,那么将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余查验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判定主机收到的ROM数据是不是正确。
DS18B20的测温原理是这如此的,器件中低温度系数晶振的振荡频率受温度的阻碍很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度转变其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时刻由高温度系数振荡器来决定,每次测量前,第一将-55℃所对应的一个基数别离置入减法计数器一、温度寄放器中,计数器1和温度寄放器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄放器的值将加1,减法计数器1的预置将从头被装入,减法计数器1从头开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄放器的累加,现在温度寄放器中的数值确实是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述进程,直到温度寄放器值大致被测温度值。
表3-5 一部份温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+
0000000110010000
0191H
+
0000000010100001
00A2H
+
0000000000000010
0008H
0
0000000000001000
0000H
1111111111110000
FFF8H
1111111101011110
FF5EH
1111111001101111
FE6FH
-55
1111110010010000
FC90H
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各类操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处置数据。
DS18B20温度传感器与单片机的接口电路
DS18B20能够采纳两种方式供电,一种是采纳电源供电方式,现在DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必需有强的上拉,上拉开启时刻最大为10us。
采纳寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必需是三态的。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证列位数据传输的正确性和完整性。
该协议概念了几种信号的时序:
初始化时序、读时序、写