基于51单片机水温控制系统设计与制作_第1页
基于51单片机水温控制系统设计与制作_第2页
基于51单片机水温控制系统设计与制作_第3页
基于51单片机水温控制系统设计与制作_第4页
基于51单片机水温控制系统设计与制作_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

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

目录

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

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

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

2.2通讯方式的选择.............................................2

2.3系统框图设计...............................................2

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

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

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

3.3数码管显示模块电路.........................................4

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

4.1主程序流程图...............................................6

4.2数码管显示程序设计........................................6

4.3上位机程序................................................7

4.4产品程序清单..............................................8

5产品使用说明....................................................8

5.1产品装配图.................................................8

5.2产品调试...................................................9

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

6产品设计技术标准................................................10

参考资料..........................................................11

附录..............................................................12

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

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

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

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

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

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

基于51单片机水温控制系统设计与制作

1产品功能分析

本设计是一个基于单面机的温度测控系统,主要由单面机构成温度采集与

控制终端,实现温度采集与控制。温控系统是将负载的电加热丝看成是被控对

象,温度是控制量,控制前先设定温度值,然后对电加热丝进行温度采集,并将

采集的数据通过串行通信传送给上位机,通过控制P口的高低电平,控制电加

热丝的通断,从而实现对温度的控制,并将显示的温度通过蓝牙模块传输到手

机端上显示。此设计软硬件两部分组成硬件电路是系统的结构框架,是软件的

载体,软件是系统的内核,通过硬件来进行具体操作,因此软硬件相互配合,

共同完成各种功能。此系统硬件主要由以下几个部分构成:单片机、温度采集

电路、温度控制电路、数码管显示电路,以及蓝牙模块,而系统软件主要通过

对单片机编程来实现。

2设计方案遴选

产品硬件电路在设计与搭建前需要选择好我们产品所需要的各个零件,才

能把我们自作的产品功能能够发挥出效果来。有效果的水温控制系统需要很多

个零部件组成的,有很多零件以及模块可以让我们选择,需要我们根据实际以

及根据我们的经济水平和产品兼容性上来考虑的,产品的基本形式是由温度显

示,蜂鸣器报警,数码管显示功能组成。

2.1单片机的选择

方案1:使用STM32系列单片机

STM32单片机产品的优缺点:是一款性价比超高、功能强大的单片机。基于

专为需要高性能、低成本和低功耗的嵌入式应用而设计的ARM。但是它对于一个

学生来讲成本相对较高了而且使用起来比较复杂不推荐学生使用这款单片机。

方案2:使用51系列单片机

51单片机产品的优缺点:51单片机是一种上手容易操作系数不难的一款单

片机,而且很经典的一款产品。软件到内部硬件都拥有整套的按位操作系统,

1

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

一般可称为微处理器,片内RAM双重功能地址区间是所拥有的功能,以及乘法

和除法指令,使用极为活,但是没有完美无瑕的产品以及毫无逻辑漏洞的程序,

凡是都有两面性51单片机也还是有缺点的,比如AD、EEPROM之类的功能需扩

展,增加了硬软件的负担,且保护芯片能力较差,很容易烧掉芯片,综合成本、

技术成熟程度以及产品功能的需求,主要是成本相对于其他的要低也符合一个

学生的经济水平以及产品的需求,所以选择了51系列的单片机。

2.2通讯方式的选择

通过蓝牙模块与安卓手机进行连接将数据通过蓝牙传输到安卓手机上显示。

蓝牙设备是一个比较新型的连接设备,支持设备短距离通信无线电技术当

属于是蓝牙这款了,可以在大量外设等其他设备中通过无线信息交换与交流,

极大程度简化了移动通信终端设备两者之间的通信,主要是对于产品而言蓝牙

模块是最佳的选择了,因为对于学生的经济水平来说蓝牙模块性价比很高,而

且相对于我们专业来讲,蓝牙模块的使用比较频繁,产品用蓝牙模块上手会很

