智能饮水机51单片机程序

合集下载

基于单片机的简易净水器放水控制系统

基于单片机的简易净水器放水控制系统

其实,谢是我的一个师父,为人和善,是一个很慈祥的年轻人,在我现在的工作中教会了我很多东西,好了不罗嗦了,要不看官们该烦了,言归正传,其实我的单片机基础也就是三年半以前在学校了解的一点皮毛而已,但我固执的认为终有一天我要成为一名伟大的单片机工程师,也许有人说了单片机工程师有什么好伟大了,想想,好像还真没什么好伟大的,呵呵!那就让我们爱上单片机吧,我综合了一下谢的情况:第一:他有一个24V的电源。

第二:他还有一个工作电压为24V的电磁阀,可作为放水开关。

第三:他有时候想接一壶水,但有时候想接半壶水。

第四:他还想有暂停功能,以及点动功能。

第五:他还想要些工作状态指示灯。

好吧,就这些吧,要是让他提完他的要求,我估计可能就没完!既然他有了电磁阀以及电磁阀的工作电源,那就好办多了,下面我列了一下可能需要的清单:①STC单片机一个---------(谢:申通也出单片机了吗?:呃……)②微动开关若干----------X 若干③LED指示灯若干-------X 若干④PNP型三极管8550一个⑤5V电磁阀一个⑦复位电路(上电复位):0.1uF极性电容、4.7KΩ电阻⑧其他电阻若干。

下面是我在protuse中的仿真图:(图中未画出单片机的时钟电路,复位电路,以及电磁阀的接线)实现功能:①按一下半桶微动开关,谢就可以接到半桶水了。

②按一下一桶微动开关,谢就可以接到一桶水了。

③如果想暂停一下,那就按一下暂停微动开关,在按一次就④如果差一点就满了,那就请按下点动开关吧;如果已经接满水了,但还在放水,请按暂停键或者关闭单片机,本设计的主要原理:延时。

好吧,我把程序贴在这里吧,也好显得我写了些东西,哈哈。

#include<reg51.h>#define key P1sbit K = P2^0; //控制继电器sbit K1= P1^2; //点动放水按键sbit K2= P1^0; //半桶水按键sbit K3= P1^1; //一桶水按键sbit led1=P2^1;//半桶水工作指示灯sbit led2=P2^2;//一桶水工作指示灯sbit led3=P2^3;//点动指示灯sbit led4=P2^4;//暂停指示灯unsigned int count,m,n;unsigned char keyboard,a,b,c;void DelayMs(unsigned int x){unsigned char i;0 0当然下面这一句也会影响到效果的:好了,就这些吧,我觉得我又为我们单片机大家庭争取了一员大将。

基于51单片机的饮水机温度控制系统设计

基于51单片机的饮水机温度控制系统设计

基于51单片机的饮水机温度控制系统设计摘要:本文设计了一款基于51单片机的饮水机温度控制系统。

该系统主要由传感器、温控模块和51单片机三个部分组成。

在该系统中,传感器主要用于对饮水机中的温度进行实时监测,温控模块则负责根据当前温度情况对加热和制冷设备进行控制,而51单片机则是整个系统的核心控制器。

在本文中,我们首先对饮水机温度控制系统进行了详细分析,并介绍了目前市面上常见的温控技术。

其次,我们详细讲解了本系统中的各个模块的具体实现方式,并通过图表对其进行了进一步说明。

在系统测试方面,我们通过实验验证了系统的稳定性以及实时性,结果表明该系统能够高效、准确地对饮水机中的温度进行控制,并满足用户的需求。

通过本文的分析实验,我们可以得出结论,基于51单片机的饮水机温度控制系统具有以下优点:模块化设计,易于维护和扩展;具有高精度、高稳定性和实时性;集成度高,系统效率高。

本系统可以应用于各种饮水机,以满足不同用户的需求。

关键词:饮水机;温度控制;51单片机;传感器;温控模块Abstract:This paper designs a temperature control system for water dispensers based on 51 MCU. The system consists of three parts: sensors, temperature control module and 51 MCU. In this system, the sensor is mainly used to real-time monitor the temperature of the water dispenser, the temperature control module is responsible for controlling the heating and cooling equipment according to the current temperature situation, and 51 MCU is the core controller of the entire system.In this paper, we first analyzed the water dispenser temperature control system in detail and introduced the common temperature control technologies on the market. Secondly, we explained in detail the specific implementation methods of various modules in this system, and further explained them through charts. In terms of system testing, we verified the stability and real-time characteristics of the system through experiments. The results show that the system can efficiently and accurately control the temperature in the water dispenser and meet the needs of users.Through the analysis and experiments in this paper, we can conclude that the temperature control system for water dispensers based on 51 MCU has the following advantages: modular design, easy maintenance and expansion; high precision, stability and real-time performance; high integration and high efficiency. This system can be applied to various water dispensers to meet the needs of different users.Keywords: water dispenser; temperature control; 51 MCU; sensor; temperature control module.。

基于51单片机的家用水流量计设计毕业设计

基于51单片机的家用水流量计设计毕业设计

