基于单片机的小型恒温箱.docx

上传人:b****6 文档编号:15898668 上传时间:2023-07-08 格式:DOCX 页数:27 大小:536.28KB
下载 相关 举报
基于单片机的小型恒温箱.docx_第1页
第1页 / 共27页
基于单片机的小型恒温箱.docx_第2页
第2页 / 共27页
基于单片机的小型恒温箱.docx_第3页
第3页 / 共27页
基于单片机的小型恒温箱.docx_第4页
第4页 / 共27页
基于单片机的小型恒温箱.docx_第5页
第5页 / 共27页
基于单片机的小型恒温箱.docx_第6页
第6页 / 共27页
基于单片机的小型恒温箱.docx_第7页
第7页 / 共27页
基于单片机的小型恒温箱.docx_第8页
第8页 / 共27页
基于单片机的小型恒温箱.docx_第9页
第9页 / 共27页
基于单片机的小型恒温箱.docx_第10页
第10页 / 共27页
基于单片机的小型恒温箱.docx_第11页
第11页 / 共27页
基于单片机的小型恒温箱.docx_第12页
第12页 / 共27页
基于单片机的小型恒温箱.docx_第13页
第13页 / 共27页
基于单片机的小型恒温箱.docx_第14页
第14页 / 共27页
基于单片机的小型恒温箱.docx_第15页
第15页 / 共27页
基于单片机的小型恒温箱.docx_第16页
第16页 / 共27页
基于单片机的小型恒温箱.docx_第17页
第17页 / 共27页
基于单片机的小型恒温箱.docx_第18页
第18页 / 共27页
基于单片机的小型恒温箱.docx_第19页
第19页 / 共27页
基于单片机的小型恒温箱.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的小型恒温箱.docx

《基于单片机的小型恒温箱.docx》由会员分享,可在线阅读,更多相关《基于单片机的小型恒温箱.docx(27页珍藏版)》请在冰点文库上搜索。

基于单片机的小型恒温箱.docx

基于单片机的小型恒温箱

毕业设计(论文)任务书

毕业设计(论文)题目:

基于单片机的小型恒温箱——驱动电路设计

设计(论文)的基本内容:

随着科学技术的不断发展各企业对温度检测技术提出了更高的要求,希望利用新的检测方法,制造出适应性更强、精度更高、性能更稳定、并具有智能功能的新一代温度检测仪表。

单片机在检测和控制系统中得到了广泛的应用温度是一个系统经常需要测量、控制和保持的量而温度是一个模拟量,不能直接与单片机交换信息,采用适当的技术将模拟的温度量转化为数字量在原理上虽然不困难但成本较高,还会遇到其它方面的问题。

因此对单片机温度控制系统的研究有重要目的和

意义。

因此本系统采用AT89C51设计了温度实时测量及控制系统具有安全可靠、操作简单方便、智能控制等优点。

另外,此测控系统以及相关产品的研发,既有利于推动工控技术的发展,又能带来可观的经济效益和社会效益。

毕业设计(论文)专题部分:

题目:

                                 

设计或论文专题的基本内容:

学生接受毕业设计(论文)题目日期

             第1周

指导教师签字:

孙丽飞

2011年月日

基于单片机的小型恒温箱

驱动电路设计与实现

单片机在检测和控制系统中得到了广泛的应用,温度是一个系统经常需要测量、

控制和保持的量,然而温度是一个模拟量,不能直接与单片机交换信息,采用适当的技术将模拟的温度量转化为数字量在原理上虽然不困难但成本较高,还会遇到其它方面的问题。

因此对单片机温度控制系统的研究有重要目的和意义。

本温度控制系统主要包括单片机控制模块、温度采集模块、温度显示模块、温

度上下限调整模块、电机驱动模块和外部存储模块等六大部分。

该温度控制系统的

核心是单片机控制模块,它采用的是Atmel公司的AT89C51该单片机能够根据温度传感器DS18B20所采集的温度数据来控制半导体制冷器的加热和制冷启停,从而把温度控

制在设定的范围之内。

关键词:

单片机,温度控制系统,温度传感器,显示器

Microcontroller-basedsmallincubator

thedrivecircuitdesignandimplementation

Abstract

AbstractThesinglechipmicrocomputerisrequiredextensivelyinmeasurementandcontrol

systemsandthetemperatureneedtobesurveyedcontrolledandmaintainedbyasystemfrequently。

Butthetemperatureisananalogcannotexchangeinformationwiththesinglechipdirectly。