容易一点,所以选择使用了蓝牙模块。

2.3系统框图设计

系统框图如图1所示。

Led指示灯电源电路

DS18B20温度传感数码管显示

单片机处理单

继电器控制水泵蓝牙无线传输

报警电路

按键电路设置电路

图1系统框图

3产品硬件设计

由STC89C52RC单片机组成的此系统,数码管显示器,蜂鸣器模块,按键模

2

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

块,蓝牙模块,LED显示模块、继电器模块,以及电源组成。

主要利用DS18B2检测到的温度传输到串口实际参数值,再把串口收到的实

际温度值显示于数码管显示器上面,在通过蓝牙传输到手机上显示温度值。

电路板上面有4个按键,一个是电源的开关按键,有一个是设置键,其余

两个是:温度值加0.1,以及温度值减0.1,只于设置模式之中才可以对它进行

操作。

在处于设置模式之中时,数码管显示器有对应显示标志,设置温度上限值

和下限值,数码管上都会有相应的变化。

3.1STC89C52RC单片机核心电路设计

51系列单片机它在指令系统、硬件结构和片内资源等方面与标准的52系列

的单片机可以完全的兼容。51系列的单片机执行速率快(最高时钟频率为90

MHz),功耗低,在系统、在应用可编程,不占用用户的资源。根据本系统设计的

实际要求,选择STC89C52RC单片机做为本设计的单片机使用,它是由ATMEL公

司生产的高性能、低功耗的CMOS8位单片机。STC89C52RC单片机具有以下几个

性能特点:4k字节的闪存片内程序存储器,128字节的数据存储器,32个

外部输入和输出口,2个全双工串行通信口,看门狗电路,5个中断源,2

个16位可编程定时计数器,片内震荡和时钟电路且全静态工作并由低功耗

的闲置和掉电模式。

STC89C52RC单片机实物图如图2所示。

图2STC89C52RC单片机实物图

3.2按键电路设计

按键也是一种电子开关,实现开关接通仅需按下按键,断开连接仅需松开

3

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

键,轻触按键内部中金属弹片受力弹动触发来实现接通断开功能,本设计

中这三个按键是最重要的部分控制着整个产品,有些模块的效果是靠按键来设

置的,比如温度的上下限值。按键是一个系统输入,按键单片机控制引脚默认

为高电平,按键按下,单片机对应引脚于是成为低电平。

图3按键电路原理图

3.3数码管显示模块电路

数码管是一种半导体发光器件,其基本单元是发光二极管。能显示4位数

字的叫四位数码管,当然也有多位和只有一位的数码管,他们的电气原理相同。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个

发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极

数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形

成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当

某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极

为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到

一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地

线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某

一字段的阳极为低电平时,相应字段就不亮。数码管的电路原理和实物见图4、

图5。

寄存器选择控制表和其管脚功能表如表1所示:

数码管引脚功能表

引脚连接的对象

1E

4

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

2D

3Dp

4C

5G

6S4

7B

8S3

9S2

10F

11A

12S1

图4数码管显示电路原理图

5

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

图5数码管显示器实物图

4产品软件设计

本产品软件设计使用C语言,利用keil5软件编译程序环境,采用的是简单

的模块化设计,多个程序模块化连接而成的整体程序。

4.1主程序流程图

主程序流程图如图6所示。

图6主程序流程图

4.2数码管显示程序设计

数码管显示的单片机的基础功能,数码管具有动态显示,和静态显示两种

状态,其显示的原理就是利用人眼睛的视觉暂留现象,通过控制单片机IO快速

6

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

刷新数码管的显示内容,达到人们眼中所见的稳定不变的显示。

4.3上位机程序

上位机是一个蓝牙串口的APP,在与蓝牙模块进行连接是,数码管上显示的

温度会传输到蓝牙串口上显示。上位机上有三个按键对应产品上的三个按键其

功能一致,分别为设置键、温度数值加键、温度数值减键。

未连接蓝牙之前与连接蓝牙之后的图片状态如图7所示,连接后的显示图