目录绪论 (4)一、系统方案 (4)1、方案论证与选择 (4)1.1 电源模块的论证与选择 (4)1.2 水流量传感器模块论证与选择 (4)1.3 温度传感器模块论证与选择 (4)1.4 最小系统模块论证与选择 (5)1.5 显示模块论证与选择 (5)1.6 按键模块论证与选择 (5)1.7 报警部分论证与选择 (5)2 系统设计 (6)3 结构方框图 (6)4 理论分析与计算 (6)二、系统硬件电路设计 (8)1. 单片机最小系统 (9)2. 液晶显示电路 (9)3. 传感器检测电路 (16)3.1 温度传感器模块 (16)3.2 水流量传感器模块电路 (16)4 按键控制模块 (17)5 报警指示模块 (17)三、单片机程序设计 (18)1.模块软件流程图 (18)1.1主程序流程图 (18)1.2水流量传感器控制程序 (21)1.3温度传感器 (22)1.4 LCD液晶显示程序 (24)2.模式软件流程图 (25)2.1 模式一流程图 (25)2.2 模式二流程图 (26)2.3 模块控制流程图 (27)四、电路调试和方法 (28)1 .仪器表和实验材料 (28)2 .检测方法 (29)3.调试结果,问题分析和解决问题方法 (30)3.1硬件系统调试 (30)3.2 软件系统调试 (31)五、实现功能 (19)六、设计总结 (19)致谢 (35)参考文献 (35)基于 51 单片机的家用水流量计设计【摘要】:本设计作为一个家居的智能电子设备,以STC89C52RC 单片机为核心器件,主要研究基于单片机的智能控制和传感器的数据采集与相应的闭环控制系统的构建,电路元件少,制作方便。

单片机通过温度传感器和水流量传感器采集出相应的温度和水流量并在液晶屏幕上显示相应的数字,可以读出使用的水流量和水温,并查看出相应的价格,是一个数字化的智能水流量计。

【关键词】:STC89C52RC单片机;温度传感器;水流量传感器;LCD1602 【Abstract】 As a household intelligent electronic device, this design uses single chip microcomputer STC89C52 as core component, making a primary research on that single chip microcomputer, which is a digital intelligent water meter, can gather relevant temperature and water flow and display corresponding figure on LCD screen and thus we can read water flow and temperature used, check out relevant price based on temperature sensor and water flow sensor and its advantages of intelligent controls of single chip microcomputer, data acquisition of sensor and the construction of closed loop control system. And it possesses few circuit components and convenient making.【Key Words】 STC89C52 ,temperature sensor, water flow sensor绪论当今由于中国经济的腾飞,落后的科技已经不能适应时代的发展,只有不断进步的科技才能推动社会的发展,智能化的家居生活让人们感到身心的放松,本设计是以单片机STC89C52为主控芯片,用来监控不同的家电,智能水表除了可对用水量进行记录和电子显示外,还可以进行自动完成水价的计算,本设计还有一个重大的作用就是可以节约用水,水是生命之源,由于我国的人口众多,所以人均水量非常的贫乏,所以国家提倡节约用水,这款水流量计的设计非常符合中国的国情。

基于51单片机的饮水机水温控制系统的实现

基于51单片机的饮水机水温控制系统的实现

基于51单片机的饮水机水温控制系统的实现作者:张铭源马万国马甲甲来源:《电脑知识与技术》2016年第26期摘要:本系统以STC89C52单片机为核心,实现饮水机饮用水制冷,主要包括DS18B20温度采集、按键操作、单片机控制、继电器驱动、制冷片、数码管数字显示等部分。

本系统通过信息的交互而实现温度设定、控制和显示。

关键词:半导体制冷片;单片机;Ds18B20中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)26-0231-02Realization of the Water Cooler Water Temperature Control System Based on 51 Single Chip MicrocomputerZHANG Ming-yuan1,MA Wan-guo2,MA Jia-jia2(1.Nanjing 29 Middle School, Nanjing 210000, China; 2.Hohai university Wen Tian College, Maanshan 243000, China) Abstract: STC89C52 single-chip microcomputer as the core, Implement water dispenser water cooling ,this system mainly includes the DS18B20 temperature acquisition, button operation, single-chip microcomputer control, relay drivers,refrigeration, such as digital tube digital display part. This system through information interaction of temperature setting, control and display.Key words: Semiconductor refrigeration piece; MCU; Ds18B201 硬件电路设计1.1 控制系统方框图本系统中温度的恒温控制采用STC89C52单片机为核心控制器件,实现对水温在的自动控制。

C51饮水机温度控制

C51饮水机温度控制

河南机电高等专科学校《C51程序设计》大作业设计题目:基于单片机饮水机温度控制的设计班级:通计092学号:091415207姓名:余坤朋成绩:2011年11月1 设计任务单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

目前,一个学习与应用单片机的高潮在全社会大规模地兴起。

本文用就是以80C51单片机为例,用我们学习的C51语言,详细全面的介绍一个基于单片机的温度控制系统的工作原理和工作过程。

2电路原理图原理图分析:1,温度检测的设计本系统对温度的提取和转换采用AD590温度传感器,AD590是美国模拟器件公司生产的单片集成两端感温电流源。

它的主要特性如下:a、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数;即:,式中:Ir—流过器件(AD590)的电流,单位为mA;T—热力学温度,单位为K。

b、AD590的测温范围为-55℃~+150℃;c、AD590的电源电压范围为4V~30V;d、输出电阻为710MW;e、精度高。

2,系统整体分析本系统采用中断技术,每1秒采样一次,温度信号分别从p1.0和p1.1输入,电源接通时,黄灯亮,当温度大于95度时属于正常温度,绿灯亮,小于95度系统自动加热红灯亮。

3 系统流程图4 源程序#define OSC_FREQ 12000000#defineC_1ms(65536-OSC_FREQ/(12000000/980)) #include<reg51.h>#include<stdio.h>sbit p1_0=p1^0;sbit p1_1=p1^1;sbit p1_6=p1^6;sbit p1_7=p1^7;void ledGreen_on();void ledRed_on();void Xinto( void );void Timer_1ms(unit_1ms);void main(){P1=0x00;EA=1;EX0=1;IT0=1;IT1=1;while(1){for(int i=0;i<1000;i++) {Timer_1ms(unit_1ms); }}}void Xint0 (void) interrupt 0 using 3 {if(p1_0==0&&p1_1==0){ledRed_on();}else{ledGreen_on();}}void ledRed_on(){p1_7=1;p1_6=0;}void ledGreen_on(){p1_7=0;p1_6=1;}void Timer_1ms(unit_1ms){TMOD=TMOD&(0x0f)|0x10;TR1=1;while(_1ms--){TH1=C 1ms/256;TL1=C 1ms%256;while(!TF1);TF1=0;}TR1=0;}参考文献《单片机原理及应用》(2008年2月第1版);《单片机C51程序设计与实验》(2006年1月第1版);《电子线路CAD》(2009年8月第1版;。

