基于STC15单片机的智能流量计(共48页).doc
《基于STC15单片机的智能流量计(共48页).doc》由会员分享,可在线阅读,更多相关《基于STC15单片机的智能流量计(共48页).doc(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上智能流量计设计制作与调试说明书电子1411班姓 名:龚亚辉学 号:12016年12月08日专心-专注-专业目 录1. 绪 论1.1(智能)流量计的发展现状随着仪器仪表和信息管理的高度自动化,以计算机为核心的信息处理与过程控制相结合的智能仪器系统应运而生。智能仪器是计算机技术与测试技术相结合的产物,是含有微计算机或微处理器的测量仪器。由于他拥有对数据的存储、运算、逻辑判断和自动化操作等功能,具有一定的智能作用,因而被称为智能仪器。智能仪器的出现,极大地扩充了传统仪器的应用范围。智能仪器凭借其体积小、功能强、功耗低等优势,迅速地在家用电器、科研单位和工业企业中得到了广泛的
2、应用。 行业中涉及产品很多,从技术的发展形式来看,仪器仪表的智能化是不可逆转的趋势,数字技术应用在仪表之中,不仅仅使它的性能以及精度得到了很快的提升,然而伴随着现场总线的出现为仪表的更新换代及升级实现了进一步的提高。特别是多参数的在线实时测控和自动化测控,不论是稳定性、可靠性,还是高适应性、多功能性及低消耗等等提供了巨大的发展空间和动力。让智能仪表的信息交换更为迅速。1.2本次设计主要任务本次课程设计中以智能仪表为背景,将研究设计并制作一台智能流量计,主要研究内容是对流量进行检测,主要由流量传感器采集流量信息,然后经过LM331芯片将采集的信息转换为频率信号,再由单片机内部AD转换器将频率信号
3、转换为电压信号传给单片机,单片机在软件系统的控制下,通过算法将电压信号变成实际流量值,并通过OLED屏显示出来。其中,硬件电路的搭接是本设计的重点,控制系统软件的设计是本课题的核心。硬件电路部分,采用STC15单片机,CH40、LM331、LM358等构成单片机控制系统的主体部分。通过脉冲流量传感器,温度传感器进行输入,测量瞬时流量和累计流量。一些其他的功能,如设置参数,OLED显示,定时休屏等功能。系统软件设计部分,分别对AD转换控制,OLED显示,按键设置,休屏键等程序进行了设计,并且设计了主程序和流量控制计算程序。2.智能流量计硬件设计2.1系统总体设计为了适应现代对仪表功能的需求,可以
4、智能化的检测水流量,并且实时在屏幕上动态显示数据的目的,因此我们设计利用了STC15单片机来完成。这个系统可以实现瞬时流量的检测,还有累计流量,温度的检测。当单片机接受到水流量发出的信号,STC15单片机就会下达指令。水流量的情况传输到传感器中,通过STC15单片机进行处理扫描到的水流量脉冲数,然后在OLED上显示出水流量的数据。本方案利用Keilc软件使用C语言进行程序设计,Altium Designer软件实现电路和PCB的设计。STC15单片机流量处理电路按键电路温度处理电路下载电路电源电路OLED显示 2.2电源电路设计 此系统可以通过三种方式分别供电,一种是有USB端口连接上位机直接
5、通电5V电源,另外一种则是采用外部4.8v10v供电,通过REG1117-5芯片转换为稳定的5V电源给系统供电,还有一种则是通过干电池作为系统的备用电源,在没有外接电源时使用。电路中有5V供电后,再由正向低压降稳压器AMS1117-3.3将5V电源转为3.3V给相应的电路供电。电路图如下。2.3主控电路设计单片机是把微处理器、存储器、I/O接口。定时器/计数器、串行接口、中断系统和其它电路组合在单个芯片组合完成的单片计算机,单片机作为微型计算机的一个分支,是基于测控领域的发展而诞生和发展的。在我国使用最多的是Intel公司的C51系列单片机。而本次电路我们使用了STC15F2K60S2单片机,
6、这款单片机不需要外部晶振和外部复位电路,可省掉外部EEPROM,利用IAP/ISP技术,可以实现在线编程,无需编程器/仿真器,内部有2K字节SRAM,双串口,两个独立串口,高速10位8通道A/D转换器等丰富的功能。它与C51相比,STC15F2K61S2其优点是,省去晶振、复位电路,内部以高可靠,高精度集成了,这个非常实用,做板的时候能很简洁,也省了很多事情,再也不用为了更换晶振什么的发愁。对于此次课题设计来使用,它的外设比较丰富,在线仿真ADC/DAC/PWM/E2PROM等基本满足智能流量计功能的需求。2.4流量检测电路设计流量检测部分采用水流量传感器,如图1所示,它的组成部分塑料阀体 、
7、水流转子组件和霍尔传感器组成。它装在热水器进水端,用于检测进水流量,当水通过水流转子组件时,磁性转子转动并且转速随着流量变化而变化,霍尔传感器输出相应脉冲信号,反馈给LM331芯片,这款芯片是由美国NS公司生产的性能价格比较高的集成芯片,精密频率电压转换器 ,就是由它将水流量传感器输出的脉冲值由于频率转换为模拟量电压值,反馈给STC15F2K61S2芯片内部ADC转换器,然后通过算法求出单位流量并显示在OLED屏上。课题任务中最重要的是水流量的测量。通过水流量传感器的数据采集,根据不同的水流量传感器的参数可以得出单片机在运算时的数据。水流量传感器一般在零下10摄氏度到55摄氏度的环境温度下可正
8、常运行。在电路和传感器正常工作的情况下,我们根据LM331芯片和水流量传感器提供的技术文档得出了以下两个核心算法,这个也是我们整个电路能否实现正常测量的关键部分。1.f0=1/(t1+t2)=VL/(RLIRt1)2.频率计算=常数7.5*单位流量(L/min)*时间(秒) 图(1).流量传感器 2.5按键与显示电路设计为了实现水流量计的智能化,还有对减少电能的消耗增加使用寿命,在电路中我们增加了三个按键,分别用于控制OLED屏幕的点亮和休屏、进入设置模式,对参数进行修改。对于OLED屏幕的控制我们采用1min钟自动息屏,同时可以用按键唤醒,在屏幕亮的过程中也可以通过按键进行息屏,自动息屏的时
9、间通过按键进入设置模式进行修改,休屏时间范围在19分钟之间。当然,通过进入设置模式还可以设置仪表常数、仪表编号,在实际产品出厂的时候可以得到应用。显示电路我们采用0.96寸OLED显示屏模块,OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。这款分辨率为128*64,与单片机通讯采用SPI通讯。SPI通讯由串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设
10、备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。SPI通讯相当于I2C和UART而言实现简单,有时钟协议。3.智能流量计软件设计3.1 程序结构说明软件总的设计要求需要OLED显示瞬时流量、累计流量及其温度,并且能在设置中设置相关参数,调整息屏时间。水流量的测量为0.25秒读取一个流量值。OLED屏开机在第一行显示瞬时流量、第二行为累计流量、第三行为温度,在无按键操作的话默认1分钟后息屏。设置界面由按键控制。进去设置界面后屏幕不需息屏,其中的参数值则通过另一个按键控制。整个程序中结构较为简单,但其中也有
11、几个重要而且比较费脑筋的子程序,包括水测量程序、水流量数据的计算与转换、温度数据转换等程序。在程序中可以分为4个主要模块:水流量模块,温度模块,OLED显示模块,设置模块。如图为总体流程图。系统初始化流量测量温度测量息屏时间判断YNK3锁屏键操作屏幕常亮屏幕息屏按键判断无按键操作K2按键操作K1按键设置程序显示测量数值界面显示设置界面3.2 OLED显示程序设计本课题采用的是STC15单片机为控制核心,由中景园电子提供的0.96寸OLED模块为显示输出设备,如图2所示,在Keil环境下编写OLED显示模块驱动程序,并下载Hex文件至单片机,从而实现OLED显示系统设计。由于所采用的OLED不带
12、字库,因此无论是显示图形还是显示汉字,均需通过取模软件进行编码,然后按SPI协议,将对应的编码按照所确定的地址模式写入对应的CDDRAM中。系统初始化OLED初始化OLED清屏调用显示字符OLED显示图(2).0.96寸OLED屏3.3 A/D转换程序设计本次课题我们采用的是STC15单片机,此款单片机内置有高速10位8通道A/D转换器,它就是把模拟信号转换成数字信号,采用逐次逼近型进行转换。我们将选用P1.4、P1.5为流量传感器和温度传感器的模拟量输入端,其中流量传感器先由LM331转换为电压信号,单片机的内部ADC转换器再将其由电压信号转换为数字量进行计算得出实际流量值,而温度传感器的转
13、换就相对比较简单,通过电桥电路和LM358芯片输入一个模拟量电压,再由单片机进行AD转换为为数字量进行计算。下图为AD转换的程序框图系统初始化选择通道,允许AD转换读取温度传感器输入电压读取LM331输入电压读取寄存器参数N转换是否结束Y读取转换值数据处理3.4 流量运算程序设计我们这次使用的水流量传感器也可以称为脉冲流量传感器,内部核心实质上是一对霍尔元件,通过当水通过水流转子组件时,磁性转子转动并且转速随着流量变化而变化,霍尔传感器输出相应脉冲信号,反馈给控制器。通过流量传感器的技术文档我们可知,此款传感器输出的脉冲频率与实际流量值的关系为 “频率=常数7.5*单位流量(L/min)*时间
14、(秒)”。而我们电路中采用的是先将频率转换为模拟量电压值,此过程是由LM331芯片完成,这款芯片是美国NS公司生产的性能价格比较高的集成芯片,可用作精密频率电压转换器,通过查阅资料我们可知输入芯片和输出电压值的关系量为“f0=1/(t1+t2)=VL/(RLIRt1)”,从它的公式不难看出输出电压的精准度与芯片外部电路有很大关系,所以在硬件设计上要很仔细。通过这两个算法得出的实际流量值,我们使用定时器0.25秒读取一个值,再将这个值除以240得到每秒的流量值,通过累加便实现了累计流量的功能。下图为流量运算程序框图读取AD转换值计算瞬时流量值计算温度值系统初始化计算累计流量值4.电路制作调试4.
15、1电路制作与调试本次硬件设计我们使用的是Altium Designer16软件进行设计,并对PCB板进行排版。在这个过程中的重点难点在与硬件电路的设计,各个芯片的外部电路的搭建,还有在进行PCB排版是每个元器件的封装的绘制。在电路设计初期我们首先需要知道电路所需要实现的功能,然后根据功能去选择相对适合的单片机,以及实现各功能所需要使用的传感器及其芯片。对电路需要有大致的设计框架,然后查找每个芯片典型的外部电路,并在此基础上加以改进。在对PCB排版时,我们需要注意的是每个元器件的封装尺寸,都要去网上查阅资料,防止在焊接时才发现封装不对,而导致无法焊接或焊接困难,这个部分也是PCB排版中很重要的一
16、部分。当然还要注意的是每个元器件放置的位置要根据实际情况进行安排,如USB口、电源接口需要放置在板子边缘等。在完成PCB的排版和制作后,接下来的就是焊接,这里我们将使用的是电烙铁,在这个步骤中特别需要注意,元器件不要焊错正反、焊点不要虚焊,对于芯片不宜焊接时间过长,以免烫烧芯片等。在调试部分我们采用分块调试法,分布调试就是把总体电路按功能分成若干个模块,对每个模块分别进行调试。模块的调试顺序是按信号的流向,一块一块地进行,逐步扩大调试范围,最后完成总调。实施分块调试法有两种方式,一种是边安装边调试,即按信号流向组装一模块就调试一模块,然后再继续组装其他模块。另一种是总体电路一次组装完毕后,再分
17、块调试。4.2程序调试在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写。代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环,还用到了函数之间的调用。由于是分工编写代码,所以显示程序,AD程序,设置程序等都是子程序,最后需要将每个子程序代码放到一起进行调试。整个过程中我们使用的是KEIL4,进行编程。当然程序不是一次性就可以完成的,需要一个功能一个功能的调试累加,首先我们先编写的是OLED显示程序,在保证OLED正常显示的前提下,对于AD程
18、序进行编写,让流量和温度正常显示在OLED上,之后就是对设置模式的编写,足步往下,步步深入。在每次编写好之后都要生成HEX 文件,把得到HEX 文件就可以下载到STC15 中了。这里要简单的说下,打开下载软件后,在打开的对话框里选择好单片机的型号即IAP15F2K61S2,接下来将STC 系统板和电脑用USB 连接,选择好端口和波特率,因为我们的板子有冷启动,所以直接点击下载即可。5.总结实训是每一位大学生必须拥有的一段经历,它使我们在实践中增强专业技能,让我们学到了很多在课堂上根本就学不到的知识,增长了操作能力,把理论和实践结合,让我们以后更好地服务社会打下了坚实的基础。在这3周的实训中,虽
19、然实习的时间很短,但对我来说,收获是很大的。这次实训让我深深地感觉到自己所学知识储备的不足,我们在学校学习的是理论上的东西,但是在实际设计实物的时候,实践和经验就显得更为重要,只有掌握更多实用的技能,积累更多的工作经验,才能提高工作效率与质量。在做这次设计时,我还通过互联网参考了许许多多出色的设计者分享的经验,学以致用,把好的经验吸取到我的设计中来使用。通过这次设计,更加加深了我在大学三年当中学到的软件和硬件概念的理解,对我的专业知识也进行了一次巩固和加深印象,同时也加深了我在实际研究问题的能力。这在我以后的学习生活中也会有很大的作用,使我深深的意识到,做事必须老老实实,一步一个脚印,抓好基础
20、,研究好理论的重要性。这次设计是用C语言来编写的程序。在编写的过程当中,我通过学习互联网的许多资料,对整体的程序完成了一个完整的计划,遇到错误的地方及时更正,通过不断努力达到设计的要求。在这一过程中遇到了些问题,比如存储空间如何节省,这就要求自己对各个芯片元件的掌握程度要很高,通过不懈的学习,最终完成了程序的设计。这也是一个锻炼的过程。附录一 电路原理图附录二 印刷电路板图附录三 电路成品图 附录四 实现功能演示附录五 程序清单主程序/*/#include stc15.h#include oled.h#include bmp.h#include xiumian.h#include Set.h#
21、include AD.hunsigned char z;unsigned int leiji00;unsigned int yx1;void xiumiansj() g=xiumianshijian*60;void liangmiao() if(q=5) q=0; z=(j*)/(/18); leiji00=(z*10000/240)+leiji00; void yunxing() if(yx=60) yx=0; if(+yx1=24) yx=0; int main(void) u8 t; OLED_Init();/初始化OLED OLED_Clear() ; t= ; dingshichu(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC15 单片机 智能 流量计 48
限制150内