智能温度采集系统_第1页
智能温度采集系统_第2页
智能温度采集系统_第3页
智能温度采集系统_第4页
智能温度采集系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、信息与控制工程学院硬件课程设计说明书基于MODBUS协议的智能温度采集系统学生学号: 12530232 学生姓名: 钟 磊 专业班级: 电信1202 指导教师: 孙明革 职 称: 教 授 起止日期: 2015.04.072015.04.24吉林化工学院Jilin Institute of Chemical Technology信息与控制工程学院硬件课程设计说明书课程设计任务书一、设计题目:基于Modbus协议的智能温度采集系统二、设计目的1. 培养学生实践动手能力及独立分析和解决工程实际问题的能力;2. 掌握C8051F410单片机体系结构及C语言程序设计方法,并了解Modbus协议;3. 学

2、习电路焊装和硬件调试;4. 掌握基于C8051F410单片机的基于Modbus协议的智能温度采集器的编程方法。三、设计任务及要求 设计并实现基于Modbus协议的智能温度采集系统。系统具有以下基本功能:1利用C8051F410片上系统的24位AD转换模块实现对外部温度的采集;2使用Modbus通讯协议实现单片机与上位机的通讯和示, 使用Modscan软件实现温度的实时显;3. 编写完整的实验程序,进行整机调试、撰写设计说明书。四、设计时间及进度安排设计时间共两周(2015.462015.4.24),具体安排如下表:周安排设 计 内 容设计时间第一周学习C8051F410、6N137、MAX48

3、5CPA单片机和DS18B20温度传感器的体系结构及其功能;学习Modbus通讯协议、Modscan和altium designer;设计采样电路和调试,并利用altium designer画出其电路原理图。2015.4.62015.4.10第二周编写实验程序;按照电路图焊接。2015.4.132015.4.17第三周1.整机调试; 2. 撰写综合设计报告; 3. 答辩。2015.4.202015.4.24五、指导教师评语及学生成绩指导教师评语:年 月 日成绩指导教师(签字):- I -目 录课程设计任务书I摘要IV第一章 绪论- 1 -1.1设计目的- 1 -1.2单片机简介- 1 -1.2

4、.1单片机的发展趋势- 1 -1.2.2单片机的应用领域- 1 -1.3 MODBUS协议简介- 2 -1.3.1 Modbus 通信原理- 2 -1.3.2 MODBUS网络的两种传输模式- 3 -1.3.3 MODBUS网络的两种传输模- 3 -1.3.4 地址设置- 3 -1.3.5 功能码设置- 3 -1.3.6错误校验- 4 -第二章 系统方案与论证- 5 -2.1系统方案- 5 -2.1.1 单片机控制系统的论证与选择- 5 -2.1.2 温度采集模块论证与选择- 5 -2.1.3 数据通信的论证与选择- 6 - 2.1.4 电源的论证与选择- 7 -2.1.5显示模块- 7 -2

5、.1.6系统方案简述- 8 -第三章 硬件系统设计- 9 -3.1电路的设计- 9 -3.1.1单片机最小系统- 9 -3.1.2 RS485子系统框图与电路原理图- 9 -3.1.3温度采集电路原理图- 10 -3.1.4电源- 10 -第四章 软件系统设计- 12 -4.1keil软件的使用- 12 -4.2程序的设计- 14 -4.2.1程序功能描述与设计思路- 14 -4.2.2程序流程图- 14 -第五章 系统调试与运行- 17 -5.1测试方案- 17 -5.1.1硬件测试:- 17 -5.1.2软件仿真测试:- 17 -5.1.3硬件软件联调:- 17 -5.2 测试条件与仪器-

6、 17 -5.3 测试结果及分析- 17 -5.3.1测试温度- 17 -5.3.2结论- 18 -第六章 总结与致谢- 19 -参考文献- 20 -附录1:电路原理图- 21 -附录2:源程序- 22 -摘要随着当今社会的不断发展,由单片机控制的各种系统的应用也变的越来越广泛,对各种测量系统的测量精度要求也越来越高,这其中就包括了智能温度采集系统。而且随着科学研究、工业和家用电器等方面对测温和温控的的应用越来越多,对温度采集的精度要求变的更高,更要求能够实时的显示温度的数值实现良好的人际沟通。各种新型的集成电路温度传感器不断被研制出来。尤其是温度传感器DS18B20一种价格低廉高精度的数字温

