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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(数字式自动温度控制仪设计大学论文.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字式自动温度控制仪设计大学论文.docx

1、数字式自动温度控制仪设计大学论文课程设计任务书学生姓名: 专业班级: 电信1204班 指导教师:王绪国、沈维聪 工作单位: 信息工程学院 题 目: 数字式自动温度控制仪设计 设计内容及要求:(1)以AT89系列单片机为核心,设计一款数字式自动温度控制仪。(2)测量温度范围:室温200;温度测量的精度为1。(3)设置2个模拟输出通道:一个通道控制加热设备(输出05VDC,控制0220VAC), 另一个通道控制电机转速(输出010V,控制转速02000rps),具体控制要求见下表。温度室温100100100150150150180180时间2分钟2分钟5分钟2分钟2分钟5分钟转速rps500800

2、1000150018002000(4)应用液晶显示器实时显示当前的温度值、系统时间和电机转速;(5)完成系统硬软件设计;(6)完成系统仿真,提交课程设计报告。时间安排:1) 第1天, 查阅相关资料,学习设计原理。2) 第23天, 方案选择和电路设计仿真。3) 第4天, 设计说明书撰写。4) 第5天, 上交报告,同时进行答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘 要 IAbstract II1 设计要求及原理 11.1 设计要求 11.2 电路的总体工作原理 12 系统电路设计 22.1 系统硬件电路图 22.2 具体电路模块分析 32.2.1 温度传感器模块

3、(DS18B20) 32.2.2 DS1302时钟电路 42.2.3 加热电路 52.2.4 电机驱动电路 52.2.5 液晶显示电路(LCD1602) 63 软件设计流程图 84 仿真以及性能分析 95 心得体会 116 参考文献 12附录 源程序 13 摘 要 本次课程设计主要研究的是数字式自动温度控制仪,利用单片机来控制温度以及电机的转动。它的主要组成部分有:AT89C52单片机、温度传感器、LCD显示电路、温度控制电路,系统时间显示电路。温度传感器DS18B20用于环境温度的采集与转换,DS1302用于产生系统时间,LCD显示电路用于显示温度传感器采集到的温度和直流电机的转速及系统时间

4、,温度控制电路用于控制电机的转速及时间,AT89C52为系统的核心部分,进行数据的接收和处理。此系统可以实时的显示环境温度,并可以根据温度来控制电机的转速以及这种转速维持的时间,将转速显示在液晶屏上,同时还可以控制加热设备。关键词:AT89C52 DS18B20 LCD显示Abstract The course is primarily designed research is digital automatic temperature control device, using SCM to control the temperature and the rotation of the mo

5、tor. Its main components include: AT89C52 microcontroller, temperature sensor, LCD display circuit, the temperature control circuit, the system time display circuit. DS18B20 temperature sensor for ambient temperature acquisition and conversion, DS1302 is used to generate the system time, LCD display

6、 speed and system temperature sensor to the temperature and DC motor circuit is used to display the time, temperature control circuit for controlling the motor speed and time, AT89C52 as the core of the system, receiving and processing data. This system can display real-time ambient temperature and

7、the temperature can be controlled according to the motor speed and the time to maintain this speed, the speed displayed on the LCD screen, but you can also control the heating equipment.Keywords: AT89C52 DS18B20 LCD1 设计要求及原理1.1 设计要求本课程设计的要求是以AT89系列单片机为核心,设计一个数字式自动温度控制仪。测量温度范围:室温200;设置2个模拟输出通道:一个通道控制

8、加热设备(输出05VDC,控制0220VAC),另一个通道控制电机转速(输出010V,控制转速02000rps);温度测量的精度为1;应用液晶显示器实时显示当前的温度值、系统时间和电机转速;1.2 电路的总体工作原理电路总体分为6个模块,分别是DS18B20温度控制模块,DS1302系统时间显示模块,继电器加上lamp模拟的加热设备模块,L298直流电机控制模块,LCD1602液晶显示模块,AT89C52微控制器。其中DS18B20与DS1302用来显示当前温度与时钟,测量的值直接在LCD上面显示,另外DS18B20的温度值还将控制直流电机的转速以及加热设备的启动。电机的控制为温度控制,将温度

9、分为3个档,这3个档分别对应不同的电机转速。当温度下降到30度以下时,加热设备开始工作。AT89C52芯片与LCD就负责数据的处理与显示。系统框图如图1: 图1 系统框图2 系统电路设计2.1 系统硬件电路图图2 系统电路图如图2,系统硬件电路主要由温度显示,时钟芯片,电机驱动模块,加热模块以及LCD显示组成。另外51单片机来控制数据的处理与传输。2.2 具体电路模块分析2.2.1 温度传感器模块(DS18B20)DS18B20原理与特性:本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。内部结构主要由四部分组成:64位光刻RO

