ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:204.60KB ,
资源ID:5611413      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5611413.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的温度控制系统说明书课程设计说明书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的温度控制系统说明书课程设计说明书.docx

1、基于51单片机的温度控制系统说明书课程设计说明书中北大学课 程 设 计 说 明 书学生姓名: 学 号: 学 院: 机械与动力工程学院 专 业: 机械电子工程 题 目: 基于51单片机的温度控制系统设计 指导教师: 职称: 讲师 2015 年 1 月 19 日目录第1章 绪论 21.1 题目背景 21.2 题目简介 2第2章 系统总体设计及方案 32.1单片机的介绍 32.2系统功能的确定 32.3温度传感器DS18B20的介绍 32.3.1DS18B20的内部结构 42.3.2 DS18B20的引脚介绍 62.4人机交互与串口通信 6第3章 硬件设计 83.1系统结构框图 83.2人机交互与串

2、口通信单元设计 93.2.1 键盘输入电路 93.2.2 串口通信电路 93.2.3 LED七段数码动态显示电路 103.2.4 控制执行单元设计 11第4章 软件设计 124.1设计思路、程序代码 12结束语 26参考文献 26第1章 绪论1.1 题目背景不论是对于工业生产还是对于人们的日常生活,温度的变化都会对其产生一定程度的影响。所以,适时和恰当的温度控制对生产生活具有非常重要的作用。在过去,对温度的控制总是采用常规的模拟调节器,然而,这种调节器存在的缺点是控制精度低,具有滞后、非线性等特点。-本文将采用微电子技术来提高温度控制的精度,因为微电子技术的电路设计简单,控制效果好,具有很强的

3、实用性。众所周知,在现代工业以及家用电器测控领域中,单片机系统的开发和运用给其带来了全新的技术创新和变革。而且,自动化和智能化程度的高低均依赖于是否使用单片机。试想:将单片机的温度控制方法如果能够运用到温度控制系统中的话,那么,就可以在一定程度上缓减和克服温度控制系统中存在的滞后现象,同时在很大程度的上,单片机的使用可以提高温度的控制效果以及控制精度。在工业自动化控制中,温度的控制一直都占有非常特殊的地位。在本文中作者针对电烤箱的温控系统利用单片机进行设计,从而达到精确控制电烤箱温度目的。1.2 题目简介课题名称:基于51单片机的温度控制系统设计主要任务:(1)电烤箱由1kW电炉加热,最高温度

4、为120;(2)电烤箱温度可设置,电烤过程恒温控制,温度控制误差2;(3)实时显示温度和设置温度,显示精确为1;(4)温度超出设置温度5时发出超限报警,对升温和降温过程不作要求。开发环境:本环境温度控制系统的软件部分是通过KEIL进行编译,并由Proteus 7 Professional进行仿真测试。技术指标:(1)以AT89C51系列单片机为核心部件(2)以数字电路和模拟电路为硬件基础(3)以C语言为软件实现语言功能概述:在该温度控制系统中,单片机作为核心部件进行检测控制。在该环境温度控制系统中温度检测采用DS18B20温度传感器将实时温度传送至单片机,并加以显示。再通过按键来设定温度,并实

5、时显示。按下确定键后将实际温度与设定温度进行比较,如果实际温度大于设定温度,则进行降温过程,反之,则进行升温过程,实现温度控制和报警等目的,按复位键后,从新开始。 第2章 系统总体设计及方案2.1单片机的介绍 随着大规模集成电路的出现及其发展,将计算机的CPU 、RAM 、 ROM 、定时/计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机 。 单片机具有以下特点:1.具有优异的性能价格比 2.集成度高、体积小、可靠性高 3.控制功能强 4.低电压、低功耗 2.2系统功能的确定 一个控制系统是否能被大众所接受,在于该控制系统是否拥有

6、人性化的操作功能。为了使本次设计的环境温度控制系统具有操作简单、灵活及高可靠性等特点,确定了该系统功能: 1.独立键盘输入。 2.单总线温度传感器DS18B20进行温度采集。 3.温度显示。 4.温度控制执行,温度超限进行报警。 5.温度测量范围为-55-125度,温度有效范围为2-98度,允许误差为1度。2.3温度传感器DS18B20的介绍 DS18B20温度传感器是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,在一根通信线,可以挂很多这样的温度传感器,十分方便。 DS18B20具有以下的的特点: 1.只要求一个端口即可实现通信。 2

7、.在DS18B20中的每个器件上都有独一无二的序列号。 3.实际应用中不需要外部任何元器件即可实现测温。 4.测量温度范围55到125。 5.数字温度计的分辨率用户可以从9位到12位选择。 6.内部有温度上、下限告警设置。2.3.1DS18B20的内部结构DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2.1所示。 图2.1 DS18B20内部结构框图 64位ROM的位结构如图2.2所示。开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。非易失性温度报警触发器TH和

8、TL,可通过软件写入用户报警上下限数据。图2.2 64位ROM的位结构图DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。 高速暂存RAM的结构为9字节的存储器,结构如图2.3所示。前2字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图2.4所示,其中,低5位一直为1;TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该

