水温监控与报警电路的设计与制作_第1页
水温监控与报警电路的设计与制作_第2页
水温监控与报警电路的设计与制作_第3页
水温监控与报警电路的设计与制作_第4页
水温监控与报警电路的设计与制作_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

湖南商务职业技术学院毕业设计

目录

1产品功能分析...........................................................................................................1

2设计方案遴选...........................................................................................................1

2.1单片机的选择....................................................................................................1

2.2系统框图设计....................................................................................................1

3产品硬件设计...........................................................................................................3

3.1STC89C52RC单片机核心电路设计...................................................................3

3.2按键电路设计....................................................................................................4

3.3四位一体共阳数码管显示模块电路................................................................5

4产品软件设计...........................................................................................................5

4.1主程序流程图....................................................................................................5

4.2产品程序清单....................................................................................................7

5产品装配调试及使用说明.......................................................................................7

5.1产品装配图........................................................................................................7

5.2产品调试.............................................................................................................8

5.3产品使用说明....................................................................................................9

6、产品设计技术标准.................................................................................................9

7参考资料.................................................................................................................10

附录1元器件清单....................................................................................................11

附录2电路原理图....................................................................................................12

附录3PCB设计图.....................................................................................................12

附录4产品实物图....................................................................................................13

附录5主程序代码....................................................................................................13

湖南商务职业技术学院毕业设计

水温监控与报警电路设计与制作

1产品功能分析

(1)电热水器的核心功能是为用户提供温暖的洗澡体验。许多家庭都安装了

电热水器,以便在家中享受舒适的洗澡体验。多年以前,人们都会到外面的澡

堂洗澡。不过现在有了太阳能热水器、壁挂炉能烧热水,使我们家里面洗澡的

喝水的产品增多,现在更多的人就在家里面洗澡了。

(2)电热水器是用电烧水的,只要你想喝热水或者洗澡,不管什么时候都可

以插上电使用。壁挂炉的使用效果也非常好,不过这两个的使用区别就在电热

水器使用的是电,壁挂炉使用的是燃气。

(3)使用电热水器弄出来的热水不只可以喝,还可以用来洗个热水澡、也可

以用来淘米做饭。我们每一年里有一般的时间温度都是属于比较冷的的,冬天、

春天还有秋天,这个时候我们使用冷水洗澡淘米的话,我们就会感觉好冷。假

如家里有了电热水器,就不会担心这些了。只要把冷热水龙头管安装到弄到卫

生间和厨房,不管啥时候用水都能感觉到舒服。

2设计方案遴选

2.1单片机的选择

单片机选用STC89C52RC芯片作为硬件的核心。里面有4Kb的存储空间,512

个字节的数据作为存储空间,还有8K的字节程序存储空间,和MCS-51的系列

单片机完全兼容,STC89C52RC可以通过串口下载。而且还具有高集成度,体积小,

高可靠性、控制功能强、易扩展等很多的优点,完全能够满足设计需要,而且STC8

9C52RC价格便宜,下载简单方便,考虑到方便因素,因此选用STC89C52RC。

2.2系统框图设计

系统框图如图2-1所示。

1

湖南商务职业技术学院毕业设计

图2-1系统框图

2

湖南商务职业技术学院毕业设计

3产品硬件设计

本产品是STC89C52RC芯片作为硬件核心,DS18B20防水温度传感器、40脚

IC座,四位一体共阳数码管、蜂鸣器、按键电路等元器件组成。

由DS18B20防水温度传感器接收感受到的温度,再把采集到的当时温度在

共阳数码管显示,电路板共有四个按键,一个复位键,一个设置上下限值,一

个数字加键,一个数字减键,设置阈值来确定指定范围需要的温度。

3.1STC89C52RC单片机核心电路设计

本设计的主控制芯片采用科技研发的单片机STC89C52RC,这款单片机相比

于传统51单片机具有如下的优点:

可以用STC的二线制的下载方式,支持6T模式,片内集成了4kB容量的E2PRO

M,容量更大,带有P4口,具有更多的I/O,可以外接更多的外部模块。

缺点:在某些情况下,抗干扰不强。

STC89C52RC单片机是中国大陆为数不多的自主知识产权的微电子芯片。由

