C#实验关于线程实验报告_第1页
C#实验关于线程实验报告_第2页
C#实验关于线程实验报告_第3页
C#实验关于线程实验报告_第4页
C#实验关于线程实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、 课 程 设 计 报 告 课程设计名称: 嵌入式系统课程设计 学 院: 信息工程学院 姓 名: 班 级: 13通信 学 号: 成 绩: 指导教师: 开课时间: 2016-2017 学年 一 学期目录一、设计目的、内容及要求11.1 设计目的11.2 设计内容及安排11.3 考核方法与成绩评定2二、设计原理及过程32.1设计原理3三、设计程序及结果53.1 程序具体内容53.2设计结果12四、 心得与体会13参考文献14一、设计目的、内容及要求1.1 设计目的本课程是为通信工程专业本科生开设的必修课,结合学生的专业方向的理论课程,充分发挥学生的主动性,使学生掌握应用MATLAB仿真平台的GUI系

2、统,巩固理论课程内容,规范文档的建立,培养学生的创新创业能力,并能够运用其所学知识进行综合的设计,鼓励2人一小组。Embedded System的课程设计是对嵌入通信与控制系统仿真软件、课程学习的综合检验,配合理论课的教学,让学生亲自参加设计、仿真、验证Embedded System系统(残毒检测系统)的一般原理、Applications等方面的知识点,体验创业型创新的快乐!1.2 设计内容及安排1. 设计内容本课程设计要完成的任务是其中的一个子任务,主要目的是利用MATLAB的放音功能直接通过耳机线控制4通道DTMF控制器来控制光阀与水阀,同时利用MATLAB的录音功能直接通过麦克风线录制高

3、锰酸钾发光光电转换后的声音,最后对声音进行分析,提取扩散指纹特征,从而鉴别不同种类的除草剂,杀虫剂以及防霉剂。建议一位同学负责上述后台处理代码的编写,另一位同学负责前台的图形界面的编写工作,最后组装成能够用于控制嵌入式残毒检测系统的小软件包。附加任务: 如果有多余的时间,再设计用手机远程控制光阀与水阀的升级版系统,或者用手机直接采集录音,概念性设计也行,来不及的话不一定需要提供代码。样本代码:clearclcrec_obj=audiorecorder;%rec_obj=audiorecorder(8000,8,1);recordblocking(rec_obj,6);% change sec%

4、play(rec_obj);data_rec=getaudiodata(rec_obj);audiowrite('161122.wav',data_rec,8000);2. 课程设计的工作进度(1)查阅残毒检测相关资料,并进行初步独立前后台程序设计。(2)模块连接,程序注释,程序调试, 文档说明及保存。(3)按照规范要求撰写课程设计报告的电子稿。(4)完善课程设计的电子稿,(5)结果演示答辩。Email: steedhuang 文档材料(以姓名和学号的最后两位命名,里面包含所有程序附件、课程设计的电子稿);上交打印稿。1.3 考核方法与成绩评定总成绩由平时成绩(考勤与课堂表现)

5、、程序设计演示成绩和报告成绩三部分组成,各部分比例为20%,50%,30%.(1)平时考勤成绩:无故旷课,平时成绩减半。(2)设计演示成绩:按照实际的设计过程及最终的实现结果给出相应的成绩。(3)设计报告成绩:按照提交报告的质量与完整性给出相应的成绩。 (4) 提前一天或完成附加任务,加10分,推迟一天交报告扣10分。备注:每人提交一份课程设计报告, 注明同组成员以及任务分工情况汇报(打印稿和电子稿各一份)课程设计报告按照上学期模板撰写,要求内容详细、准确、完整。二、设计原理及过程2.1设计原理随着社会的快速发展,社会整体经济也在快速发展,人们的生活水平也不断提高,越来越关注食品安全问题,特别