基于51LPC单片机的智能供水控制器的设计与实现

基于51LPC单片机的智能供水控制器的设计与实现

目录引言--------------------------------------------------------------------------------1 1 系统设计-----------------------------------------------------------------------2 1.1 方案比较----------------------------------------------------------------------------------2 1.1.1 传感器选择方案------------------------------------------------------------------------2 1.1.2 A/D转换方案----------------------------------------------------------------------------2 1.1.3 单片机复位方案------------------------------------------------------------------------2 1.1.4 单片机起振方案------------------------------------------------------------------------3 1.1.5 驱动显示方案---------------------------------------------------------------------------3 1.1.6 电机驱动方案---------------------------------------------------------------------------3 1.1.7 电机选择方案---------------------------------------------------------------------------3 1.2 方案论证-----------------------------------------------------------------------------------3 1.2.1 总体思路---------------------------------------------------------------------------------31.2.2 设计方案---------------------------------------------------------------------------------42 硬件部分-----------------------------------------------------------------------4 2.1 51LPC单片机简介------------------------------------------------------------------------4 2.2 单元模块设计-----------------------------------------------------------------------------4 2.2.1 A/D转换设计----------------------------------------------------------------------------4 2.2.2 起振电路设计---------------------------------------------------------------------------5 2.2.3 数码显示设计---------------------------------------------------------------------------5 2.2.4 电机驱动设计---------------------------------------------------------------------------6 2.2.5 电机控制---------------------------------------------------------------------------------6 2.2.6 报警电路---------------------------------------------------------------------------------82.3 系统整体分析-----------------------------------------------------------------------------83 软件设计-----------------------------------------------------------------------8 3.1 详细流程图--------------------------------------------------------------------------------8 3.1.1 主程序------------------------------------------------------------------------------------9 3.1.2 中断子程序------------------------------------------------------------------------------9 3.1.3 GAODU子程序------------------------------------------------------------------------10 3.1.4 查表子程序-----------------------------------------------------------------------------11 3.1.5 状态子程序-----------------------------------------------------------------------------12 3.1.6 状态控制子程序-----------------------------------------------------------------------154 结论---------------------------------------------------------------------------18 参考文献------------------------------------------------------------------------19 附录------------------------------------------------------------------------------20摘要本设计从分析水位报警器的原理和设计方法入手,主要基于51LPC单片机的硬件电路和语言程序设计,实现一种能够实现水位自动控制、具有自动保护、自动声光报警功能的控制系统。

基于51单片机的饮水机温度控制系统设计

基于51单片机的饮水机温度控制系统设计

基于51单片机的饮水机温度控制系统设计摘要本文基于51单片机设计了一种饮水机温度控制系统。

该系统通过传感器采集水温数据,并通过51单片机进行处理和控制,实现了对饮水机温度的精确控制。

本文首先介绍了饮水机的发展背景和需求,然后详细介绍了系统的硬件设计和软件实现,最后对系统进行了测试和评估。

实验结果表明,该系统能够稳定地将饮水机温度控制在用户设定的范围内,具有较好的实用性和可靠性。

关键词:51单片机;饮水机;温度控制;传感器;硬件设计;软件实现第一章引言1.1 研究背景随着人们生活条件的改善和健康意识的提高,人们对于生活用品的要求也越来越高。

其中,饮用水是人们日常生活中必不可少的一部分。

然而,在夏季高温时期或者在寒冷冬季,直接喝取自来水可能会给人们带来不适。

因此,在家庭或者办公场所中普遍配备了饮水机,以提供适宜的饮用水温度。

1.2 研究目的本文旨在设计一种基于51单片机的饮水机温度控制系统,通过对水温数据的采集和控制,实现对饮用水温度的精确控制,提高用户体验和生活质量。

第二章系统设计2.1 系统框架本系统主要包括传感器模块、51单片机模块、温度控制模块和显示模块。

传感器模块用于采集水温数据,并将数据传输给51单片机模块。

51单片机通过对接收到的数据进行处理和判断,控制温度控制模块进行相应操作,并将结果显示在显示模块上。

2.2 传感器选择与接口设计为了准确地获取水温数据,本系统选择了一种高精度的数字式温度传感器。

该传感器具有较高的测量精确度和快速响应速度,并且具有较低的功耗。

在接口设计上,采用了I2C总线通信协议来与51单片机进行通信。

2.3 51单片机程序设计为了实现对饮水机温度的精确控制,本系统采用了PID控制算法。

PID控制算法是一种经典的控制算法,具有较好的稳定性和适应性。

在51单片机程序设计中,通过采集传感器数据和计算PID控制器输出,实现对温度控制模块的精确调节。

2.4 硬件设计本系统的硬件设计包括传感器模块、51单片机模块、温度控制模块和显示模块。

基于单片机的智能节能饮水机系统的设计

基于单片机的智能节能饮水机系统的设计