宏晶科技研发制作,是STC89系列单片机的升级产品。该系列产品完全兼容经

典的8051单片机,降低了学习成本。可以直接移植以前学习的单片机程序。并

且相对8051该单片机在抗干扰,低功耗等方面也取得了非常大的突破。单片机

的性能得到了很大的提高。STC89C52RC单片机如图3-1、3-2所示。

图3-1STC89C52RC单片机

3

湖南商务职业技术学院毕业设计

图3-2STC89C52RC实物图

3.2按键电路设计

电路设计了四个按键,一个复位键、一个加键、一个减键、一个设置上下

限键,超过上限值led灯亮蜂鸣器响,低于下限值led灯亮,没有超过上下限

值没有反应,只显示温度。按键电路如图3-3所示。

图3-3按键电路

4

湖南商务职业技术学院毕业设计

3.3四位一体共阳数码管显示模块电路

数码管动态显示接口是在单片机中应用最多最广的一种显示方式之一,动

态驱动是把所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的一样名字的端口连

在一起,其他的给每个数码管的公共极COM增加位选通控制电路,位选通由每

一个各自独立的I/O线控制,在单片机输出字形码的时候,全部数码管都接收

到一样的字形码,但具体是哪一个是数码管会显示出字形,由单片机对位选通CO

M端电路的控制所决定的,所以我们只要将需要显示的数码管的选通控制打开,

这个位置就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个

数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。数码管

如图3-5所示。

图3-5四位一体数码管

4产品软件设计

本产品采用了C语言,KELL编译环境,采用简单的模块化设计,来组成

整体程序。

4.1主程序流程图

主程序流程图如图4-1所示。

5

湖南商务职业技术学院毕业设计

图4-1主程序流程图

6

湖南商务职业技术学院毕业设计

4.2产品程序清单

程序清单如图4-2所示。

图4-2产品程序清单

5产品装配调试及使用说明

5.1产品装配图

产品装配图如图5-1所示。

7

湖南商务职业技术学院毕业设计

图5-1产品装配图

5.2产品调试

产品程序运行验证错误如图5-2所示

图5-2程序运行验证图

8

湖南商务职业技术学院毕业设计

程序运行烧入,程序成功烧入如图5-3所示

图5-3程序烧入图

5.3产品使用说明

插上电源上电,按下电源的开关,DS18B20防水温度传感器检测当前环境的

温度,如果没超过设定的温度阈值,DS18B20防水温度传感器显示当前水温的温

度。

如果超过设定的温度阈值,则蜂鸣器报警,LED灯亮,四位一体数码管显

示所测试的温度的数值。

低于设定的温度阈值,LED灯亮,继电器启动加热器开始加热同时随着水温

的温度增加数码管显示的数值也随之增加。

6产品设计技术标准

[1]J-STD-001E电气与电子组件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E电子组件的可接受性要求

[3]IPC-7711/21电子组件和电路板的返工&返修

[4]GB/T11457-2006信息技术软件工程术语;

9

湖南商务职业技术学院毕业设计

[5]GB/T8566-2007信息技术软件生存周期过程标准;

[6]GB/T8567-2006计算机软件文档编制规范。

7参考资料

[1]李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航

天大学出版社,2018

[2]李广弟.单片机基础[M].北京:北京航空航天大学出版社,2014

[3]江力.单片机原理与应用技术.清华大学出版社.2016

[4]蔡美琴等.MCS一51系列单片机系统及其应用[M].北京:高等教育

出版社,2019.

[5]王树勋.MCS一51单片微型计算机原理与开发.北京:机械工业出

版社,2015

[6]何希才.传感器及其应用电路.北京:电子工业出版社,2018

[7]刘迎春、叶湘滨.传感器原理设计与应用(第三版)[M].长沙:国防

科技大学出版社,2017

[8]靳达.单片机应用系统开发实例导航.北京:人民邮电出版社,2013.

10

湖南商务职业技术学院毕业设计

附录

附录1元器件清单

11

湖南商务职业技术学院毕业设计

附录2电路原理图

附录3PCB设计图

12

湖南商务职业技术学院毕业设计

附录4产品实物图

附录5主程序代码

#include<reg51.h>//包含头文件

#defineuintunsignedint