7、度传感器,其特点是测量误差小,价格低,响应速度快,体积小,功耗低。因此得到了广泛的应用。在此课程设计中,以C8051f410作为控制系统,通过温度传感器DS18B20来进行温度采集,采集后的数据通过基于MODBUS协议的RS485通信传输到上位机PC机中通过MODSCAN软件进行实时的显示。在设计过程中主要应用了Altium Design 13来进行硬件电路的设计,通过keil软件来进行编程设计。本系统设计简单高效,能够将温度的误差控制在±05,能够实时显示温度数值,具有良好的人机沟通。关键词:C8051F410单片机、DS18B20、MODBUS协议、 RS485通信、上位机显示。

8、- III -第一章 绪论1.1设计目的随着经济的发展和社会的进步,当今社会各种电子产品,监测系统、控制系统等工作时对温度的要求变得越来越高,本次课程设计的目的就是为了设计一种智能温度采集系统,能够比较通过较简单的硬件设计和软件设计,较为简单高效的采集温度的数值,并能够实时的显示出来,实现良好的人机沟通。课程设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。通过课程设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。1进一步巩固和加深所学的电路和模电。数电理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;2培养学生实践动手能力及独

9、立分析和解决工程实际问题的能力;3培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。1.2单片机简介 1.2.1单片机的发展趋势随着微电子技术的不断发展,微处理器芯片的集成度越来越高,在一片集成电路芯片上集成微处理器、存储器、I/O接口电路等元器件,从而构成了“单芯片微型计算机”,简称单片机。单片机的诞生标志着计算机正式形成了通用的计算机系统和嵌入式计算机系统两个分支。单片机的发展PC系统中的CPU 一样历经几代的过程,由于单片机的巨大市场空间和广泛的应用范围,世界各大芯片厂商纷纷推出自己的单片机产品,但是单片机远没有PC中的CPU更新速度快,大体经历了4位机、8位机、

10、16位机、32位机的发展过程,其中8位机在市场上一直是主流产品。1976年Intel公司率先推出8位机MCS-48系列,1980年又推出了内部功能单元集成度强的8位机MCS-51系列产品,其性能大大超过并取代了MCS-48系列产品。如计算速度为MCS-48系列的10倍,时钟12MHz时钟指令周期可为1us。由于8位机可以一次处理一个ASC码,因而一问世便显示出其强大的生命力,广泛应用于显示、终端键盘、打印、字处理、工业控制等。虽然再8位机发展应用过程中出现了16位机、32位机,乃至64位机,但是8位机仍以它的价格低廉、品种齐全、应用软件丰富、支持环境充分、开发方便等特点而占领着单片机市场的主导

11、地位。所以各大芯片生产厂家商纷纷生产与MCS-51兼容或不兼容的单片机产品。1.2.2单片机的应用领域目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电

12、子或数字电路更加强大。2在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、楼宇自动通信呼叫系统、列车无线通信、再到

13、日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。6 在各种大型电器中的模块化应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。1.3 MODBUS协议简介1.3.1 Modbus 通信原理Modbus协议可以方便的在各种网络内进

14、行通信,每个设备都能使用Modbus协议来启动远程操作,同样的通信能够在串行链路和TCP/IP以太网网络上进行,而网关则能够实现各种使用Modbus协议的总线或网络之间的通信。Modbus通信过程就是一个查询和一个回应的过程,其中查询消息中的功能代码表示被选中的从设备要执行何种功能。数据段包含了从设备要执行的任何附加信息。例如功能代码03H是要求从设备读保持寄存器并返回它的内容数据段包含了。数据段必须包含要告知从设备的信息:从寄存器开始读及要读的寄存器数量。错误校验为从设备提供了一种验证消息内容是否正确的方法。如果从设备产生一正常的回应,在回应消息的中的功能代码是在查询消息中的功能代码的回应。