InprincipleitisnotdifficulttotransformthesimulatedtemperatureintothedigitalquantityifadoptingPropertechnique。

ButgetstheelectriccircuitmoreComplexthelostismoreexpensiveandotherquestionscanbemet。

Soitisveryimportantforresearchofsinglechiptemperaturecontrol。

ThetemperaturecontrolsystemmainlyconsistsofMCUcontrolmodulethetemperatureacquisitionmodulethetemperaturedisplaymodulethetemperatureonthe

thresholdadjustmentmodulemotordrivermoduleandtheexternalmemoryunitwithsix

sections。

Thetemperaturecontrolsystemisthemicrocontrollercontrolmodulewhich

usestheAtmelCorporationAT89C51theMCUcanbecollectedaccordingtothetemperaturesensorDS18B20temperaturedatatocontrolthestartandstopheatingorcoolingdevicetosetthetemperaturecontrolwithintheset.

Keywords:

Single-chipMicrocomputer,thetemperaturecontrolsystem,temperature

Sensor,digitaldisplay

 

目 录

任务书I

摘 要II

AbstractIII

第1章 项目概述1

1.1 项目背景1

1.2 项目简介1

1.3 应用范围2

第2章 项目实施方案3

2.1 概述3

2.2 开发环境3

2.3 硬件设计3

2.3.1 硬件系统框图4

2.3.2 原理图设计4

2.3.3 典型电路设计4

2.4 软件设计5

2.4.1 软件系统框图6

2.4.2主程序设计6

2.4.3 驱动模块设计6

第3章 项目实施过程7

3.1 硬件实现过程7

3.1.1主程序的设计7

3.1.2L298电路的设计8

3.2 软件实现过程9

3.3 调试过程13

第4章 项目成果16

4.1 硬件成果物16

4.2 软件成果物17

第5章 结论18

参考文献19

致 谢20

第1章 项目概述

温度控制系统广泛应用于社会生活的各个领域,如家电产品、汽车、材料、电力电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题,开发出性能较好的温度控制系统对于测控技术的发展具有很大的意义。

1.1 项目背景

恒温箱的温度是医疗、工业产品和食品加工等领域的关键,因此对温度的测量及控制始终占据着重要的地位。

市场上常见的温度传感器以电压输出为主要形式,不同的传感器非线性曲线也各不相同,缺乏一个产品应具备的通用性和互换性。

温度传感器应用范围很广、使用数量很大,但是在常规的环境参数中由于温度受其他因素影响较大,而且难以校准,因此,温度也是最难准确测量的一个参数。

常规方法测量温度误差大、准确度低、测量滞后的时间长。

近年来,国内传感器正向着集成化、智能化、网络化和单片机化的方向发展,为开发新一代温度测量系统创造了有利条件。

在恒温箱控制系统的设计中,用传感器将温度信号以数字信号的方式传送给单片机,经单片机处理后的温度数值,一方面送LED数码管显示;另一方面与给定值进行比较,判断温度高低,从而采取相应的措施:

加热或者制冷。

使温度达到设定值。

1.2 项目简介

恒温箱的性能主要取决于对温度控制的性能,本课题采用单片机为主控制器,通过数字传感器测得箱内温度,再将温度信号送入主控制器,通过温度感器测的箱内温度,再将温度信号送入主控制器,来完成恒温箱的温度控制系统的硬件。

箱内温度可保持在设定的温度范围内。

当设置的温度高于实时温时,单片机送出加热信号;当设置的温度低于实时温度时,单片机送出制冷信号。

本课题只设计温度采集、温度显示、如何制冷、温度控制信号的送出部分。

本系统采用模块话设计只能恒温箱,系统上电后默认设定的恒温温度为20℃,使用时可以自行调解预期的恒温温度,调节范围为-10℃—20℃。

恒温箱温度的初始值为上一次使用后调节的温度,恒温箱的温度可以自行调节,调节后保持不变。

本恒温箱利用半导体制冷器实现制冷效果。

主要由L298实现驱动电路。

1.3 应用范围

智能恒温箱主要是用来控制温度,他为农业研究、生物技术、测试提供所需的各种环境模拟条件,因此可广泛适用于药物、纺织、食品加工等无菌实验、稳定性检查以及工业产品的原料性能、产品包装、产品寿命等测试。

随着单片机技术的飞速发展,通过单片机对被控制对象控制日益广泛,具有体积小功能强、性价比高等特点,把单片机应用于温度控制的典型应用,采用单片机做主控单元可完成对温度的采集和控制等的要求。

