毕业设计答辩演讲稿

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各位领导、老师早上好,我名马乐云,来自08级自动化3班,我的指导老师是干开峰老师。非常荣幸能够参加这次毕业设计答辩。我的毕业设计题目是:传感器采集系统软件设计与实现。下面请允许我对我所做的设计做一个简短的介绍。

本次答辩我将从以下几方面介绍我的设计,分别是:

系统概况

系统功能要求

系统总体设计

系统功能实现

系统调试

总结

首先是系统概况,传感器采集是指将温度、压力、流量、位移等非电模拟信号采集转换成数字信号后,再由计算机进行存储、处理、显示或打印的过程。相应的系统被称为传感器采集系统。传感器采集的主要任务就是采集传感器输出的模拟信号并转换为计算机能识别的数字信号,然后送入计算机进行相应的计算和处理,得出所需要的数据。

然后是系统功能要求介绍,本系毕业设计我的课题是传感器采集系统的软件设计与实现,此课题有如下3个功能要实现:

1)数据实时高精度采集;

2)数据实时显示;

3)系统采样时间间隔能够现场自由设定。

对于功能1,我们决定采用16位的AD转换器AD7705来实现。它的输出范围为0—2^16-1即0—65535.如果给定的基准电压位2.5V,那么它的分辨率将达到0.038mv,已经完全能够胜任数据实时高精度采集这项功能要求。

对于功能2,我们是采用LCD12864来完成的。因为依据整个系统的要求,需要显示两行字符串,一行显示“压力”,还有一行显示“采样间隔时间”,此外还需要一行显示压力数值,此外还要一行显示采样间隔时间。所以LCD12864刚好满足这种需要。

对于功能3,我们采用4*4矩阵键盘来输入采样时间一方面采用一个100ms*t 延迟程序,t的值由键盘输入值来确定。比如输入20,则延时2.0S。

接着就是对系统总体设计的介绍了。整个系统可以分为主控模块、采集模块、键盘输入模块和输出模块来实现。系统框图如图1所示。

采集模块包含传感器和数模转换器两个部分,本次设计我们采用的是常见的压力传感器。压力传感器将外部的压力信号(非电信号)转换成微小的电压信号送给AD,AD将模拟电压信号转换成数字信号传送给主控模块,

键盘模块采用4*4矩阵键盘,1-9按键分别表示数字1-9,其他按键全表示0。按过按键后,主控模块读入键盘模块的数值,进行采样时间间隔的设定。

主控模块是整个系统的核心,他要对AD转换器和键盘处传来的数据进行分析和转换,还要将相应的数据传给LCD12864来显示出来。

输出模块采用lcd显示屏,它的作用生面已经介绍了。

下面我将对各模块的软件实现做详细介绍。

这是主控模块的程序流程图,主控模块含有delay01ms( )函数、delay100ms( )函数和主函数main( )。delay01ms( ) 1*t ms的延时函数,用来防止键盘抖动干扰,delay100ms( ) 100*t ms的延时函数,用来设定系统数据采集时间间隔。

main( )函数主要有两个动作:其一是将由AD传来的数据进行处理并将它们转化并显示到12864上去;其二是读键盘数据,用来设定系统数据采集时间间隔,并将设定的采样时间间隔显示出来。

这是采集模块的程序流程图,此模块需要设计AD7705的驱动程序,其主要定义了5个函数:Reset7705( )是复位函数,作用是将AD7705的通信端口复位;Write( ) 是写入函数,作用是向寄存器写入8位数据,主要是在写控制字是需要使用此函数;Read( ) 是读函数,此函数能够从数据寄存器中读出16位数据;Adc7705Init( )函数主要功能是选择寄存器并向寄存器中写入控制字;Adc7705( )的作用是返回一次采样值;AverAdc7705( ) 连续调用采样Adc7705( )共计150次并返回他们的平均数。

此模块需要完成4*4矩阵键盘的驱动程序。键盘与单片机通过P1 I/O端口相连,采用的是低电平扫描方式。4*4矩阵键盘各按键功能表1所示。

这是矩阵键盘的程序流程图,本次设计选用LCD12864作为系统的输出模块。要求12864能够实时显示压力值。此处主要要完成12864的驱动程序。主要包含6个函数:delay( )延时函数;sendbyte( ) 函数,作用是按照液晶的串口通信协议发送数据;write_com( )函数,作用是写串口指令;write_data( )函数作用是写数据;lcdstring( )函数,作用是写字符串;lcdinit( ) 函数作用是使液晶初始化。

经过上面4个模块的设计,我们的传感器采集系统的初步设计已经基本完成了。接下来就要对他进行调试。在调试中却发现了许多意料之外的问题。

出现的问题解决的方案

连接硬件后LCD12864上显示压力的部分有时显示乱码而不是数字。

部分变量的类型定义错误,将他们改为long int 类型之后问题得到解决。

LCD12864上显示的数据十分不稳定,同样的物品,连续进行两次测量的结果相差比较大。

经过测量压力传感器的输出的经过发达滤波的电压信号,发现时压力传感器的问题,换了传感器之后情况有所好转。

键盘输入的数字经常出现重复输入。

经分析,猜测可能是键盘的抖动过大。增加了延迟时间后此问题得到解决。

键盘设定的采样间隔时间对实际采样间隔时间没有影响。

由于用到了延时时间用到了变量n3,所以怀疑n3没有被赋值。将n3数值在12864上显示出来后发现无论键盘怎么输入n3都是显示0。经过多次排查,发现n3被定义为全局变量了,去掉extern后功能到了实现。

解决了上述或是硬件或是软件问题引起的器件不能正常工作的问题,我们的作品也就出炉了。

最后在对本次设计中所做的设计做一下总结:完成主控模块软件实现

完成采集模块软件实现

完成4*4矩阵键盘输入模块软件实现

完成输出模块软件实现

以上即是我对我的毕业设计所作的简短的阐述,希望各位老师对我设计中的不足之处提出指导与批评!

void Adc7705Init(unsigned char range)

{

range<<=3;

Reset7705(); //复位

/*写时钟寄存器*/

Write(0x20); //00100000下一个时钟寄存器;写;正常工作模式;通道AN1。

Write(0x07); //0x07:00000111主时钟打开;晶振2M;不分频;500Hz。

/*写设置寄存器*/

Write(0x10); //0x10:0001 0000 下一个设置寄存器;写;正常工作模式;通道AN1。

Write(0x7e|range); //0x7e:0111 1110 自校准;单极性;接缓冲,允许处理高阻电源。

//非复位,128倍放大。

}

相关文档
最新文档