基于51单片机的超声波设计.docx
- 文档编号:25220846
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:23
- 大小:891.34KB
基于51单片机的超声波设计.docx
《基于51单片机的超声波设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的超声波设计.docx(23页珍藏版)》请在冰豆网上搜索。
基于51单片机的超声波设计
四川师范大学成都学院电子信息工程专业综合设计
基于单片机的温度控制器
学生姓名
田世强
学号
2008104111
所在系
电子工程系
专业名称
电子信息工程(工业与民用)
班级
2008级2班
指导教师
鲁顺昌孙活
成绩
四川师范大学成都学院
二○一一年六月
目录
前言1
1.总体设计方案1
1.1系统设计方案论证1
1.2系统结构框图1
2.硬件设计2
2.1元器件的选择2
2.1.1单片机的选择2
2.1.2传感器的选择2
2.2单片机控制模块3
2.3温度采集模块4
2.4时间产生模块4
2.5显示模块5
2.6报警模块5
2.7控制模块6
3.软件设计7
3.1主程序流程图7
3.2按键程序和主程序7
4.系统调试13
4.1测量方法13
4.2测试结果13
5.设计总结15
6.参考文献15
附录16
摘要:
温度是生产过程和科学实验中普遍而且重要的物理参数。
本文利用单片机结合传感器技术而开发设计了这一温度监控系统。
本文详细地讲述了基于单片机AT89S51和温度传感器DS18B20的温度控制系统的设计方案。
系统采用数字温度传感器DS18B20采集温度数据,LCD1602同步显示温度设定值和当前测量值,可通过按键以1℃的步进改变温度设定值,系统复位后默认设定温度值为40℃。
当温度低于设定值时,单片机控制继电器启动加热器加热,同时点亮红色发光二极管,当温度高于设定值时,加热器停止加热,从而实现了测量和控制温度的目的。
系统稍微改装可以作为生物培养液温度监控系统,可以做热水器温度调节系统、实验室温度监控系统等等。
系统具有控制方便、组态简单和灵活性大等优点,经过反复测试,系统能够稳定运行。
关键字:
单片机,温度控制,传感器,LCD1602
Abstract:
Temperatureisaimportantphysicalparametersinproductionprocessandscientificexperiments.ThedesignandimplementationoftemperaturecontrolsystembasedonsinglechipmicrocontrollerAT89C51andtemperaturetransducerDS18B20,andthispaperdescribesthemindetail.ThedataoftemperaturearecollectedbyDS18B20,LCD1062displaytemperaturesettingsandsynchronizethecurrentmeasuredvalue;thetemperaturesettingscanbechangeBythekey-presseswith1℃step.Thedefaulttemperaturevalueis40℃.Whenthetemperatureisunderthesettings,theheaterstartswiththered-LEDon,oppositely.Whenthetemperatureishigherthanthesettingstheheaterstoppedheating.TheSystemisveryflexibleandeasytocontrol,anditsconfigurationissimple.Afterrepeatedtesting,thesystemcanrunstably.
Keywords:
Singlechipmicrocontroller,Temperaturecontrol,Sensor,LCD1602
前言
温度是生产过程和科学实验中普遍而且重要的物理参数。
在工业生产过程中为了高效地进行生产,必须对生产工艺过程中的主要参数,如温度,压力,流量,速度等进行有效的控制。
其中温度的控制在生产过程中占有相当大的比例。
准确测量和有效控制温度是优质,高产,低耗和安全生产的重要条件。
在工业的研制和生产中,为了保证生产过程的稳定运行并提高控制精度,采用微电子技术是重要的途径。
它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益。
作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、传感器原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。
能够提高学生的对所学知识的综合运用能力,
更能锻炼学生的团队协作能力。
本课题采用51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。
另外,温度传感器方面,选用了DS18B20,它属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
具有体积小,接口方便,传输距离远等特点。
DS18B20采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)很好地实现本系统对温度的测量。
1.总体设计方案
1.1系统设计方案论证
方案一,采用纯硬件的闭环控制系统。
该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。
且要实现题目所有的要求难度较大。
方案二,FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。
即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。
这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。
方案三,单片机与高精度温度传感器结合的方式。
即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。
这种方案克服了方案一、二的缺点,所以本课题任务是基于单片机和温度传感器实现对温度的控制。
1.2系统结构框图
系统主要包括数据采集模块,单片机控制模块,显示模块,温度设置模块和时钟产生模块,驱动电路六个部分。
系统框图如图1所示。
图1系统框图
其中数据采集模块负责实时采集温度数据,采集到的温度数据传输到单片机,由单片机处理后的数据送显示部分显示。
设置模块可设置预定温度,当检测到的温度低于设定温度时,单片机控制驱动电路启动加热,并发出报警声;当检测温度高于设定温度时,停止加热。
时钟模块是采用专用的实时时钟芯片,通过单片机来读取数据送显示部分显示。
2.硬件设计
2.1元器件的选择
2.1.1单片机的选择
单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,本课题选择AT89S51作为主控芯片。
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51单片机引脚图如图2所示
图2单片机引脚图
2.1.2传感器的选择
本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据,DS18B20属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
它具有体积小,接口方便,传输距离远等特点。
DS18B20的性能特点:
第一,采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位);第二,测温范围为-55℃-+125℃,测量分辨率为0.0625℃;第三,内含64位经过激光修正的只读存储器ROM;第四,适配各种单片机或系统机;第五,用户可分别设定各路温度的上、下限;第六,内含寄生电源。
DS18B20内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
DS18B20的管脚排列如图3所示。
图3DS18B20引脚分布图
2.2单片机控制模块
控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值的设定与温度越限时控制电路的启动。
本控制模块由单片机AT89S51及其外围电路组成,电路如图4所示。
图4单片机控制模块
2.3温度采集模块
温度由DALLAS公司生产的一线式数字温度传感器DS18B20采集。
DS18B20测温范围为-55°C~+125°C,测温分辨率可达0.0625°C,被测温度用符号扩展的16位补码形式串行输出。
CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
本设计采用三引脚PR-35封装的DS18B20。
Vcc接外部+5V电源,GND接地,I/O与单片机的P2.1(T0)引脚相连。
图5温度采集模块
2.4时间产生模块
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
图中显示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向)。
SCLK始终是输入端。
图6时间产生模块
2.5显示模块
本系统使用LCD1602作为显示器。
单片机通过采集温度传感器和实时时钟的数据,然后处理,把处理后的数据送到显示器显示。
图7显示模块
2.6报警模块
报警电路是由蜂鸣器加一个三极管组成的,当温度超过设定值时,通过单片机向三极管基极发送低电平,让三极管导通。
从而驱动蜂鸣器发声,起到报警的作用。
图8报警模块
2.7控制模块
控制电路是通过一个继电器来控制外围电器。
当温度低于预设值,单片机就发送指令来控制继电器导通。
当温度高于设定值时,则反之。
图9控制模块
3.软件设计
3.1主程序流程图
大于
小于
图10主程序流程图
3.2按键程序和主程序
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
#include"lcd1602.h"
#include"ds1302.h"
#include"ds18b20.h"
voidkeyscan();
voidwenduxianshi();
voidbuzzer();
voidjidianqi();
voiddelay(uintz);
ucharl=0,temp=40;
sbitk2=P3^0;
sbitk3=P3^1;
sbitk4=P3^2;
sbitt=P2^0;
sbitb=P2^2;
voiddelay(uintz)
{
uinti,j;
for(i=0;i<=z;i++)
for(j=0;j<=500;j++);
}
voidkeycan()
{
if(k2==0);
delay(12);
if(k2==0)
{
l++;if(l==7)
{l=0;}
}
switch(l)
{
case0:
{
if(k3==0);delay(12);if(k3==0)
{
(times[1])++;
if((times[1])==60)
{(times[1])=0;}
write_1302(0x82,times[1]);
}
if(k4==0);delay(10);
if(k4==0)
{
(times[1])--;
if((times[1])==0)
{(times[1])=60;
}}
write_1302(0x82,times[1]);
}
break;
case1:
{
if(k3==0);delay(10);
if(k3==0)
{
(times[2])++;
if((times[2])==24)
{(times[2])=0;}
write_1302(0x84,times[2]);
}
if(k4==0);
delay(10);
if(k4==0)
{
(times[2])--;
if((times[2])==0)
{(times[2])=24;}}
write_1302(0x84,times[2]);
}
break;
case2:
{if(k3==0);
delay(10);
if(k3==0)
{(times[3])++;
if((times[3])==31)
{(times[3])=0;}
write_1302(0x86,times[3]);}
if(k4==0);delay(10);
if(k4==0)
{
(times[3])--;
if((times[3])==0)
{(times[3])=31;}}
write_1302(0x86,times[3]);}
break;
case3:
{
if(k3==0);delay(12);
if(k3==0)
{(times[4])++;
if((times[4])==12)
{(times[4])=0;}
write_1302(0x88,(times[4]));}
if(k4==0);
delay(12);
if(k4==0)
{
(times[4])--;
if((times[4])==0)
{(times[4])=12;}}
write_1302(0x88,times[4]);
}
break;
case4:
{
if(k3==0);delay(10);
if(k3==0)
{(times[6])++;
write_1302(0x8c,times[6]);}
if(k4==0);delay(10);
if(k4==0)
(times[6])--;
write_1302(0x8c,times[6]);}
break;
case5:
{if(k3==0);delay(10);
if(k3==0)
{(times[5])++;
if((times[5])==8)
{(times[5])=1;}
write_1302(0x8a,times[5]);}
if(k4==0);delay(10);
if(k4==0)
{(times[5])--;
if((times[5])==0)
{(times[5])=7;}
write_1302(0x8a,times[5])}
break;
case6:
{if(k3==0);delay(10);
if(k3==0)
temp++
if(k4==0);delay(10);
if(k4==0)
temp--;}
break;
default:
break;}}
voidwenduxianshi()
{LCD_command(0xcb);
LCD_write_string("k");
LCD_dat(l%10+0x30);
LCD_write_string("");
LCD_dat(temp/10+0x30);
LCD_dat(temp%10+0x30);}
voidbuzzer()
{if(temp==x1)
{b=0;delay(200);
b=1;delay(200);}}
voidjidianqi()
{if(temp==x1)
t=0;}
voidmain(void)
{init_1302();
LCD1602_init();
settime_1302(inittime);
while
(1)
{keycan();Display();xianshi();wenduxianshi();jidianqi();
buzzer();}}
4.系统调试
4.1测量方法
系统温度测量的准确度。
我们将标准温度计和温度控制系统的探头放在一起,选定若干不同温度点,记录下标准温度计的温度和温度控制系统测量显示的温度进行比较。
设定开启加热温度,改变环境温度,验证检测到的温度高于设定温度时是否停止加热,检测到的温度小于设定温度时是否启动加热。
4.2测试结果
第一,本系统测量显示温度与标准温度计测量温度对比如表6所示。
表6温度测量准确度
标准温度计测量温度(℃)
本系统测量显示温度(℃)
23
25
30
40
45
60
23
25
30
40
45
60
根据温度测量数据的对比可知,本系统能够准确地测量并显示环境温度。
第二,设定不同的开启加热温度,改变环境温度,系统工作情况如表7所示。
表7系统加热测量
设定温度(℃)
环境温度(℃)
发光二极管(亮/灭)
15
15
15
25
25
25
25
40
40
40
40
10
15
30
20
24
25
30
30
39
40
50
亮
灭
灭
亮
亮
灭
亮
亮
亮
灭
灭
发光二极管亮表示启动加热,灭表示停止加热。
根据表7可知,系统可以自由设定不同的加热温度,温度设定当环境温度低于设定温度时系统启动加热,当环境温度高于或等于设定温度时,系统停止加热。
经过反复测试,系统温度设定范围为0~120℃,最小区分度为1℃,温度控制的误差≤1℃;能够测量并用数码管显示当前实际温度值;通过复位键可以使系统设定温度还原默认值,通过加一键和减一键可以以1℃步进设置预定温度;环境温度低于设定温度时,启动加热,红色发光二极管点亮,环境温度高于或等于设定温度时,停止加热,红色发光二极管灭。
达到了课题要求的技术指标。
5.设计总结
在这两周的课程设计期间(我主要负责电路设计,画电路图,PCB图和编程),使我对我们所学过的专业知识更加熟悉。
如:
Altium软件,C语言编程,一些基本的数电和模电知识。
这次课程设计是五人一组,从中我学到一些团队合作经验,为以后我们组队参加电子设计大赛打下一定的基础。
在此我要特别感谢学院给我们提供这次专业综合课程设计的机会,并免费提供元件,给我们一个自己动手制作产品的机会。
还要感谢我的理论指导教师鲁顺昌和实验指导老师孙活给予我专业知识上的指导。
最后,向鲁老师和孙老师致以真诚的感谢!
6.参考文献
[1]童诗白,华成英模拟电子技术基础[M].北京:
高等教育出版社,2006.123-128
[2]张齐,杜群贵单片机应用系统设计技术[M]. 北京:
电子工业出版社,2007.89-95
[3]中国机械工业教育协会组编.《单片机原理与应用》.机械工业出版社.2001.112-115
[4]求是科技单片机通信技术与工程实践[M].北京:
人民邮电出版社,2005.68-72
[5]郭永贞主编数字电子技术[M]西安电子科技大学出版社,2000.93-97
[6]李广弟单片机基础[M],北京:
北京航空航天大学出版社,2001.45-48
[7]张洪润电子线路与电子技术[M].清华大学出版社[M],2005.62-64
[8]张齐,杜群贵单片机应用系统设计技术[M].电子工业出版社,2004.185-190
附录
附录1系统仿真图
附录2系统PCB图
附录3实物图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 超声波 设计