陕西理工学院毕业设计
图4.7 DHT11电路原理图
第16页共47页
陕西理工学院毕业设计
5 开发软件与硬件调试
5.1 Keil的应用
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil C51是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。本次使用的版本为Keil μVision4。
5.2 Proteus的应用
Proteus是英国Labeenter electronies公司研发的多功能EDA工具(仿真软件),它具有功能和强大的ISIS智能原理图输入系统,友好的人机交互界面,有丰富的菜单与工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。支持的单片机类型有:68000系列、8051系列、Avr系列、Pic12系列、Pic16系列、Pic8系列、Z80系列和Hc11系列以及各种外围芯片。
Proteus不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。 5.3软件设计
本设计系统使用STC89C52作为微控制中心的单片机芯片,软件系统设计主要分为系统初始化模块、驱动传感器模块,A/D模数转换模块,PM2.5数值计算和显示等模块,各个模块都有不可磨灭的作用各自发挥着主要功能,单片机STC89C52通过软件程序实现对硬件设备的控制,测量并通过LCD显示出来PM2.5的值。系统的主流程图如图5.1所示。
第17页共47页
陕西理工学院毕业设计
开始 初始化 是 检测是否按下设置键? 更改报警值上限 否 控制传感器采集数据 A/D转换,计算浓度值 是 大于报警值? 蜂鸣器报警 否 对应浓度范围LED灯亮 液晶显示当前PM2.5浓度,湿度和温度
图5.1 主流程框图
5.4软件调试
本次系统设计用的是C语言软件程序对单片机进行操作控制,也就是说通过一个系统的软件Keil uVision对我编写的程序进程的调试过程,观察一下是否有不正常或者是错误的现象,首先,我要把程序烧录进去,同时在编写程序的时候也会出现很多的系统本自带的问题,有可能在软件的设计过程中的延时有的过长,有的过短的过程,比如说按键的消抖过程中,如果时间比较短暂的情况下,就会很容易导致数值连续等,在此过程中经过不断地修改最终如图5.2所示。
第18页共47页
陕西理工学院毕业设计
图5.2 编译界面
软件设计主要遇到的问题是显示出来的数值不稳定,一直在变化,由于刚开始程序里边一直是采集数据然后显示,单片机一直在做这个事,这样就会导致显示不稳定,解决方法是隔固定时间以后采集一次,而不是一直在采集。
5.5焊接测试
拿到电路板后,焊接各元器件,在焊接过程中要对各元件做逐一检查,例如二极管极性、电容容量及电阻值大小等。在元件与芯片焊接完毕后,要认真检查元件与元件之间引脚裸露部分有无相互接触现象,焊接面的各焊点间、焊点和近邻线有无连接,否则会造成短路等故障。最后,再给电路板空载上电(未插芯片),检查线路板各管脚及插件上的电位是否正确,特别是单片机管脚上的各点电压。若上述的一切都测试正常,则硬件调试的准备工作完成。
常见故障主要是以下三点:
(1)元器件失效,主要是因为器件本身已损坏或性能不符合要求,或者是由于安装错误造成的元器件失效、损坏,例如电解电容、二极管的极性错误,芯片安装方向错误等。
(2)在焊接过程中,对焊锡用量要控制恰当,用量过多,形成焊点的锡易堆积大块,造成短路,焊锡过少则不足以包裹焊点。焊锡时没能充分融化焊锡,也易造成疏松的现象,不能很好地起到导电的作用。
(3)蜂鸣器不响,刚开始以为是蜂鸣器的引脚输出电流还不足以驱动蜂鸣器,后来我又加了一个三极管来驱动蜂鸣器。不过在接口那里加的电阻比较小的时候还是不能驱动,这可能是因为电阻太小,换成10K电阻以后总算能发出吱吱的声响,但不连续,最后换成24K以上后再接上单片机控制端以后就正常发声了。
遇到的困难与解决方法:
刚开始我的硬件作品只能检测当前空气中PM2.5浓度,功能比较单一,通过老师指导,我意识到空气中除了粉尘还有其他数据也需要监测,于是我后来又改造了一下原来的实物,增添温湿度监测模块,难点是东西焊好后又要增加模块,比较不容易了,所以得弄清楚重要的线连接导通情况,必须确定湿温度传感器和单片机公用电源电路部分与接地部分,传感器的数据端接单片机的I/O口,然后重新找个合适的位置进行焊接,焊接好后重新编程与下载程序,并将测得数值在LCD1602液晶屏上显示出来,现在它既可以监测病房空气PM2.5浓度,也可以监测湿度和温度等。程序设计也是一大难点,程序编写好后要不断调试,修改,以达到较高的稳定性,比如有时候程序编写错误导致PM2.5检测出来的数值明显异常。这些都花费我不少精力与时间,最后终于解决,成功达到课题要
第19页共47页
陕西理工学院毕业设计
求。
硬件实物图如图5.3和图5.4所示。
图5.3 实物图正面
图5.4 实物图背面
第20页共47页