课程设计论文-基于单片机的水温控制系统的设计.doc_第1页
课程设计论文-基于单片机的水温控制系统的设计.doc_第2页
课程设计论文-基于单片机的水温控制系统的设计.doc_第3页
课程设计论文-基于单片机的水温控制系统的设计.doc_第4页
课程设计论文-基于单片机的水温控制系统的设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的水温控制系统的设计 麦启庆 201231200324 罗志伟 201231200321 冯兆祺 201231200304 洪佳毅 201231200309 韦 波 201231200327 韦家豪 201231200328 指导老师:邹恩老师学院名称:工程学院 专业名称:自动化论文提交时间:2015/1 论文答辩时间:2015/1 摘 要 本系统的设计可以用于热水器温度控制系统和饮水机等各种电器电路中,它以单片机89C52RC为核心,通过液晶显示器显示温度以及两个按键实现人机对话,使用温度传感器来实时采集样本温度并通过液晶显示器显示出来,同时采用发光二极管来指示系统的运行状态,例如:温度设置、加热状态,停止加热等系统状态,整一个系统通过两个按键实现升降温,通过断通电源实现系统的工作与否。关键词:单片机89C52RC 液晶显示频 单总线 温度传感器THE DESIGN OF THE CONTROLLER FOR WATERTEMPERATURE BASED ON MCUABSTRACT This system can be used in the design of the water heater temperature controlsystem and various electrical appliances such as rice cookers circuit.The core of it is a microcomputer 89C52RC.Itrealize interactive between people and device by three digital display temperature and four keys. The temperature conversion1-WIRE BUS chip DS18B20real-time sampling and display the temperature hrough the digital and provide various indicator to indicate different ststes of two keys to set up the temperature and control mode.KEYWORDS: Microcomputer Digital display 1-WIRE BUS Temperature sensor目录1 前言.42 总体方案确定.5 2.1硬件总体设计.5 2.1.1 硬件系统子模块.5 2.2软件系统总设计.63 硬件系统设计.7 3.1 单片机最小系统电路.7 3.2 按键电路8 3.3 液晶显示器电路.8 3.4 电热器电路.9 3.5 总硬件电路.104 系统软件设计.11 4.1 主程序流程图.11 4.2 模块程序流程图.12 4.2.1 温度读取模块.12 4.2.2显示模块.12 4.2.3 键位系统模块.145 系统调试.15 5.1 调试操作.15 5.2 问题处理.15 5.3 调试结果.15总结.16附录一:系统程序17附录二:原件清单.231 前言 本系统的设计可以用于热水器温度控制系统和饮水机等各种电器电路中,它以单片机89C52RC为核心,通过液晶显示器显示温度以及两个按键实现人机对话,使用温度传感器来实时采集样本温度并通过液晶显示器显示出来,同时采用发光二极管来指示系统的运行状态,例如:温度设置、加热状态,停止加热等系统状态,整一个系统通过两个按键实现升降温,通过断通电源实现系统的工作与否。 温度控制系统几乎可以说无处不在,热水器系统、电饭锅、电热扇等价等家电产品以至更加高级的电子设备,均需要提供温度控制功能。以计算机为例,当中央处理器运行速度加快,所需要散发的热量就加大,这就要求散热器增加运行功率,以免计算机系统因为过热而受损,有关必须加强温度过热保护功能。 传统的温度采集电路繁琐,需要经过温度采集,信号放大、滤波等操作这样的系统显然存在着很大的不足之处,抗干扰能力更是低的可怕。现在使用的温度传感器不但功率低,而且准确率高,最主要的是使用方便。 自动控制器总是向着高性能、性能稳定、可远程监控、控制现场温度需要而做的课题,具有很大的前景。 本系统的核心控制芯片选用的是51系列的89C52RC单片机,我们都知道,与单片机有关的系统都具有很大的特点。l 单片机构成的应用系统有较大的可靠性l 系统构建简单,能实现系统的功能l 由于构成的系统是一个计算机系统,很多的功能是由软件实现,具有柔性特点l 有着优异的性价比2 总体方案确定 2.1硬件总体设计 设计并且制作一个基于单片机的热水控制系统的电路,总体的硬件结构框架如图2-1液晶显示器指示灯继电器键盘温度传感器单片机89C52RC电源图2-12.1.1硬件系统子模块 (1)单片机最小系统电路部分 (2)键盘扫描电路部分 (3)液晶温度显示和运行指示灯电路部分 (4)温度采集电路部分 (5)继电器控制部分2.2软件总体设计好的设计方案可以减少软件设计的工作量,提高软件的通用性,扩展性和可读性。本系统的设计方案和步骤:(1) 根据需要按照系统的功能要求,划分模块。(2) 明确各模块之间的数据流传递关系,力求数据传递少,以增强各模块的独立性,便于软件的编制与调试。(3) 确定开发环境,选择编码语言,模块化设计。(4) 按照开发式软件结构,将模块有机结合,完成系统。本次的设计主要采取了模块化设计软件软件程序:(1) 液晶显示模块(2) 键位温度传感模块(3) 控制模块详细的程序见附录一3 硬件系统设计3.1单片机最小系统电路因为89S52单片机自带8kROM和256字节RAM,因此不必构建外内存电路,如图3-1,单片机最小系统带有复位电路和振荡器电路。要注意的是,单片机的31脚必须接高电平,否则系统不能运行。图3-13.2键盘电路键盘系统是整个系统的主要输入设备,单片机的键盘为编码键盘和非编码键盘。编码键盘采用硬件线路来实现键盘的编码,每按一个键,键盘能够自动生成按键代码,并有都去功能。图3-2为系统键盘电路,主要有两个键位,主要是复用为设定温度时的加减。Key1:实现温度设定的加Key2实现温度设定的减图3-23.3 液晶显示器电路本系统的温度显示主要液晶显示器来实现温度设定值以及样本实时温度值的表示。注意好引脚的接法以及注意1、2脚的可调电阻的连接以及接地脚的识别。本系统的液晶显示器接法如下图3-3 图3-33.4加热器电路 要实现控制水温,必要的就是让电热器也接入到系统之中,运用单片机的运行状态,将信号传输到继电器,实现电热器的自动开关,实现真正的自动控制调温,要注意加粗加热器电路介入部分的连接电路,以免出现电路过大,小电路难以承受,过热使得整个系统崩溃。本系统的电热器介入方式为下图3-4:(注意,必须对接入电路进行加粗) 图3-43.5总硬件电路图3-54 软件系统设计4.1主程序流程图本系统采用反复循环查询方式对系统进行辨别,从而调整系统的工作状态,来达到自动控制温度的目的,其中也加入了人工输入的检测。下图4-1是本系统的主程序流程图控制加热图4-14.2 模块流程图以及源程序 4.2.1温度读取模块 本系统的温度传感器构成的温度读取模块使用的是DS18B20温度传感器。由于其采用的是一根数据线实现数据的双向传输,而对于89C52单片机来说,硬件上不支持单总线协议,因此,我们采用了软件模拟的放啊来实现单片机对传感器的访问。 由于DS18B20是在一根I/O线上读写数据的,因此,对读写有着严格的时序要求,DS18B20的读写时序如以下情况: 读时序:(1) 对于18B20的读时序分为0和1时序过程。(2)对于18B20的读时序是从单总线拉低之后,在15s之内得到释放总线程序流程图如图3-5所示 图3-44.3显示模块 本系统通过采用液晶显示器来实现对温度的显示,主要通过编程对该功能的实现。其程序在附录中可以找到。4.4键盘控制模块 CPU通过检测各数据线的状态就可以知道是否有键位闭合,键盘程序的功能检测是否启动。其流程图如下图4-4: 图4-4 5系统调试 5.1硬件测试 该部分主要是对焊接好的电路进行检测,主要是以下的检测:(1)焊接点是否通路。(2)焊接的电路是否与地短路。(3)焊接的电路正反两面通断性是否一致。(4)对实验用到的电器进行检测,看看是否有损坏的电器。检测到的问题以及解决办法:(1)电路出现与地短路,将焊锡再一次熔就好了。(2)其中一个1000欧姆电阻被误用10k电阻焊接,熔掉重新焊接就好了。(3)液晶显示器使用不正常,正常通断。换了一个正常的。 5.2软件调试软件调试主要是分模块依次下载到单片机里进行实际操作,主要是就考录到实际情况与仿真存在一定的误差,所以采取直接调试的方法,主要是看程序是否按照期望的起到应该起到的功能,主要出现的问题都是函数定义,语句缺少的毛病,经过几次的校对以及修改,都能正常通过。其中控制部分的程序因为编写者大意,定义了两次main函数,导致进程有点慢。其他的都在一两次的调节后,实现了正常功能。 5.3 实验结果 经过调试后,本系统能实现预期的目的,在室温到100之间能以1的阶梯进行对水的加热,同时能稳定在预设温度上,而稳定在0.1级别的温差内,传感器以及液晶显示器能准确的将实时温度表示出来,除了没有出拔电源的方法能令系统停止工作外,一切正常。总结经过本次的课程设计,不但使得我们对于单片机这门学科有了更加深入的了解,懂得了如使用课本的知识结合实际情况来完成单片机的设计任务。这对于我们适应现代化的工业生产技术发展起到了很好的启发作用,也提高了我们的工程思维能力以及工程设计的实际操作能力,为以后的工作立下了基础。此外,我们还认识了51系列的89C52等芯片的引脚功能以及使用方法,实际的结合各种芯片完成需要的工作状态使得我们走出了课本,走进了实际生活中去,同时,在这两周的工作之间,也让我们认识到了工程设计的严谨性,往往会因为一时的大意,就为之后的工作造成了很大的阻碍,另外,因为这次的设计是小组作业,分开模块进行设计,这也要求了大家的交流,明白了分工合作时,交流是很重要的,这两周,我们宿舍基本都在“过来看看这段程序行不行”、“把电笔接上,要改一点东西”,尽管像流水作业,但是大家都很乐在其中。出现问题也是在所难免的,不管是硬件还是软件,我们都出现过或大或小的问题,在处理杂这些问题的过程中,也是的我们更加严谨的进行接下来的工作,出现问题不可怕,学生,就是不怕错的一个群体。或许有时候觉得很烦,调试一次又一次还是不能成功,总想着还是准备实验的报告吧,但是不甘心,最后我们还是做了出来,大家的功劳或大或小,但是,都很重要。这一次的设计,我们考虑少了一个系统的开关按键,以至系统需要用拔插头的方法才能停止工作,这是很大的失误,往后的设计中,应该更加详细的考虑现实生活的需求方面,这样或许能把产品做的更好。附录一:系统程序#include #include#define uchar unsigned char#define uint unsigned intsbit ds=P34;sbit lcden=P31;sbit lcdrs=P33;sbit lcdrw=P32;sbit key_up=P06;sbit key_down=P07;sbit led=P30;sbit switch_220V=P27;uchar code Temp_show=Temp: ;uchar code Set=Set : ;uchar code ON=ON!;uchar code OFF=OFF!;uchar zi=0x16,0x09,0x08,0x08,0x08,0x09,0x06,0x00; /自定义字符摄氏度uchar now_temp5,now_set_temp5;uchar num,switch_flag;uint temp;float f_temp,set_temp=60.0;void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void keyscan(void) if(key_up=1) delay(5); if(key_up=1) set_temp=set_temp+1; while(!key_up); if(key_down=1) delay(5); if(key_down=1) set_temp=set_temp-1; while(!key_down); void control(void) if(set_temp-f_temp1.0) led=0; P2=0XFF; switch_flag=1; if(set_temp-f_temp0.5) led=1; P2=0X00; switch_flag=0; void write_com(uchar com) lcdrs=0; P1=com; delay(5); lcden=1; delay(5); lcden=0;void write_data(uchar date) lcdrs=1; P1=date; delay(5); lcden=1; delay(5); lcden=0;void display(void) write_com(0x80); for(num=0;num5;num+) write_data(Temp_shownum);delay(5); write_com(0x80+0x40); for(num=0;num5;num+) write_data(Setnum);delay(5); void display_Temp(void) write_com(0x80+5); for(num=0;num4;num+) write_data(now_tempnum);delay(5); write_data(0x00); delay(5); write_com(0x80+0x40+5); for(num=0;num4;num+) write_data(now_set_tempnum);delay(5); write_data(0x00); delay(5);void display_ON_OFF(void) write_com(0x80+0x40+12); if(switch_flag=1) for(num=0;num3;num+) write_data(ONnum);delay(5); else for(num=0;num4;num+) write_data(OFFnum);delay(5); void setzi(void) uchar i; write_com(0x40); for(i=0;i0)i-; j=5; ds=1; while(ds!=0 & j!=0) i=4; while(i0)i-; j-; ds=1;bit tempreadbit(void) uint i; bit dat; ds=0;i+; ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return(dat);uchar tempread(void) uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); return(dat);void tempwritebyte(uc

温馨提示

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

评论

0/150

提交评论