第2章 项目设计

2.1 概述

本系统是借用单片机采用模块化设计的恒温箱,包括温度设定按钮、温度显示、温度调节、温度采集等(根据需要也可另设或者和多设相关功能)。

显示系统主要显示实时温度,也就是人们想要保持的温度。

本系统死采用模块化设计的恒温箱,在生活中有广泛的应用,温度调节范围为-10℃—20℃。

温度可在此区间内调节,温度调节好后会保持此温度,并在LED显示屏上显示。

单片机是整个恒温箱的核心,内部电路设计用汇编语言编写。

它完成了温度参数设定,温度采集计算、温度显示、温度调节等功能。

1.在使用中可以将采集来的温度数据计算转换为我们熟悉的摄氏温度。

2.在-10℃—20℃的范围内,人们可以自由调节预期达到的温度。

3.将实时温度显示出来。

2.2 开发环境

首先用AltiumDesignerWinter09画原理图和PCB图,然后用Keil编写代码,再用protus实现仿真,看各个电路连接是否得当,功能是否能实现。

2.3 硬件设计

本设计分为硬件设计和软件设计,这俩者互相结合,不可分离:

从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。

只要技术准备充分,硬件设计的大量返工是比较少的,软件设计的任务是贯彻始终的,到中后期基本上都是软件设计任务,随着集成电路计数器的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中所占的比重逐渐下降,为使硬件电路设计尽可能合理,应注意以下几个方面:

1.尽可能采用功能强的芯片,以简化电路。

功能强的芯片可以代替若干个普通芯片,随着生产工艺的提高,新型芯片的价格在不断下降,并不一定比若干个普通芯片价格总和高

2.留有设计余地。

在设计硬件电路时,要考虑到将来修改扩展的方便。

因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。

3.程序空间。

选用片内程序空间足够大的单片机,本设计用80C51单片机。

I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是单纯的软件措施来解决的。

如果的些新的信号需要采集,就必须增加输入检测端:

有些物理量需要控制,就必须增加输出端。

如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,但是要用的时候就能派上用场了。

根据需求调研结果确定本系统主要包括以下功能模块,如图3.1所示。

2.3.1 硬件系统框图

图3.1系统功能模块框图

硬件系统主要由3.1框图中所示部分组成。

数据采样模块采用直接输出数字量的温度传感器DS18B20。

2.3.2 原理图设计

原理图主要由驱动电路和主程序电路俩部分组成。

主程序的主芯片由AT89C51担当。

AT89C51提供以下标准功能:

4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

驱动电路由L298芯片构成。

2.3.3 典型电路设计

获得更好的灵活性、效率、可靠性、可移植性。

(1)时钟频率电路设计

单片机必须在时钟的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个震荡源就能产生一定周期的时钟信号送到单片机内部的各个单元,决定单片机的工作频率。

一般选用石英晶体振荡器,此电路大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其震荡频率主要由石英晶体的频率确定。

电路中两个电容器的作用有俩个:

一是帮助振荡器起振;二是振荡器的频率进行微调。

两个电容器的典型值为30pF。

(2)复位电路设计

单片机的第9引脚RST为复位电路。

只要在该端上加持续4个机器周期的高电平即可实现复位,复位后单片机的各个状态都恢复到初始化状态。

2.4 软件设计

软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本决定下来了。

软件任务分析环节是为软件设计做一个总体规划。

从软件的功能来看可分为俩大类:

一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,使在系统软件中充当组织调度角色的软件。

这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。

软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。

在对各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。

各执行模块规划好后,就可以设计监控程序了。

首先根据系统功能和键盘设置选择一种合适的监控程序结构。

相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较容易出问题。

这如同当一名操作工人比较容易,而当一个厂长就比较难一样。

软件任务分析的另一个内容是如何安排监控软件和执行模块。

整个系统软件可分为后台程序,这类程序对实时性要求不太高,延迟十几毫秒甚至几百毫秒也没关系,故通常监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部终端。

也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态“,以利于系统节电和抗干扰。

恒温的工作过程:

1.温度的采集和计算。

单片机通过半导体制冷器进行通信,获取实时温度信息,并将获取的温度信息数据化为摄氏度温度的形式存储起来。

2.设定温度显示。

当前设定的温度可以通过液晶显示屏显示出来。

3.温度调节。

可以实现恒温箱的调节加热和制冷。

