ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:163.57KB ,
资源ID:9892136      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9892136.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子设计竞赛P题简易水情检测系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子设计竞赛P题简易水情检测系统.docx

1、电子设计竞赛P题简易水情检测系统2017年全国大学生电子设计竞赛简易水情监测系统(P题)2017年8月12日摘 要 水是生命之源,我们在日常生活中所要饮用的水的Ph值应在6.58.5之间,Ph值的标准是以氢离子的标准定位的,小于7的是显酸性的,大于7的是显碱性的,直饮水的标准刚好显中性,但是看上去同样都是无色无味的各种水的Ph值其实是有很大差异的,对人体健康的影响也完全不同 。本课题要设计的容器中液体高度、液体Ph值和测量供电电池组的输出电压,并在液晶显示器上显示所测量的数据。从而可以直接的看出容器中的水位高度,液体Ph值,供电电池组的输出电压。本次设计以STC89C52RC芯片组为核心,辅以

2、相关外围电路,本设计以单片机为核心的水情检测系统,系统由6V电池组供电,除单片机外,采用杜邦线来连接LCD12864液晶显示器、PCF8591模块、液位传感器,Ph值传感器。本系统可直接用于水库、池塘、河流等,进行Ph值得测量和水位的检测。关键词:液体高度;液体Ph值;输出电压;单片机STC89C52RC简易水情监测系统(P题)【专科组】一、系统方案本系统主要由STC89C52RC芯片组为核心、PCF8591模块、液位传感器模块、Ph值传感器模块、6V电池组供电组成,下面分别论证这几个模块的选择。1、方案的论证与选择方案一:由STC89C52RC芯片组为核心、PCF8591模块、重力传感器模块

3、、Ph值传感器模块、6V电池组供电组成,方案二:由STC89C52RC芯片组为核心、PCF8591模块、超声破传感器模块、Ph值传感器模块、6V电池组供电组成,方案三:由STC89C52RC芯片组为核心、PCF8591模块、液位传感器模块、Ph值传感器模块、6V电池组供电组成,分析方案一,使用重力传感器,但重力传感器不能在水库,河流等复杂地区使用,只能用于实验阶段,所以放弃方案一。分析方案二,使用超声波传感器,超声波传感器在水库,河流等复杂地区不好固定,所以方案二也不考虑。方案三使用液位传感器模块,方便参赛使用,最后选择方案三。二、系统理论分析与计算1、系统理论的分析 (1)LCD12864显

4、示器LCD12864显示器显示原理,12864LCD显示块是所说的点阵液晶显示模块,就是由128*64个液晶显示点组成的一个128列*64行的阵列,所以也就叫成了12864。每个显示点都对应着有一位二进制数,0表示灭,1表示亮。存储这些点阵信息的RAM被称为显示数据存储器。如果要显示某个图形或汉字就是将相应的点阵信息写入到对应的存储单元中。图形或汉字的点阵信息是由自己设计,这时候问题的关键是显示点在液晶屏上的位置与其在存储器中的地址之间的关系。显示点在64*64液晶屏上的位置由列号(line,063)与行号(line,063)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xp