9、位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率,其定义方法见表2.1。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC图2.3 高速暂存RAM结构图表2.1 DS18B20分辨率的定义和规定 R1R0分辨率/位温度最大转换时间/ms00993.750110187.510113751112750图 2.4 配置寄存器位定义 由表可见,DS18B20温度转换的时间比较长,而且设置的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第

10、9字节是前面8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。单片机可以通过单线接口读出该数据。读数据时,低位在先,高位在后,数据格式以0.0625C/LSB形式表示。温度值格式如图2.5所示:低字节232221202-12-22-32-4高字节SSSSS262524图2.5 温度数值格式2.3.2 DS18B20的引脚介绍TO92封装的DS18B20的引脚排列见图2.6,其引脚功能描述见表2.2。图2.6(底视图)表2.2 DS18B20详

11、细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。2.4人机交互与串口通信该热炉温度控制系统由温度采集、独立键盘输入、温度显示、温度控制执行等四大模块组成。 1. 温度采集:由温度传感器DS18B20完成,并通过串口通信技术与单片机进行数据传输,使用单片机P2.2端口。2. 独立键盘输入:将键盘扫描程序设置在主函数中while循环函数的第一条语句,不断刷新获得设定温度,按下确定键后执行温度比较和温度控制。使用单片机的P2.1,P2.3,P2.4

12、,P2.5端口。3. 温度显示:通过8个7段LED数码显示管显示当前温度值和设定的温度值,及时反应当前温度的变化与设置温度的关系,使用单片机P0.0-P0.7端口。4. 温度控制执行:系统根据当前温度与设置的温度自动进行相应的升温或降温的操作,在系统自动进行升温或降温处理的同时显示相应的指示灯,在本文的设计中,考虑到加入升温降温设备也不会使得DS18B20传感器有所感应,故而没有添加升降温设备。只是通过两个升温降温指示灯来表示升降温过程,同样能让使用者知道系统正在进行的操作,使更加简洁。但是,在实际的生产中升降温度设备是必须添加的。两个指示灯使用单片机P1.4,P1.5端口。 5.超限报警:在

13、任务书要求中,当温度超出设置温度5时发出超限报警,但是由于作者能力所限,未能达到要求的5,我选择了比较设置温度和实际温度的十位数据的方法,将误差控制在了10以内,在仿真过程中影响是很小的。第3章 硬件设计3.1系统结构框图AT89C51显示模块键盘模块温控执行模块传感器模块报警模块图3.1系统硬件总体框图该系统由核心部件AT89C51来处理从键盘输入电路和温度采集电路送入的数据,并通过温度显示电路进行温度显示,由温度控制电路来进行相应的升温或降温的操作。如果超出温度限制则激发报警模块。图3.2 系统硬件原理图3.2人机交互与串口通信单元设计在该系统中,人机交互技术主要应用在恒定温度的设置,以及

14、当前温度与设置温度的显示;串口通信技术应用在对温度的采集。3.2.1 键盘输入电路在本系统中,键盘输入主要采用四个独立按键来实现温度的设定。如图3.3所示,当按下“加一”键时,恒定温度从0开始加一,按下“减一”键,设定温度从现有值减一。按下“清零”键,设置温度清零。按“确定”键,保存设置并退出键盘输入,进入温度控制状态。只有按下“确定”后才开始执行温度控制和超限报警。图3.3 键盘输入原理图3.2.2 串口通信电路为了使测得的温度更准确,在本系统中采用了温度传感器DS18B20来获取当前温度,而DS18B20是采用IC总线进行通信的,如图3.4所示,单片机使用P2.2端口与DS18B20的数据

15、通讯端口相连接,并通过软件实现P2.2控制DS18B20的读和写。图3.4温度传感器原理图3.2.3 LED七段数码动态显示电路在本系统中采用了LED七段数码动态显示电路来显示温度值,设定温度显示范围在0-99之间,实时温度显示范围在-55-120之间。该电路由显示、位选锁存器、段选锁存器三部分组成。 显示部分:由两个四位的LED七段共阴数码管构成,用来显示当前温度和设置温度,如图3.5所示。图3.5 LED七段共阴数码管位选和段选部分:如图3.6所示,由两片74HC573锁存器构成,单片机的P2.6和P2.7分别输出段选和位选信号,然后再将P0口信号传递到锁存器,并完成段选。进行译码后输出到

16、LED七段数码管显示。图3.6 位选段选锁存器符号编码符号编码00x3f80x7f10x0690x6f20x5bA0x7730x4fB0x7c40x66C0x3950x6dD0x5e60x7dE0x7970x07F0x71表3.7 共阴极数码管编码 3.2.4 控制执行单元设计该电路的主要任务是完成单片机所发出的升温或降温操作,来控制外部的升温或降温设备。在本文的设计中使用红、绿两色发光二极管代替。在程序中,先将P1.4和P1.5端口初始为低电平,当需要升温或降温时,将相应端口置为高电平,使得二极管发光。提醒使用者正在进行的温度操做。例如:当设置温度高于实时温度时,单片机向温控执行部分发送升温