6、是农药残留问题,即使是少量(1ppm到1ppb)的农药残留也将会引起人类死亡或终生残疾。相对于国外,我国的检测技术与检测标准都比较落后。本系统采用先进的光电快速检测技术,在检测速度和检测稳定性上都有一定的优势。本课题项目研究,集合了光电转化技术、化学发光技术、光电快速检测技术、二维码读写技术、嵌入式技术及数据融合技术等多学科的最新成果,完成农产品从生产、中转站及消费者菜篮子前的全程监控。目前存在的技术:仪器检测法:根据农药理化性质,利用仪器进行精确分析。此类方法不仅可以定性测定农药品种,而且可以精确定量检测农药残留量,但需对试样进行前处理,费时费试剂,同时需要大型昂贵仪器,故只局限于实验性使用

7、。生物测定技术:利用生物的生理生化反应来判断农药残留及其污染情况。这种生测技术无需对样品进行前处理,但对供试生物要求高,测定结果不能确定农药品种,生物培养时间长,并且可能出现假阳性或假阴性。快速检测法:目前应用最多的速测法酶法,根据有机磷和氨基甲酸酯类杀虫剂的靶樯酶乙酰胆碱酯酶(AChE)受抑制程度,检测该杀虫剂的残留。酶法具有快速方便、前处理简单、无需仪器等优点,但只能测定有机磷和氨基早酸酯类杀虫剂,基分类敏度与所使用的酶、显色反应时间和温度密切相关。光电检测法:利用农药本身或者发光体的化学发光原理,通过光电转化技术,数据采集及处理技术,数据融合技术实现农药浓度光强电压声音之间的相互联系,进

8、而测量出农药的浓度以及反应扩散过程中形成的声音指纹。本设计的技术指标有: 残毒检测系统:检测速度每批次5-8分钟,检出限可达1*10-8g/ml。 数据追踪功能:农家、中转站、消费者通过二维码的写功能以及无线网技术传递检测仪检测的信息,农家、中转站、消费者还可以通过二维码的读功能以及无线网技术了解农产品从生产地、中转站以及菜篮子前的全部信息。 仪器的微型化:检测仪便于携带。本设计的主要功能有: 利用化学发光、光电倍增、嵌入式等技术的方案,实现便携式检测、速度快、灵敏度高。利用二维码读写技术实现“电子合格章”的全称追踪,保证农民和消费者的权益。系统采用重复试验的数据分组技术和适合于单传感器重复采

9、样的数据融合技术,使得精确度更高。实现对有机磷、有机氯农药的快速检测。农药残留检测仪主要由超声波震荡器、紫外灯照射器、蠕动泵、电子阀、光电倍增管组成。各组件功能如下:超声波振荡器可以发出高频声波产生振动,具有分解、乳化、促溶等作用,可以加速化学反应,缩短前期试剂准备时间。在本实验中促融2,4-D试剂标准溶液或高锰酸钾标准溶液。紫外灯可以产生紫外光,紫外光照射化学物质,物质的分子吸收光子后产生光化学反应。本实验中紫外光可以降解2,4-D,使其生成多酚类降解物:氯氢醌Chlorohydroquinone ( CHQ) ,4-氯邻苯二酚4-Chlorocatechol如下等等。蠕动泵由驱动器、泵头和

10、软管三部分组成具有自动化吸入液体的功能。在硬件系统中主要负责将2,4-二氯苯氧乙酸试剂吸入反应准备管中,准备等待反应。电子阀是由电子信号控制的自动化阀门无需人工操作,可有效避免误差的产生。在硬件系统中主要负责控制已经被吸入反应准备管中的2,4-二氯苯氧基乙酸农药的自动化导入。光电倍增管主要负责对光化学反应释放出的光电子数进行计数从而实现了光电转化,以便后续的放大,声卡负责把放大后的电信号进一步放大,同时把合成的DTMF信号放大到合适的音量送给电子阀控制器,音量太大会干扰光电转换电路,音量太小启动不了电子阀门。三、设计程序及结果3.1 程序具体内容function varargout = zy(

11、varargin)% ZY MATLAB code for zy.fig% ZY, by itself, creates a new ZY or raises the existing% singleton*.% H = ZY returns the handle to a new ZY or the handle to% the existing singleton*.% ZY('CALLBACK',hObject,eventData,handles,.) calls the local% function named CALLBACK in ZY.M with the gi

12、ven input arguments.% ZY('Property','Value',.) creates a new ZY or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before zy_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop.