15、数据段包含了从设备收集的数据、寄存器的值或状态。如果有错误发生,功能代码将被修改来指出回应消息是错误的,同时数据段包含了描述此错误信息的代码,错误校验是主设备确认消息传输的正误。1.3.2 MODBUS网络的两种传输模式 控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。   1.ASCII模式   当控制器设为在Modbus网络上以ASCII(美国标准信息交换代

16、码)模式通信,在消息中的每个8Bit字节都作为一个ASCII码(两个十六进制字符)发送。  这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。  2.RTU模式  当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。  这种方式的主要优点是:在同样的波特率下,可比ASCII模式传送更多的数据。  我们公司的称重仪表支持的都是MODBUS RTU模式。1.3.3 MODBUS网络的两种传输模Modbus信息以帧的方式传输,每帧有确定的起始点和结

17、束点,使接收设备在信息的起点开始读地址,并确定要寻址的设备,以及信息传输的结束时间。  RTU模式中,信息开始至少需要有3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止的时间(如图1-1)。接着,第一个区的数据为设备地址。图1-1各个区允许发送的字符均为16进制的0-9,A-F。网络上的设备连续监测网络上的信息,包括静止时间。当接收第一个地址数据时,每台设备立即对它解码,以决定是否是自己的地址。发送完最后一个字符号后,也有一个3.5个字符的静止时间,然后才能发送一个新的信息。整个信息必须连续发送。如果在发送帧信息期间,出现大于1.5个字符的静止时间时,则接收设备刷新不完整

18、的信息,并假设下一个地址数据。1.3.4 地址设置有效的从机设备地址范围0-247(十进制),各从机设备的寻址范围为1-247。主机把从机地址放入信息帧的地址区,并向从机寻址。从机响应时,把自己的地址放入响应信息的地址区,让主机识别已作出响应的从机地。地址0为于广播地址,所有从机均能识别。1.3.5 功能码设置Modbus常用的功能代码,见图1-2常用功能码表图1-2 常用功能码表1.3.6错误校验CRC域是两个字节,包含一16位的值,2个8位字节,它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。例如: 

19、0;      读取称重变送器JF300A,JF300B,JF300C,JF300AD当前显示值(整形数据)示例:见图1-3举例图图1-3 举例图 第二章 系统方案与论证2.1系统方案本系统主要由单片机控制系统模块、RS485通信模块、温度采集模块模块、电源模块组成,下面分别论证这几个模块的选择。2.1.1 单片机控制系统的论证与选择方案一:AT89C51单片机(1)4K字节可编程闪烁存储器;(2)128*8位的内部RAM;(3)32个可编程I/O口线;(4)两个16位定时器、计数器;(5)5个中断源;(6)可编程穿行通道;(7)片内振荡器和时

20、钟电路;(8)低功耗的闲置和掉电模式。AT89C51单片机是一款通用MCU,但片上集成资源有限,使用时需要扩展D/A和A/D转换器,致使I/O资源被大量占用,而且增加电路焊接难度,不易调试,不仅成本高而且电路可靠性低。方案二:C8051F410单片机:(1)高速高集成结构与8051兼容的微控制器;(2)真12位200ksps的24通道ADC,两个12位电流输出DAC;(3)高精度可编程的24.5MHz内部振荡器;(4)多达24个端口I/O;(5)片内上电复位、VDD监视器和温度传感器;(6)2304字节片内RAM;(7)达32KB的片内FLASH存储器 ;(8)片内电压比较器

21、0;。由于C8051F410单片机片内资源丰富,不需要外围扩展D/A与A/D,焊接简单,可靠性高,节省时间,处理器速度最高可达98M,完全满足系统数值运算与调节时间的实时性,因此,所以本设计选C8051F410为系统控制核心配合其他外围电路实现智能温度采集。方案一焊接复杂,调试困难,不易实现,综合比较,而方案二焊机简单,运行速度快。综合以上两种方案,选择方案二。2.1.2 温度采集模块论证与选择方案一:用普通半导体温度传感器作为敏感元件,再结合电压放大器和AD转换器将感应到的温度数值转换为数字量存储在某一单元内。但由于该方案所需元件较多,且电路较繁,调试起来较复杂,所以舍之不用。方案二:使用普

