基于单片机的模拟快热式家用电热水器的设计.docx

上传人:可**** 文档编号:92946247 上传时间:2023-06-16 格式:DOCX 页数:35 大小:298.29KB
返回 下载 相关 举报
基于单片机的模拟快热式家用电热水器的设计.docx_第1页
第1页 / 共35页
基于单片机的模拟快热式家用电热水器的设计.docx_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《基于单片机的模拟快热式家用电热水器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的模拟快热式家用电热水器的设计.docx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、河南城建学院微机原理与接口技术课程设计报告模拟快热式家用电热水器的设计姓 名: 学 号: 0924131 专业班级: 0924131 指导老师: 所在院系:电气与信息工程学院 2015年12月 30 日一、评语(根据学生答辩情况及其报告质量综合评定)。二、评分指导教师签字: 年 月 日 目录第一章 背景意义和功能介绍51.1 背景意义51.2 功能要求5第二章 方案论证6第三章 系统硬件设计73.1单片机的选择73.2温度检测传感器的选择83.21 DS18B20简介83.22 DS18B20测温原理93.3 电源电路的选择93.4键盘的选择103.5显示器的选择103.51 概述113.6

2、报警系统123.7 加热系统124.1 主程序134.2 按键扫描处理子程序154.3 加热控制程序154.4 温度检测16第五章 源程序代码17第六章 课程设计体会23第七章 参考文献24附录一 快热式电热水器硬件原理图25附录二 快热式电热水器仿真图26附录三 快热式电热水器PCB图27 摘 要热水器已成为日常生活中不可缺少的家用电器,设计制造更实用、更方便、更安全、更节能的热水器是产品设计师和生产厂家不断追求的目标。快热式电热水器与普通电热水器最大的区别在于它取消了储水罐,热水随开随用,无须预热,减少了电能浪费。另外,它还具有体积小,使用安全,安装方便等优点。本文首先介绍了系统的总体组成

3、,硬件中先描述了整体结构和各模块的相互关系。本软件采用模块化设计。在主程序模块下分成若干彼此独立的分模块,本系统可以实现对热水器水温的实时控制,程序的可移植性强,有很好的推广、应用价值。性能达到目前国内的同类设备水平,且价格低廉。关键字: 51系列单片机控制 1602液晶显示 单片机 温度传感器 第一章 背景意义和功能介绍1.1 背景意义目前热水器已成为日常生活中不可缺少的家用电器,设计制造更实用、更方便、更安全、更节能的热水器是产品设计师和生产厂商不断追求的目标。快热式家用电热水器无需储水罐,热水即开即用,无需预热,减少了电能的浪费,应用价值极高。另外还具有体积小、使用安全、安装方便等优点。

4、设计采用数码管显示水温,有功率档调节,出水温度自动控制。系统硬件电路设计包括加热控制、温度检测等电路的设计,系统程序设计包括主函数程序、显示扫描子函数程序、按键扫描处理子程序、加热控制函数程序与温度检测函数程序等的设计。 对于家用电热水器来说,硬件系统是它的最基本的框架,是系统的所有功能的丛础。热水器控制电路数控部分采用AT89C51单片机作为控制核心。硬件的选择和所选硬件的性能对系统的功能实现以及系统的精度都有直接的影响,系统的设计成功与否很大程度上取决于硬件系统的设汁。本系统硬件方案论证包括单片机、温度检测传感器、加热控制驱动电路、电源电路、及键盘和显示等电路的选择。1.2 功能要求 当前

5、,热水器已成为日常生活中不可缺少的电器,设计制造更实用更方便更安全更节能的热水器是产品设计师和生产厂家不断追求的目标。快热式电热水器与普通电热水器最大的区别在与它取消了储水罐,热水随开随用,无需预热,减少了电能浪费。另外,它还具有体积小,使用安全,安装方便等优点。其设计要求如下:l 温度检测显示范围为0099,精确度为1。l 设置2个功率档位指示灯。设置3个轻触按钮,分别为电源开关键、“一档”键和“二挡”键。加热功率分0-2档。l 出水温度超过65时停止加热,并蜂鸣报警,温度降到45以下时恢复。l 内胆温度超过105时停止加热,防止干烧。 第二章 方案论证 按快热式电热水器的功能要求,决定采用