13、 All inputs are passed to zy_OpeningFcn via varargin.% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help zy% Last Modified by GUIDE v2.5 28-Nov-201

14、6 21:38:45% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', zy_OpeningFcn, . 'gui_OutputFcn', zy_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback',

15、);if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before zy is made visible.function zy_OpeningF

16、cn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to zy (see VARARGIN)% C

17、hoose default command line output for zyhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes zy wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = zy_OutputFcn(hObj

18、ect, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structureva

19、rargout1 = handles.output;% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)global recObj ;%定义一个全局变量存放语音数据recObj =audiorecorder (11025, 16, 2);%频率11025Hz,2通道,16是采样点的比特数recObj.record;%调用record函数,开始录音global T

20、1;%定义一个全局变量,T1是开始到暂停的时间T1=0;global T2;%定义一个全局变量,T2是继续到暂停的时间T2=0;global T3;%定义一个全局变量,T3是继续到结束的时间T3=0;global T;%定义一个全局变量,T是总的录音时间T=0;global flag;%定义一个标志,用来判断是开始,还是继续,还是暂停flag=3;global start;%定义一个全局变量,存放开始的时间点 global startpause;%定义一个全局变量,存放暂停的时间点startpause=0; global startcon;%定义一个全局变量,存放继续的时间点 startcon

21、=0; global startend;%定义一个全局变量,存放结束的时间点 startend=0;disp('开始录音');start=clock;%将系统时间放入start变量% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)function pushbutton1_ButtonDownFcn(hObject, eventdata, handles);% - Executes

22、 on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)global recObj ;recObj.resume;%录音继续global flag;flag=1;%置标志位为1disp('继续录音'); global startcon; startcon=clock;%将系统时间放入startcon变量% eventdata reserved - to be defined

23、 in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)global recObj ;recObj.pause;%录音暂停disp('暂停录音');%a=elapsed;g

24、lobal startcon;global start;global startpause;startpause=clock;%将系统时间放入startpause变量global T1;global T2;global flag;flag=0;%令标志位为0T1=(startpause(3)-start(3)*24*60*60+(startpause(4)-start(4)*60*60+(startpause(5)-start(5)*60+(startpause(6)-start(6); % if startcon=0T2=T2+(startpause(3)-startcon(3)*24*60

25、*60+(startpause(4)-startcon(4)*60*60+(startpause(5)-startcon(5)*60+(startpause(6)-startcon(6); end %elapsed = toc(tstart1) %elapsed =elapsed+ toc(tstart1)%end% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - Executes on

26、button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)global recObj ;recObj.stop;disp('停止录音');global startcon;global start;global startpause; global startend; global T1; global T2; global T3; global T; global flag; sta

27、rtend=clock;%将系统时间放入startend变量 if startpause=0 T=(startend(3)-start(3)*24*60*60+(startend(4)-start(4)*60*60+(startend(5)-start(5)*60+(startend(6)-start(6); elseif flag=1T3=(startend(3)-startcon(3)*24*60*60+(startend(4)-startcon(4)*60*60+(startend(5)-startcon(5)*60+(startend(6)-startcon(6); T=T1+T2+T

28、3; else T=T1+T2; end% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)function pushbutton9_Callback(hObject, eventdata, handles); global startend; global T1; global T2; global recObj ; if startend=0disp('播放录音片段');p=p

29、lay(recObj);pause(T1+T2); else disp('录音已经结束,请点击播放完整录音按钮。'); end% - Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)global recObj ;global T;global flag; global startend; if startend=0 disp('录音还没

30、结束,请点击播放录音片段按钮。'); elsedisp('播放录音');flag;p=play(recObj);pause(T); end%wavplay(wavread('zy.wav'),11025);% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - Executes on button press in pushbutton11.functi

31、on pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11 (see GCBO)global recObj ;global zyRecording;zyRecording = getaudiodata(recObj);plot(zyRecording);disp('绘制录音数据波形');% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton12 (see GCBO)global recObj ;global zyRecording;audiowrite('zy.wav',zyRecording,11025);disp('写出录音文件');% eve

温馨提示

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

评论

0/150

提交评论