首页 基于NRF905无线收发芯片温度监测无线通信系统的设计毕业论文

基于NRF905无线收发芯片温度监测无线通信系统的设计毕业论文

举报
开通vip

基于NRF905无线收发芯片温度监测无线通信系统的设计毕业论文 四川省大学生电子设计竞赛 基于NRF905无线收发芯片温度监测无线 通信系统的设计 设计与总结报告 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 ...

基于NRF905无线收发芯片温度监测无线通信系统的设计毕业论文
四川省大学生电子设计竞赛 基于NRF905无线收发芯片温度监测无线 通信系统的设计 设计与总结报告 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用 授权书 网站备案授权书下载肖像授权书文档下载肖像授权书下载歌曲授权书模板下载销售授权书免费下载 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 目录 3摘要 31方案论证与比较 41.1温度采集方案设计 41.2显示部分方案设计 51.3无线接收发射方案设计 51.4上位计算机通信方案设计 52硬件电路设计 52.1温度采集模块工作原理与计算 52.1.1工作原理 62.1.2温度计算 62.2显示模块电路 72.3无线发射接收模块 82.3.1 SPI接口设计 92.3.2 工作模式 92.3.3 工作电源 102.3.4 NRF905无线收发工作参数 112.4上位计算机通信模块 112.4.1串口通信的工作参数 113软件设计 113.1主程序设计 113.1.1被监测端(发射端) 133.1.2监测端(接收端) 143.6计算机监控软件设计 154系统测试 154.1测试所使用的仪器 154.2软硬件测试 154.2.1显示(LCD1602)测试及数据 164.2.2温度采集测试及数据 164.2.3无线接收发送测试及数据 174.2.4上位计算机通信测试及数据 175总结 18附录 18计算机监控软件使用说明: 18被检测端(发射端)主程序: 21检测端(接收端)主程序: 24计算机监控软件主程序: 基于NRF905无线收发芯片温度监测无线 通信系统的设计 摘要 本系统采用NRF905无线收发模块实现了被监测端(发射端)至监测端(接收端)的单工数据传输。被监测端以单片机AT89S51为核心,使用DS18B20温度传感器进行数据的采集;AT89S51对采集到的温度进行处理,然后通过NRF905把温度数据发送给监测端。监测端采用NRF905内置的CRC检测,从而保证数据的准确。通过LCD1602液晶显示器来实现数据的显示;通过MAX232芯片实现与上位计算机通信的功能; 可以同时放置若干个监测端(接收端)从而实现多点监测。 1方案论证与比较 针对题目要求,经过分析,系统主要包括温度传感器、无线收发模块、单片机控制模块、显示模块及上位计算机通信模块。系统采用软件工程的UML建模语言进行建模,系统的设计框图如图1.1: 图1.1 “操作人员”给“控制器”上电,“控制器1”以串口方式读取“温度采集”模块的数据,经“控制器1”处理,处理后的温度数据传输给“本地显示”模块以进行显示,最后在通过“无线发射”模块把温度数据发送出去。“无线接收”模块接收到温度数据后传输“控制器2”,“控制器2”进行数据处理,处理后的温度数据传输给“本地显示”模块以进行显示,然后再通过串口通信,把温度数据传输给上位计算机的“PC温度监控”模块,计算机内部处理后显示在计算机屏幕上,以便“监控人员”进行监控。 1.1温度采集方案设计 温度采集模块是系统设计的重点之一,直接影响整个系统对环境温度变化的反应速度、采集准确度以及精度等指标。 【方案一】采用数字温度传感器DS18B20,具有连接简单、采集速度快、精度高等特点。它采用单线总线与单片机相连(和地线),这允许在许多不同地方放置温度传感器。它可在1秒内把温度变换为数字,采集速度较快能及时反应温度的变化。最高12位温度读数,精度可达到0.0625摄氏度,温度采集范围-55~125摄氏度,在很多场合下都能使用,并且价格低,很容易买到。 【方案二】采用模拟传感器。虽然它能及时的反应出温度变化,但是它的精度较低,并且还要使用A/D转换器,这样增加了成本和控制的难度,所以采用方案一。 1.2显示部分方案设计 显示部分能在本地及时的显示出当前的温度,方便操作人员了解本地的温度。 【方案一】采用LCD液晶显示屏,它是以若干个5 X 10点阵块组成,能显示英文字符和数字。具有低功耗、长寿命、高可靠性、清晰、体积小等特点。 【方案二】采用LED八段显示器。虽然LED具有原理简单、显示快速等特点。但是它不能显示英文字符,如果使用锁存方式显示,增加了电路难度。不使用锁存方式则增加了控制的难度。所以采用方案一。 1.3无线接收发射方案设计 无线接收发射是系统设计的重点之一,它是连接监测端和被监测端的桥梁。无线模块对环境比较敏感,同时,无线模块的功耗、传输距离也是影响系统可用度的一个因素。所以必须选用能自己检测传输错误,并且功耗较小、传输距离长的无线模块。 【方案一】采用NRF905无线收发芯片。具有体积小、功耗低、发射电流小、抗干扰能力强、发射速率高等特点,同时自带CRC检测,传输距离可达300M。 【方案二】采用PTR2000进行温度的发送和接收,该方案具有模块体积超小型,超低功耗,高速率,抗干扰能力强,开阔地时的使用距离最远可达1000米,但接收到发射的转换时间较长,不能及时传输时空变化的温度,所以采用方案一。 1.4上位计算机通信方案设计 【方案一】采用MAX232串口通信芯片。具有电路简单、编程容易等特点,并且价格便宜,容易买到。 【方案二】采用USB通信。采用此方案技术难度较大,编程困难。所以采用方案一。 综上所述,总体方案是:控制部分采用通用的AT89S51芯片,温度采集使用数字温度传感器DS18B20,本地显示采用点阵液晶屏,无线收发采用NRF905芯片,采用MAX232串口方式与上位计算机通信。 2硬件电路设计 2.1温度采集模块工作原理与计算 2.1.1工作原理 系统在被监测端(发射端)采用数字温度传感器DS18B20实现温度的采集,DS18B20才用单总线接口,只占用单片机的一个端口。DS18B20可以采用数据线供电的方式,但是为了采集速度更快,我们使用外部供电方式。其测量范围从-55摄氏度到+125摄氏度,能满足一般民用需求。其连接电路如图2.1: 图2.1 工作原理:首先单片机初始化DS18B20,然后发送启动温度转换命令,然后再发送准备读取温度命令,最后读取2字节的温度数据。具体步骤如下: 单片机给DS18B20一个初始化命令,然后发送0xcc命令跳过读序列号,发送0x44命令以启动温度转换。再发送一个初始化命令,同样发送0xcc命令跳过读序列号,发送0xbe命令准备读取温度,单片机连续读取2字节的温度数据。 2.1.2温度计算 DS18B20采用2字节来存储温度,其中15~11位表示温度符号,10~4位表示温度的整数位,3~0位表示温度的小数位,如图2.2所示: 图2.2 正温度计算: 由于15~11位全为0,DS18B20采用正码形式存储温度,所以只需把10~0位右移4位就能算出温度,也就是除以16。比如采集到的温度0550H,除以16,的十进制的85,那么温度就为85摄氏度。采集到的温度为0191H则温度为25.0625摄氏度。 负温度计算: 对于负温度,DS18B20采用补码形式存储温度,15~11位全为1,10~0位为补码,所以要转换为正码,然后再用正温度的计算方式。比如采集到的温度为FC90H,二进制为1100 1001 0000,转换为正码为0011 0111 0000,十六进制为370H,除以16为十进制55摄氏度,再加上符号位则计算出来的温度为-55摄氏度。 2.2显示模块电路 显示模块使用比较通用的LCD1602液晶屏,,它是以若干个5 X 10点阵块组成,具有清晰、快速、可靠等特点。其电路如图2.3: 图2.3 本系统采用单片机P0口作为LCD1602的数据端口,E使能端使用单片机的P2.3口,RW使用单片机的P2.2口,RS使用单片机的P2.1口,VO背光接地,电源采用+5v。排阻RR1为单片机P0口的上拉电阻。 2.3无线发射接收模块 无线发射接收模块使用NRF905芯片,它与控制器采用SPI 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 进行通信,其内部原理如下图: NRF905单片无线收发模块工作在433/868/915MHZ的ISM频段,本系统采用433MHZ频段。由一个完全集成的频率调节器,一个带解调器的接收器,一个功率放大器,一个晶体振荡器和一个调节器组成。ShockBurst工作模式的特点是自动产生前导码和CRC。可以很容易通过SPI接口进行编程配置。电流消耗很低,在发射功率为-10dBm时,发射电流为11mA,接收电流为12.5mA,进入POWERDOWN模式可以很容易实现节电。 由于AT89S51没有SPI端口,所以我们用AT89S51模拟SPI,从而与NRF905通信。与单片机的连接如图2.4: 图2.4 NRF905管脚的具体含义请参考下图: 2.3.1 SPI接口设计 SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收寄存器5个寄存器组成。 1. 状态寄存器:包含数据就绪DR和地址匹配AM状态 2. 射频配置寄存器:包含收发器的频率,输出功率等配置信息 3. 发送地址寄存器:包含目标器件地址字节长度由配置寄存器设置 4. 发送数据寄存器:包含发送的有效数据包数据字节长度由配置寄存器设置 5. 接收寄存器:包含接收到的有效数据包数据字节长度由配置寄存器设置在寄存器中的有效数据由数据准备就绪DR指示 2.3.2 工作模式 NRF905有4种工作模式,本系统采用其中的3种模式:SPI编程模式、发送模式、接收模式。其工作模式由TRX-CE、TX-EN、PWR-UP的设置来设定的。如表2.1 表2.1 Standby模式(SPI编程模式): Standby模式在保持电流消耗最小的同时保证最短的到shockBurst Rx,ShouckBurst Tx的启动时间。当进入这种模式时,一部分晶体振荡器是活动的。电流消耗取决于晶体振荡器的频率。在此模式中,配置字的内容保持不变。 ShockBurst Rx模式(接收模式): 当有相应的温度数据要传送时,则通过SPI接口,按时序把接收机的地址和要发送的数据送传给NRF905,SPI接口的速率在通信协议和器件配置时确定;TRX-CE和TX-EN置高电平,使NRF905的发送模式启动;NRF905进行数据的发送。NRF905不断重发,直到TRX-CE被置低电平时,NRF905发送过程完成,自动进入空闲模式。 ShockBurst Tx模式(发射模式): 当TRX-CE为高电平,TX-EN为低电平时,NRF905进入接收模式;650S后,NRF905不断监测,等待接收数据;当NRF905检测到同一频段的载波时,载波检测引脚被置高电平;当接收到一个相匹配的地址,AM引脚被置高电平;当数据包正确接收完毕,NRF905自动移去字头、地址和CRC校验位,然后把DR引脚置为高电平;TRX-CE置为低电平,NRF905进入空闲模式;在一次通过SPI口,以一定的速率把数据移到微控制器内,当所有数据接收完毕,NRF905把DR引脚和AM引脚置为低电平。这时NRF905可以进入接收模式、发送模式或关机模式。 2.3.3 工作电源 NRF905使用的是3.3v电源,所以必须给它单独配置一个电源,3.3v电源电路如图2.5: 图2.5 VDD输入为9V直流电压,稳压块采用的是德州仪器公司的TLV2217-33电源模块,具有精度高等特点。 TLV2217-33输入5~12V,输出3.3V。无论NRF905工作在什么模式,它的电流都不大,所以,使用德州仪器公司的TLV2217-33电源模块给NRF905供电是比较合适的。 我们在监测端(接收端)使用了2个NRF905信号指示灯,信号指示灯电路如图2.6: 图2.6 其中CD为NRF905的载波检测脚,AM为NRF905的地址匹配脚,sn74ahc1g86dbc为德州仪器公司的单通道异或门,对CD和AM进行异或。操作人员通过观察发光二极管DS2从而判断NRF905是否在接收数据,通过观察发光二极管DS1从而判断NRF905是否接收到了正确的数据。 2.3.4 NRF905无线收发工作参数 写入配置寄存器的参数为:0x01, 0x0c, 0x44, 0x02,0x02,0xcc, 0xcc, 0xcc,0xcc, 0x58 其含义为:不自动重发数据,正常模式,输出功率为10dBm,器件工作在433MHZ,发射接收地址宽度为4字节,发射接收2字节数据,接收地址为0xcc,内部16MHZ晶振,不使用外部晶振,8位CRC自检。 还能配置为:自动重发,节能模式,输出功率有-10dBm、-2 dBm、+6 dBm,可选的工作频率有433MHZ、868MHZ,收发字节最多32字节数据。可以使用外部晶振,可以不使用CRC检测。 2.4上位计算机通信模块 上位计算机通信模块使用通用的MAX232串口通信方式,电路如图2.7: 图2.7 MAX232的主要作用是进行电平转换,从而使单片机AT89S51能和计算机进行通信。我们只使用了11、12来连接单片机AT89S51的P3.0口和P3.1口。MAX232的13和14脚与串口相连,将数据传送到计算机。 2.4.1串口通信的工作参数 波特率:9600;数据位是8位;停止位是1位;没有校验位。 3软件设计 3.1主程序设计 主程序主要的功能是组织并协调各模块的工作,处理“温度采集”模块传来的温度。 3.1.1被监测端(发射端) 被监测端(发射端)主程序时序图如图3.1: 图3.1 1. “操作人员”给“控制器1(AT89S51)”上电; 2. “控制器1(AT89S51)”对“本地显示(LCD1602)”进行初始化; 3. “控制器1(AT89S51)”对“无线收发(NRF905)”进行初始化; 4. “控制器1(AT89S51)”给“温度采集(DS18B20)”一个温度采集命令; 5. “温度采集(DS18B20)”把采集到的温度数据传输给“控制器1(AT89S51)”; 6. “控制器1(AT89S51)”对采集到的温度数据进行处理。判断温度的正负,把负温度转换为正码,再把温度数据计算为实际温度,最后把温度数据传换成“本地显示(LCD1602)”能显示的格式。 7. “控制器1(AT89S51)”把处理后的温度数据传输给“本地显示(LCD1602)”以进行显示; 8. “控制器1(AT89S51)”设置“无线收发(NRF905)”为发射模式,以便发射原始温度数据; 9. “控制器1(AT89S51)”把未处理过的温度数据传输给“无线收发(NRF905)”,从而把温度数据发射出去; 10. 回到第4步继续采集温度数据,一直这样循环; 以下是各模块对应的程序文件名称: 模块名称 程序文件名称 控制器1(AT89S51) Main.c 本地显示(LCD1602) Lcd1602.c及lcd1602.h 无线收发(NRF905) Nrf905.c及nrf905.h 温度采集(DS18B20) Ds1820.c及ds1820.h 3.1.2监测端(接收端) 监测端(接收端)主程序时序图如图3.2: 图3.2 1. “操作人员”给“控制器1(AT89S51)”上电; 2. “控制器2(AT89S51)”对“本地显示(LCD1602)”进行初始化; 3. “控制器2(AT89S51)”对“无线收发(NRF905)”进行初始化; 4. “控制器2(AT89S51)”初始化串口通信,设置串口通信的参数; 5. “控制器2(AT89S51)”设置“无线收发(NRF905)”为接收模式,以便接收被监测端(发射端)发射出来的原始温度数据; 6. “无线收发(NRF905)”接收到原始温度数据,进行CRC校验,如果数据正确则把数据传输给“控制器2(AT89S51)”; 7. “控制器2(AT89S51)”对接收到的数据进行处理,处理方法同被监测端(发射端)一样,这里就不重述。 8. “控制器2(AT89S51)”把处理后的温度数据传输给“本地显示(LCD1602)”以进行显示; 9. “控制器2(AT89S51)”向上位计算机传输温度数据,以便上位计算机对温度数据进行监控; 10. 回到第15步继续接收温度数据,一直这样循环; 以下是各模块对应的程序文件名称: 模块名称 程序文件名称 控制器1(AT89S51) Main.c 本地显示(LCD1602) Lcd1602.c及lcd1602.h 无线收发(NRF905) Nrf905.c及nrf905.h 串口通信 Comm..c及comm.h 3.6计算机监控软件设计 计算机端监控软件的主要功能是接收单片机通过串口传输过来的温度数据,然后显示在屏幕上;采用对平台兼容性很好的JAVA语言编写。此软件的附加功能: 1. 设置报警温度,当温度超过报警温度时,屏幕上会报警; 2. 可以任意选择监控端口; 3. 退出软件后,再次启动本软件会恢复上次设置的报警温度; 其软件界面如图3.3 图3.3 由于计算机端监控软件功能很少,所以没有使用现在最流行的MVC模式进行开发。监控软件主要包括2部分: 1. 屏幕显示及控制类,类名:MainFrame; 2. 串口收发类,类名:SerialComm;使用的串口通信参数和单片机上的串口通信参数一致。 控制类(MainFrame)主要控制串口收发类(SerialComm)发送过来的数据,然后设置“现在温度”滑条,当“现在温度”超过“报警温度”时则显示报警,如图3.4所示 图3.4 由于我们把JAVA语言的运行平台JDK进行了集成,所以计算机监控软件无需安装即可使用。其使用方法如下: 1. 解压文件夹下的“PC串口通信程序”。 2. 进入解压后的文件夹,打开“温度监控”文件夹下的“温度监控.exe”即可。 4系统测试 4.1测试所使用的仪器 测试所使用的仪器有:数字万用表,温度计,串口调试器软件。 4.2软硬件测试 4.2.1显示(LCD1602)测试及数据 显示(LCD1602)测试方式:单片机AT89S51直接驱动LCD1602显示字符。测试数据如下: 被监测端(发射端): 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 显示 实际显示 Temperature is:: 1234567890+-,./? 监测端(接收端): 标准显示 实际显示 Temperature is:: 1234567890+-,./? 4.2.2温度采集测试及数据 温度采集测试方式:单片机AT89S51接收到DS18B20传来的数据后,在LCD1602上显示原始温度数据及处理过后的温度数据。测试数据如下表: 实际温度℃ 原始数据 测试温度℃ 误差 -6 -3 4.2.3无线接收发送测试及数据 无线接收发测试方法:被监测端(发射端)在LCD1602上显示要发射的数据,通过NRF905发射出去;监测端(接收端)接收到数据后,在LCD1602上显示接收到的数据;收发2字节数据。测试数据如下表: 相距(M) 发射数据 接收数据 <1 3200 4.2.4上位计算机通信测试及数据 上位计算机端采用“串口调试器”;我们用一下方式测试串口通信:单片机端接收“串口调试器”发送过来的数据,然后单片机在LCD1602上显示接收到的数据,最后在把数据传回“串口调试器”。 “串口调试器”发送的数据 LCD1602显示的数据 “串口调试器”接收的数据 5总结 我们的设计完成了题目中的基本部分和发挥部分,采用DS18B20温度传感器很准确及时的采集到当前的温度。通过使用NRF905无线发送接收模块将所采集的温度数据能够在0m~300m的范围内准确无误的发送给监控端(接收端)。采用LCD1602显示模块完成了显示部分,利用串口通信完成了在计算机上显示所接收到的温度数据,同时也给系统增加了报警功能。 附录 计算机监控软件使用说明: 由于我们把JAVA语言的运行平台JDK进行了集成,所以计算机监控软件无需安装即可使用。其使用方法如下: 1. 解压文件夹下的“PC串口通信程序”。 2. 进入解压后的文件夹,打开“温度监控”文件夹下的“温度监控.exe”即可。 被检测端(发射端)主程序: #include "reg51.h" #include "lcd1602.h" #include "nrf905.h" #include "DS1820.h" //0 1 2 3 4 5 6 7 8 9 . unsigned code lcdtable[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e};//lcd显示代码; uchar d1,d2,d3,po4,po3,po2,po1; //个位,十位,百位,1/10位,1/100位,1/1000位,1/10000位; uchar low,tdatalow,tdataheight; //温度低字节,未处理温度的小数位 uint temp,tempold,tempnew,point;//采集温度,旧温度,新温度,实际温度的小数位 void convert(uchar c) { d1=0x00; d2=0x00; d3=0x00; po1=0x00; po2=0x00; po3=0x00; po4=0x00; d3=(c%1000)/100; //取百位 d2=(c%100)/10; //取十位 d1=(c%10)/1; //取个位 po4=(point%10000)/1000; //取1/10位 po3=(point%1000)/100; //取1/100位 po2=(point%100)/10; //取1/1000位 po1=(point%10)/1; //取1/10000位 } void display()//LCD显示函数 { //显示温度 wr_byte_ram(1,0x42,lcdtable[d3]); //显示百位 wr_byte_ram(1,0x43,lcdtable[d2]); //显示十位 wr_byte_ram(1,0x44,lcdtable[d1]); //显示个位 wr_byte_ram(1,0x45,lcdtable[10]); //显示小数点 wr_byte_ram(1,0x46,lcdtable[po4]); //显示1/10位 wr_byte_ram(1,0x47,lcdtable[po3]); //显示1/100位 wr_byte_ram(1,0x48,lcdtable[po2]); //显示1/1000位 wr_byte_ram(1,0x49,lcdtable[po1]); //显示1/10000位 wr_length_ram(1,0x4A,"C",1);//显示温度单位 } void dispNegativeTemp(uchar l) //LCD显示负温度 { convert(l);//转换 wr_length_ram(1,0x40," ",16);//擦除字符 wr_length_ram(1,0x40," -",2);//显示负温度 display(); //LCD显示函数 } void dispPositiveTemp(uchar l) //LCD显示正温度 { convert(l); //转换 wr_length_ram(1,0x40," ",16);//擦除字符 wr_length_ram(1,0x40," +",2);//显示正温度 display(); //LCD显示函数 } main() { ini_lcd1602(); //初始化LCD; Config905(); //配置905 wr_length_ram(1,0x00," Temperature is:",16);//显示提示字符 while(1) { temp=0x0000; temp=read_temp();//读取温度 if(temp!=tempold) //数据有变化者,重新显示 { tempnew=temp; tdatalow=temp&0xff; tdataheight=temp>>8; point=temp&0x000F;//取小数位; point=point*625;//转换为实际温度 if(temp & 0x8000) //处理负温度 { temp=temp&0x0FFF;//去除高4位的符号; temp=temp^0x0FFF;//取反; temp+=1; temp>>=4; //计算温度,除以16; low=temp|0x00; //取低字节 dispNegativeTemp(low); //LCD显示负温度 low=low|0x80; } else //处理正温度 { temp>>=4;//计算温度,除以16; low=temp|0x00;//取低字节 dispPositiveTemp(low); //LCD显示正温度 } SetTxMode();//设置为发送模式 TxPacket(tdataheight,tdatalow);//发送函数 tempold=tempnew;//存最新数据 } } } 检测端(接收端)主程序: #include "reg51.h" #include "lcd1602.h" #include "nrf905.h" #include "DS1820.h" #include "comm.h" //0 1 2 3 4 5 6 7 8 9 . unsigned code lcdtable[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e};//lcd显示代码; uchar d1,d2,d3,po4,po3,po2,po1; //个位,十位,百位,1/10位,1/100位,1/1000位,1/10000位; uchar low,tdatalow,tdataheight; //温度低字节,未处理温度的小数位 uint temp,tempold,tempnew,point;//采集温度,旧温度,新温度,实际温度的小数位 void convert(uchar c) { d1=0x00; d2=0x00; d3=0x00; po1=0x00; po2=0x00; po3=0x00; po4=0x00; d3=(c%1000)/100; //取百位 d2=(c%100)/10; //取十位 d1=(c%10)/1; //取个位 po4=(point%10000)/1000; //取1/10位 po3=(point%1000)/100; //取1/100位 po2=(point%100)/10; //取1/1000位 po1=(point%10)/1; //取1/10000位 } void display()//LCD显示函数 { //显示温度 wr_byte_ram(1,0x42,lcdtable[d3]); //显示百位 wr_byte_ram(1,0x43,lcdtable[d2]); //显示十位 wr_byte_ram(1,0x44,lcdtable[d1]); //显示个位 wr_byte_ram(1,0x45,lcdtable[10]); //显示小数点 wr_byte_ram(1,0x46,lcdtable[po4]); //显示1/10位 wr_byte_ram(1,0x47,lcdtable[po3]); //显示1/100位 wr_byte_ram(1,0x48,lcdtable[po2]); //显示1/1000位 wr_byte_ram(1,0x49,lcdtable[po1]); //显示1/10000位 wr_length_ram(1,0x4A,"C",1);//显示温度单位 } void dispNegativeTemp(uchar l) //LCD显示负温度 { convert(l);//转换 wr_length_ram(1,0x40," ",16);//擦除字符 wr_length_ram(1,0x40," -",2);//显示负温度 display(); //LCD显示函数 } void dispPositiveTemp(uchar l) //LCD显示正温度 { convert(l); //转换 wr_length_ram(1,0x40," ",16);//擦除字符 wr_length_ram(1,0x40," +",2);//显示正温度 display(); //LCD显示函数 } main() { ini_lcd1602(); //初始化LCD; Config905(); //配置905 init_serialcomm(); //初始化串口 wr_length_ram(1,0x00," Temperature is:",16);//显示提示字符 while(1) { temp=0x0000; SetRxMode();//设置为接收模式 temp=RxPacket();//接收温度函数 if(temp!=tempold) //数据有变化者,重新显示 { tempnew=temp; tdatalow=temp&0xff; tdataheight=temp>>8; point=temp&0x000F;//取小数位; point=point*625;//转换为实际温度 if(temp & 0x8000) //处理负温度 { temp=temp&0x0FFF;//去除高4位的符号; temp=temp^0x0FFF;//取反; temp+=1; temp>>=4; //计算温度,除以16; low=temp|0x00; //取低字节 dispNegativeTemp(low); //LCD显示负温度 low=low|0x80; } else //处理正温度 { temp>>=4;//计算温度,除以16; low=temp|0x00;//取低字节 dispPositiveTemp(low); //LCD显示正温度 } send_char_com(low);//向串口发送一个字符 } } } 计算机监控软件主程序: package com.Frame; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.TooManyListenersException; import javax.comm.CommPortIdentifier; import javax.comm.SerialPort; import javax.comm.SerialPortEvent; import javax.comm.SerialPortEventListener; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.Serial.SerialComm; public class MainFrame { private SerialComm serialcomm=null; //串口实例 private SerialPort serialPort=null; //串口实例 private File file=null;//保存报警值 private DataOutputStream fileout=null;//写报警值数据流; private DataInputStream filein=null;//读报警值数据流; private int readdata=0; //串口数据存储 private int temp_old=0; private Boolean flag_start=false; //监控标志 private Boolean flag_alarm=false; //报警标志 private JFrame frame; private final JPanel panel = new JPanel(); private final JLabel Label1 = new JLabel(); private final JComboBox comboBoxPortID = new JComboBox(); private final JButton buttonStart = new JButton(); private final JSlider sliderTemp = new JSlider(); private final JLabel labelSliderTemp = new JLabel(); private final JLabel label = new JLabel(); private final JLabel label_1 = new JLabel(); private final JSlider sliderAlarm = new JSlider(); private final JLabel labelSliderAlarm = new JLabel(); private final JButton buttonExit = new JButton(); /** * Launch the application * @param args */ public static void main(String args[]) { try { MainFrame window = new MainFrame(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the application */ public MainFrame() { jbInit(); } /** * Initialize the contents of the frame */ private void jbInit() { frame = new JFrame(); frame.setResizable(false); frame.setBounds(100, 100, 205, 294); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(panel, BorderLayout.CENTER); panel.setLayout(null); panel.add(Label1); Label1.setText("请选择端口:"); Label1.setBounds(10, 10, 87, 24); panel.add(comboBoxPortID); comboBoxPortID.setBounds(92, 10, 94, 24); panel.add(buttonStart); buttonStart.addActionListener(new ButtonStartActionListener()); buttonStart.setText("启动监控"); buttonStart.setBounds(10, 226, 87, 28); panel.add(sliderTemp); sliderTemp.setEnabled(false); sliderTemp.addChangeListener(new SliderTempChangeListener()); sliderTemp.setValue(0); sliderTemp.setMinimum(-55); sliderTemp.setMaximum(125); sliderTemp.setOrientation(SwingConstants.VERTICAL); sliderTemp.setBounds(60, 73, 30, 151); panel.add(labelSliderTemp); labelSliderTemp.setText("0"); labelSliderTemp.setBounds(92, 143, 30, 18); panel.add(label); label.setText("现在温度:"); label.setBounds(42, 49, 66, 18); panel.add(label_1); label_1.setText("报警温度:"); label_1.setBounds(114, 49, 66, 18); panel.add(sliderAlarm); sliderAlarm.addMouseMotionListener(new SliderAlarmMouseMotionListener()); sliderAlarm.addMouseListener(new SliderAlarmMouseListener()); sliderAlarm.addChangeListener(new SliderAlarmChangeListener()); sliderAlarm.setValue(0); sliderAlarm.setMinimum(-55); sliderAlarm.setMaximum(125); sliderAlarm.setOrientation(SwingConstants.VERTICAL); sliderAlarm.setBounds(120, 73, 23, 151); panel.add(labelSliderAlarm); labelSliderAlarm.setText("0"); labelSliderAlarm.setBounds(149, 143, 37, 18); panel.add(buttonExit); buttonExit.addActionListener(new ButtonExitActionListener()); buttonExit.setText("退出"); buttonExit.setBounds(115, 226, 71, 28); myInit(); //初始化 } private void myInit() { serialcomm=new SerialComm(); //新建串口对象 comBoxPortInit(); //下拉列表初始化 file=new File("config.data"); //打开配置文件 if(!file.exists()) //是否存在 { try { if(!file.createNewFile()) //不存在新建一个 { JOptionPane.showMessageDialog(null, "创建配置文件失败"); } } catch (IOException e) { JOptionPane.showMessageDialog(null, "创建配置文件出错"); e.printStackTrace(); } } try { filein=new DataInputStream(new FileInputStream(file)); //打开配置文件输入流 } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(null, "创建配置文件输入流出错"); e.printStackTrace(); } try { int alarm=filein.readInt(); //读取报警值 sliderAlarm.setValue(alarm); //出错,设置报警滑条值为0; labelSliderAlarm.setText(String.valueOf(alarm)); //设置报警滑条标签为0; filein.close(); } catch (EOFException e) { sliderAlarm.setValue(0); //出错,设置报警滑条值为0; labelSliderAlarm.setText(String.valueOf(0)); //设置报警滑条标签为0; } catch (IOException e) { JOptionPane.showMessageDialog(null, "配置文件读入出错"); sliderAlarm.setValue(0); //出错,设置报警滑条值为0; labelSliderAlarm.setText(String.valueOf(0)); //设置报警滑条标签为0; e.printStackTrace(); } try { fileout=new DataOutputStream(new FileOutputStream(file));//打开配置文件输出流 } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(null, "创建配置文件输出流出错"); e.printStackTrace(); } } private void comBoxPortInit() { Enumeration ports = serialcomm.getPorts(); //得到所有可用串口端口; if(ports==null) //可用端口为空 { JOptionPane.showMessageDialog(null, "没有端口"); return ; } comboBoxPortID.removeAllItems(); //清空下拉列表项 while(ports.hasMoreElements()) { CommPortIdentifier portid=(CommPortIdentifier) ports.nextElement(); //得到一个端口 if(portid.getPortType()==CommPortIdentifier.PORT_SERIAL) //是否为串口 { comboBoxPortID.addItem(portid.getName()); //是串口,添加到下拉列表框 } } comboBoxPortID.setForeground(Color.GREEN); //设置下拉列表前景色为绿 } private class SliderTempChangeListener implements ChangeListener { public void stateChanged(ChangeEvent e) { sliderTemp_stateChanged(e); } } private class SliderAlarmChangeListener implements ChangeListener { public void stateChanged(ChangeEvent e) { sliderAlarm_stateChanged(e); } } private class ButtonExitActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { buttonExit_actionPerformed(e); } } private class ButtonStartActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { buttonStart_actionPerformed(e); } } protected void sliderTemp_stateChanged(ChangeEvent e) { if(readdata>128)//正温度 { readdata=128-readdata; } sliderTemp.setValue(getReaddata()); //把串口读出来的数据赋值给温度滑条 labelSliderTemp.setText(String.valueOf(sliderTemp.getValue())); //把温度滑条的值赋值给温度标签,以显示 } protected void sliderAlarm_stateChanged(ChangeEvent e) { System.out.println("change"); labelSliderAlarm.setText(String.valueOf(sliderAlarm.getValue())); //把警告滑条的值赋值给警告标签,以显示 if(flag_alarm) { if(sliderAlarm.getValue() 心得 信息技术培训心得 下载关于七一讲话心得体会关于国企改革心得体会关于使用希沃白板的心得体会国培计划培训心得体会 体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。 毕业论文的基本教学要求是: 1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。 毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。 毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。 撰写意义:1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。 2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。 3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。 论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。 按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。 按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。 另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类: 1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。 写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的 总结 性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际 问题 的能力。从文体而言,它也是对某一专业领域的现实问题或 理论 问题进行 科学 研究 探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。 首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。 教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。 第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。 第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。
本文档为【基于NRF905无线收发芯片温度监测无线通信系统的设计毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
不系舟红枫
从教近30年,经验丰富,教学水平较高
格式:doc
大小:1MB
软件:Word
页数:0
分类:工学
上传时间:2019-01-23
浏览量:1