10、M、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如图2-2所示GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3O5.5 V。本文使用外部电源供电。主要特点有: 1. 用户可自设定报警上下限温度值。 2. 不需要外部组件,能测量55+125 范围内的温度。3. 10 +85 范围内的测温准确度为05 。4. 通过编程可实现9l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达00625 。 5. 独特的单总线接口方式,与微处理

11、器连接时仅需要一条线即可实现与微处理器双向通讯。6. 测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。7. 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。8. DS18B20支持多点组网的功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温2。DS18B20测温电路图如图3所示。图3 DS18B20 DS18B20在本次设计中用于模拟显示当前实时温度,同时控制电机转速以及加热设备,当温度低于30度时,加热设备开启,同时电机转速最低;当温度大于30度且小于40度时,加热设备关闭,电机转速适当地提高;当温度高

12、于40度时,电机转速达到最大。2.2.2 DS1302时钟电路 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的

13、记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。 在系统电路中用DS1302芯片来显示系统时间,电路图如图4。 图4 DS1302 2.2.3 加热电路在本次仿真当中,用电灯以及继电器来模拟加热设备,当温度低于30度时,单片机输出端输出低电平,同时继电器工作,线圈闭合,12V的电灯lamp点亮。电路图如图5。图5 加热电路2.2.4 电机驱动电路本次课设需要用一个模拟输出来控制电机的转动,于是用P2.0输出PWM波形来控制电机转动,的占空比的不同控制不同的电机转速,设置了3种不同的占空比,分别对应温度不同时电机的转速。由于单片机输出电流太小,无法驱动直流电机的转动,因此

14、加上L298来驱动直流电机。由于需要记录电机的转速,采用的是编码电机MOTORENCODER,该电机其中一脚当电机每转一圈会产生一个脉冲,利用该脉冲记录转速。电路图如图6,图6 电机驱动电路2.2.5 液晶显示电路(LCD1602)LCD1602的管脚图如图2-4所示。 图7 LCD1602管脚图 各引脚功能为:VSS-地电源VDD-5V正电源 VL-液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 RS-寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器 R/W-读写信号线,高电平时进行读操作,低电

15、平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据 E-使能端,当E端由高电平跳变成低电平时,液晶模块执行命令 D0D7-8位双向数据线BLA(15管脚)-背光源正极 BLK(16管脚)-背光源负极 LCD1602的基本操作时序写指令 输入:RS=L,=L,=指令码,E=高脉冲 输出:=数据写数据 输入:RS=H,=L,=数据, E=高脉冲,输出:无 LCD1602的写操作时序1) 通过RS确定是写数据还是写指令。指令包括使液晶的光标显示/不显示,光标闪烁/不闪烁,需/不需移屏,在液晶的什

16、么位置显示等等。写数据是要显示什么内容。2) 读/写控制端设置为写模式,即低电平。3) 将数据或命令送达数据线上。4) 给E一个高脉冲将数据送入液晶控制器,完成写操作。3 软件设计流程图按上述工作原理和硬件结构分析可知系统主程序流程图如下图8所示。 图8 主程序工作流程图4 仿真以及性能分析 仿真开始时,当温度还为30度时,此时电灯熄灭,LCD上显示的转速为48 r/min。电路图如图9。图9 温度为30时由图10可见,此时温度29,低于30度,右下角的加热设备电灯点亮,同时随着温度的下降,电机转速转速也随之下降,LCD显示屏上显示为36 r/min,并显示了当前的温度以及系统时间。图10 温

17、度低于30 当温度继续上升,因为没达到临界值,电灯开关状态并没有发生改变,但随着温度的上升,电机的转速随之升高,为54 r/min。如图11图11当温度升高到41度时,开关状态发生改变,电机转速也随温度升高而线性升高,为60 r/min如图12图12当温度在不同的范围时,题目中要求电机的转速为800r/s和1500r/s,但由于proteus仿真的直流电机不能达到那么高的转速,因此,在仿真的过程当中,利用每分钟多少转来显示,通过仿真不同的温度范围,都能达到预定的转速。而在实际当中,又通过修改pwm波的占空比,从而调节转速,测量电机转速的方法是测10秒内电机的转动圈数,然后乘上6就转换为电机每分