片如图8所示。

图7未连接时界面图8连接后的界面

三个控制按键:按键一是进入设置状态,E1为设置温度的上限值,E2为设

置温度的下限值,操作界面如图9所示。

7

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

图9三个按键的初始状态

4.4产品程序清单

温度读取

处理转换

头文件定时器初始化

函数

传感器

main.cIO口定义

驱动程

串口接收

数码管显示函

5产品使用说明

5.1产品装配图

产品是由单片机,数码管显示模块,报警模块,继电器模块,报警模块

(LED显示和蜂鸣器),蓝牙模块,电源和按键模块组成。

装配图如图10所示。

8

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

图10产品装配图

5.2产品调试

对各个模块的部件进行测试与调节,将散件的各个部件手工的焊接到万能

板上,对照程序原理图将各个部件的联系用线连接好,焊接完成后需要对每一

个焊点进行仔细的检查,确保没有虚焊漏焊以及是否有毛刺等。使用万用表进

行测试各个点之间的焊接状况是否合格,再检查各电源线与地线是否有短路的

现象,是着对产品进行通电,看看效果是否和预想的一样。

将编译好的程序烧录到单片机中,程序烧录成功界面如图11所示。

图11程序烧录图

5.3产品使用说明

基本的使用说明:

1.接上电源通电,将ds18b20的端口放入水中,再按下电源开关,数码管

上显示当时的水温的温度。

2.按键1进入设置,设置温度的上限和下限值,按键2温度加0.1,按键3

温度减0.1。

3.蜂鸣器温度达到上限或者下限值是会报警

4.LED显示温度达到下限值以下红灯会亮起,当温度达到上限值以上黄灯

9

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

会亮起,温度在上限与下限之内红黄两灯处于熄灭状态

5.蓝牙模块,用安卓手机下一个蓝牙专属的APP,进行与蓝牙模块进行连

接配对,连接成功后,在数码管显示的温度会通过蓝牙模块传输到手机APP上

显示当前的温度

6.继电器的作用是配合蜂鸣器和LED显示,进行报警与LED显示。

6产品设计技术标准

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

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

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

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

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

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

10

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

参考资料

[1]郭天祥.新概念51单片机C语言教程.北京:电子工业出版社,2009.P342-P354

[2]李建忠.单片机原理与应用.西安:西安电子科技大学出版社,2009.P16-P50

[3]阎实.数字电子技术基础.北京:高等教育出版社,1983.P178-P182

[4]谭浩强.C语言程序设计(第三版).北京:清华大学出版社,2005.P49-P86

[5]陈杰,黄鸿.传感器监测与技术.北京:高等教育出版社,2002.P15-P50

[6]张红润,张亚凡,邓洪.传感器原理与应用.北京:清华大学出版社,2008.P35-P38

[7]童师白,华成英.模拟电子技术基础.北京:高等教育出版社,1980.

[8]朱清慧,张凤蕊.proteus教程.北京:清华大学出版社,2008.

11

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

附录

附录1元器件清单

元器件编号封装参数数量

HDR1X2CON2

10uFC1RB7.6-15'CAPACITOR

POL

22C2,C3'RAD-0.3CAP

IN4148D2'SOT-23_LDIODE

KEY1K1,K2,K3SPST-2KEY1

LEDLED2,LED4,LED5LED-1LED

10KR1,R11AXIAL-0.4RES2.10K

1KR4,R10,R13,R14,R15,R16,R19,R22,R214AXIAL-0.41K

4.7KRP1HDR1X9RP8

STC89C52RCU1DIP40AT89C51

4-LEDU3W4-LED7

SWITCHU4HDR2X3SWITCH

POWU5U5POW

S8550U7,U11,U12,U13,U14SOT-23B_LPNP

BELLU8PIN2BELL

JDQ-5U10U10JDQ-5

S8550U16S8550SOT-23B_LPNP

DS18B20U22HDR1X3CON3