5、age,07)和列地址(Yaddress,063)确定。每个存储单元存储8个液晶点的显示信息。由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。(少数厂商为了简化用户设计,在模块中增加译码电路,使得128*64液晶屏就是一个整屏,只需一个片选信号。)如如果点亮12864的屏中(20,30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址20除以8取整得2,取余得4,该点在

6、RAM中页地址为2,在字节中的序号为4;所以将二进制数据00010000(也可能是00001000,高低顺序取决于制造商)写入Xpage=2,Yaddress=29的存储单元中即点亮(20,30)上的液晶点。这是为了为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。(需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)

7、点阵信息。因此存储单元地址包括列地址(Yaddress,063)和页地址(Xpage,07)。(2)水位传感器水位传感器工作原理,用静压测量原理:当液位变送器投入到被测液体中某一深度时,传感器迎液面受到的压力公式为: = .g.H + Po式中: P :变送器迎液面所受压力 :被测液体密度 g :当地重力加速度 Po :液面上大气压 H :变送器投入液体的深度 同时,通过导气不锈钢将液体的压力引入到传感器的正压腔,再将液面上的大气压 Po 与传感器的负压腔相连,以抵消传感器背面的 Po , 使传感器测得压力为: .g.H ,显然 , 通过测取压力 P ,可以得到液位深度。功能特点: 稳定性好,

8、满度、零位长期稳定性可达 0.%FS/ 年。在补偿温度 0 70 范围内,温度飘移低于 0.%FS ,在整个允许工作温度范围内低于 0.%FS 。 具有反向保护、限流保护电路,在安装时正负极接反不会损坏变送器,异常时送器会自动限流在 35MA 以内。 固态结构,无可动部件,高可靠性,使用寿命长。 安装方便、结构简单、经济耐用。(3)Ph值测量Ph值传感器工作原理,在传感器内部的 pH 放大器是一个能通过数据采集器监测的有标准 pH 电极的电路。传感器连接线的末端是一个 BTA 插头或一个 5-针的 DIN 插头来与数据采集器连接。 在 pH 7 的缓冲溶液中,它将产生一个 1.75 伏特的电压

9、。pH 值每增加1,电压增加 0.25 伏。pH 值每减少1,电压降低 0.25 伏。 这个冻胶填充的 pH 值传感器的设计测量范围为:0 到 14。它在玻璃感应电极头延长出一个冻胶体,是初中、高中、大学中进行科学研究、环境测量的良好的设备。冻胶填充的参考半电化池是密封的,所以它无需重充。(4)电池组 干电池属于化学电源中的原电池,是一种一次性电池,它碳棒以为正极,以锌筒为负极,把化学能转变为电能供给外电路。在化学反应中由于锌比锰活泼,锌失去电子被氧化,锰得到电子被还原。 普通干电池大都是锰锌电池,中间是正极碳棒,外包石墨和二氧化锰的混合物,再外是一层纤维网.网上涂有很厚的电解质糊,其构成是氯

10、化氨溶液和淀粉,另有少量防腐剂.最外层是金属锌皮做的筒,也就是负极,电池放电就是氯化氨与锌的电解反应,释放出的电荷由石墨传导给正极碳棒,锌的电解反应是会释放氢气的,这气体是会增加电池内阻的,而和石墨相混的二氧化锰就是用来吸收氢气的.但若电池连续工作或是用的太久,二氧化锰就来不及或已近饱和没能力再吸收了,此时电池就会因内阻太大而输出电流太小而失去作用.但此时若将电池加热,或放置一段时间,它内部的聚集氢气就会受热放出或缓慢放出.二氧化锰也到了还原恢复,那电池就又有活力了! 虽然干电池的应用范围这么广,在使用完后若不妥善处理好,它对环境也会造成不可挽回的污染,一节电池可能会污染数十立方米的水。因此在

11、使用完干电池后,一定要将电池进行回收,而不能随处弄丢。2、水位高度的计算 由于本次使用的水位传感器量程有限,故以容器150mm高度线做为0刻度线,水位传感器检测数据+150mm为最终结果,具体高度以12864液晶显示屏显示为准。3、Ph值的计算 在 pH 7 的缓冲溶液中,它将产生一个 1.75 伏特的电压。pH 值每增加1,电压增加 0.25 伏。pH 值每减少1,电压降低 0.25 伏。4、供电电池组电压的计算 本次电池组由4节干电池组成,电压为6V,因部分元器件最高工作电压为5V,故使用1K电阻对其进行分压,使其最后输出电压降为5V。三、电路与程序设计1、电路的设计(1)系统总体框图系统

12、总体框图如图所示 系统总体框图(2)水位检测子系统框图1、水位检测子系统框图水位检测子系统框图(3)PH检测子系统框图1、PH检测子系统框图 PH检测子系统框图2、程序的设计(1)程序功能描述与设计思路1、程序功能描述根据题目要求软件部分主要实现键盘的设置和显示。1)键盘实现功能:设置频率值、频段、电压值以及设置输出信号类型。2)显示部分:显示电压值、频段、步进值、信号类型、频率。2、程序设计思路(2)程序流程图1、主程序流程图2、水位检测子程序流程图3、PH检测子程序流程图4、电压检测子程序流程图四、测试方案与测试结果1、测试方案(1)硬件测试 搭建基本框架,将各个模块连接在STC89C52

13、单片机上。(2)软件仿真测试 根据题目要求,用ISIS仿真软件画出原理图,进行仿真。(3)硬件软件联调 将总程序录在STC89C52单片机芯片中,把所有需要的元器件都接在系统上,测试各部分功能。2、测试条件与仪器测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:水位传感器、PH传感器、钢尺、PH试纸、万用表。 3、测试结果及分析(1)测试结果 经PH计和PH试纸、钢尺、和万用表检测结果与水位、PH、电压传感器检测结果的对比,误差均没有超过题目要求的最大允许误差。(2)测试分析与结论根据测试数据,可以得出以下结论:1、加入液体后,在1分钟