22、通温度传感器pt100再结合电压放大器和AD转换器将感应到的温度数值转换为数字量存储在某一单元内。该方案电路繁多,线路冗长。且温度传感器pt100价格较贵。方案三:使用AD590集成温度传感器,它实质上是一种半导体集成电路,它是利用晶体管的b-e结压降的不饱和值VBE与热力学温度T和通过发射极电流I的下述关系实现对温度的检测,集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0时输出为0,温度25时输出2.982V。电流输出型的灵敏度一般为1mA/K。方案四:使用温度

23、传感器DS18B20,DS18B20为数字式温度传感器分辨率0.0625 ºC,满足要求且无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,路简单,控制方便。图2.1 DS18B20实物图综合以上各种方案,选用DS18B20使用方便,设计电路简单且经济实惠,所以选择方案四。 2.1.3 数据通信的论证与选择用通信方式来看,有两种总线方式即:RS232总线和RS485总线。方案一:采用RS232串行总线方式,它是外部串行总线,通常我们用9针线接口进行通信,实际上只用到TXD、RXD、GND三根线,单端传输方式,最大传输距离是15米,最大传输速度20Kbit/s,具有串

24、行传输只需要一根传输线即可,在成本上可以有一定的节约。但是典型的RS232信号在正负之间摆动,在发送数据时,发送端的驱动器输出正电平在+5+15V,负电平在-5-15V之间。当没有数据传输时,线上未TTL,从开始传输数据到结束,线上电平从TTL电平到RS232电平再返回TTL电平。接收器典型的正工作电平在+3V+12V,负电平在-3V-12V。由于发送电平和接收电平的差仅为2V到3V,所以共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为15M,最高速率为20Kbit/s。由于RS232用于一对收发设备通讯,所以它只适合本地设备之间的通讯。方案二:采用RS485串行总线方式,它也是外部

25、串行总线,RS485可以采用二线与四线方式,二线制可以真正实现多点双向通讯。而在采用四线连接时,只能实现点对多的通讯信,也就是只有一个主设备,其他全为从设备。它的特点是输入为差分输入方式,最大传输距离为1200米,最大传输速率为10Mbit/s,其优点是在RS232基础上其抗干扰能力强,同一根电缆线的数据传输可以不受其他线路的干扰,还具有总线收发器灵敏很高,能检测很低的电压,在远距离传输时也能使信号得以恢复。RS485的接口信号电平较RS232低,不易是接口电路的芯片受到损坏。由于RS485的种种优点,使它成为众多工程师的首选串口接口。所以基于RS485的优点,本设计也采用方案二作为通信方式。

26、2.1.4 电源的论证与选择方案一:采用开关电源开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率,维持稳定输出电压的一种电源。开关电源一般由脉冲宽度调制(PWM)控制IC和MOSFET构成首先它交流电源输入经整流滤波变成直流电、通过高频PWM芯片(脉冲宽度调制芯片)控制开关管,将直流电加到开关变压器的初级线圈上开关变压器次级感应出高频电压,经过整流滤波供给负载 输出部分通过电路反馈给控制电路,控制PWM占空比,以达到稳定输出的目的。方案二:采用线性电源线性电源是将交流电经过变压器降低电压幅值,再经过整流电路整流后,得到脉冲直流电,后经滤波得到带有微小波纹电压的直流电压。

27、首先它将交流电变换成所需的直流电,接着经过预稳压电路线性调整元件,对滤波后的直流电压进行精细调整使输入电压达到所需要的值和精度要求,然后再通过滤波电路对直流电源的脉动波干扰噪声进行最大限度的阻止和吸收从而保证直流电源的输出电压低纹波、低噪声、低干扰。相比较来说线性电源技术很成熟,制作成本较低,可以达到很高的稳定度,波纹也很小,而且没有干扰与噪音,但其体积比较庞大,且输入电压范围要求高,效率低,一般只有30%-40%。开关电源技术成熟,体积小,重量轻,输入电压范围宽,自身抗干扰性强,效率高,一般有60%70%。所以线性电源较抗干扰和效率来说并不如开关电源。但系统对电源的要求并不高,且需要两路电源