17、指令,将P1.5置为高电平,使得升温指示灯亮。3.2.5 温度超限报警 当实时温度和设定温度十位数值不同时发出警报,由于在Proteus中选用的发声元件为SPEAKER,此元件与计算机音频输出设备相连,因此,当触发报警部分的时候,计算机会发出蜂鸣。第4章 软件设计4.1设计思路、程序代码根据所学知识,实现本系统的软件部分将使用汇编语言,要配合硬件部分实现输入一个需要恒定的温度,与从温度传感器所获取的当前实际温度相比较,并向温度控制执行电路发出升温或降温的命令,以及温度超限报警命令。在这一过程中将随时显示当前温度值和设置的温度值。其主要实现的部分包括:键盘输入、温度采集、数据转换、动态显示、温度

18、控制,超限报警等。程序如下。键盘扫描程序:/*功能描述:用数码管的前两位显示一个十进制数,变化范围是0120,开始时显示0,每次按下K1:数值加一,每次按下K2:数值减一。每次按下K3:数值归零。每次按下OK:执行温度比较,显示升温或降温过程,以及蜂鸣器的开闭。the end : successful*/#includedelay.h#includeinden_key.hvoid keyscan(void) unsigned char count; if(!key1) DelayMs(10); if(!key1) count+; if(count=120) count=0; while(!ke

19、y1); if(!key2) DelayMs(10); if(!key2) if(count=0) count=0; count-; while(!key2); if(!key3) DelayMs(10); if(!key3) count=0; while(!key3); 主函数:/*- 名称:基于51单片机的温控系统设计 编写:叶瑞夺 日期:2015.1.25 内容:对电烤箱进行温度控制。 1.8位数码管的12位(左边数起)显示设定的温度值(只有在确定键按下之后才会显示) 2.8位数码管的38位(左边数起)显示温度传感器采集到的实时温度值 3.当设定温度值小于实时温度时,绿灯亮(表示降温)。

20、 4.当设定温度值大于或等于实时温度时,红灯亮(表示升温)。 5.蜂鸣器的误差为+-10,当设定温度值与实时温度值误差超过10度时蜂鸣器会响。(按下确定键才会进行比较) 6.k1键:加一 K2键:减一 K3:归零 OK键:确定键(跟蜂鸣器和红绿灯显示有关)-*/#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include 18b20.h#include delay.h#define DataPort P0 /定义数据端口 程序中遇到DataPort 则用P0 替换#define WaringValue 17 /定义报警值 sbit led_green =

21、P14; /设定温度比实际温度低sbit led_red = P15; /设定温度比实际温度高sbit led = P17;sbit BEEP = P20;sbit OK = P21;sbit key1 = P23;sbit key2 = P24;sbit key3 = P25;sbit LATCH1=P26;/定义锁存使能端口 段锁存sbit LATCH2=P27;/ 位锁存bit ReadTempFlag;/定义读时间标志bit Button_flag; /确认按下的标志位unsigned char count;/-the part of new add-/uchar code du_ta

22、ble=0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;/describtion: it is a array from 0 to F, the type of nixie tube is common cathode/uchar code we_table=0xff, 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f;/description: it is a array to realize the loc

23、ation is selected,the we_table0s funtion is to cose all dispaly /-unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09unsigned char code dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分别对应相应的数码管点亮,即位码unsigned char TempData8; /存储显示值的全局变量void Display(unsi

24、gned char FirstBit,unsigned char Num);/数码管显示函数void Init_Timer0(void);/定时器初始化void keyscan(void) if(!key1) DelayUs2x(20); if(!key1) count+; if(count=120) count=0; while(!key1); if(!key2) DelayUs2x(20); if(!key2) if(count=0) count=0; else count-; while(!key2); if(!key3) DelayUs2x(20); if(!key3) count=0

25、; while(!key3); if(!OK) DelayUs2x(20); if(!OK) Button_flag = 1; while(!OK); /*- 主函数-*/void main (void) unsigned int TempH,TempL,temp;Init_Timer0();led_red = 0;led_green = 0;while (1) /主循环 keyscan(); if(Button_flag) /-the part of beep. below is the real time range of tempeture- if(count/10 = (TempH%1

26、00)/10) BEEP = 1; else BEEP = 0;/- Button_flag = 0; if(TempData2=0x40) led_red = 1; led_green = 0; else if(TempData3!=0) led_red = 0; led_green = 1; else if(count/10 (TempH%100)/10 ) led_red = 1; led_green = 0; else if(count/10 = (TempH%100)%10 ) led_red = 1; led_green = 0; else led_red = 0; led_gre

27、en = 1; if(ReadTempFlag=1) ReadTempFlag=0; temp=ReadTemperature(); TempData0= dofly_DuanMacount/10; TempData1= dofly_DuanMacount%10; if(temp&0x8000) TempData2=0x40;/负号标志 temp=temp; / 取反加1 temp +=1; else TempData2=0; TempH=temp4; TempL=temp&0x0F; TempL=TempL*6/10;/小数近似处理 if(TempH/100=0) TempData3=0; else TempData

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1