《噪声检测系统的软件设计方案.docx》由会员分享,可在线阅读,更多相关《噪声检测系统的软件设计方案.docx(10页珍藏版)》请在第一文库网上搜索。
1、噪声检测系统的软件设计方案1.1 软件开发语言及开发平台1.1.1 软件开发语言C语言是一种通用的计算机程序设计语言,既可以编写计算机的系统程序,也可以编写一般的应用程序。由与汇编语言程序在可读性和可移植性方面有很多缺陷,而且调试和查错也很困难,因此为提高单片机应用程序的编写效率,采用高级语言是一种很好的选择。C语言具有一般高级语言的特点,又能直接对计算机硬件进行操作,表达和运算能力也比较强,可方便地移植到各种型号计算机上22。本课题是用单片机得C51语言进行软件编程Kei1C51语言是ANSIC的基础上针对51单片机的硬件特点进行的扩展,并向51单片机上移植,经过多年的努力,C51语言已经成
2、为公认的高效、简洁而又接近51单片机的实用高级编程语言。用C51语言进行单片机得软件开发具有如下优点:(1)可读性好。C51语言程序比汇编程序的可读性好,因而编程效率高、程序便于修改。(2)模块化开发与资源共享。用C51开发出来的程序模块化可以不经修改,直接被其他项目所用,这使得开发者能够很好的利用已有的大量标准C程序资源与丰富的库函数,减少重复劳动。(3)可移植性好。为某种型号单片机开发的C语言程序,只需与硬件相关处和编译连接的参数进行适当修改,就可以方便地移植到其他型号的单片机上。.(4)生成的代码效率高。当前较好的C51单片机编译系统编译出来的代码效率只比直接使用汇编语言低20%左右,如
3、果使用优化编译选项,效果会更好。1.1.2 软件开发平台UViSion2Kei1公司目前已经推出了V7.0以上版本的C51编译器,为51单片机软件开发提供了全新的C语言环境,同时保留了汇编代码高效、快速的特点。现在Kei1C51已经完全集成到一个功能强大的全新集成开发环境(IDE)uVision2中,该开发环境下集成了文件编译处理、编译链接、项目管理、窗口、工具引用和仿真软件模拟器,所有这些功能均可在Kei1uVision2提供的开发环境中极为简便进行操作。Kei1C51一般简写为C51,指的是51单片机编程所有的C语言;而Kei1uVision2指的是用于51单片机得C51程序编写、调试的集
4、成开发环境。ISSong1i1i-Wision2-C:DocumentsandSettingSAdministrator、桌面宋丽丽程序(1)song1i1i.c=Fi1eEditViewProjectDebugF1ashPeriphera1sToo1s5VCSWindowHe1p置以p0a及昌口国鼬幡IH1的乖*“交送I儆廨岂;-fBui1d人COmmand人FindinFiieS厂1:62;图4-1UViSion2开发环境界面使用KEI1软件做项目时的开发步骤和其他软件开发步骤相差不多,其C语言程序的开发步骤如下:(1)创建一个项目,在器件数据库中选择目标芯片,配置相关工具软件设置,添加一
5、个FiIe到项目工程中,保存项目;(2)使用C语言编写源程序;(3)用项目管理器构造应用,编译程序;(4)纠正源文件中的错误,重新编译,直至没有错误为止;(5)调试链接后的应用,生成HEX文件(HEX文件是可直接下载到单片机中的文件类型)。uVision2软件提供了强大的项目管理功能,可以非常方便地进行结构化多模块程序设计。uVision2软件内部集成源程序编辑器,它允许用户在编辑源程序文件时设置调试断点,方便程序调试过程中的快速检查和修改程序;其内部集成器件数据库存储了多种不同型号单片机的片上资源信息,通过它可以自动设置CX51编译器、AXS1宏汇编器、B151/1X51连接定位器以及调试器
6、的默认选项,充分满足用户利用特定单片机上集成外围功能的要求内部集成源级浏览器,利用符号数据库中详细的符号信息,使用户可以快速浏览源文件,并优化用户的变量数据存储器。此外还提供了文件查找功能、用户菜单接口,而且还支持软件模拟仿真和用户目标板调试两种工作方式。1.2 系统的软件设计分析单片机的系统功能可知,它是数据采集模块的主控制器,主要完成对环境噪声信号的采集,通过信号放大,然后通过无线收发模块传送给终端单片机处理。根据系统功能要求,单片机的软件设计部分主要包括主程序设计、信号模数转化程序设计和串行通信程序设计以及报警检测程序设计。1.2.1 主程序设计主程序设计部分主要完成系统的初始化和数据的
7、采集以及按需要调用各个子程序模块的任务,将其组成一个有机统一的整体。主程序流程框图4-2,系统上电复位后,单片机首先初始化系统,然后软件查询接收器是否发送命令信号。若接收器未发送开始命令信号,系统返回初始化程序继续重新执行;若接收器发送开始命令信号,则发送器将收到采集信号的命令,首先读取程序设定的采样周期,然后调用串行通信子程序,将采集的数据传送给接收器,接收器与发送器之间的数据传输通过延时顺利完成。接收机发送结束命令信号则发送器停止噪声信号的采集;若接收器未发送结束命令信号,则发送机将继续循环采集18。开始图4-2主程序框图12.2数据处理程序设计在数据处理模块中,主要是对噪声信号的采集,采
8、集后进行信号的放大,由ADCO804进行模数转换,采用软件延时方法读取转换结果并按顺序存入下位机中。具体转换过程如图4-3所示。该模块主要部分为A/D转换子程序。图4-3A/D转换流程图12.3串行通信程序设计串行通信模块的程序设计主要是上下位机之间的通信,即两个单片机间的通信。程序在UViSiOn3中编写编译,调试成功后使用下载软件STC-ISP.exe通过串口将程序写入到单片机中,给单片机上电即可运行程序。串行通信一般有异步通信和同步通信两种基本通信方式。同步方式用十传输速度高且硬件复杂的情况。在异步通信时,数据时按一帧的格式传送的,每一串行帧的数据格式由1个起始位,5-8位数据位,1个奇
9、偶校验位(可省)和1个停止位四部分组成(刘艳玲2000)系统采用双机通信方式,单片机时钟振荡频率为11.0592MHz,采用SMOD=O单倍方式,串行口以方式1工作,定时器T1以方式2工作。发送与接收端单片机分别通过无线收发模块连接起来,假设发送端单片机AT89C52(1)为A机,接收端单片机AT89C52(2)为B机,两机之间数据传输采用串行通信方式。通信协议约定如下:设置a机与B机间的通信波特率为9600bits:A机发送数据,B机接收数据,双方在收发数据时使用查询方式:数据帧格式8个数据位,1个停止位,无奇偶校验位,起始位一直存在。串行通信程序主要由串行口初始化程序、发送程序和接收程序组
10、成。串口初始化主要实现串口的打开以及规定上下位机的通信协议;发送和接收程序则实现上位机发送开始命令后,下位机发送数据和上位机接收数据的功能。串行通信程序流程图如图4-4所示。首先下位机发握手信号,请求上位机应答,上位机收到握手信号后发送应答信号,下位机收到上位机的命令后开始传送数据,当上位机收到最后一个数据应答后,上下位机之间的通信到此结束。图4-4串行通信流程图12.4报警检测程序设计报警单元部分实现声音报警和地点显示报警。参考第二章系统硬件设计部分图3-21单片机AT89C53通过它的P2.2脚为蜂鸣器提供控制输入信号,此电路为系统提供声音报警。报警检测程序流程图如图4-5所示,系统上电后,先进行初始化操作,接着循环检测口P2.1与P2.6、P2.7口是否为低电平,不为低,则继续检测;为低电平则延时3秒再次对P2.1脚检测,检测结果与上次检测相同,则启动蜂鸣器进行声音报警,同时调用液晶显示程序显示噪声分贝。图4-5报警检测流程图