题目:智能节能饮水机系统的设计目录摘要 (4)前言 (5)第一章智能节能饮水机系统的设计背景 (5)1.1 智能节能饮水机的优势 (5)1.2 智能节能饮水机系统的设计目的 (5)1.3 系统设计的要求 (5)第二章智能节能饮水机系统的设计方案分析 (6)2.1系统总体功能描述 (6)2.2 系统工作原理 (6)2.3设计方案论证 (7)第三章智能节能饮水机系统硬件电路设计 (8)3.1 STC89C52型单片机 (8)3.2 温度检测电路 (8)3.3 液晶显示电路 (10)3.4 水阀继电器控制电路 (11)3.5 红外发射接收对管电路 (12)3.6 加热控制电路 (13)3.7 键盘设置电路 (13)3.8 供电部分 (14)第四章智能节能饮水机系统软件设计 (15)4.1 软件设计思路 (15)4.2 总体软件流程 (15)4.3 按键扫描程序 (17)第五章系统测试与分析 (18)5.1 原件清单 (18)5.2 电路焊接...................................................................................................................... 错误!未定义书签。

5.3 测试与分析.................................................................................................................. 错误!未定义书签。

结论 .. (19)参考文献 (20)附录一: (21)总体硬件设计电路原理图 (21)附录二: ............................................................................................................. 错误!未定义书签。

基于51单片机的智能家居温控热水器系统设计

基于51单片机的智能家居温控热水器系统设计

基于51单片机的智能家居温控热水器系统设计随着科技的不断发展,智能家居系统已经成为了未来家庭生活的一部分。

智能家居系统可以通过各种传感器和控制器实现对家居设备的智能控制,从而为人们提供更加舒适和便利的生活体验。

在智能家居系统中,温控热水器是一个非常重要的家居设备,它可以通过智能控制系统实现对热水的智能控制,为人们提供舒适的洗浴体验。

本文将介绍基于51单片机的智能家居温控热水器系统设计,包括系统的硬件设计和软件设计。

一、系统概述本系统使用51单片机作为控制核心,通过温度传感器实时监测水温,使用继电器控制加热元件,实现对热水器的智能控制。

系统具有智能温控、远程控制、定时功能等特点,可以为用户提供更加智能、便捷、舒适的热水使用体验。

二、系统硬件设计1. 51单片机:作为系统的控制核心,可以实现对各个传感器和执行器的数据采集和控制。

2. 温度传感器:用于监测热水的温度变化,将实时的温度数据传输给单片机。

3. 继电器:用于控制加热元件的通断,实现对热水器加热的控制。

4. 液晶屏:用于显示热水的温度、工作状态等信息。

5. 按键:用于用户对系统进行设置和控制。

6. 无线模块:实现系统的远程控制和监测功能。

1. 温控算法:通过单片机实时监测温度传感器的数据,根据预设的温度范围进行温控算法,控制继电器的通断,实时调节加热元件的工作状态,以实现对热水温度的智能控制。

2. 用户界面设计:通过液晶屏和按键实现用户界面的设计,用户可以通过按键设置温度范围、定时功能等参数,并且实时显示热水的温度、工作状态等信息。

3. 远程控制功能:通过无线模块实现系统与手机或电脑的连接,用户可以通过APP或网页对热水器进行远程控制和监测。

4. 定时功能:用户可以通过系统设置热水器的开关时间,实现对热水器的定时控制。

四、系统性能测试为了验证系统设计的准确性和稳定性,需要对系统进行性能测试。

通过实际测量和记录,可以验证系统在不同温度范围下的控制精度和稳定性,以及对定时功能和远程控制功能的实时响应。

饮水机温度控制课程设计protues仿真及C语言程序

饮水机温度控制课程设计protues仿真及C语言程序

附录A#include<reg51.h>#include<stdio.h>#define uchar unsigned char#define uint unsigned intuchar i;sbit lcdrs=P3^0;sbit lcdrw=P3^1;sbit lcden=P3^2;sbit P13=P1^3;sbit P14=P1^4;sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit d1=P1^0;sbit d2=P1^1;uchar code t2[]="the highest "; uchar code t1[]=" is "; uchar code t0[]="the temperature "; uchar code t3[]="the lowest "; uchar code wendu[]="0123456789";sbit DQ = P3^7;uchar high=80;low=70;a=0;b=0;c=0;d=0;void delay(uint z){uint x,y;for(x=100;x>1;x--)for(y=z;y>1;y--);}void write_com(uchar com){lcdrs=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date){lcdrs=1;P2=date;delay(5);lcden=1;delay(5);lcden=0;}void tmpDelay(int num) {while(num--) ;}void Init_DS18B20() {unsigned char x=0;DQ = 1;tmpDelay(8);DQ = 0;tmpDelay(80);DQ = 1;tmpDelay(14);x=DQ;tmpDelay(20);}unsigned char ReadOneChar() {unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0;dat>>=1;DQ = 1;if(DQ)dat|=0x80;tmpDelay(4);}return(dat);}void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;tmpDelay(5);DQ = 1;dat>>=1;}}unsigned int Readtemp() {unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0x44);Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE);a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5;return(t);}void init_lcd(){lcden=0;lcdrw=0;write_com(0x38);write_com(0x01);write_com(0x0c);write_com(0x06);write_com(0x80);if(P13==1&&P14==1) {for(i=0;i<16;i++){write_date(t0[i]);delay(0);}write_com(0x80+0x40);for(i=0;i<16;i++){write_date(t1[i]);delay(0);}}if(P13==0){for(i=0;i<16;i++){write_date(t3[i]);delay(0);}write_com(0x80+0x40);for(i=0;i<16;i++){write_date(t1[i]);delay(0);}}if(P14==0)for(i=0;i<16;i++){write_date(t2[i]);delay(0);}write_com(0x80+0x40);for(i=0;i<16;i++){write_date(t1[i]);delay(0);}}}void display()unsigned int num,num1; unsigned int shi,ge,xiaoshu;if(c==0&&d==0){num=Readtemp();a=0;b=0;}if(c==1){num=low*10;a=1;b=0;}if(d==1){num=high*10;b=1;a=0;}num1=num/10;if(c==0&&d==0){if(num1>high){d1=1;d2=1;}if(num1<low){d1=0;d2=1;}if(num1<=high&&num1>=low) {d2=0;}}shi=num/100;ge=num/10%10;xiaoshu=num%10;write_com(0x80+0x40+5); write_date(wendu[shi]);write_com(0x80+0x40+6); write_date(wendu[ge]);write_com(0x80+0x40+7);write_date(0x2e);write_com(0x80+0x40+8);write_date(wendu[xiaoshu]); }void main(){ TMOD=0x00;EA=1;ET0=1;ET1=1;loop:init_lcd();while(1){display();delay(10);if(P13==0){ c=1;d=0;goto loop;}if(P14==0){d=1;c=0;goto loop; }if(P15==0){ TR0=1 ; delay(10); } if(P16==0){ TR1=1; delay(10); }if(P17==0){ c=0;d=0;goto loop; }}}void T0_int() interrupt 1{TR0=0;if(a==1){low=++low;}if(b==1){high=++high;}delay(100);}void T1_int(void) interrupt 3 {TR1=0;if(a==1){low=--low;}if(b==1){high=--high;}TR1=0;delay(100);}X T A L 218X T A L 119A L E 30E A31P S E N 29R S T9P 0.0/A D 039P 0.1/A D 138P 0.2/A D 237P 0.3/A D 336P 0.4/A D 435P 0.5/A D 534P 0.6/A D 633P 0.7/A D 732P 2.7/A 1528P 2.0/A 821P 2.1/A 922P 2.2/A 1023P 2.3/A 1124P 2.4/A 1225P 2.5/A 1326P 2.6/A 1427P 1.01P 1.12P 1.23P 1.34P 1.45P 1.56P 1.67P 1.78P 3.0/R X D 10P 3.1/T X D 11P 3.2/I N T 012P 3.3/I N T 113P 3.4/T 014P 3.7/R D17P 3.6/W R 16P 3.5/T 115U 180C 51D 714D 613D 512D 411D 310D 29D 18D 07E6R W 5R S 4V S S 1V D D 2V E E3L C D 1L M 016L 98.0D Q 2V C C 3G N D1U 2D S 18B 20R 110k +5V+5V+5VL O WH I G H增加减少确定D 2L E D -G R E E N C 120p fC 220p fX 112M H zC 322u F R 210K+5VD 1L E D -R E D系统总方针电路图protues仿真图。