6、如图2.1所示的模块组成系统,主要包括电源电路、单片机控制器、温度检测电路、按键输入电路、LED数码管及指示灯电路、报警电路和加热控制电路。温度检测液晶显示单片机按键按钮蜂鸣报警电源加热控制图2.1 快热式电热水器系统组成框 第三章 系统硬件设计快热式热水器控制系统电路是由7部分电路组成:单片机系统及外围电路、电源电路、按键输入电路、液晶显示电路及指示灯电路、报警电路、加热控制电路和温度检测电路。 控制器采用成本低廉且工作可靠的AT89C52单片机和12MHZ的晶振。AT89C52对电源要求不甚严格,电源电路采用四节干电池供电。按键采用轻触小按钮。显示电路采用1602液晶显示屏,由两个三极90

7、12驱动。3个LED指示灯用于指示加热功率。报警电路采用5V的自鸣器。3.1单片机的选择STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空

8、闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。 图3.1 STC89C52RC引脚图3.2温度检测传感器的选择温度检测的方法很多,有热点阻,热电偶,热敏电阻,还有专门的集成测温传感器等。 方案一:热电式传感器是将温度变化转化为电量变化的装置,它利用敏感元件的电磁参数随温度变化而变化的特性来达到测量目的。通常把被测温度的变化转换为敏感元件的电阻变化、电势的变化,再经过相应的测量电路输出电压或电流,然后由这些参数的变化来检测对象的

9、温度变化。热敏电阻具有灵敏度高、体积小、较稳定、制作简单、寿命长、易于维护、动态特性好等优点。方案二:集成测温传感器如:DS18B20,直接将温度转换为数字信号传送给单片机。这种方法比较先进,电路也比较简单,所以采用这种方案。 3.21 DS18B20简介DS18B20的引脚分布(图2),由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。其可以分别在93.75ms和750ms内完成9位和12位的数字量,最大分辨率为0.0625,而且

10、从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)读写。 图3.2 1 DS18B20外部形状及管脚图3.22 DS18B20测温原理DS18B20的测温原理如图3所示,图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环

11、直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。斜率累加器预值低温度系数振荡器计数器1预值比较0温度寄储器高温度系数振荡器计数器20停止加1置位/清除 图3.22 DS18B20测温原理3.3 电源电路的选择方案一: 市电整流成+5v电压,电路比较复杂,要求较高,而且成本比较高。方案二: 采用干电池,使用方便,安全可靠,且使用时间较短,所以采用第二种方案。3.4键盘的选择方案一: 键盘选用行列式键盘,行列式键盘的接口方法,直接接口于单片机的I/O口上。键盘设置在行、列线的交点上,行、

12、列线分别连接到按键开关的两端。行线通过上拉电阻接5V,被拉在高电平状态。但线路较复杂,价格较昂贵。不适用。 方案二: 独立式按键是指直接用输入端口线构成的单个按键电路,常用于需要少量几个按键的计算机控制系统。每个独立式按键单独占用一根输入端口线,各键的工作状态不会相互影响。采用轻触式独立小按钮,即实用又方便,因为本电路对键盘的要求不高,所以采用这种方案。 图3.4 独立按键图3.5显示器的选择 方案一: 选择数码管,数码管成本低廉,但是只能显示数字,不能显示字母。方案二: LCD1602液晶显示屏,可以显示数字与字母,而且运用广泛。所以选择方案二。3.51 概述液晶(LiquidCrystal

13、)是一种高分子材料,因其特殊的物理、化学、光学特性,广泛应用轻薄显示器上。液晶显示器(LiquidCrystalDisplay,LCD)的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。 各种型号的液晶通常是按照显示字符的行数或液晶点阵的行、列数来命名。例如,1602表示每行显示16个字符,一共可以显示两行。这类液晶通常称为字符型液晶,只能显示ASCII码字符。 图3.51 1602液晶模块硬件原理图3.6 报警系统 采用蜂鸣器加LED二极管的声光报警电路,操作简单,价格低廉 图3.61 声光报警电路电路图 3.7 加热系统由于此电路电源为干电池,电压比较低,无法负载大型加热

