【《单片机水位控制系统的软件设计及调试分析案例》3600字】_第1页
【《单片机水位控制系统的软件设计及调试分析案例》3600字】_第2页
【《单片机水位控制系统的软件设计及调试分析案例》3600字】_第3页
【《单片机水位控制系统的软件设计及调试分析案例》3600字】_第4页
【《单片机水位控制系统的软件设计及调试分析案例》3600字】_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

共页第28页单片机水位控制系统的软件设计及调试分析案例目录TOC\o"1-3"\h\u16526单片机水位控制系统的软件设计及调试分析案例 1187531软件系统设计 163051.1系统主程序设计 1327101.2各组成子程序设计 2218771.2.1超声波模块启动子程序 2210561.2.2液晶显示屏子程序 3176141.2.3按键设定上下限子程序 4192081.2.4报警子程序 552761.3程序编译与下载 53291.4本章小结 711402仿真与调试 8284342.1Proteus软件仿真 891612.1.1仿真电路 8299822.1.2仿真过程实现 928462.2硬件调试 12250452.2.1系统硬件调试 12121582.2.3实物演示 13156902.2.2遇到的问题 161软件系统设计1.1系统主程序设计系统主程序流程图如REF_Ref23044\h图1.1所示。首先系统进行初始化,启动超声波模块,然后将定时器置一并打开所有的设置,进入循环,实现调用,实现报警电路、显示电路等。当测得水位高于设定上限时,系统进行报警并排水,当测得水位低于设定下限时,系统进行报警并抽水,使得水位保持在设置的高度范围之内。图1.SEQ图4.\*ARABIC1系统主程序流程图1.2各组成子程序设计读取和显示测量的数据是本设计的重要部分,单片机开始运行,超声波传感器开始工作,计算从发射到接收的距离。系统定期发出超声波,发射电路启动的同时,启动内部定时器,利用T0中断计数溢出,定时器的计数功能记录超声波测距的时间和反射波接收的时间。接收到超声波测距的反射波时,中断溢出标志为零,计算时间差,计算距离。下面是各组成子程序的设计。1.2.1超声波模块启动子程序如REF_Ref3563\h图1.2所示,首先系统进行初始化设置,然后启动超声波模块,发射超声波测距脉冲,即当RX=0时,开始计数,当再次接收到反射超声波脉冲,即当RX=1,TR0=0时,关闭计数,计算出距离并显示在液晶屏上。接收端的用P2.0,发射端用的是P2.1,这样就可以算出当前的水位高度。图1.SEQ图4.\*ARABIC2超声波模块启动子程序流程图1.2.2液晶显示屏子程序本次设计使用液晶显示屏显示,流程如REF_Ref25358\h图1.3所示,调用以前打包的程序,该程序没有问题,而且还解决了液晶屏问题,从而方便了其他问题的处理。图1.SEQ图4.\*ARABIC3液晶屏显示子程序流程图1.2.3按键设定上下限子程序流程如REF_Ref27455\h图1.4所示,通过K2,K3键来改变设定的上下限的值,K2为加键,K3为减键。图1.SEQ图4.\*ARABIC4按键检测的流程图1.2.4报警子程序需要在键盘上设置阈值,要有报警电路。流程如图1.5所示,将设定的阈值与实时显示的水位高度进行比较,如果其小于实时显示的水位高度值,或者其大于实时显示的水位高度值,将P2.3口置1,则发出声音。图1.SEQ图4.\*ARABIC5报警子程序流程图1.3程序编译与下载在刚接触单片机的时使用大量汇编语言来学习单片机,汇编语言很容易上手,方便加深理解单片机知识,但是有局部性,其移植性很差,而且编写比较复杂。汇编语言属于低级语言,因此用了C语言。用C语言进行编写程序,编程用的是KEIL,然后编译生成HEX文件,最后下载在单片机上。如REF_Ref27684\h图1.6所示为本次设计编写程序创建的工程的界面。图1.SEQ图4.\*ARABIC6编写程序界面程序在编写的时候要不断的调试,才能知道程序的错误所在。写好的程序,没有错误将其生成hex文件。编译成功的图片如REF_Ref27867\h图1.7所示。图1.SEQ图4.\*ARABIC7编译成功界面如REF_Ref28210\h图1.8所示,然后把hex文件下载到单片机。采用的软件是STC公司的ISP下载软件。然后就可以显示设定值以及测得的水位的结果。图1.SEQ图4.\*ARABIC8下载界面1.4本章小结系统的硬件设计在前面已经说明了。为了实现相应的功能,需要进行程序代码来操作,通过程序使实物能实现其相应的功能,两者都很重要。本章节就是从各组成子程序的设计到主程序的设计,再到如何使用KEIL进行编程来阐述的。各组成子程序的设计包括超声波模块启动子程序设计、液晶显示屏子程序设计、按键设定子程序设计、报警子程序设计。

