摘 要
科技在发展,人类在进步,智能设备也在逐渐增多。在一些特定场合或者重复的工作环境中智能设备也越来越
普及。智能设备是通过控制器去实现特定的程序执行一些特定动作减少了人类的劳作,提高生产效率。采用单片机
作为一些简单的应用变得非常的普及,可以通过单片机实现一些项目的智能化设计。
本次设计的基于单片机的快递物品检测系统,采用单片机作为“心脏”通过单片机实现数据的采集与控制。通
过对设备的硬件进行设计与对设备软件的程序编写来实现其功能。STC89C52单片机作为控制器负责整体的设备运转
,通过外围辅助电路完善整体设备。LCD1602作为显示接口实现人机交互,通过GPS模块实现对快递物品的位置定
位,利用震动传感器检测快递物品是否震动。通过单片机与外围辅助完成任务的目标功能,实现基于单片机的快递
物品检测系统设计。
关键词:单片机;快递物品;GPS定位;震动传感器
一 .绪论
(一)研究背景及意义
在中国,快递行业到底能够有多火?仅在刚过去的清明节三天时间内,邮政快递全行业共揽收快递包裹6.07亿
件、投递快递包裹6.51亿件。近几年快递行业方兴未艾,越来越多的人选择用快递邮寄物品,但是我们国家快递行
业的服务水平还很低,快递丢失或者快递损毁的事情在新闻里屡见不鲜。但是由于快递邮寄价格较低,且方便快
捷,所以很多人在邮寄一些贵重物品的时候也选择使用快递邮寄,一旦发生贵重物品丢失或者损毁,就将面临着如
何向快递公司进行索赔的难题。为了可以实时监控快递物品在运输中是否被暴力破坏、过度震动等情况,本次课题
设计了一款基于单片机的快递物品检测系统,它将被用来解决这一问题。
(二)主要内容与技术
本次设计主要是实现基于单片机的快递物品检测系统,其中主要的研究内容为:
1.采用STC89C52作为核心控制器,实现整体数据的采集;
2.采用GPS模块,实现对快递的位置定位;
3.采用LCD1602,实现数据与参数的相关显示功能;
4.采用震动传感器,实现检测快递物品的震动状态。
本次设计的快递物品检测系统主要运用的相关技术是单片机技术,其次是传感器技术。单片机是一个封装模块
,其内部是集成了存储、定时、通讯为一体的集成器件[1]。单片机也是一个黑色的相对较大的芯片,根据封装的不
同可以分为直插或者贴片模样。使用单片机最主要的参考资料是厂家提供的数据手册,数据手册里面详细地介绍了
单片机的各个I/O管脚的分配以及其功能与相关寄存器系统。单片机最主要的核心技术在于对I/O管脚的控制与I/O管
脚的数据采集,然后再根据具体项目进行单片机的I/O管脚的分配实现控制与输出的基本逻辑功能。掌握单片机之后
根据需要的具体功能去搭建传感器,这里就涉及到传感器技术,传感器种类很多,不同的传感器采集数据的方式也
会不同,但是归根结底是将采集的数据转化为单片机可以识别的数字量,进而单片机进行运算实现目标的逻辑控制
或者数据显示。通过单片机与传感器与一些必要的辅助电路构成快递物品检测系统,最终实现任务目标[2]。
二.系统的设计方案
(一)系统设计可行性分析
本次设计设备是通过单片机来实现整体的功能,将采用STC89C52单片机来作为控制器是可以满足任务目标的。
单片机技术现在已经发展到了相对发达的阶段,从上个世纪的大体积、功能集成度少、运行速度慢、成本较高发展
到现代的小体积、功能集成度高、运行速度快、成本较低。单片机的设计主要包括了两个部分,一部分是硬件设
计,而另外一部分是软件设计[3]。硬件的设计是通过设计电路原理图、完善外围辅助器件实现,而软件的设计通过
C语言进行程序编程来实现项目的整体目标。
其他的外围辅助器件来实现设备的整体功能。
硬件的绘制与设计:根据要实现快递物品检测的不同功能,首先确定相关硬件的选择,然后选择控制器和选择
单片机完成单片机最小系统的整体设计,然后再设计其外围辅助电路,根据设计功能完成整体电路的设计,然后绘
制出整体电路图。电路通过模块化的绘制,从一个传感器到一个功能模块的设计,然后将外围辅助电路与单片机最
小系统电路进行连接,通过单片机实现资源的分配和整合,最后完成整体电路的设计。通过查找元器件的应用手册
进行器件的选择和购买,然后通过焊接实现设备的硬件组装,完成整个系统的硬件搭建与设计[4]。
C语言程序设计思路:设备需要软硬件协调才可以实现整体的功能,本次设计采用C语言来进行驱动设计。安装
完成编译软件实现对各个功能模块的程序编写;先设计出程序整体框架,然后分别设计每个功能模块的C语言驱动代
码,然后完成主函数的调用。遵从主程序、功能模块化程序、总体调用程序的整体设计思路[5]。根据各个功能模块
的子程序方便调用有利于完成整体的程序设计。通过各个模块化程序与主程序的依次调用完成系统的目标设计功
能。
系统功能测试:在完成硬件与软件的基础上进行整体目标功能的测试,硬件主要是注意连接电路的正确性,在
确保电路的正确之后用仪器进行测试,避免电路短路。然后分别测试各个外围辅助电路与程序设计的功能是否可以
完美配合,最后进行整体测试,是否可以实现目标的功能。通过测试与改进实现整体目标的完成,实现各个功能的
正确运行与配合完成整个项目的设计[6]。
(二).设备的实施方案
本次设计主要目标就是实现基于单片机来实现快递物品检测系统,单片机作为主控制器是必不可少的器件,通
过单片机来实现最小系统的建立保证设备可以正常的运行,然后依次添加外围缺少目标功能的辅助电路。通过辅助
的电路来实现对传感器数据信息的采集,采集的数据经过单片机的整理然后显示输出,或者作为逻辑的控制输出
[7]。本次设计的具体功能模块如图2.1所示:
图2.1 系统整体框图
三.系统硬件设计
(一)单片机电路设计
- 单片机简介
世界上最早出现的单片机是以单板机形式出现的,刚开始发展阶段单片机的结构比较庞大,主要是由模拟电路
搭建。随着现代科学技术的逐渐进步,晶体管技术发展得到了长远的进步,单片机在晶体管的发展基础上逐渐取得
了突破,将许多晶体管浓缩融合到一块芯片之中,单片机从此便以芯片的形式出现。单片机的构成主要是由晶体管
构成,而晶体管的构成主要是由硅晶圆构成,数以万计的晶体管实现了单片机的逻辑控制功能[8]。单片机将晶体管
通过工艺将各种与非门按照特定的规则排列最后封装实现了单片机芯片的制作。不同单片机的形状不同,但是总结
起来不同的单片机也会有一些相同的特征,每一个单片机都具有引出的I/O管脚,根据单片机的不同I/O引脚的功能
也不一定相同。通过控制单片机的内部寄存器可以实现不同引脚的功能,包括了UART、IIC、SPI、输入、输出等引脚功能。在使用单片机根据不同的单片机手册查看寄存器,可以实现对单片机引脚的控制,单片机通过外围辅助电
路可以检测引脚的电平状态,通过电平状态判断外部器件实现输入状态的检测,实现控制或者设置等功能。总体来
说对于单片机的实质操作就是改变引脚电平的状态或者检测引脚的电平状态,一共只具有两种状态“0”或者“1”
即低电平或者高电平两种状态[9]。
52内核单片机:以52为核心的单片机系统主要是8位单片机,比较具有代表意义的是国产的STC系列单片机,比
较常用的型号是STC89C51和STC89C52单片机两种[10]。52单片机在程序的编写上可以作为通用,无较大差别。STC系
列的单片机使用是相对简单的,并且新手都选择采用此单片机作为入门单片机的选择。器件手册相对比较简单明
了,网上关于52单片机的学习资源也是非常多,可以做到快速上手单片机的使用。STC系列单片机使用非常的方便,
主要体现在下载程序的便利,单片机的UART接口可以直接实现程序的载入。不必使用特定的烧写器,这样大大的减
少了开发的难度,可以做到程序快速的调试、测试。只需要按照资料搭建好最小系统电路与外围辅助电路就可以构
成项目系统,就能进行调试与测试。
STM32单片机:STM32单片机是由国外芯片厂商生产的。此单片机采用的ARM进行架构,是一个32位的单片机。
STM32单片机相对STC系列单片机来说相对复杂,参考器件开发手册可以看到驱动与使用相对较难,但是网上的资料
与案例也比较多,具有参考意义。STM32单片机的开发可以直接使用底层寄存器进行开发也可以通过操作相应的库函
数进行开发,可以根据项目的需求来进行具体的选择。STM32资源相对来说比较丰富,根据不同的开发功能可以选择
对应的型号,具体的需要以实际项目为准则进行单片机的具体确定[11]。
本次设计将会采用52单片机,52单片机是比较常见的一种单片机,可以说兼容英特尔的8052指令系统的单片机
都是52系列单片机,主要的厂家包括了英特尔(Intel)、爱特梅尔(Atmel)、飞利浦(Philips)、宏晶(STC)
生产的52系列单片机。本次设计采用STC系列单片机STC89C52作为项目的控制器。主要是8位的CPU,具有64kb的寻址
空间,一共具有4组32个输入与输出的I/O管脚,具有两个优先级与5到6个的中断,并且具有一个UART串行通讯接口
[12]。单片机的引脚如图3.1所示:
图3.1 STC89C52电路图
P0端口具有两个功能,第一个在有外部扩展时候可以作为地址总线的低8位;第二个功能是作为一个普通输入输
出I/O管脚,这种情况应用时候通常接入10K的上拉电阻,以此来增加I/O引脚的驱动能力。
P1端口准双向口,各位可分开使用,某位作输入线时,该位锁存器必须为“1”;作为输入时,可以被任何TTL
电路和MOS电路所驱动,由于内部有提升电路,也可以被集电极开路或漏极开路的电路所驱动;
P2端口具有两个功能,第一个P2端口是8个普通端口,第二个功能单片机系统有(并行)外部扩展时,作为地址
总线的高8位。;
P3端口具有两个功能,第一个P3端口是8个普通端口,从P3.0到P3.7引脚,每一个引脚既可以作为输入也可作为输出
;第二个功能作为特殊引脚、RXD、TXD、INT0、INT1、T0、T1使用。
2. 单片机晶振电路
单片机的晶振电路将为单片机电路提供一个比较稳定的脉冲信号,单片机就会根据这个脉冲信号来执行一次指
7
令周期[13]。单片机使用的晶振越大,单片机的指令周期就能够越短,单片机的代码执行效率就会越高,但并不一
定是单片机运行的越快就能越好,我们需要根据实际的应用场景来保证单片机的运行稳定。单片机晶振电路连接单
片机的是XTAL1与XTAL2两个引脚,两个30PF的电容一端会接到晶振的引脚,另一端会接入地,这样就可以得到晶振
标称的谐振频率。
3. 单片机复位电路
单片机的复位电路将用来保证单片机的程序稳定执行的作用,其作用之一是在系统上电初期电源不稳定时候提
供复位信号,其作用之二是实现手动按键复位系统,实现程序的重新执行。单片机复位电路如图3.3所示,主要包括
了轻触按键SW2、电容10UF与一个10K的下拉电阻,单片机的引脚RST在接触高电平实现复位。在正常运行时候R3的
10K下拉电阻接入地,给RST引脚一个低电平保证单片机正常运行程序,当轻触按键SW2按下之后单片机RST引脚接入
到高电平VCC实现外部复位程序重新开始运行[14]。
(二). 显示电路设计
通过LCD1602显示系统的信息与参数,通过LCD1602显示屏来完成人机交互的功能。LCD1602是一款液晶显示屏,
由“.”来组成一块屏幕,通过对LCD1602进行驱动可以让屏幕显示出不同的字符或者数字。LCD1602显示时候分为两
行8列一共可以显示16个ASCLL码的字符,通过程序来驱动显示各个字符。LCD1602具有背光,可以通过硬件来实现屏
幕的控制,背光系统可以让液晶显示的更加清晰,无论是在白天或者夜晚都让显示的数据清晰可见。
LCD1602与单片机采用并行方式驱动,根据电路D7到D0是LCD1602的数据驱动接口,这些接口依次连接到单片机
的P0.7到P0.0接口。LED-K与LED-A分别连接GND与5V实现了背光灯的点亮。VDD与VSS是LCD1602的供电电源,电压为
5V分别连接到VCC与GND。V0是LCD1602屏幕对比对的调节,这里采用一个RP1,阻值为10K的可调电阻来调节对比对,
通过旋转RP1的可调旋钮可以将LCD1602屏幕的对比对调节的比较清晰。E端连接到单片机的P2.7实现屏幕的使能控
制,RW为LCD1602的读写设置,连接到单片机的P2.6进行控制,RS连接到单片机P2.5实现LCD1602的指令模式的切
换。
(三). 定位电路设计
通过使用GPS模块实现了定位的功能,确定位置必须要得到准确的经度与维度。GPS模块具有比较标准的格式,
使用时候需要保证GPS模块放置室外,否则对接收卫星信号有影响。当GPS模块搜索到卫星定位成功之后在模块上有
LED进行闪烁,同时GPS模块按照特定格式输出定位信息,包括了经度信息、纬度信息、时间信息、定位卫星数量、
海拔高度等信息。电路图与实物如图3.5所示,GPS模块中包括了数据通讯接口,陶瓷天线,定位模块。使用GSM模块
需要在VCC端接入5V电压,GND连接到系统的地,单片机的RXD连接到GPS模块的TXD,单片机的TXD连接到GSM模块的RXD
,通过串口实现与单片机之间的数据交互。GPS模块正常定位成功后会在串口输出信息,单片机接收到这些ASCLL码
信息按照标准格式对数据解析就可以得到经度与纬度信息实现定位功能。
(四). GSM电路设计
使用GSM短信模块实现数据的远程接收,通过短信息模式与目标手机之间进行短信模式的信息呈现。GSM模块通
过手机SIM卡接入到移动基站中,只要有手机信号地方都可以实现GSM短信功能,GSM可以在国内任意有网络地方使用
进行远程的数据交互。GSM模块实物如下图3.10所示,主要包括了UART通讯接口、电源供电接口、天线、GSM模块
等。使用GSM模块时候只要保证电源接通,连接UART接口进行通讯就可以使用。GSM模块与单片机的连接电路如图3.6
所示,电源供电为5V接入到VCC,GND连接到系统地。通过串口RXD与TXD与单片机的TXD与RXD连接,单片机与GSM模块
之间通过发送特定的AT指令进行模块的控制与数据交互,只需要串口发送相应的命令或者数据就可以完成对GSM模块
的操作。使用GSM模块需要插入SIM卡,当上电之后GSM模块LED灯会快速闪烁,大概在10S左右会接入到基站的网络
中,这个时候LED灯变为慢闪烁,可以根据LED灯的状态来判断GSM是否联网,可以进行数据之间的通讯与交互。
(五). 震动检测电路设计
系统选用震动传感器模块检测餐盒是否存在震动破坏,震动传感器模块如图3.7和图3.8所示,VCC接电源正极,
GND接电源负极,DO为数字量信号输出,AO用此震动传感器此功能无效。需要注意的是电源极性不能反接、否则有可
能将芯片烧坏、开关信号指示灯亮时输出低电平、不亮输出高电平、信号输出的电平接近于电源电压。接好VCC和
GND,模块电源指示灯会亮,将模块轻放桌面上,调节板上蓝色电位器,直到板上开关指示灯亮,然后稍微回调电位
器,让开关指示灯灭,再用手敲打桌面,使震动传感器有震感,此时,开关指示灯再会到亮状态。震动停止,开关
指示灯也会灭。这个现象就是说明,震动可以触发模块,从而使开关指示灯点亮。
四. 系统软件设计
(一). 软件环境
单片机想要正常的工作需要写入相应的程序才可以执行相应的逻辑功能与数据采集。单片机的程序逐渐使用高
级语言C语言进行编程,C语言是面向人类语言,方便理解与编程。使用KEIL软件首先在电脑中完成安装,根据系统
的提示安装完软件就可以双击进行运行,如下为建立工程的文件,选择上面菜单的Project→New Project就可以实
现一个新工程的建立[15],
当建立完工程之后就可以对程序进行编写,通过编写主程序main函数编写各个模块的子程序,定义变量信息等
等,根据项目的实际情况按照C语言标准语法进行程序的逐条编写,
对于程序来说可以进行分模块的编写,编写多个相应的子函数,然后主程序进行相应的调用比较合理,这样做
的好处在于编写时候可以分模块测试。当编写完成一个子程序功能之后点击编译按钮,这个时候KEIL软件会先去检
查编写是否错误,如果编写正确就会生产一个现阶段的HEX可执行文件,可以下载文件到单片机中观察程序运行状
态,编译成功界面如图4.3所示:
图4.3 KEIL编译成功界面
当程序都完成编写之后点击KEIL的运行按钮完成最终的HEX文件生成。生成的文件需要下载到单片机中,STC51
与STC52系列单片机可以通过软件STC-ISP软件完成HEX文件下载到单片机中。使用STC-ISP软件时候需要注意单片机
型号的选择,这里进行选择为STC89C52/LE52单片机的类型,串口号是根据插入的硬件来选择,可以在我的电脑中进
行串口号的确定,选择好打开的程序文件之后,之后只需要点击下载/编程按钮就可以完成HEX文件到单片机中的转
变。当程序下载完成之后会提示程序下载成功相应的提示,之后单片机就可以执行下载好程序的相应逻辑功能,如
图4.4所示:
图4.4 程序下载界面
(二). 主程序设计
单片机的程序运行必须从主函数main开始运行,单片机会从主函数main的第一条程序开始依次执行。主程序主
要包含了数据的定义部分、循环部分、调用子函数部分。程序首先最先进行的是各个传感器的初始化程序,等待传
感器都进入到正常的运行状态之后进入到循环程序,循环程序会一直执行,从第一条开始调用对应的子程序然后依
次执行到最后再次返回到循环程序的第一条开始反复的进行运行。主流程图如图4.5所示,包括了初始化、数据加
载、数据的运算、数据的执行与处理、最后完成第一个循环结束的过程。
图4.5 主程序流程图
主程序设计部分代码如下:
#include “main.h”
#include “LCD1602.h”
#include “GPS.h”
#define uint unsigned int
#define uchar unsigned char
这段主程序设计代码是主程序里对宏观和变量的一些定义。
(三). 传感器程序设计
传感器程序是检测外部信号的子程序,通过采集传感器的数据来实现数据的采集,然后单片机对采集到的数据
进行处理与运算,执行相应的逻辑功能。传感器的采集流程图如图4.6所示,传感器上电之后单片机对传感器进行初
始化设置,然后采集数据判断是否成功,当采集成功对采集的数据处理如果采集失败进行重新采集,最后根据采集
的数据结果实现相应程序的处理。
图4.6 传感器流程图
传感器程序部分代码如下:
if(Flag_GPS_OK == 1 && RX_Buffer[4] == ‘G’ && RX_Buffer[6] == ‘,’ && RX_Buffer[13] == ‘.’)
{
12
for( i = 0; i < 68 ; i++)
{
Display_GPGGA_Buffer[i] = RX_Buffer[i];
}
Hour= (Display_GPGGA_Buffer[7]-0x30)*10+(Display_GPGGA_Buffer[8]-0x30)+8;
这段传感器程序设计代码判断是否收到"GPGGA"这一帧数据和将时间转换到北京时间。
(四). 执行程序设计
单片机的执行子程序主要实现功能为输出效果,其中包括了显示输出数据,输出数字量信息实现执行相应功能
处理的逻辑。单片机的逻辑输出子程序流程图,如图4.7所示,当检测到相应的逻辑输出之后,进行逻辑的输出与显
示效果的判断,当满足逻辑判断相应的子程序执行相应的功能。
图4.7 动作执行流程图
执行程序的部分代码如下:
void UTCDate2LocalDate(void)
{
Day = (Day_High - 0x30) * 10 + (Day_Low-0x30) + 1;
Month = (Month_High - 0x30) * 10 + (Month_Low - 0x30);
Year = 2000 + (Year_High - 0x30) * 10 + (Year_Low - 0x30);
MaxDay = GetMaxDay(Month,Year);
if(Day > MaxDay)
{
Day = 1;
Month += 1;
if(Month > 12)
{
Year+=1;
}
}
Day_High = Day/10 + 0x30;
Day_Low = Day%10 + 0x30;
Month_High = Month/10 + 0x30;
Month_Low = Month%10 + 0x30;
Year_High = Year%100/10 + 0x30;
Year_Low = Year%10 + 0x30;
}
这段执行程序代码用来获取当月日期最大值。
(五). 显示程序设计
单片机的显示程序是作为人机交互的重要窗口,采集传感器的数据信息,按键设置得到相应信息都要设备进行
相应的显示。显示功能会将需要的数据信息完全的呈现在人眼面前。单片机的显示程序如图4.8所示,首先进行显示
程序的初始化,确保显示正常执行,然后将想要的数据写入到显示屏幕的寄存区,最后将数据呈现在显示屏幕中。
图4.8 显示流程图
显示程序代码如下:
#include “LCD1602.h”
void LCD1602_delay_ms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}
void LCD1602_write_com(unsigned char com)
{
LCD1602_RS = 0;
LCD1602_delay_ms(1);
LCD1602_EN = 1;
LCD1602_PORT = com;
LCD1602_delay_ms(1);
LCD1602_EN = 0;
}
void LCD1602_write_data(unsigned char dat)
{
LCD1602_RS = 1;
LCD1602_delay_ms(1);
LCD1602_PORT = dat;
14
LCD1602_EN = 1;
LCD1602_delay_ms(1);
LCD1602_EN = 0;
}
void LCD1602_write_word(unsigned char *s)
{
while(*s>0)
{
LCD1602_write_data(*s);
s++;
}
}
void Init_LCD1602()
{
LCD1602_EN = 0;
LCD1602_RW = 0;
LCD1602_write_com(0x38);
LCD1602_write_com(0x0c);
LCD1602_write_com(0x06);
LCD1602_write_com(0x01);
这些代码有对显示程序的定义,对指令的书写,对数据的书写,对状态和模式的设置。
五.系统调试与分析
(一). 系统测试步骤
在完成系统的硬件与软件程序的设计之后就要对系统的整体运行状态进行测试;首先要做的是对硬件进行测
试。包括硬件是否短路,各个模块工作是否正常,传感器的电压是否正确。这里首先要对电源VCC与GND端连接进行
测试,采用万用表进行测试观察电压是否是设计的电压范围。测试传感器供电电源是否在器件供电电源范围之内,
如果引荐测试正确,没有短路与开路状态,测量的电压也在范围之内说明硬件焊接正确。
在硬件测试完成之后就需要将第四章编写的程序进行测试,这里需要分步进行,对应硬件模块的各个部分编写
对应的程序,然后将程序下载到设备中进行测试观察设备现象,将每一个模块都需要进行测试,必须确保每一个功
能模块都可以运行稳定。当测试完成各个模块之后就需要在程序中编写整体的功能逻辑,这个时候要做的就是主函
数主循环中按照想要实现的逻辑进行子程序的分布调用。主程序的逻辑功能编写完成之后做整体的测试,整体测试
成功之后进行各个数据实验。
(二). 功能模块测试
首先观察显示模块是否正确,显示模块主要体现在数据的交互方面,调通显示模块可以进行各个传感器的间接
测试。可以将其他需要显示数据的传感器数值进行显示,首先是调通显示,显示的效果如图5.1所示。系统可以正常
的显示传感器的数据,可以确定显示程序的编写正确,接下来对各个模块进行分步的测试,可以将测试结果在显示
中进行体现,或者按照逻辑功能进行观察。
图5.1系统显示效果
在测试时候遇到传感器的测试结果不正确,这个时候首先去确定硬件状态,检测硬件的电路不存在问题,这个
时候就只需要确定编写的程序是否正确,可以通过互联网去查看器件的使用方法的程序,查看别人是否遇到类似的问题,然后对该功能模块加以解决。
依次去测试每一个部分模块程序,根据显示内容可以观测到传感器的运行状态是否正确。测试每一部分的功能
模块的程序,每一部分的程序都是需要反复的修改进行确定,直到最后测试的部分功能可以完整的运行。然后将开
始测试主程序,按照编写的程序逻辑分步进行整体的功能测试,观察实物是否按照程序的编写意图来运行,若果运
行出错需要找出对应的程序进行修改。程序的测试过程中会遇到各个问题,这时候就需要对各个BUG进行修改,直到
实物于运行方式与程序编写的逻辑相同。最后测试系统如下图5.2中所示,完成了系统设计的目标与整体功能的测
试。
图5.2设备实物图
完成系统的任务目标,但是还要对系统进行不断的完善,每一个系统都是在不断的改进中趋于完美。编程人员
在测试时候需要具备相应的耐心,测试自己编写的程序优点与缺点都是相对的,优点在于对于各个程序的运行逻辑
清晰,方便测试。缺点在于由于是自己写的程序很容易马虎大意造成系统存在BUG,所以测试时候需要一定的耐心与
认真的态度。
(三). 测试数据结果
在完成系统的整体测试之后需要对系统输出的结果进行出验证,其中包括了逻辑功能或者相应的数据准确度与
相应的反应时间。系统在上电之后,在3秒之内传感器就会进入整备的工作状态,系统的电源持续运行时候电压的波
动数值范围非常的小,表5.3是电源测试的3组数据,数据是持续3小时内的测试结果。
被测量 持续1小时 持续2小时 持续3小时
输入电源/V 5.0 5.0 5.0
系统电源/V 4.98 4.99 5.0V
表5.3 电源数据表
电源经过测试,如上表所示,在设备运行一小时时候测试,输入电压是5.0V系统的电源在4.98V,在系统持续运
行两个小时时候,测量电源电压为4.99V,在系统运行3小时后测试系统的电压为5.0V。总体来说电源电压波动的范
围为0.02V左右,符合系统电源的设计要求,系统的整体供电稳定,不存在电源大范围波动现象。
由于检测以上方法只是对某一数值进行单一性变化的功能检测,测试的数值存在偶然性,系统需要精准而有效
的数值,才能确保是否在合理范围,所以在同一实验环境内将设备放测量出来的数值与标准测量仪器测量的数值进行比较,才能确认本系统测量的数值误差是否在合理范围内。
结论
本次设计完成了系统的任务目标,并且测试设备可以实现预期的目标功能,设备可以正常的工作。本次在设计
项目中主要对硬件、软件、调试进行总结,主要包括了以下方面。
硬件:在设计硬件过程中根据目标的功能去选择硬件方案与型号,主要来源是通过图书馆与网络进行硬件的选
型。通过设计各个部分的硬件模块,最后设拼装完成完整电路图的设计。在完成硬件时候需要连线与原理的掌握,
通过查找相应的器件手册来完成,最后完成每个硬件部分的测试,得出了硬件可用符合设计目标的结论。
软件:软件是实现各个模块功能的程序编写,这里采用分步进行编写,按照一个功能模块一个子程序的模式来
实现。编写好对应的模块程序写入到硬件电路中,观察硬件的运行状态是否为目标功能。反复的对各个模块功能进
行调试,最后完成整个设备得到运行目标逻辑,通过测试可以得到软件完成目标功能的结论。
测试:当完成整个系统的硬件与软件测试之后需要对设备的整体进行整个测试。包括了稳定性、运行状态、采
集数据准确度方面进行测试。通过测试整体的设备符合了目标设计逻辑、设备的运行状态稳定、传感器采集的数据
符合目标数据要求。综合来说本次设计的结论是设备完成了任务要求,实现了设备的目标功能。
不足与展望:这次设计的研究不够深入,研究的角度不够多,只能从设计的目标选择一些特定的层面进行资料
的查阅和研究,其中没有考虑到某些条件。其次本次设计选题范围较广,给写作带来了很大的困难,相关文献只能
囫囵吞枣地进行大概阅读和分析,没有足够的时间详细地研究透文献,许多内容容易被重复书写。最后写作语言不
够精炼,许多文字不能用合适和专业的书面文字总结和提炼,口头语较多,文章还有些不太够规范和正式等等。这
些问题都是我本次设计所存在的问题,我希望通过这次设计后,在未来的工作和生活中能够学会用简练和专业的文
字表达出最合适的意思,其他需要提升的地方比较多:同时在整个论文的书写过程中,学到了新知识,增长了见
识。在往后的时间里,我仍然要不断地学习知识、不断地充实自我,用脚踏实地、实事求是的学习态度和吃苦耐
劳、坚持不懈的精神争取在未来的工作岗位上有所成就。