14、器件,而且此为模拟热水器,所以加热系统只是一种理想状态,在此电路中只用一个LED发光二极管作为加热标志。在实际情况中可作为继电器的开关信号,开启加热系统。图3.71 加热系统简化图 第四章 系统软件的设计按快热式热水器的功能,系统程序必须实现显示扫描、按键扫描处理、加热控制和温度检测(包括超温报警)4项任务。51系列单片机实现多任务运行的方法就是分时复用,在程序设计时更要相应地分配好各任务的CPU占用时间。对于以上几个任务稍加分析可以看出,显示扫描、按键扫描和加热控制任务相对而言有实时要求,而温度检测任务则可用定时(0.51S)实现。4.1 主程序系统在上电复位后,先对温度寄存器、档位寄存器赋

15、默认值,并进行清除超温标志,设置定时器及中断系统的工作方式等初始化工作,图4.1所示为主程序流程图。由于51系列单片机没有停机指令,所以可以利用主程序设置死循环反复运行各个任务。把有实时要求的子程序(显示扫描、按键扫描、加热控制)放在最内层的循环中,计算其运行一次占用的CPU时间,然后根据温度检测定时的间隔时间,计算出该循环的循环次数。本例中每运行一次有实时要求的子程序(即显示扫描、按键扫描、加热控制)约占用5msCPU时间,运行测温程序的时间间隔为0.5s,那么循环次数应为100次。开始系统初始化i=1按下扫描若有键按下,i=6显示扫描加热控制温度检测刷新显示温度完成100次循环i=0? 图

16、4.1 主程序流程图4.2 按键扫描处理子程序按键扫描子程序负责逐个扫描档位“+”键、档位“-”键和开关键是否被按下,若有键下,则作出相应处理。图4.3 所示为按键扫描子程序流程图。发按键音、消抖加热键位加1返回值1加热档位减1返回值2关机,停止输出等待开关键再次按下开机,恢复工作返回值0开始结束+键按下?开关键按下?-键按下?发按键音、消抖发按键音、消抖 图4.3 按键扫描子程序流程图4.3 加热控制程序加热控制程序根据用户设定的加热档位和当前的状态,决定是否加热和控制加热功率并点亮相应的指示灯。若有超温标志,还应打开蜂鸣器报警。4.4 温度检测DS18B20数据采集子程序的设计温度采集程序

17、如图所示。编程时一定要遵守DS18B20时序,否则DS18B20将不会响应。是初始化89S52送复位脉冲DS18B20送存在脉冲送CONVERT T命令89S52送复位脉冲DS18B20送存在脉冲送SKIP ROM命令送READ SCRTCHPAD命令读两字节数据89S52送复位脉冲DS18B20送存在脉DQ为高电平送SKIP ROM命令否 图4.4 温度采集程序流程 第五章 源程序代码#include#define uint unsigned int#define uchar unsigned char sbit rs=P10;/LCD1602位定义sbit rw=P11; /LCD1602

18、位定义sbit e=P12;/LCD1602位定义sbit DW1=P26; sbit DW2=P27;sbit Heating=P21;/加热指示uchar code table1=NOW Temper: C;/液晶屏显示内容uchar code table2=Tempers testing;/液晶屏显示内容sbit da=P14;/调节加sbit db=P15;/调节减sbit BEEP=P20;/蜂鸣器接口sbit DQ=P13;/温度数据口int temperature;/全局变量 温度/*LCD1602*/ void delay1(uint z) /显示屏延时函数uint x,y;f