18、钟的转速,这样简单但是必然会导致一定误差,但是不影响总体。在程序中我只设置了3种不同温度控制电机转速,如果需要更加精确的温度控制,随时可以加上更加精细的温度档数。5 心得体会正所谓“纸上得来终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的。因此在学期末来临之际,我们迎来了单片机的课程设计,此次设计就是综合运用以前学过的C语言知识、Proteus仿真、keil软件、单片机的编程基础知识等来设计一个自动温度控制仪。 此次的课程设计我觉得最基础的应该是C语言知识。作为一种入门语言,我们在大一就已经学过,并且还参加了计算机二级考试。但当时学的时候就只了解一些语法知识,

19、编一些简单的程序,至于具体地能应用到哪个方面,从来就没有去考虑。以前也做过类似的课设,可当时也没怎么把它当回事,纯粹是打酱油,随便在网上搜几个程序就可以解决老师所布置下来的任务。其时,当时也并不明白原理性,就连操作也是看了别人的解释才稍微地明白了那么一点,更不用说去探究各种不同的方法来完成相同的任务,以此比较它们的性能好坏。这学期因为很闲,就了解了一下C语言的用法,因此经常跟它打交道,对于一些简单的芯片、开发板的电路结构都有了个基本的了解,因此这次跟上次比起来感觉还是顺手多了。但问题还是会常出现的,我们书本上的知识都是零散的,这就必须得把它们串起来,然后用C语言把它们一一实现,因此少不了上网查

20、阅各种资料,实在不懂的就跟同学们探讨,在这个过程中,大家都可以交流自己的想法,我们学会了如何去接受别人的观点,偿到了合作的甜头。在设计之前我根本就没有考虑到电机的转速特性,认为只要我们人为控制,都可以达到预定的要求,因此就直接使用了步进电机,但不管怎样好像都无法实现目标,最后在同学的提醒下才使用直流电机来提速。在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力, 使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获

21、和财富,使我终身受益。在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,这次课程设计使我明白了原来的那点知识是非常欠缺的,要学习的东西还很多,我们要明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。6 参考文献1 郭天祥.51单片机C语言教程M.北京:电子工业出版社,20092 楼然苗.51系列单片机设计实例M北京:北京航空航天大学出版社,20063 彭伟. 单片机C语言程序设计实训100例基于8051+Proteus仿真.北京:

22、电子工业出版社,20104 史翔,张岳涛.基于AT89C51单片机微电阻测量系统J. 甘肃科技,2007年8月5 王东峰,王会良.单片机C语言应用100例M.北京:电子工业出版社,2010附录 源程序Main.c :#include #include LCD.h#include DS18B20.h#include DS1302.hsbit outv=P20; /电机转动时PWM输出口;sbit ctr =P23; /控制加热设备输出uchar flag2=1;uchar tflag=1;uchar timeflag=0;uchar per=10; /PWM低电平所占时间void initall

23、();void chesu();void initT0();void DispTemp(uint tem);void DispTime();void DispSP();/*主函数*/void main() initall(); while(1) DispTemp(gettemp(); DispTime(); if(timeflag) DispSP(); /*温度显示函数*/void DispTemp(uint tem) if(tflag) /第一次调用温度显示函数 tflag=0; write_string(0,10,Tem:); if(tem=300&tem=330) per=5; else

24、 per=0; write_com(0x80+14); write_data(tem/100+48); write_data(tem%100/10+48); write_data(.); write_data(tem%10+48); write_data(0); /显示摄氏度/*DS1302时间显示函数*/void DispTime() uchar j; gettime(); write_com(0x80); for(j=0;jper) outv=1; else outv=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(times=200

25、) times=0; timeflag=1; /*电机转速显示函数*/void DispSP() uint count=0; timeflag=0; write_com(0xc0+7); count=TH1*256+TL1; write_data(count*6/100+48); write_data(count*6%100/10+48); write_data(count*6%10+48); TH1=0; TL1=0; LCD.c:#include#includeLCD.h sbit RS=P10; sbit EN=P11;uchar Pic=0x10,0x06,0x09,0x08,0x08

26、,0x09,0x06,0x00; /摄氏度的图案显示void delayms(uint x) uint i,j; for(i=0;ix;i+) for(j=0;j124;j+);void write_com(uchar com) RS=0; P0=com; delayms(5); EN=1; delayms(5); EN=0; void write_data(uchar com1) RS=1; P0=com1; delayms(5); EN=1; delayms(5); EN=0; void write_string(uchar col, uchar line, uchar *table) /

27、LCD中输出字符串 if(col=0) write_com(0x80+line); while(*table!=0) write_data(*table+); else if(col=1) write_com(0xc0+line); while(*table!=0) write_data(*table+); else return;void initLCD() uchar k; EN=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);/清屏; write_com(0x40); for(k=0;k8;k+) write_data(Pi

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

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