2.4.1 软件系统框图

图3.2软件系统框图

软件系统首先是初始化,然后可以设定温度,设定的温度通过数字温度传感器采集温度,再进行制冷或者加热。

2.4.2主程序设计

主程序主要负责温度处理和温度显示,读出并处理DS18B20的测量的当前温度值,及时调整温度值,温度测量每1s进行一次,这样可以在一秒之内测量一次,被测温度,这样能及时了解温度以便调整。

2.4.3 驱动模块设计

L298是ST公司生产的一种高电压、大电流电机驱动芯片。

该芯片的主要特点是:

工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。

 

第3章 项目实施过程

3.1 硬件实现过程

3.1.1主程序的设计 

已AT89C51为核心芯片,主要实现温度调节实现制冷和加热功能。

硬件电路中有复位电路的设计、显示电路的设计(LED液晶显示管)、温度采集电路的设计和驱动电路的设计。

AT89C51作为核心芯片。

它是美国ATMEL公司生产的8位FlashROM单片机。

其最突出的优点是片内ROM为FlashROM可方便地擦写1000次以上,价格低廉,而且其指令丰富编译工具多仿真环境好。

因此被广泛地应用于各种控制领。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROM—FlashProgrammableandErasableReadOnlyMemory的低电压、高性能、8位的单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中ATMEL的AT89C51是一种高效微控制器。

AT89C51的管脚介绍:

1.VCC:

供电电压。

2.GND:

接地。

3.P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

4.P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

5.P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

6.P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故;P3口也可作为AT89C51的一些特殊功能口,如下所示:

口管脚、备选功能、P3.0RXD(串行输入口)、P3.1TXD(串行输出口)、P3.2/INT0外部中断0、P3.3/INT1(外部中断1)、P3.4T0(记时器0外部输入)、P3.5T1(记时器1外部输入)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)、P3口同时为闪烁编程和编程校验接收一些控制信号。

7.RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

8.ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

9./PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

10./EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

11.XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

12.XTAL2:

来自反向振荡器的输出。

3.1.2L298电路的设计 

使用L298的注意事项:

1.第1、29、30引脚必须通过10K电阻接地。

2.第8引脚必须接地。

3.11、12或27、18任意一组电源就可以。

4.驱动步进电机的L298的相线必须接正确,否则电机肯定不转。

5.其他没说明的引脚不用管。

6.在连接、测试时千万不要用手去接触MCC芯片的任何引脚,否得输出不了信号。

7.一旦过流保护被启动,芯片必须重新上电后才可恢复正常工作,如果用手去碰MCC的第1、29、30引脚则过流保护立即启动。

8.强烈建议先不直接接L298,先用示波器查看MCC信号输出波形,然后再接L298N,如果波形都没有,那什么也出不来。

驱动电路的设计:

3.3.1驱动电路图设计

当大于等于45℃时加速正转/小于等于10℃时加速反转;75℃时达到全速正转;0℃时达到全速反转;温度回到10℃至45℃之间时电机逐渐停止。

3.2 软件实现过程

//共阴数码管断码及空白显示

ucharcodeDSY_CODE[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x7F,0x6F,0x00};

//温度最小数对照表

ucharcoddf_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};

//取值范围为-127~+128,DS18B20支持范围为-50~125

CharAlarm_Temp_HL[2]={50,-50};

ucharCurrentT=0;

ucharTemp_Value[]={0x00,0x00};

ucharDisplay_Digit[]={0,0,0,0};

bitHI_Alarm=0,LO_Alarm=0;

bitDS18B20_IS_OK=1;

uintTime0_Count=0;

//延迟

VoidDelay(uintx)

{

While(--x);

}

//初始化

ucharInit_DS18B20()

{

ucharstatus;

DQ=1;Delay(8);

DQ=0;Delay(90);

DQ=1;Delay(8);

Status=DQ;

Dealy(100);

DQ=1;

returnstatus;

}

//读一字节

ucharReadOneByte()

{

uchari,dat=0;

DQ=1;_nop_();

for(i=0;i<8;i++)

{

DQ=0;dat>>=1;DQ=1;_nop_();_nop_();

if(DQ)dat|=0x80;Delay(30);DQ=1;

}

returndat;

}

//写一字节

voidWriteOneByte(uchardat)

{

uchari;

for(i=0;i<8;i++)

{

DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;

}

}

//读取温度值

voidRead_Temperature()

{

if(Init_DS18B20()=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2