28、,用线性电源完全能达到要求且设计简单,价格也更加的便宜。综合考虑采用方案二。2.1.5显示模块本系统通过上位机显示,单片机由RS通信将温度发送到上位机PC机中,通过串MODSCAN软件分别将温度传感器采集的温度和单片机内部温度传感器采集的温度进行显示。2.1.6系统方案简述综合以上论证,本系统系统框图如图2.2所示:图2-2:系统设计框图第三章 硬件系统设计3.1电路的设计3.1.1单片机最小系统 系统对单片机时钟的精度和温度稳定度都没有特别要求,可以直接使用C8051F410 单片机内部自带的时钟振荡器,而无需外接振荡器。使用时要注意的是,是芯片工作电源是从Vregin 引脚引入( + 3.

29、 3V) ,VDD 是内部基准电压输出引脚,VIO 是I /O 口作为数字引脚时的电源输入引脚。电路设计时必需在紧靠这3 个引脚的位置布上滤波和退耦电容( 470uf 和104pf) .P1.7是温度传感器DS18B20的数据线, P0. 4 和P0. 5 是串口通信线,与上位机显示模块连接。最小系统电路如图3.1所示:图3-1: 单片机最小系统原理图3.1.2 RS485子系统框图与电路原理图1、RS485应用简述MAX485接口芯片,采用单一电源+5V工作,额定电流为300A,采用半双工通讯方式。它完成将TTL电平转换为MAX485电平的功能。其从图中可以看出,MAX485芯片的结构和引脚

30、都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;和DE端分别为接收和发送的使能端,当为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可, A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选120的电阻。2、RS485应

31、用电路图图3-2: RS485应用原理图3.1.3温度采集电路原理图图3-3: 温度采集原理图DS18B20的特性: 1、 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。2、测温范围 55+125,固有测温误差(注意,不是分辨率,这里之前是错误的)1。3、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。4、工作电源: 3.05.5V/DC (可以数据线寄生电源)。5、在使用中不需要任何外围元件。6、 测量结果以912位数字量方

32、式串行传送。3.1.4电源 本系统电源设计为两路+5V电压,一路电压负责为单片机供电,一路电压负责为通信芯片MAX485和光耦隔离芯片6N137供电,避免因通信时拉低单片机的内部电压,造成单片机的低电停止工作,电源硬件电路如图3.4所示: 图3-4:电源硬件原理图 电源由变压部分、滤波部分、稳压部分组成。为整个系统提供两路+5V电压,确保电路的正常稳定工作。这部分电路比较简单,都采用三端稳压管实现,故不作详述。 第四章 软件系统设计4.1keil软件的使用Keil_uVision4是众多单片机爱应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑、编译、仿真等于一体

33、,同时还支持PLM、汇编和C语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调程序,软件仿真方面也有很强大的功能。1.新建一个工程文件,点击“Project->New Project”菜单,如图4-1所示:图4-1 Keil4建立新工程2.选择工程文件要存放的路径 ,输入工程文件名 kechengsheji, 最后单击保存,如图4-2所示:图4-2 保存新工程3. 在弹出的对话框中选择 CPU 厂商及型号,如图4-3所示:图4-3 CPU型号选择4新建一个 C51 文件 , 单击左上角的 New File 如图4-4所示 :图4-4 建立新文件5保存

34、好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group Source Group 1' 如图4-5所示:图4-5 添加文件6.到此我们完成了工程项目的建立以及文件加入工程 , 现在我们开始编译工程如图4-6所示:我们先单击编译, 如果在错误与警告处看到 0 Error(s) 表示编译通过。如图4-6 编译C文件4.2程序的设计4.2.1程序功能描述与设计思路1、程序功能描述本程序只要包扩单片机的初始化程序,和通过温度传感器DS18B20对温度的采集数据进行读取和处理,然后通过485通信将数据传输到上位

35、机中进行显示的程序(1)初始化程序:设置端口、频率、看门狗、串口通信和AD。(2)温度采集:读数据,写数据,初始化。(3)串口通信:发送数据,接收数据。 4.2.2程序流程图1、主程序流程图主程序包含系统初始化子程序、DS18B20数据采集程序、内部温度传感器温度采集、RS485通信六个模块。如图4-7所示:图4-7 主程序流程图2、A/D程序转换流程图如图4-8所示:启动A/D转换读取A/D转换采样AD取AD平均值将内部电压转化成温度值子程序返回图4-8 A/D转换流程图3、CRC算法计算方法及流程图如图4-9所示:图4-9 CLC16算法流程图具体计算方法为:1、设置CRC寄存器,给其赋值