14、内可以完成水位测量并显示,误差小于5mm。2、在2分钟内可以完成PH值的测量,并显示出来,误差小于0.5。3、电池组输出电压可以准确测量并显示,误差不大于0.01V。综上所述,本设计达到设计要求。附录1:电路原理图附录2:源程序#include #include #include #define uint unsigned int#define uchar unsigned char#define uchar unsigned char #define uint unsigned int #define PCF8591 0x90 /PCF8591 地址 bit write=0; /写24c02

15、的标志 /串行数据输入端 typedef unsigned char uint8;typedef unsigned int uint16;#define PCF8591 0x90 /PCF8591 地址 unsigned char code smg1=0123456789.mmVV;unsigned int val;unsigned char ge,shi,bai;#define SLAVEADDR 0x98 /定义器件地址#define nops() do_nop_();_nop_();_nop_();_nop_();_nop_(); while(0) /定义空指令sbit SCL = P2

16、1; /I2C 时钟 sbit SDA = P20; /I2C 数据 sbit RS=P26;sbit RW=P25;sbit EN=P27;uchar code table1 = 水情检测系统 ;uchar code table2 = 水位: ;uchar code table3 = Ph值: ;uchar code table4 = 电压: ;void delay(uint16 n) while (n-);void delay1() /延时4-5个微秒 ; void delay_1ms(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-) ;

17、void start()/开始信号 SDA=1; delay1(); SCL=1; delay1(); SDA=0; delay1(); void stop() /停止信号 SDA=0; delay1(); SCL=1; delay1(); SDA=1; delay1(); void respons()/应答 相当于一个智能的延时函数 uchar i; SCL=1; delay1(); while(SDA=1)&(i250) i+; SCL=0; delay1(); void init() /初始化 SDA=1; delay1(); SCL=1; delay1(); uchar read_by

18、te() uchar i,k; SCL=0; delay1(); SDA=1; delay1(); for(i=0;i4;i+) SCL=1; delay1(); k=(k1)|SDA;/先左移一位,再在最低位接受当前位 SCL=0; delay1(); return k; void write_byte(uchar date) /写一字节数据 uchar i,temp; temp=date; for(i=0;i4;i+) temp=temp0;i-) for(j=110;j0;j-);void write_com(uchar com) RS=0; RW=0; EN=0; delayms(1)

19、; P0=com; delayms(1); EN=1; delayms(5); EN=0; delayms(5);void write_dat(uchar dat) RS=1; RW=0; EN=0; delayms(1); P0=dat; delayms(1); EN=1; delayms(5); EN=0; delayms(5);void init1() delayms(100); write_com(0x30); write_com(0x30); delayms(1); write_com(0x0e); delayms(1); write_com(0x0c); delayms(1); w

20、rite_com(0x06); delayms(1); write_com(0x01); delayms(1);void hanzi(uchar *ch) while(*ch!=0) write_dat(*ch+); delayms(50);void display1() uchar i; write_com(0x80); for(i=0; i16; i+) write_dat(table1i); delayms(5); void display2() uint i,val=45; bai=val%1000/100; shi=val%100/10; ge=val%10; write_com(0

21、x90); for(i=0; i6; i+) write_dat(table2i); delayms(5); write_dat(smg1bai); delayms(5); write_dat(smg1shi); delayms(5); write_dat(smg1ge); delayms(5); write_dat(smg112); delayms(5); write_dat(smg112); delayms(5); void display3() uint i; write_com(0x88); for(i=0; i6; i+) write_dat(table3i); delayms(5)

22、; write_dat(smg16); delayms(5); write_dat(smg110); delayms(5); write_dat(smg13); delayms(5);void display4() uint i; write_com(0x98); for(i=0; i6; i+) write_dat(table4i); delayms(5); write_dat(smg14); delayms(5); write_dat(smg110); delayms(5); write_dat(smg18); delayms(5); write_dat(smg10); delayms(5); write_dat(smg114); delayms(5); write_dat(smg115); delayms(5); void main() /uint8 ans; uart_init(); init(); init1(); display1(); display2(); display3(); display4(); while(1);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1