19、or(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) /LCD1602写指令函数rw=0;delay1(5);rs=0;delay1(5);e=1;delay1(5);P0=com;delay1(5);e=0;delay1(5);void write_date(uchar date)/LCD1602写数据函数rw=0;delay1(5);rs=1;delay1(5);e=1;delay1(5);P0=date;delay1(5);e=0;delay1(5);void init()/LCD1602初始化函数uchar num;e=0; /

20、 时序表e初始为0write_com(0x38); /设置16*2显示,5*7点阵,8位数据接口write_com(0x0c);/设置光标write_com(0x06);/光标自动加1,光标输入方式write_com(0x01);/清屏write_com(0x80);/设置初始显示位置for(num=0;num16;num+) write_date(table1num);/显示数组table1的内容delay1(1);write_com(0x80+0x40);for(num=0;num16;num+)write_date(table2num);/显示数组table2的内容delay1(1);

21、void temperature_dispaly(char add,char dat) /温度显示函数:第一个:参数的地址,第二个:参数的内容uchar shi,ge;shi=dat/10; /把温度的十位提取出来ge=dat%10; /把温度的个位提取出来write_com(0x80+add); /要写的地址write_date(0x30+shi); /十位的内容 1602字符库write_date(0x30+ge); /个位的内容1602字符库/*/void delay(uint y) /DS18B20延时函数(仿真用)while(y-); void write_byte(uint dat

22、)/写一个字节uchar i;for(i=0;i=1; /下次写作准备,移位数据delay(4); uchar read_byte(void)/读一个字节,返回值uchar i;uint value;for(i=0;i=1;DQ=1;/释放总线if(DQ)value|=0x80; /DQ=1,value取1delay(4);return value;void ds18b20_init() /初始化函数uint n;DQ=1;delay(8); DQ=0;delay(80); /低电平480960usDQ=1;/总线释放delay(8); /等待50100usn=DQ; /读取复位状态delay

23、(4);int readtemperature()/读整数部分 int a,b;/高八位,低八位ds18b20_init();write_byte(0xcc); /跳过rom匹配,跳过读序列号的操作,可节省操作时间write_byte(0x44); /启动温度检测delay(300); /测温度ds18b20_init(); /开始操作前需要复位write_byte(0xcc);/跳过rom匹配write_byte(0xbe); /写读寄存器中温度值的命令a=read_byte(); /low 低位开始读取b=read_byte(); /high 高位开始读取b=0)/如果温度大于等于0b=b

24、*0.0625;/直接乘以0.0625write_com(0x80+12);/在LCD1602对应的位置不写内容write_date(0x20); else/温度小于0b=b+1;/取反码再加一b=b*0.0625;/再运算write_com(0x80+12);/在LCD1602对应的位置写一个负号write_date(0x2d);return b;/返回b,此时以表示温度void KEY(void)if(da=0)/按键按下delay1(2);/延时消抖if(da=0)/按键确实按下while(!da);/等待按键释放if(temperature45)&(temperature45)&(te

25、mperature45)&(temperature65)/如果实际温度值大于设置值BEEP=1;DW1=1;DW2=1;/启动蜂鸣器elseBEEP=0; /关闭蜂鸣器/*TC35*/void Sys_Init(void)TMOD=0x21;/设置定时器1的工作方式为方式2TH1=0xfd;TL1=0xfd;/设置串行口波特率为9600TR1=1;/开启定时器1SCON=0x50;/设置串行口的工作方式为方式一,允许接收PCON=0x00;ES=1;/开串行口中断EA=1;/开总中断BEEP=0;/关闭蜂鸣器/void Delay_0_5s(uint y) /延时1s/uint a;/for(

26、a=0;a10*y;a+) /20为1s/TH0=(65536-50000)/256;/TL0=(65536-50000)%256;/TR0=1;/while(!TF0);/TF0=0;/void main()Sys_Init();/单片机系统初始化init();/液晶屏初始化temperature=readtemperature();/读取实时温度temperature_dispaly(13,temperature);/显示温度到LCD1602temperature=readtemperature();/读取实时温度temperature_dispaly(13,temperature);/显