36、0xffff;2、将待校验数据的第一个字节(8bit)与16位CRC的低字节进行异或操作,结果存入CRC寄存器;3、CRC寄存器向右移一位,MSB补零,移出并检查LSB;4、如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码(8005)相异或,结果依然存入CRC寄存器;5、重复第3、4步,直到8次移位全部完成。即一个8bit字节处理完毕;6、重复第2至第5步,即依次处理后面的数据字节,直到全部数据处理完成;7、最终CRC寄存器里的内容即为CRC值。在数据传输中,附加在有效信息后面的CRC16两个字节,高字节在前,低字节在后。第五章 系统调试与运行5.1测试方案5.1.1硬件测试:

37、a.根据设计的电路原理图监测硬件的设计是否焊接错误b.使用数字万用表来检测所焊接电路的通断情况,检测有无漏焊、虚焊现象。并且测量单片机每个I/O口的电压、电流是否正常。5.1.2软件仿真测试:直接在keil软件中通过其自带的仿真系统进行系统的仿真模拟,5.1.3硬件软件联调:将设计的电路板焊接好后,将系统程序下载到单片机中,连接电源后检测系统是否正常工作,并通过数字万用表,数字示波器等检测观察各个模块的工作状态是否正常。5.2 测试条件与仪器测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:高精度的数字毫伏表,模拟示波器,数字示波器,数

38、字万用表,指针式万用表。5.3 测试结果及分析5.3.1测试温度由于18b20出场的测温精度可达ºC,基本能够达到设计要求。在此使用了高精度电子温度计,精确测量室温。1、静态温度测量本次测量的方法主要是使用高精度的电子温度计放到温度传感器附近反复测量温度数值并比较,测量结果见表5-1 表5-1 温度测试表 ( 单位: ºC)传感器第一次第二次第三次第四次DS18B2018.519.720.023.3电子温度计18.719.520.023.0内部传感器20.621.622.324.9误差分析:由于测温部位无法达到完全一致,且受各种外界其它条件的影响、在此DS18B20误差均在

39、0.5(ºC)以内,且没有规律性,所以不再软件补偿温度值内部温度传感器一般较室温高两摄氏度左右2、测试结果分析由以上测量可见,系统性能基本上达到了所要求的指标。静态测温的精度主要有DS18B20决定。DS18B20的精度比较高,这里采取了读取温度寄存器办法,测温精度能够达到0.3ºC,可以达到比较好的精度。内部温度传感器一般较室温高两摄氏度左右5.3.2结论 整个系统的设计思想是精确测量温度,减小调节时间和超调量。整个系统综合有如下几个特点:通过DS18B20集成温度传感器减少了A/D转换电路,简化了电路结构。采用C8051F410,简化了功率控制电路,提高了系统的稳定性。

40、在电路设计中充分考虑了系统的可靠性和安全性。通过精心调试达到基本功能指标,动态性能也达到较好的要求。综上所述,本设计达到设计要求。第六章 总结与致谢硬件课程设计是学习阶段一次非常重要的理论与实际相结合的机会,通过这次智能温度采集系统的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我综合运用所学专业知识解决实际问题的能力,同时也提高了我查阅文献资料、电脑制图等其他能力水平。而且通过对整体设计思路的掌控,对局部器件的取舍,以及对细节程序的斟酌处理,都使我的能力得到了锻炼,并且意志力、抗压能力及耐力也都得到了不同程度的提升。这是我们都希望看到的也正是我们进行硬件课程设计的目的所在。此次

41、设计主要应用了温度传感技术和单片机技术。系统的温度传感部分使用数字温度传感器DS18B20采集。电路经过多次改正测试最后达到理想效果,接收到温度信号后能够较快的在上位机PC机上显示出来,温度信号稳定,可远距离传输,抗干扰能力好,价格低廉。这样,不仅降低了系统的设计成本,而且提高了系统的精度。经过多次的调试与运行,本系统完全达到设计要求。完全能够在现实生活中达到实际而且广泛的应用。为期三周的课程设计已经结束了,在过去的这段时间中,感谢孙老师对我们辛勤的教导,在这为期并不算长的时间段内,孙老师传授给了我们非常多的专业知识,并传授给我们许多做事的方法,这将对我们往后做工程产生深远的影响。真心的非常感

