温度检测实训报告Word文档下载推荐.docx
- 文档编号:18681507
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:18
- 大小:356.03KB
温度检测实训报告Word文档下载推荐.docx
《温度检测实训报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《温度检测实训报告Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
(1天半)
5.总结与答辩。
(半天)
五、完成后应上交的材料
1.课程设计说明书
2.源程序清单(电子版)
六、总评成绩
指导教师签名日期年月日
系主任审核日期年月日
1.设计的主要内容和任务…………………………………5
2.实现原理…………………………………………………5
2.1系统原理图……………………………………………5
2.2整体电路原理…………………………………………6
2.3各电路部分原理………………………………………6
2.3.1晶振电路…………………………………………6
2.3.2温度传感器设计…………………………………7
2.3.3液晶显示电路……………………………………10
2.4设计方案………………………………………………12
2.4.1设计步骤…………………………………………13
3.软件系统设计…………………………………………………13
3.1主程序…………………………………………………14
3.2系统各子程序…………………………………………15
3.2.1读取温度子程序…………………………………15
3.2.2计算温度子程序…………………………………16
3.2.3显示数据刷新程序………………………………17
3.2.4温度数据的计算处理方式………………………17
4.电路调试………………………………………………………18
4.1调试设备………………………………………………18
4.2调试步骤………………………………………………18
4.2.1硬件诊断…………………………………………18
4.2.2单片机程序调试…………………………………19
4.2.3电路仿真…………………………………………20
5.下位机…………………………………………………………21
5.1VB编译程序……………………………………………22
5.2VB显示界面……………………………………………23
6.结论及存在问题………………………………………………24
1设计的主要内容和任务
我们设计的温度显示系统是一个可以显示时间及温度的系统,然后把采集的数据发到PC同步显示。
该系统是由中央控制器、温度检测器、时钟、显示器及上位机部分组成。
控制器采用单片机STC89C52,温度检测部分采用DS18B20温度传感器,用LCD液晶LCD1602作为显示器。
单片机通过内置定时器计算时间数据,对数据处理后显示时间;
温度传感器采用DS18B20采集温度信号送给单片机处理,单片机再把时间数据和温度数据送液晶显示器LCD1602显示,再把采集到的温度数据通过串口通信发到用VB编写的界面显示。
2实现原理
2.1系统原理图
系统由单片机主控模块、时钟模块、测温模块、存储模块、显示模块、键盘接口模块共6个模块组成如图2-1所示。
其总电路图见附录1
图2-1系统原理
2.2整体电路原理
根据系统设计方案,系统由STC89C52、测温芯片DS1802、液晶显示电路,九针串口,MAX232芯片以及单片机最小系统相关元件组成。
本系统采用C语言,控制器采用单片机STC89C52,温度检测部分采用DS18B20温度传感器,用LCD液晶LCD1602作为显示器,用九针串口和MAX232芯片作为通信接口。
单片机通过内部定时器计算时间,然后对数据处理后显示时间;
温度传感器采用DS18B20采集温度信号送给单片机处理,单片机再把时间数据和温度数据送液晶显示器LCD1602显示,再经过用九针串口和MAX232芯片作为通信接口和用VB编写的上位机进行通信并显示传输的温度。
2.3各电路部分原理
2.3.1晶振电路
单片机的晶振频率应低于40MHZ,所以我们采用11.0592MHZ,加两个30pF电容。
图3-1所示。
如图2-2
图2-2晶振电路
2.3.2温度传感器设计
由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。
而DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
电路图如图2-3所示。
图2-3温度传感器电路图
(1)DS18B20的性能特点如下:
a)独特的单线接口仅需要一个端口引脚进行通信;
b)多个DS18B20可并联在惟一的三线上,实现多点组网功能;
c)无须外部器件;
d)可通过数据线供电,电压范围为3.0~5.5V;
e)零待机功耗;
f)温度以9或12位数字量读取;
g)用户可定义的非易失性温度报警设置;
h)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
i)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(2)DS18B20的使用
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对STC89C52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
表1 DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
图2-4DS18B20的读时序
DS18B20的写时序
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
图2-5DS18B20的写时序
2.3.3液晶显示电路
(1)显示电路采用12232F液晶显示器。
12232F是一种内置8192个16*16点汉字库和128个16*8点ASCII字符集图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×
32全点阵液晶显示器组成。
可完成图形显示,也可以显示7.5×
2个(16×
16点阵)汉字.与外部CPU接口采用串行方式控制。
主要技术参数和性能:
1.电源:
VDD:
+3.0∽+5.5V。
(电源低于4.0伏LED背光需另外供电)
2.显示内容:
122(列)×
32(行)点。
3.全屏幕点阵。
4.2MROM(CGROM)总共提供8192个汉字(16×
16点阵)。
5.16KROM(HCGROM)总共提供128个字符(16×
8点阵)。
6.2MHZ频率。
7.工作温度:
0℃∽+60℃,存储温度:
-20℃∽+70℃
(2)模块的外部接口
管脚号
管脚名称
LEVER
管脚功能描述
VSS
0V
电源地
VCC
3.0+5V
电源正
VEE
-
对比度调整
4
RS(CS)
H/L
RS=“H”,表示DB7~DB0为显示数据
RS=“L”,表示DB7~DB0为显示指令数据
5
R/W(SID)
R/W=“H”,E=“H”,数据被读到DB7~DB0
R/W=“L”,E=“H→L”,DB7~DB0的数据被写到IR或DR
6
E(CLK)
使能信号
7
DB0
数据线
8
DB1
9
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
15
BL+
背光源电压+4.2V-+5V
16
BL-
Vss
背光源公共端
表2LCD液晶显示器并行接口
(3)显示芯片电路
图3-9LCD1602电路图
2.4设计方案
按照系统的设计功能要求,本温度系统的设计须采用单片机软件系统实现,用单片机的自动控制能力来控制时钟、温度的采集及显示。
因此确定设计系统由单片机主控模块、测温模块、串口通信模块、显示模块组成,对于单片机的选择STC89S52,价格便宜,功能适合本设计,温度传感器选用常用的DS18B20,时钟和温度的显示可以用数码管,但是数码管的只能显示简单的数字,我们设计的系统有很多东西需要显示,还是用显示功能更好的液晶显示器比较好,它能显示更多的数据,用可以显示汉字的液晶显示器还可以增加显示信息的可读性,让人看起来会很方便。
2.4.1设计步骤
(1)设计硬件电路
(2)编写下位机系统程序和上位机系统程序
(3)仿真
(4)开发板调试
(5)上位机与下位机串口通信
(6)报告总结
3.软件系统设计
3.1主程序
系统主程序首先对系统进行初始化,包括设置定时器、中断和端口;
然后显示开机画面。
由于单片机没有停止指令,所以可以设计系统程序不断地循环执行上述显示效果。
下图是系统的流程图
图3-1系统流程图
3.2系统各子程序
3.2.1读取温度子程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次,流程图如图4-4。
读出温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图4-5。
3.2.2计算温度子程序
YES
NO
图3-4温度处理流程图
3.2.3显示数据刷新子程序
显示数据刷新子程序主要时对显示缓冲器中的显示数据进行刷新操作,当最高显示位为零时将符号显示位移入下一位。
程序流程图如图4-7
3.2.4温度数据的计算处理方法
从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。
因为DS18B20的转换精度为9-12位可选的,为了提高精度采用12位。
在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。
下表就是二进制和十进制的近似对应关系表。
表3小数部分二进制和十进制的近似对应关系表
小数部分二进制值
A
B
C
D
E
F
十进制值
4.电路调试
4.1调试设备
微机电源(+5V/+12V)一台
51系列编程器(烧录器+软件)一台
PC微机一台
数字万用表一台
RS-232串口通信线(9pin)一条
单片机开发板一块
4.2调试步骤
4.2.1硬件诊断
先检查开发板板及焊接的质量是否符合要求,有无虚焊点及线路间有无短路、断路。
然后用万用表测试,通电检测,检查个芯片电压是否正常,检查无误后,可通电检查LCD液晶显示器亮度情况,一般情况下取背光电压为4~5.5V即可得到满意的效果。
4.2.2单片机程序调试
软件调试是在kile4编译器下进行,源程序编译及仿真调试应分段或以子程序为单位逐个进行,最后结合硬件实时调试。
子程序调试包括:
1.主程序;
2.数值分离程序;
3.LCD驱动程序
4.DS18B20读出温度子程序、温度转换命令子程序、计算温度子程序。
根据程序各部份子程序先进行独立调试,
1.由于定时器是单片机内部故基本没问题。
2.由于DS18B20的误差指标在0.1oC以内,在一般场合完全适用。
3.根据实验要求显示时间的温度值及一天当中的温度。
由于发送数据没经过处理和VB编写的界面有问题,故上位机没办法进行实时显示温度。
4.2.3电路仿真
电路使用Proteus软件进行仿真,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。
仿真如下图4-1所示
图4-1仿真结果
5.下位机
5.1VB编译程序
Dimdatatemp(1000)AsSingle'
用于存储温度采样值
DimnumAsInteger'
用于存储采样值个数'
串口初始化
PrivateSubCommand1_Click()
MSComm1.PortOpen=False'
关闭串口
UnloadMe
EndSub
PrivateSubForm_Load()
MSComm1.CommPort=1
MSComm1.InputMode=1
MSComm1.Settings="
9600,n,8,1"
'
波特率9600b/s
MSComm1.PortOpen=True
PrivateSubPicture1_Click()
Picture1.ClsPicture1.DrawWidth=1
Picture1.BackColor=QBColor(15)
Picture1.Scale(0,40)-(500)'
最高显示40度,500个数据
Fori=1Tonum-1X1=(i-1)
Y1=datatemp(i-1)X2=i
Y2=datatemp(i-1)Picture1.Line(X1,Y1)-(X2,Y2),QBColor(0)
Nexti'
周期性读串口输入缓冲数据
PrivateSubTimer1_Timer()
DimInbyte()AsByte
DimbufferAsString
Dimdatastr(20)AsString
Inbyte=MSComm1.Input
Fori=LBound(Inbyte)ToUBound(Inbyte)
buffer=buffer+Hex(Inbyte(i))+Chr(32)'
获得单片机传送来的十六进制数
Nexti
Ifbuffer<
>
"
"
Then
'
获得十六进制每一位
IfLen(Trim(buffer))=1Then'
Trim()函数是去掉返回数据2边的空格
datastr
(1)="
0"
datastr
(2)=Trim(buffer)
data16.Text="
&
buffer'
显示十六进制
EndIf
IfLen(Trim(butter))=2Then
datastr
(1)=Mid(Trim(buffer),1,1)
datastr
(2)=Mid(Trim(buffer),2,1)
data16.Text=buffer'
datatemp(num)=(Val("
&
H"
datastr
(1))*(16^1)+Val("
datastr
(2))*(16^0))*0.1
data10.Text=Format$(datatemp(num),"
0.0"
)'
十进制显示,保留一位小数
num=num+1'
采集个数
CallPicture1_Click'
调用绘制曲线过程
EndSub
5.2VB显示界面
6.结论及尚存在的问题
一、设计总结
随着科学的不断进步和发展,一项工程的建设,非常注重其实用性和价值性。
所以在设计上如何选材、如何规划起了举足轻重的作用。
本次毕业设计正是要通过个人的思考和研究,制作出价格便宜、功能齐全的实用器件。
这毕业设计,要求掌握和灵活运用多门课程知识,并通过个人思考和查找资料,培养分析问题和解决问题的能力,培养动手能力。
本次毕业设计,需要掌握protel软件和绘制电路板的方法,同时也通过设计,体验理论联合实际的复杂性,增强工程设计的观念。
为日后的工作打下良好的基础。
从这次毕业设计中,我更深刻地掌握了所学的学科知识,学到了很多课外的知识,提高了自我分析问题、解决问题的能力,同时也使我认识到,理论联系实际是十分困难的,要设计成功是需要很大的努力和不断钻研的精神。
我也由这次毕业设计,看到了自己许多的不足之处,在今后在社会的工作中,我将朝自己的目标继续努力,希望以后能为国家的建设多出一分贡献。
二、尚存在的问题
在本次设计中,主要应用芯片集成来实现时钟和温度显示。
因此在设计过程中要熟练运用单片机主芯片,而且要有清晰的思路,运用时要画出它们的电路图才能准确的设计成功,不懂的时候要查阅相关的资料及书籍。
电路设计好并仿真成功了,还要运用protel软件来印制电路板。
由于我对PROTEL软件不太熟悉,所以课后要仔细的看书学习,最后顺利了完成了电路的原理图和PCB图,并顺利制作了一块电路板。
电路设计以及单片机、电脑程序设计均已达到要求,但实际做出样品后,尚存在一些问题。
设计过程中亦遇过不少问题。
芯片的工作电压不正常或者过高电压,则可能出现不能发送码或者不能译码的现象,所以要检查电源电压是否符合要求。
参考文献
[1]
胡汉才.单片机原理及其接口技术(第2版).北京:
清华大学出版社,2004
[2]
丁元杰主编,单片微机原理及应用(第3版),机械工业出版社,
2005,7
[3]
阎
石主编.数字电子技术基础(第四版).北京:
高等教育出版社,2000.5
[4]
康华光.电子技术基础模拟部分[M].
第四版.
北京:
高等教育出版社,
2001
[5]
杨加国主编,单片机原理与应用及C51程序设计(第2版),清华大学出版社,2009.7
[6]李江全,汤智辉,朱东芹编著VisualBasic数据采集与串口通信测控应用人民邮电出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 检测 报告