27、示温度到LCD1602/外部中断初始化while(1)temperature=readtemperature();/读取实时温度temperature_dispaly(13,temperature);/显示温度到LCD1602KEY();/扫描按键程序 第六章 课程设计体会在这段时间里,大家都在准备实践。这个实践既是对理论知识的检验,也是动手能力的表现。实践是为我们即将步入社会工作前的热身锻炼,让我们把书本上的知识和实践相结合。在老师的细心指导下,为期两个月的实践即将结束,在设计的过程中学了很多东西,进一步对本专业知识的加深和了解。当老师把课题和要求下发后,我们就开始查阅相关的资料,并写开题报

28、告,做好实践的前期准备工作,好的开端是成功的一半。也对后面的设计有帮助。我所做的课题是快热式电热水器的设计,老师给了我们比较多的参考资料,由于平时所学甚少,在此设计时我感到很吃力,还好现在互联网技术发达、以及信息比较广发,这才使得我这个设计顺利完成。其实,我的这个课题接近我们的生活,在我们身边随处可见,我们也经常会碰见,只是有时候很匆忙没有来得急去想其工作原理。在做此实践时我得出一个结论:知识必须通过应用才能实现其价值。有些东西自以为学会了,但是用到它时才知道是两回事。所以我认为,能够熟练地运用所学的知识的时候才是真正意义上的学会了这方面的知识。这次实践使我在处理实际问题上,有了很好的锻炼。在

29、考虑问题方面,也有了一定的进步。因为一个实践是要综合各方面知识才能完成,在学习的时候,很多课程都是相对独立的,有的课程有联系,但是我们想不到从何处把它们联系到一起来。而在实践中,许多问题必须综合起来考虑,单独的哪一门课程是解决不了问题,这就提高了我们综合各方面知识运用的能力,将各方面问题与所学的专业知识联系起来,这样更容易解决所出现的问题。首先要从大局出发,每个工程都是由几个模块组成,所以我们要把这些模块确定好,每个模块的设计都不一样,模块设计完成后,就是要很好的把这些模块连接起来,组成整体。连接后,就要对其进行调试,这个调试是个很复杂的过程。就相当于把实践各个方面都要联系起来,一个一个问题的

30、解决,使其达到最佳状态。实践可以检验出我们对所学的知识掌握能力,哪些地方已经掌握了,哪些地方还没掌握。通过实践就可以清楚的知道自己在大学三年里是否学到了,还是在学校玩了三年。在此,我非常感谢老师。同时,在做本实践的过程中,一些其他的老师和同学还给了我建议与帮助。在此,同时感谢所有在实践中给我帮助的老师和同学们,谢谢! 第七章 参考文献【1】 单片机原理及接口技术/李朝青杭州:北京航空航天大学出版社,1998【2】 单片机基础【M】/李广第北京:北京航空航天大学出版社,1994【3】 数字电子技术基础(第三版)/阎石一北京:高等教育出版社,1989【4】 电子技术基础(第五版)/康华光北京:高等教育出版社,2006【5】 例说8051/张义禾,陈敌北北京:人民邮电出版社,2006【6】 8051单片机数据传输接口与扩展技术及应用实例/杨金岩,郑应强,张振仁北京:人民邮电出版社,2005【7】 单片机工程实训指导/楼兰苗,李光飞北京:北京航空航天大学出版社,2007【8】 电力电子技术/ 石新春,杨京燕,王毅北京:中国电力出版社,2006【9】 单片机原理及应用M/李建中西安:西安电子科技大学出版社,2003 附录一 快热式电热水器硬件原理图 附录二 快热式电热水器仿真图 附录三 快热式电热水器PCB图35

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