#defineucharunsignedchar//宏定义

sbitSET=P3^1;//定义调整键

sbitDEC=P3^2;//定义减少键

sbitADD=P3^3;//定义增加键

sbitBEEP=P3^6;//定义蜂鸣器

sbitALAM=P1^7;

sbitALAM1=P1^4;//定义加热制冷继电器

sbitDQ=P3^7;//定义DS18B20总线I/O

13

湖南商务职业技术学院毕业设计

bitshanshuo_st;//闪烁间隔标志

bitbeep_st;//蜂鸣器间隔标志

sbitDIAN=P0^5;//小数点

ucharx=0;//计数器

signedcharm;//温度值全局变量

ucharn;//温度值全局变量

ucharset_st=0;//设置状态标志

signedcharshangxian=45;//上限报警温度,默认值为38

signedcharxiaxian=40;//下限报警温度,默认值为5

//ucharcode

LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};

ucharcode

LEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xD

A,0x9B,0xDC,0x9B,0x8B};//数码管显示码表

//============================================================

================================

//====================================DS18B20=================

================================

//============================================================

================================

/*****18b20延时子程序*****/

voidDelay_DS18B20(intnum)

{

while(num--);

}

/*****初始化DS18B20*****/

voidInit_DS18B20(void)

{

unsignedcharx=0;

DQ=1;//DQ复位

Delay_DS18B20(8);//稍做延时

DQ=0;//单片机将DQ拉低

Delay_DS18B20(80);//精确延时,大于480us

DQ=1;//拉高总线

Delay_DS18B20(14);

x=DQ;//稍做延时后,如果x=0则初始化成功,x=1则初始化失

Delay_DS18B20(20);

}

/*****读一个字节*****/

unsignedcharReadOneChar(void)

{

14

湖南商务职业技术学院毕业设计

unsignedchari=0;

unsignedchardat=0;

for(i=8;i>0;i--)//循环8次,读出一个字节

{

DQ=0;//给脉冲信号

dat>>=1;//数据右移一位

DQ=1;//给脉冲信号

if(DQ)//如果该位为1

dat|=0x80;//将数据|0x80后,存入dat

Delay_DS18B20(4);//延时

}

return(dat);//返回一字节数据

}

/*****写一个字节*****/

voidWriteOneChar(unsignedchardat)

{

unsignedchari=0;

for(i=8;i>0;i--)//循环8次,写入一个字节

{

DQ=0;//拉低

DQ=dat&0x01;//将dat数据&0x01后,送入IO口

Delay_DS18B20(5);//保持一会

DQ=1;//io口拉高

dat>>=1;//dat右移一位

}

}

/*****读取温度*****/

unsignedintReadTemperature(void)

{

unsignedchara=0;

unsignedcharb=0;

unsignedintt=0;

floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0x44);//启动温度转换

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0xBE);//读取温度寄存器

a=ReadOneChar();//读低8位

b=ReadOneChar();//读高8位

t=b;//将高8位数据存入t

t<<=8;//t左移8位

15

湖南商务职业技术学院毕业设计

t=t|a;//将t|a得到一个16位的温度数据

tt=t*0.0625;//一个最低位代表0.0625°C,所以要*0.0625得到实际温

度,因为有小数运算,所以定义的tt是float浮点型变量

t=tt*10+0.5;//放大10倍输出并四舍五入(将温度放大10倍可以得到小数

部分)

return(t);//返回得到的温度值

}

//============================================================

=========================

//============================================================

=========================

//============================================================

=========================

/*****延时子程序*****/

voidDelay(uintnum)

{

while(--num);

}

/*****初始化定时器0*****/

voidInitTimer(void)

{

TMOD=0x1;//工作方式1

TH0=0x3c;

TL0=0xb0;//50ms(晶振12M)

}

/*****读取温度*****/

voidcheck_wendu(void)

{

uinta,b,c;

c=ReadTemperature()-5;//获取温度值并减去DS18B20的温漂误

a=c/100;//计算得到十位数字

b=c/10-a*10;//计算得到个位数字

m=c/10;//计算得到整数位

n=c-a*100-b*10;//计算得到小数位

if(m<0){m=0;n=0;}//设置温度显示上限

if(m>99){m=99;n=9;}//设置温度显示上限

}