基于单片机智能饮水机控制系统设计中的延时程序

基于单片机智能饮水机控制系统设计中的延时程序

基于单片机智能饮水机控制系统设计中的延时程序智能饮水机控制系统是一种应用广泛的电子设备,它能够实现自动饮水、智能计量和时段控制等功能。

在这些功能中,延时程序的设计至关重要,因为它可以控制设备的启停时间,从而达到省电、节能的目的。

在智能饮水机控制系统中,延时程序是指一段时间的延迟操作程序。

具体来说,在智能饮水机的控制系统中,延时程序有两种类型:一种是用在水泵启停时的延迟程序,另一种是用在设备关机时的延迟程序。

第一类延时程序的设计原理是,当我们按下启动按钮,水泵不会立即启动,而是先进入一个延时程序,延迟一定的时间之后才会启动。

这是因为当我们按下启动按钮时,电子设备会发生变化,需要一定时间的稳定才能正常运行。

为了保护设备,我们需要设计一个启动延时程序,保证设备稳定运行。

第二类延时程序是设备关机时的延迟程序。

据统计,智能饮水机等电子设备的关机过程中,很容易出现瞬间关机的情况,从而导致设备出现电压波动或者短路等问题。

为了避免这种情况的出现,我们需要在设备关机时设计一个延时程序,在设备关机前先保证设备运行稳定,再停止运行,这样可以避免设备因瞬间关机而受到损伤。

在具体的延时程序设计中,我们需要注意延时时间的设置,因为延时时间的不同会直接影响到设备的运行效果。

如果延时时间设置过短,可能会出现设备启动失败,延时时间设置过长,又会影响设备的正常工作。

因此,我们需要仔细考虑延时时间的设置,确保设备能够正常运行。

此外,延时程序的设计也需要考虑一些特殊的情况,比如设备出现短路、过压等情况时,应该如何处理。

在这种情况下,我们需要在延时程序中加入异常判断和处理程序,避免设备受到损坏。

总之,延时程序在智能饮水机控制系统设计中起着非常重要的作用,它可以保护设备、节省能源、提高安全性等多方面的效果。

因此,在设计控制系统时,我们一定要牢记延时程序的设计原则,并根据实际情况合理设置延时时间,以保证设备的正常运行和长期稳定性。

基于51单片机的智能家居温控热水器系统设计

基于51单片机的智能家居温控热水器系统设计

基于51单片机的智能家居温控热水器系统设计智能家居系统近年来越来越受到人们的青睐,其中智能温控热水器系统是其中比较重要的一环。

本文基于51单片机设计了一个智能家居温控热水器系统。

一、系统设计思路热水器的温度控制是一项常见的任务,我们可以使用温度传感器读取当前水温,根据用户设定的温度进行加热或停止加热。

系统设计思路如下:1、采用DS18B20数字温度传感器检测水温。

2、用户通过按键设置目标温度和加热/停止状态。

3、通过继电器控制电源开/关,实现加热/停止功能。

4、LCD显示屏显示当前水温、目标温度以及加热/停止状态。

5、使用EEPROM存储用户设置的目标温度。

6、通过串口通信实现远程控制。

1、主控:STC89C52单片机。

STC89C52是一款高性能单片机,采用Harvard结构,具有8位数据总线和16位地址总线。

具有4K字节的FLASH内存、128字节的RAM内存以及256字节的EEPROM内存。

DS18B20是一款数字温度传感器,采用一线式总线接口,具有9至12位的温度输出精度。

3、LCD显示屏:1602A。

1602A是一款16字符×2行的LCD显示屏,具有并行输入接口。