HC-05U75HDR1X6HC-05

12MHzY1R38CRYSTAL

12

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

附录2电路原理图

13

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

附录3PCB设计图

14

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

附录4产品实物图

15

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

16

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

附录5主程序代码

#include"reg52.h"

#include<intrins.h>

//20移动互联3班吴松成

//基于51单片机的水温控制系统制作与设计

#include"common.h"

#include"DS18B20_One.h"

#include"eeprom52.h"

#include"uart.h"

sbitset=P1^3;//设置

sbitadd=P1^4;//加

sbitdec=P1^5;//减

sbitSMG1=P2^0;//右边数第一个数码管

sbitSMG2=P2^2;//右边数第二个数码管

sbitSMG3=P2^4;//右边数第三个数码管

sbitSMG4=P2^6;//右边数第四个数码管

sbitbeep=P3^5;

sbitjdq=P3^7;

sbitled1=P1^0;

sbitled2=P1^1;

unsignedcharset_mode=0;//设置变量,不在设置模式下是0,1是设置下

限,2是设置上限

unsignedcharcount1=0;

staticuintcount=0;

shorttempeature=0;//温度值

intTemp_min_value=100;//下限值

intTemp_max_value=350;//上限值

charcheck=111;//检验位

unsignedcharcode

smgduan[12]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0xff,

0xe4};//共阳数码管编码

unsignedcharDisplayData[4];//显示数据缓存区

17

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

/*******************************************************************

*函数名:delay

*函数功能:延时函数,i=1时,大约延时10us

*************************************************************/

voiddelay(unsignedinti)

{

while(i--);

}

voidTimer0Init()//定时器初始化

{

TMOD|=0x01;//设定定时器0,工作方式1

TL0=0x00;//10ms

TH0=0xDC;

ET0=1;

TR0=1;

EA=1;

}

voidwrite_eeprom()//eeprom存储数据,设置值

{

SectorErase(0x2000);//清除

byte_write(0x2001,Temp_min_value%256);//存储低8位数据

byte_write(0x2002,Temp_min_value/256);//存储高8位数据

byte_write(0x2003,Temp_max_value%256);

byte_write(0x2004,Temp_max_value/256);

byte_write(0x2009,check);

}

voideeprom_init()//eeprom读取数据

{

check=byte_read(0x2009);

if(check!=111)//单片机第一次使用时,check校验值便不是111,所

以这里要把初始的数据先存一遍再读取

{

check=111;

18

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

Temp_min_value=100;

Temp_max_value=350;

write_eeprom();

}

Temp_min_value=byte_read(0x2002)*256+byte_read(0x2001);//

读取下限值

Temp_max_value=byte_read(0x2004)*256+byte_read(0x2003);//

读取上限值

}

/*******************************************************************

*函数名:DigDisplay()

*函数功能:数码管显示函数

*输入:无

*输出:无

***********************************************************/

voidDigDisplay()

{

unsignedchari;

for(i=0;i<4;i++)

{

switch(i)//位选,选择点亮的数码管,

{

case(0):SMG1=0;SMG2=1;SMG3=1;SMG4=1;break;//显示第1位

case(1):SMG1=1;SMG2=0;SMG3=1;SMG4=1;break;//显示第2位

case(2):SMG1=1;SMG2=1;SMG3=0;SMG4=1;break;//显示第3位

case(3):SMG1=1;SMG2=1;SMG3=1;SMG4=0;break;//显示第4位

}

P0=DisplayData[i];//发送数据

delay(100);//间隔一段时间扫描

P0=0xff;//消隐

}

}

19

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

/*******************************************************************

*函数名:datapros()

*函数功能:温度读取处理转换函数

*输入:temp

*输出:无

*******************************************************************/

voiddatapros()

{

if(set_mode==0)

{

tempeature=DS18B20_TF()*10;//读取温度值

//装载到显示缓存区

DisplayData[3]=smgduan[tempeature%1000/100];//显示十位

DisplayData[2]=smgduan[tempeature%100/10]&0xdf;//显示个位

DisplayData[1]=smgduan[tempeature%10];//小数点后一位

DisplayData[0]=smgduan[11];//显示C

}

}