42、谢老师对我们的帮助和指导。在这段时间中也感谢和我一起学习,一起钻研的同学们,在这段时间内也感谢你们对我的帮助,正式有你们,才让我在课程设计这段时间中能够充满斗志的去学习,让我们共同加油,感谢你们。参考文献1 翟玉文,梁伟, 艾学忠.电子设计与实践. 中国电力出版社,2005.52 申琢玉.吉林化工学院毕业设计说明书.2009.6.123 张齐,朱宁西. 单片机系统设计与开发. 北京:机械工业出版社,2008.84 时景荣,李立春. C语言程序设计. 中国铁道出版社,2008.125 张毅刚. 单片机原理及应用. 北京:高等教育出版社,20086 申琢玉.吉林化工学院毕业设计

43、说明书.2009.6.127 翟玉文.Altera可编程逻辑器件设计与实验. 吉林化工学院校内讲义. 2001.12- 31 -附录1:电路原理图附录2:源程序/*程序名称:ADC0.c;-程序功能:C8051F410A/D转换测试;*/-/ C51头文件/-#include <c8051f410.h> / 包含c8051f410单片机特殊寄存器#include <intrins.h> / 包含指示编译器产生嵌入原有代码的程序的原型#defineSYSCLK 1531250 float temp;float wendu;union tempXfloat tempf;un

44、signed char tempc4;realtemp;union wenduXfloat wenduf;unsigned char wenduc4;realwendu;unsigned char xdata rd0_dat48,td0_dat48;/UART0接收计数、站号 unsigned char idata rd0_cont,zhhao=1;sbit LED=P25;sbit dq=P17;#include "C8051F410.h"/ Peripheral specific initialization functions,/ Called from the In

45、it_Device() functionvoid PCA_Init() PCA0MD &= 0x40; PCA0MD = 0x00;void Oscillator_Init() OSCICN = 0x82;void UART_Init() SCON0 = 0x10;void Timer_Init() TCON = 0x40; TMOD = 0x21; CKCON = 0x0C; TL0 = 0x84; TH0 = 0xFB;TL1 = 0xD8; TH1 = 0xD8; void Port_IO_Init() P0MDIN = 0xFB; P1MDIN = 0xFB; P2MDOUT

46、= 0x20; P0SKIP = 0x04; P1SKIP = 0x04; XBR0 = 0x01; XBR1 = 0xC0;void ADC_Init() ADC0MX = 0x18; ADC0CN = 0x80; / ADC0 disabled, burst-mode disabled, / conversion triggered on TMR2 overflow ADC0TK = 0xF8; / Pre-tracking mode enabled, keep / default timing settings ADC0CF = 0x00; / Repeat count = 1 ADC0

47、CF |= (SYSCLK/3000000)-1)<<3; / Set SAR clock to 3MHz AD0EN = 1;void Voltage_Reference_Init() REF0CN = 0x15;/void Voltage_Reference_Init()/ REF0CN = 0x13;/void Init_Device(void) PCA_Init();Oscillator_Init();ADC_Init(); Voltage_Reference_Init();Timer_Init();UART_Init(); Port_IO_Init();/单周期时间1.3

48、06US/延时子函数/一次循环11机器周期,每增一次加9机器周期 (n*10+13)*1.306void delay1(unsigned char x) unsigned char i;for(i=0;i<x;i+)/延时子函数void delay2(unsigned long x) unsigned long i; for(i=0;i<x;i+)/-/函数说明/ 向DS18B20写入一个字节/函数参数/ wrt:被写入的字节/-void write (unsigned char wrt)unsigned char i;EA=0;for (i=0;i<8;i+) dq=0;dq=wrt & 0x01; delay1(4);dq=1;wrt>>=1; EA=1; /-/函数说明/ 从DS18B20读数据16bit数据,也就是温度值的转换码/函数返回/ 返回所读取的2个字节数据/- unsigned int read_word ()unsigned char i;unsigned int a=0;EA=0;for(i=

温馨提示

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

评论

0/150

提交评论