4、电源:5V直流电源。

直流电源负责供电,热水器工作电压为220V交流电,继电器用于电源开/关控制。

5、按键:4个。

4个按键的功能分别为:调整目标温度、确定目标温度、开关加热器、保存目标温度。

6、外设接口:串口通信接口。

系统软件设计包括:温度检测、按键检测、LCD显示、EEPROM存储、继电器控制和串口通信等。

1、温度检测与控制在主程序中,首先需要对DS18B20进行初始化,之后不断读取当前温度并进行温度差值计算,以实现温度控制。

2、按键检测通过P3口进行按键检测,不同按键对应不同的功能操作。

4、EEPROM存储将用户设置的目标温度存入EEPROM,以实现断电后能够保留用户设置的目标温度。

5、继电器控制6、串口通信使用串口通信完成远程控制功能,通过通信界面实现发送和接受指令,例如设置目标温度、开启或关闭加热器等。

基于51单片机的智能饮水机的设计-毕业论文

基于51单片机的智能饮水机的设计-毕业论文
Keywords:STC89C52; DS18B20;Smart
第1章绪论
1.1研究的目的及意义
到今天为止,智能饮水机的研究水平这一市场正慢慢的进入到一个更新换代的重要时刻,在市场上所具有的潜力是非常大的,人们对于智能饮水机的要求向着多功能化和智能化的方向发展着,在日常生活中其他的家用电器也向着这个方向发展着。对于智能饮水机的设计融合了很多计算机关于硬件方面和软件方面的设计研究成果。因为饮水是人类日常生活中不可或缺的一部分,它与人们的生活息息相关,所以对于智能饮水机的研究设计,非常的有前景,智能饮水机具有强大的市场竞争力。科学知识的进步改变了世界,使人们的生活更加的文明开化,尤其是人们对于机械智能控制的广泛应用,使人们的生产生活带来了巨大的变革。利用科技知识和微型计算机的功能,使得人类的生活变得更加的方便。然而,对于整个计算机来说,整体结构过于精密且贵重,计算机的很多功能在人们的日常生产生活中,得不到全面而充分的应用,所以只需实现微型计算机部分功能的单片机应运而生。单片机与微型计算机相比更加的便于使用,单片机可以根据不同的实际要求作出不同的改变。饮水机的使用数量逐年上升,人们对其功能的多种多样性的要求也不断变大,所以,对智能饮水机的需要就渐渐显露了出来。在饮水机步入高潮的今天,它的市场十分活跃,已经成为了每个公司和家庭等必不可少的日常生活用品。然而,我们对饮水机的选择已经不是停留在过去的眼光,而是高标准,不仅使用而且要求外形脱俗,而在功能上,我们也有了更高的要求。因此,智能饮水机已是饮水机发展的必然趋势。
关键词:STC89C52;DS18B20;智能
Abstract
With the gradual improvement of people's living standard, the simple water dispenser is far from meeting People's Daily needs. The improvement of people's living standards and a series of reasons, people pay more attention to the quality of life and their own health in the fast-paced today. And intelligent drinking water machine is in such an environment has been rapid development and technical maturity.

基于某51单片机的智能热水器控制系统

基于某51单片机的智能热水器控制系统

目录摘要 (I)ABSTRACT (II)引言 (1)1 智能热水器控制系统的总体设计方案 (1)1.1方案的分析与选择 (1)1.2系统总体设计概述 (2)1.3各功能模块介绍 (3)1.3.1 控制模块 (3)1.3.2 显示模块 (3)1.3.3 输入模块 (5)1.3.4 其它模块 (6)1.4本章小结 (8)2 硬件电路的设计与实现 (8)2.1单片机最小系统硬件电路设计 (8)2.2显示模块硬件电路设计 (8)2.3温度传感器DS18B20电路设计 (9)2.4电子式水位开关硬件电路设计 (10)2.5时钟芯片电路设计 (10)2.6声光报警电路设计 (11)2.7按键设置模块电路设计 (11)2.8电源和开关模块设计 (12)2.9本章小结 (12)3 热水器控制系统的软件设计与算法实现 (12)3.1软件总体流程图 (13)3.2显示模块程序设计 (14)3.2.1 写命令子函数 (14)3.2.2 写数据子函数 (14)3.3温度传感器模块程序设计 (15)3.4时钟芯片相关程序设计 (16)3.5按键设置程序设计 (16)3.6主程序和中断服务程序设计 (17)3.7本章小结 (17)4 测试、总结与评价 (17)4.1软件平台仿真测试 (17)4.2面包板电路搭建测试 (18)4.3系统方案总结与评价 (19)5 结束语 (19)参考文献 (20)致 (21)基于51单片机的智能热水器控制系统摘要随着科技的进步和人们生活水平的不断提高,热水器越来越普遍地走进千家万户,给人们的生活带来了极大的方便。

同时,人们对热水器的智能化和安全性都提出了更高的要求。

这就要求热水器具有一个智能控制系统,能够自动获取当前水温和水位信息,判断实际温度与预设温度关系,从而实现加热的自动控制。

本文提出了一种基于51单片机的智能热水器控制系统的解决方案,该方案采用DS18B20单线数字温度传感器来对水温进行检测,使用DS1302时钟芯片实现计数和定时功能,同时加入了水位判断和报警设计。

单片机智能饮水管理应用 实现饮水设备的管理

单片机智能饮水管理应用 实现饮水设备的管理

单片机智能饮水管理应用实现饮水设备的管理单片机智能饮水管理应用实现饮水设备的管理近年来,随着科技的快速发展,智能设备在我们生活的方方面面得到了广泛的应用。

其中,单片机智能饮水管理应用成为了一个备受关注的领域。

本文将介绍单片机智能饮水管理应用的原理、功能以及实现方法。