unsignedcharxdataRevBuf[COM_RX1_Lenth];//串口接收缓存

voidkeyscan()//按键扫描

{

staticunsignedintCount3=0;

memset(RevBuf,0,COM_RX1_Lenth);//清除缓存

uart_recv(RevBuf,50);//接受串口内容

if(set==0||(strstr(RevBuf,"k1")!=NULL))//设置键按下

{

delay_ms(10);

if(set==0||(strstr(RevBuf,"k1")!=NULL))

{

while(!set);//等待按键松开

set_mode++;//记录按下次数

if(set_mode>2)//超过两次,退出设置

{

20

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

set_mode=0;

count=200;//这里赋值200,是为了退出时立马能

读取温度数据,请看中断1里面读取温度

}

if(set_mode==1)//设置温度下限

{

do

{

//显示E1

DisplayData[3]=0x64;

DisplayData[2]=smgduan[1];

DisplayData[1]=0xff;

DisplayData[0]=0xff;

delay_ms(3);

}while(Count3++<100);//延时

DisplayData[3]=smgduan[Temp_min_value/100];

DisplayData[2]=smgduan[Temp_min_value%100/10];

DisplayData[1]=smgduan[Temp_min_value%10]&0xdf;

DisplayData[0]=smgduan[11];

Count3=0;

}

elseif(set_mode==2)//设置温度上限

{

do

{

//显示E2

DisplayData[3]=0x64;

DisplayData[2]=smgduan[2];

DisplayData[1]=0xff;

DisplayData[0]=0xff;

delay_ms(3);

}while(Count3++<100);//延时

21

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

DisplayData[3]=smgduan[Temp_max_value/100];

DisplayData[2]=smgduan[Temp_max_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_max_value%10];

DisplayData[0]=smgduan[11];

Count3=0;

}

}

}

if(set_mode!=0)//说明实在设置模式下

{

if(add==0||(strstr(RevBuf,"k2")!=NULL))//加键按下

{

delay_ms(50);

if(add==0||(strstr(RevBuf,"k2")!=NULL))

{

if(set_mode==1)

{

if(Temp_max_value-Temp_min_value>1)//上限值必须大于下

限值,下限值才能加

Temp_min_value++;//显示

DisplayData[3]=smgduan[Temp_min_value/100];

DisplayData[2]=smgduan[Temp_min_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_min_value%10];

write_eeprom();//存储数据

delay_ms(50);

}

if(set_mode==2)

{

if(Temp_max_value<999)//最大到99.9

Temp_max_value++;

DisplayData[3]=smgduan[Temp_max_value/100];

DisplayData[2]=smgduan[Temp_max_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_max_value%10];

22

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

write_eeprom();//存储数据

delay_ms(50);

}

count1=0;

}

}

if(dec==0||(strstr(RevBuf,"k3")!=NULL))//减键按下

{

delay_ms(50);

if(dec==0||(strstr(RevBuf,"k3")!=NULL))

{

//while(!dec);

if(set_mode==1)

{

if(Temp_min_value>0)//最小到0

Temp_min_value--;

DisplayData[3]=smgduan[Temp_min_value/100];

DisplayData[2]=smgduan[Temp_min_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_min_value%10];

write_eeprom();//存储数据

delay_ms(50);

}

if(set_mode==2)

{

if(Temp_max_value-Temp_min_value>1)//上限值必须大于下限值,上

限值才能减

Temp_max_value--;

DisplayData[3]=smgduan[Temp_max_value/100];

DisplayData[2]=smgduan[Temp_max_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_max_value%10];

write_eeprom();//存储数据

delay_ms(50);

}

23

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

count1=0;

}

}

}

}

voidDisplay_blink()//设置闪烁

{

if(set_mode!=0)

温馨提示

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

评论

0/150

提交评论