基于单片机的可控温饮水器 (1).doc_第1页
基于单片机的可控温饮水器 (1).doc_第2页
基于单片机的可控温饮水器 (1).doc_第3页
基于单片机的可控温饮水器 (1).doc_第4页
基于单片机的可控温饮水器 (1).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的可控温饮水机结题报告一,系统功能描述 近些年来,家电领域产品变化,技术发展,更新换代之快简直令人目不暇接,但作为白色家电的饮水机变化似乎不太大。传统饮水机有两个出水口,一个热水口,水温在100度左右,一个冷水口。随着时代的发展,人们生活水平日益提高,现在只能提供冷热两种选择的饮水机已经不能满足人们的需求,本课题针对这方面准备开发出一种智能温控系统,来控制饮水机中的出水温度。 所谓智能温控,就是通过感温头精确感应,把水温的变化传递给中央控制芯片,由芯片控制加热系统使水温达到显示屏上的设定值,使用者只需根据需要设定不同的温度即可。二,系统总体法案设计 1602液晶显示器DS1820测温键盘输入89C52单片机输出控制电源图一图一为基于单片机的可控温饮水机系统构成方框图。STC89C52单片机为控制核心,它既负责读取DS18B20测得的水温并输出至液晶模组显示,同时又产生实时时钟供液晶显示,并且还负责键盘输入扫描及输出控制加热器的运行等。三,器件选择。1,单片机:STC89C52单片机选择理由:,超低功耗, 掉电模式 典型功耗 0.5uA 可由外部中断唤醒,中断返回后,继续执行原程序。,空闲模式典型功耗 2mA,正常工作模式 典型功耗 4mA-7mA,超强抗干扰, I/O 口输入/ 输出口经过特殊处理,很多干扰是从I/O 进去的,每个I/O 均有对VCC/ 对GND二级管箝位保护。. 电源单片机内部的电源供电系统经过特殊处理,很多干扰是从电源进去的. 时钟单片机内部的时钟电路经过特殊处理,很多干扰是从时钟部分进去的. 看门狗单片机内部的看门狗电路经过特殊处理,打开后无法关闭,可放心省去外部看门狗. 复位电路单片机内部的复位电路经过特殊处理,很多干扰是从复位电路部分进去的,STC89C51RC/RD+系列单片机为高电平复位。推荐外置复位电路为MAX810/STC810,STC6344,STC6345,813L,706P;也可用R/C 复位,10uF 电容/10k 电阻,22uF/8.2k 等。6.宽电压,不怕电源抖动 5V: 6v - 3.4v 3V: 4v - 1.9v,降低单片机对外部的电磁辐射 (EMI)- 三大措施,禁止ALE 时钟信号输出,外部时钟频率降一半,6T 模式: 传统的8051 为每个机器周期12 时钟,如将STC 的增强型8051 单片机在ISP 烧录程序时设为双倍速(即6T 模式,每个机器周期6 时钟),则可将单片机外部时钟频率降低一半,有效的降低单片机时钟对外界的辐射, 单片机内部时钟振荡器增益降低一半: 在ISP 烧录程序时将OSCDN 设为1/2 gain可以有效的降低单片机时钟高频部分对外界的辐射,5V单片机外部晶振频率24MHz时,3V单片机外部晶振频率16MHz 时,将OSCDN 设为1/2 gain。2,温度传感器:DS18B20选择理由:,独特的单线接口方式。, 在使用中不需要任何外围元件。, 可用数据线供电,电压范围为3.05.5V。, 测温范围为55125度。固有测温分辨率为0.5度。, 通过编程可实现912位的数字读数方式。最高测温精度可达0.0675度。最大转换时间为200ms。, 用户可自设定非易失性的报警上下限值。, 支持多点组网功能。, 负压特性。电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。3,液晶显示器:1602液晶选择理由:, 标准1602LCD,标准的接口特性。, 液晶显示屏是以若干个5x8点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。, 具有字符发生器ROM可显示192种字符。, 具有64个字节的自定义字符RAM,可自定义8个5x8字符或四个5x11字符。, 模块结构紧凑、轻巧、装配容易。, 单+5V电源供电。, 低功耗、长寿命、高可靠性。四,电路原理图五,程序源代码流程图如下源代码如下#include#include#define uint unsigned int#define uchar unsigned charuint t=50;sbit dula=P26;sbit wela=P27;sbit DQ=P22; /连接DS18B20sbit en=P34; /连接1602 E脚sbit rs=P35; /连接1602 RS脚sbit s1=P30;sbit s2=P31;sbit s3=P32;sbit rd=P37;sbit R=P23;sbit Y=P24;uchar code table=TEMP NOW:;uchar code table2=TEMP SET:;uchar code table1=.;uchar tplsb,tpmsb; / 温度值低位、高位字节 uint temp; uint s1num=0;uint flag=0;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*产生复位脉冲初始化DS18B20*/void reset(void)uint i;DQ=0;i=100;while(i-);DQ=1;/ 产生上升沿i=4;while(i-);/* 等待应答脉冲*/void wait(void)uint i;while(DQ);while(DQ); / 检测到应答脉冲 i=4;while(i-);bit readbit(void)uint i;bit b;DQ=0;i+;DQ=1;i+;i+;/ 延时15us以上,读时隙下降沿后15us,DS18B20输出数据才有效b=DQ;i=10;while(i-);return (b);/* 读取数据的一个字节*/uchar readbyte(void)uchar i,j,b;b=0;for(i=0;i8;i+)j=readbit();b=(j1);return(b);/*写数据的一个字节,满足写1和写0的时隙要求*/void writebyte(uchar b)uint i;uchar j;bit btmp;for(j=0;j1; / 取下一位(由低位向高位)if(btmp)DQ=0;i+;i+;DQ=1;i=10;while(i-);/ 整个写1时隙不低于60uselseDQ=0;i=10;while(i-); / 保持低在60us到120us之间DQ=1;i+;i+;/* 启动温度转换*/void convert(void)reset();/ 产生复位脉冲,初始化DS18B20wait();/等待DS18B20给出应答脉冲writebyte(0xcc);/ skip rom 命令writebyte(0x44);/ convert T 命令/* 读取温度值*/uint readtemp(void)float tt;reset();wait();delay(1);writebyte(0xcc);/ skip rom 命令writebyte(0xbe);/ read scratchpad 命令tplsb=readbyte();/ 温度值低位字节(其中低4位为二进制的小数部分)tpmsb=readbyte();/ 高位值高位字节(其中高5位为符号位)temp=tpmsb;temp=8;temp=temp|tplsb;tt=temp*0.0625;temp=tt*10+0.5;return (temp);void write1602_com(uint com)rs=0;en=0;/rw=0;P0=com;delay(5);en=1;delay(5);en=0;void write1602_date(uchar date)rs=1;en=0;/rw=0;P0=date;delay(5);en=1;delay(5);en=0;void init1602(void)/1602初始化 EA=1;EX0=1;IT0=1;dula=0;wela=0; en=0;write1602_com(0x38);write1602_com(0x0c);write1602_com(0x06);write1602_com(0x01);void display(uint temp)uchar a1,a2,a3,a4;a1=temp/100;a2=temp%100;a3=a2/10;a4=a2%10;write1602_com(0x80+0x09);/第一行第9个位置显示温度的十位、个位和小数点后一位write1602_date(a1+0x30);delay(1);write1602_date(a3+0x30);delay(1);write1602_date(table10);delay(1);write1602_date(a4+0x30);delay(1);void display2(void)uchar a1,a2;a1=t/10;a2=t%10;write1602_com(0x80+0x40+0x09);/第一行第9个位置显示温度的十位、个位和小数点后一位write1602_date(a1+0x30);delay(1);write1602_date(a2+0x30);delay(1);write1602_date(table10);delay(1);write1602_date(0x30);delay(1);void display1()uchar num;write1602_com(0x80); /在第一行开头显示“TEMP NOW:”for(num=0;num9;num+)write1602_date(tablenum);delay(5);write1602_com(0x80+0x40); /在第二行开头显示“TEMP SET:”for(num=0;num9;num+)write1602_date(table2num);delay(5);void keyscan() rd=0;if(s1=0)delay(10);if(s1=0) s1num+;flag=1;while(!s1);if(s1num=1)write1602_com(0x80+0x40+10);write1602_com(0x0f); if(s1num=2) s1num=0;write1602_com(0x0c);flag=0;display2();if(s1num=1)if(s2=0)delay(1);if(s2=0)while(!s2);t+;display2();write1602_com(0x80+0x40+10); if(s3=0)delay(1);if(s3=0)while(!s3);t-;display2();write1602_com(0x80+0x40+10); void main()uint n,a1,a2,a3;init1602();convert();delay(1000);/ 启动温度转换,需要750msreadtemp(); / 读取温度while(1) keyscan();if(flag=0) display1(); display2(); convert(); temp=readtemp(); a1=temp/100; a2=temp%100; a3=a2/10; n=a1*10+a3; if(t(n+1) R=0; Y=1; else R=1; Y=0; display(temp); 六,实验测试结果控制温度可调范围0-100度;温度计显示20304050607080测量温度20.229.639.249.859.469.479.3误差0.20.40.80.20.60.60.7温度测量误差为T=(0.2/20+0.4/30+0.8/40+0.2/50+0.6/60+0.6/70+0.7/80)/7=1.066%七,课题总结我们来自电子科学与工程学院,在2009年十月份在王老师的指导下申报本科生科技创新项目并得到批准,开始了查找资料和设计的过程.在这近一年的时间中,我们几个人分别了解了各方面已有的成果,分析它们的优劣.有关电路的部分中各个环节都提出了不同的解决方案,再进行比较,争论,考察,模拟,分析,最后终于确定了组成部分设计的最终方案.方案定下之后,我们再回到各自的工作中,分头行动,到市场买元器件,买设备,查遍了网上能用到的所有资料,终于购齐了所有的材料.在确定温度传感器的使用产品上,我们从备选的几种产品中,进行了优化选择。现在回顾设计和制作的过程,想到每一次走的弯路,想到每一次调试成功后的喜悦,想到从最初的构想到最终的作品,成就感油然而生,但更多的收获是以前所没有想到的,是无形中的,我们身心能力得到锻炼的同时,感想还有很多.从无从下手到设计完成,我们拥有很多精彩的瞬间.从没有任何设计经验开始,我们逐渐摸索和思考设计的规律,回想以前学过的知识,到图书馆查找资料,到互联网上一个网站一个网站的搜索,试图把书本上学到的知识查到的资料都应用到实际中,却发现很多知识都是需要灵活思考和应用的.当我们编制的程序不能顺利执行时,我们明白什么事情都是经过磨练的,当我们所选的元件不能实现我们所需要的功能时,我们明白了设计者必须考虑加工工艺,装配工艺这个老师曾不止一次强调过的问题,明白了作为一体化工程的一个组成部分,不管是设计,制造还是装配,都要充分考虑上一步工作做了什么,考虑需要我们完成什么任务,考虑下一

温馨提示

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

最新文档

评论

0/150

提交评论