一、原理和功能单片机智能饮水管理应用通过集成电路和传感器等技术手段,将饮水设备与互联网相连接,实现对其进行远程管理和控制。

具体来说,其原理和功能主要包括以下几个方面:1. 数据采集和监测:通过传感器等设备,实时感知饮水设备的工作状态,包括水位、水质、温度等相关参数,并将这些数据进行采集和监测。

2. 数据处理和分析:对采集到的数据进行处理和分析,通过算法和模型,对饮水设备的运行情况进行评估,并生成相应的报告和分析结果。

3. 远程控制和管理:通过互联网连接,管理员可以远程对饮水设备进行控制和管理,包括开启/关闭、定时启动、调整水温等操作。

4. 管理平台和用户界面:提供一个管理平台和用户界面,方便管理员对饮水设备进行监控和管理,并向用户展示相关数据和信息。

二、实现方法单片机智能饮水管理应用的实现方法主要包括以下几个步骤:1. 硬件设计和搭建:首先,需要设计和搭建一个硬件平台,包括单片机、传感器、显示屏等设备,并进行相应的连线和连接。

2. 编程和算法开发:根据项目需求,进行单片机的编程和算法开发,包括数据采集、处理和分析的程序,以及远程控制和管理的功能实现。

3. 互联网连接和数据传输:通过以太网、WiFi、蓝牙等方式,将饮水设备与互联网相连接,实现数据的传输和远程控制。

4. 界面设计和用户体验优化:设计一个直观、友好的管理平台和用户界面,方便管理员进行操作和监控,并优化用户体验,提高整体的用户满意度。

三、应用前景随着人们对健康和生活质量的关注度日益提高,饮水设备的管理变得越来越重要。

而单片机智能饮水管理应用能够有效地提高管理效率和服务质量,为用户提供更好的饮水体验。

智能饮水机51单片机程序

智能饮水机51单片机程序