2仿真与调试2.1Proteus软件仿真有Proteus等一系列软件的存在,便可以创建一个独立完善的虚拟实验室,用虚拟代替了实际,代替了在实验室里进行实践的方式,可以在计算机上进行单片机应用系统等课程的学习,而且还可以进行电路设计、仿真、调试等。因此这一系列的软件受到广大电子设计爱好者的喜爱,是工作和学习上难得的工具软件,因此它们在全球得到了广泛应用。其中,提供了30多个元件库,其功能很强,集电路设计及仿真等于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,它还可以设计和模拟微处理器,以及模拟单片机外围电路或其他电路的工作方式,无需单片机的参与。它还提供了输入阻抗过高和输出阻抗过低的各种虚拟仪器,以最大限度地减小仪器对测量的影响。此外,还具有图形显示功能,可实时以图形方式显示电路中的信号变化。其针对电路的调试提供了两种方法:整体系统运行效果和分步软件调试。它还为电路测试提供各种测试信号,包括模拟和数字信号。它还提供绘图方案设计功能、PCB设计和SPICE仿真,以及设备的仿真等。2.1.1仿真电路仿真电路图如REF_Ref18987\h图2.1所示。图2.SEQ图5.\*ARABIC1仿真电路图2.1.2仿真过程实现首先设置水位高度的上下限,本设计中超声波模块的探测距离为2cm到400cm。此处选择设置水位上限为40cm,水位下限是10cm。如REF_Ref21584\h图2.2所示,即按下K3时选择设置水位上限和下限,K4代表加键,K5代表加键,先设置了水位上限为40cm。图2.SEQ图5.\*ARABIC2设置水位上限设置完上限以后,再次按下K3按键进行水位下限的设置,如REF_Ref22351\h图2.3所示,设置水位下限为10cm。图2.SEQ图5.\*ARABIC3设置水位下限若超声波测距在10cm到40cm之间,则不报警,即水位在设置高度范围之内,如REF_Ref23925\h图2.4所示,此处测得水位为23cm。图2.SEQ图5.\*ARABIC4超声波测水位并且LCD1602显示水位高度为0.234m,如REF_Ref24408\h图2.5所示。图2.SEQ图5.\*ARABIC5水位结果显示若水位低于下限,如REF_Ref26296\h图2.6所示,超声波模块测得水位高度为6cm,LCD1602显示出水位高度,并且电路开始报警,D2亮起,同时控制水泵抽水,让水位高度保证在最初设定的高度范围内。图2.SEQ图5.\*ARABIC6水位低于下限同理,若水位高于上限,如REF_Ref28004\h图2.7所示,超声波模块测得水位高度为48cm,LCD1602显示出水位高度,并且电路开始报警,D1亮起,同时控制水泵排水,让水位高度保证在最初设定的高度范围内。图2.SEQ图5.\*ARABIC7水位高于上限2.2硬件调试2.2.1系统硬件调试使用AD软件来实现电路的设计。AD是Internet公司在2004年推出的一款电子设计产品的软件,它提供了AD的进阶版本,它具有比AD更强的图形功能和更稳定的操作系统,并且可以在Windows2000或WindowsXP下运行。本次设计是采用AD软件进行原理图的绘制。AD拥有广泛的控制元件数据库,该数据库实质上包括制造商的所有电子操作方法,并且该软件还具有非常强大的访问功能,它不需花费大量时间来为创建设备电路找到所需的范围,这是构造要加载的范围。同时,该软件还提供了针对特定电路的仿真,因此可以在进行物理测试之前就知道所创建的电路有何故障以及设计的不当之处,这将减少了很多工作。检查电源是否有异常,如烟雾、异常气味、外部电路接触、热量等,如果出现故障,应立即关闭电源,并在故障诊断后打开电源。静态调试,及时侦测损坏的零件,或者变更电路的参数,电路的理论分析以确定电路是否正常。动态调试,发现异常则应分析其原因并进行故障排除,然后再进行开发直至达到要求。本次的设计对于我来说比较困难的是以下方面,在课堂上只是对原理图和程序有一个简单的认识,从来没有真正的用在实物上,突然要做出一个实物来,感觉困难。所以在这个期间看了大量的有关单片机相关的知识,焊接的时候更是出了很多的问题,现在针对板子焊接和调试总结如下:(1)焊接的时候,首先要有大局的观念,知道哪个是主体,然后围绕主体再一层一层的展开。合理的安排一个顺序,然后再逐步的焊接。(2)器件摆放好了之后就是线路的布置,能焊接连在一起的就连在一起,实在不能的选择就近飞线。(3)走线的时候,一定不要将线路碰在一起,防止发生短路的情况。在焊接的过程中,为了在最大的程度上保证板子的线路正确以及板子的稳定性,总结了以下经验:(1)由于每个器件基本上都会涉及到VCC、GND,所以最后再统一焊接这两部分。(2)要分部分焊接,单片机、显示模块等,当这些主体焊接好了之后,再焊接其他的器件就会很少出现器件遗漏的情况。(3)这样焊接好了之后,用万用表量测一下容易接触到一起的端口,防止短路。这样的话,就基本上排除了硬件的问题。在调试的时候,经常是一个问题搞大半天,想要调试成功,面临的问题一定要克服。要把电路熟悉的掌握,方便实物的调试。实物图如REF_Ref4775\h图2.8所示。图2.SEQ图5.\*ARABIC8实物图2.2.3实物演示首先把实物放在平稳的桌面上,将超声波传感器与单片机板子连接好,如REF_Ref4775\h图2.8所示,因为是一个小型的设计,除了用电源供电以外,还选择用电池为水泵供电。超声波传感器响应时间很快,当连接电源并打开开关时,便可以立即显示当前的水位高度,设定的水位上限为40cm,下限为10cm,如REF_Ref5747\h图2.9所示。水位处于设定的范围之内,高度为0.380m,如REF_Ref2373\h图2.10所示。图2.SEQ图5.\*ARABIC9设置水位上下限图2.SEQ图5.\*ARABIC10水位正常显示若水位低于下限,如REF_Ref3947\h图2.11所示,超声波模块测得水位的高度为0.054m,液晶屏显示出水位高度,并且电路开始报警,右边的灯亮起,同时控制水泵抽水,让水位高度保证在最初设定的范围内。图2.SEQ图5.\*ARABIC11水位低于下限同理,若水位高于上限,如REF_Ref3999\h图2.12所示,超声波模块测得水位的高度为0.410m,液晶屏显示出水位高度,

温馨提示

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

评论

0/150

提交评论