/*****显示开机初始化等待画面*****/

voidDisp_init(void)

16

湖南商务职业技术学院毕业设计

{

P0=~0x80;//显示----

P2=0x7F;//依次打开各位

Delay(200);//延时

P2=0xDF;

Delay(200);

P2=0xF7;

Delay(200);

P2=0xFD;

Delay(200);

P2=0xFF;//关闭显示

}

/*****显示温度子程序*****/

voidDisp_Temperature(void)//显示温度

{

P0=~0x98;//显示C

P2=0x7F;//打开位

Delay(400);//延时

P2=0xff;//关闭显示

P0=~LEDData[n];//显示个位

P2=0xDF;

Delay(400);

P2=0xff;//关闭显示

P0=~LEDData[m%10];//显示十位

DIAN=0;//显示小数点

P2=0xF7;

Delay(400);

P2=0xff;//关闭显示

P0=~LEDData[m/10];//显示百位

P2=0xFD;

Delay(400);

P2=0xff;//关闭显示

}

/*****显示报警温度子程序*****/

voidDisp_alarm(ucharbaojing)

{

P0=~0x98;//显示C

P2=0x7F;//选中位

Delay(200);

P2=0xff;//关闭显示

P0=~LEDData[baojing%10];//显示十位

P2=0xDF;

Delay(200);

17

湖南商务职业技术学院毕业设计

P2=0xff;//关闭显示

P0=~LEDData[baojing/10];//显示百位

P2=0xF7;

Delay(200);

P2=0xff;//关闭显示

if(set_st==1)P0=~0xCE;//设置上限时显示H

elseif(set_st==2)P0=~0x1A;//设置下限时显示L

P2=0xFD;

Delay(200);

P2=0xff;//关闭显示

}

/*****报警子程序*****/

voidAlarm()

{

if(x>=10){beep_st=~beep_st;x=0;}//控制闪烁(x随定时器每50ms加1,10次

时500ms,这里闪烁就是500ms亮500ms灭)

if(m>=shangxian)//温度大于上限时

{

ALAM=0;//制冷继电器吸合

ALAM1=1;

if(beep_st==1)//控制蜂鸣器闪烁变量为1时

BEEP=0;//蜂鸣器响

else//控制蜂鸣器闪烁变量为0时

BEEP=1;//蜂鸣器停止

}

elseif(m<xiaxian)//温度小于下限时

{

ALAM1=0;//升温继电器吸合

ALAM=1;

BEEP=1;

}

else//水温在上下限范围内时

{

BEEP=1;//关闭蜂鸣器

ALAM=1;//关闭加热和制冷继电器

ALAM1=1;

}

}

/*****主函数*****/

voidmain(void)

{

uintz;

18

湖南商务职业技术学院毕业设计

InitTimer();//初始化定时器

EA=1;//全局中断开关

TR0=1;//打开定时器定时开关

ET0=1;//开启定时器0

IT0=1;//外部中断下降沿有效

IT1=1;

check_wendu();

check_wendu();//读取两次温度,防止开机读取到85°C,使继电器误操

for(z=0;z<300;z++)//开机画面

{

Disp_init();

}

while(1)//while循环

{

if(SET==0)//判断设置键是否按下

{

Delay(2000);//延时去抖

do{}while(SET==0);//执行空语句,判断按键是否松开,松开向下执

行,否则重新执行空语句

set_st++;x=0;shanshuo_st=1;//设置键松开后将设置变量加1,闪烁标

志位置1

if(set_st>2)set_st=0;//当设置完成时,退出设置

}

if(set_st==0)//正常工作时

{

EX0=0;//关闭外部中断0

EX1=0;//关闭外部中断1

check_wendu();

Disp_Temperature();//检测温度

Alarm();//报警检测

}

elseif(set_st==1)//设置上限时

{

BEEP=1;//关闭蜂鸣器

ALAM=1;

ALAM1=1;//继电器关闭

EX0=1;//开启外部中断0

EX1=1;//开启外部中断1

if(x>=10){shanshuo_st=~shanshuo_st;x=0;}

if(shanshuo_st){Disp_

温馨提示

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

评论

0/150

提交评论