#include reg52.H 51头文件#include intrins.H#include math.H 数学函数#define uchar unsigned char#define uint unsigned intsbit rw = P3^6; 读写选择端sbit RS = P3^5; 数据、命令选择端sbit bin =P3^7; 蜂鸣器sbit LCDEN = P3^4; 使能sbit k1=P3^0; 加sbit k2=P3^1; 减sbit k3=P3^2; 设置sbit jd=P3^3; 继电器sbit red=P1^0; 红外避障unsigned int temp,flag,flag1,biaozh; uchar aa,bb;void delayUs(){_nop_();}void delayMs(uint a){uint i, j;for(i = a; i 0; i--)for(j = 100; j 0; j--);}void writeComm(uchar comm){RS = 0;P0 = comm;LCDEN = 1;delayUs();LCDEN = 0;delayMs(1);}写数据RS=1, RW=0;void writeData(uchar dat){RS = 1;P0 = dat;LCDEN = 1;delayUs();LCDEN = 0;delayMs(1);}void init(){rw = 0;writeComm(0x38);writeComm(0x0c);writeComm(0x06);writeComm(0x01);}void writeString(uchar str, uchar length) {uchar i;for(i = 0; i length; i++){writeData(str[i]);}}DS18B20sbit ds = P2^2;void dsInit(){unsigned int i;ds = 0;i = 100;while(i0) i--;ds = 1;i = 4;while(i0) i--;}void dsWait(){unsigned int i;while(ds);while(~ds);i = 4;while(i 0) i--;}bit readBit(){unsigned int i;bit b;ds = 0;i++;ds = 1;i++; i++;b = ds;i = 8;while(i0) i--;return b;}unsigned char readByte(){unsigned int i;unsigned char j, dat;dat = 0;for(i=0; i8; i++){j = readBit();dat = (j 7) (dat 1);}return dat;}void writeByte(unsigned char dat) {unsigned int i;unsigned char j;bit b;for(j = 0; j 8; j++){b = dat & 0x01;dat = 1;if(b){ds = 0;i++;i++;ds = 1;i = 8;while(i0) i--;}else{ds = 0;i = 8;while(i0) i--;ds = 1;i++; i++;}}}void sendChangeCmd() {dsInit();dsWait();delayMs(1);writeByte(0xcc);writeByte(0x44);}void sendReadCmd(){dsInit();dsWait();delayMs(1);writeByte(0xcc);writeByte(0xbe);}int getTmpValue()读取温度{unsigned int tmpvalue;int value;float t;unsigned char low, high;sendReadCmd();low = readByte();high = readByte();tmpvalue = high;tmpvalue = 8;tmpvalue = low;value = tmpvalue;t = value 0.0625;value = t 100 + (value 0 0.5 -0.5); 大于0加0.5, 小于0减0.5 return value;}void display(int v){unsigned char count;unsigned char datas[] = {0, 0, 0, 0, 0};unsigned int tmp = abs(v);temp=tmp100;datas[0] = tmp 10000;datas[1] = tmp % 10000 1000;datas[2] = tmp % 1000 100;datas[3] = tmp % 100 10;datas[4] = tmp % 10;writeComm(0xc0+3);if(v 0){writeString(- , 2);}else{writeString(+ , 2);}if(datas[0] != 0){writeData('0'+datas[0]);}for(count = 1; count != 5; count++){writeData('0'+datas[count]);if(count == 2){writeData('.');}}}DS18B20void main(){uchar table[] = current tempera;uchar table1[] = set temperature;flag=29; 设置的温度flag1=100flag;sendChangeCmd();biaozh=0; 标志位k1=1;k2=1;k3=1;jd=1;while(red){jd=1;}while(!red) 当红外避障检测到人体{init();writeComm(0x80);writeString(table, 16);if(k3==0){while(!k3);P1=0;}while(biaozh==0){ while(red){jd=1;}flag=flag1100;delayMs(750); 温度转换时间需要750ms以上writeComm(0xc0);display(getTmpValue());if(temp=flag)当实际温度大于等于设定温度{bin=0;蜂鸣器响jd=1; 继电器关掉}if(tempflag){bin=1;jd=0;}sendChangeCmd();if(k3==0){while(!k3);biaozh=1;}}sendChangeCmd();init();writeComm(0x80);writeString(table1, 16);while(biaozh==1){while(red){jd=1;}writeComm(0xc0);display(flag1);sendChangeCmd(); if(k3==0){while(!k3);biaozh=0;}if(k1==0){while(!k1);flag1+=100;}if(k2==0){while(!k2);flag1-=100;}}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include reg52.H 51头文件
#include intrins.H
#include math.H 数学函数
#define uchar unsigned char
#define uint unsigned int
sbit rw = P3^6; 读写选择端
sbit RS = P3^5; 数据、命令选择端sbit bin =P3^7; 蜂鸣器
sbit LCDEN = P3^4; 使能
sbit k1=P3^0; 加
sbit k2=P3^1; 减
sbit k3=P3^2; 设置
sbit jd=P3^3; 继电器
sbit red=P1^0; 红外避障unsigned int temp,flag,flag1,biaozh; uchar aa,bb;
void delayUs()
{
_nop_();
}
void delayMs(uint a)
{
uint i, j;
for(i = a; i 0; i--)
for(j = 100; j 0; j--);
}
void writeComm(uchar comm)
{
RS = 0;
P0 = comm;
LCDEN = 1;
delayUs();
LCDEN = 0;
delayMs(1);
}
写数据RS=1, RW=0;
void writeData(uchar dat)
{
RS = 1;
P0 = dat;
LCDEN = 1;
delayUs();
LCDEN = 0;
delayMs(1);
}
void init()
{
rw = 0;
writeComm(0x38);
writeComm(0x0c);
writeComm(0x06);
writeComm(0x01);
}
void writeString(uchar str, uchar length) {
uchar i;
for(i = 0; i length; i++)
{
writeData(str[i]);
}
}
DS18B20
sbit ds = P2^2;
void dsInit()
{
unsigned int i;
ds = 0;
i = 100;
while(i0) i--;
ds = 1;
i = 4;
while(i0) i--;
}
void dsWait()
{
unsigned int i;
while(ds);
while(~ds);
i = 4;
while(i 0) i--;
}
bit readBit()
{
unsigned int i;
bit b;
ds = 0;
i++;
ds = 1;
i++; i++;
b = ds;
i = 8;
while(i0) i--;
return b;
}
unsigned char readByte()
{
unsigned int i;
unsigned char j, dat;
dat = 0;
for(i=0; i8; i++)
{
j = readBit();
dat = (j 7) (dat 1);
}
return dat;
}
void writeByte(unsigned char dat) {
unsigned int i;
unsigned char j;
bit b;
for(j = 0; j 8; j++)
{
b = dat & 0x01;
dat = 1;
if(b)
{
ds = 0;
i++;
i++;
ds = 1;
i = 8;
while(i0) i--;
}
else
{
ds = 0;
i = 8;
while(i0) i--;
ds = 1;
i++; i++;
}
}
}
void sendChangeCmd() {
dsInit();
dsWait();
delayMs(1);
writeByte(0xcc);
writeByte(0x44);
}
void sendReadCmd()
{
dsInit();
dsWait();
delayMs(1);
writeByte(0xcc);
writeByte(0xbe);
}
int getTmpValue()读取温度{
unsigned int tmpvalue;
int value;
float t;
unsigned char low, high;
sendReadCmd();
low = readByte();
high = readByte();
tmpvalue = high;
tmpvalue = 8;
tmpvalue = low;
value = tmpvalue;
t = value 0.0625;
value = t 100 + (value 0 0.5 -0.5); 大于0加0.5, 小于0减0.5 return value;
}
void display(int v)
{
unsigned char count;
unsigned char datas[] = {0, 0, 0, 0, 0};
unsigned int tmp = abs(v);temp=tmp100;
datas[0] = tmp 10000;
datas[1] = tmp % 10000 1000;
datas[2] = tmp % 1000 100;
datas[3] = tmp % 100 10;
datas[4] = tmp % 10;
writeComm(0xc0+3);
if(v 0)
{
writeString(- , 2);
}
else
{
writeString(+ , 2);
}
if(datas[0] != 0)
{
writeData('0'+datas[0]);
}
for(count = 1; count != 5; count++)
{
writeData('0'+datas[count]);
if(count == 2)
{
writeData('.');
}
}
}
DS18B20
void main()
{
uchar table[] = current tempera;
uchar table1[] = set temperature;
flag=29; 设置的温度
flag1=100flag;
sendChangeCmd();
biaozh=0; 标志位
k1=1;k2=1;k3=1;jd=1;
while(red){jd=1;}
while(!red) 当红外避障检测到人体
{
init();
writeComm(0x80);
writeString(table, 16);if(k3==0){while(!k3);P1=0;}
while(biaozh==0)
{ while(red){jd=1;}
flag=flag1100;
delayMs(750); 温度转换时间需要750ms以上
writeComm(0xc0);
display(getTmpValue());
if(temp=flag)当实际温度大于等于设定温度
{
bin=0;蜂鸣器响
jd=1; 继电器关掉
}
if(tempflag){bin=1;jd=0;}
sendChangeCmd();
if(k3==0){while(!k3);biaozh=1;}
}
sendChangeCmd();
init();
writeComm(0x80);
writeString(table1, 16);
while(biaozh==1)
{
while(red){jd=1;}
writeComm(0xc0);
display(flag1);
sendChangeCmd(); if(k3==0){while(!k3);biaozh=0;}
if(k1==0){while(!k1);flag1+=100;}
if(k2==0){while(!k2);flag1-=100;}
}
}
}。

相关文档
最新文档