单片机应用技术
目录
1绪论.1
1.1系统功能性分析.1
1.2系统非功能性分析.2
1.3本设计研究方法分析.2
2系统硬件设计.4
2.1光照强度检测原理.4
2.2系统方案的选择.5
2.2.1单片机选择.5
2.2.2供电电源的选型.7
2.2.3测距模块的选型.8
2.2.4按键模块的选择.11
2.2.5显示屏幕的选型.12
3硬件系统的设计.12
3.1单片机最小系统的设计.12
3.2时钟电路设计.15
3.3超声波电路.15
3.4蜂鸣器电路设计.16
4软件系统的设计.17
4.1编程语言及软件的选择.17
4.2超声波工作流程图.19
4.3时钟子流程设计.20
五实物设计.20
5.1硬件的测试分析.20
总结.21
致谢.21
1绪论
1.1系统功能性分析
智能压力传感器的设计与制作,主要的点可以分为两个部分,设计和制作,设计部分需要考虑设计的目的是什么、设计需要哪些部分、设计需要哪些电路、设计需要实现哪些功能等。通过分析可以得出以下结论。
(1)智能压力传感器设计的目的智能压力传感器的关键点在于方便了人们的生活,节约了很多的时间,并且省去了很多的麻烦,所以设计智能压力传感器的目的主要是改善人们的生活方式,方便人们的生活。
(2)智能压力传感器设计需要的组成部分智能压力传感器可以参考现有压力传感器系统的设计,结合自身方案的需求,决定使用单片机、供电电源、LCD显示屏、压力传感器等模块组成。
(3)智能压力传感器设计需要的电路智能压力传感器需要的电路可以参考第(2)部分智能压力传感器的组成部分,设计单片机电路、电源电路、显示屏电路和传感器电路。
(4)智能压力传感器设计需要实现的功能智能压力传感器的功能主要是能够在短时间反应,测量压力数据,并且实现算法的计算,将最终结果呈现在液晶屏上。
1.2系统非功能性分析
在完成用户的需求性内容之后需要考虑,整个设计的稳定性、安全性和可扩充性,这些对于一个设计来说是非常重要的。
设计的稳定性是首要的,一个设计稳定运行可以给用户带来非常好的用户体验,并且可以减少设计者后期的维护,那么这就要求在设计硬件电路的时候,对于模块的选取,线路的检查和设计完成之后的测试,不同的模块的稳定性是不一样的,环境的影响也是非常的大,需要考虑用户的使用环境,例如湿度较大或者是高温环境中,这些对于硬件的考验是非常的大的,特别是电子器件,湿度较大可能会造成电路板生锈,腐蚀等等情况出现在,造成电路无法正常的工作,所以针对不同的环境,选择合适的模块是稳定性的一个重要的点,再者是线路的检查,在焊接的时候,容易出现虚焊漏焊的情况,造成接触不良或者是短路的情况出现,这也是不可取的,轻者电路不能正常运行,重者造成电路的烧毁,所以在上电测试之前需要检查电路的可靠性,第三就是设计完成之后对于设计电路的测试,只有测试才能发现问题,解决问题,测试记录数据,确定功能性,还有就是长时间检测运行,做老化试验,这都是设计的稳定性的体现。
设计的安全性,这也是前面稳定性的设计中提到的,在不同的环境下是不是能正常的运行,会不会在进水的时候发生电路的升温,烧毁,发生火灾等情况出现,在充电的时候是不是会出现短路,造成用电的跳闸,造成公共的资源的损失,以及使用的时候会不会漏电,造成设计者在使用的时候会发现触电事故。
最后是设计的可扩展性,一个设计在出产之后会经历一定的时间,在这个时间里面都会有用新颖性和淘汰的时期,一个产品能否不断的进行功能的扩展和升级,这是用户能否接受的一个关键点,所以在设计的时候需要预留升级的区域,在设计电路的时候或者是程序的设计的时候,预留一部分区域或者是预留一部分空间在以后用户需要或者是开发者可以扩展的时候使用。
1.3本设计研究方法分析
本文需要从设计需求,设计背景和开发状况等方面对设计进行整体分析,然后提出总体设计方案,并清楚地说明设计系统可以实现的功能[9]。它还应一一选择并分析设计中所需的组件,选择更符合设计要求的组件,并详细描述系统的主要硬件电路和软件程序,以阐明软件的工作原理和设计思想。进行物理对象的生产和调试,记录和分析生产和调试过程中遇到的问题以及使用的解决方案。同时,所设计的系统功能应能够满足设计要求。本文的研究主要采用以下方法调查方法是在系统设计初期的一种必要方法。通过调查智能压力传感器的发展历史和现状,制定了设计计划和要实现的设计目标。实验的目的是在制定系统计划后,进行软件和硬件设计之后要做的实际验证工作。需要不断地进行实验,选择最合适的组件并编写最佳的优秀程序。此过程需要时间和精力。在收获之前,需要花费时间和精力来仔细完成它。完成设计并产生结果。文献研究是为了使在设计时具有一定的基础。引用其他研究人员的研究结果可以使免于走弯路,同时,在实际设计过程中也会遇到问题。存在解决问题和困难的解决方案,以免造成损失并节省设计时间。本设计是利用单片机以及通讯模块实现远程的控制系统的设计,主要以三种方法对本设计展开研究,分别是文献法,实验法和分析法。文献法在这份设计设计之前,我们需要查阅相应的资料,了解家庭电器远程控制系统设计应当以何种方式展开,通过查阅文献是一种很好的方式,因为家用电器远程控制作为智能家居的一种在之前就已经有过类似的研究,通过前人研究的结论以及经验上再次研究可以节约很多的时间,不仅如此,还可以更好的入门,与此同时,查阅文献可以得知,目前研究有哪些不足,还需要从哪些方面进行改善提升,通过查阅文献这些必要的前期工作可以节省下来,留有更多的时间进行实验和研究分析等等[10]。实验法实验室确定本设计方案的可行性,从本设计家用电器远程控制系统的研究当中,不可能只是一种方案进行到底,在设计之前,我们肯定要选择多种方案与之比较,再确定一种方案之后,要通过实验的方法检测设计是否能够成功的运行,这是十分重要的,因为设计一个东西的难度远比调试一个东西的难度要低很多,真正做出来一个东西可能很简单,但是能够让这个东西稳定的运行才是真正的成功,所以实验才是验证真理的唯一方式,通过测试研究,发现自己在设计中的不足及时的调整改进,使得设计更加完善,使功能运行更加稳定,以及其外观和控制更加简洁灵活,这些都有很大的意义,如果一件东西不灵活或者是其功耗很大,在本身的出发点上就有很大的不足且研究的可行性与有效性都有待考证,所以只有不断的实验总结才能得出最终的设计成果[11]。分析法分析法也是非常重要的,分析是建立在实验的基础上,实验有很多的数据可以总结,如果只是实验而不总结数据分析的话,那么一切的实验都是徒劳的,无法得到实验的目的以及实验提供的不足之处,所以分析法就显得尤为重要,通过分析可以确定设计中的不足,或者是设计方案的不成立,然后更好的改进项目,然后重新实验,不断的分析改进,使得家庭电气远程控制系统设计变得更加成熟,所以这三种方法缺一不可,循序渐进,代表整个设计过程的前期、中期和后期。本文需要从设计需求,设计背景和开发状况等方面对设计进行整体分析,然后提出总体设计方案,并清楚地说明设计系统可以实现的功能。它还应一一选择并分析设计中所需的组件,选择更符合设计要求的组件,并详细描述系统的主要硬件电路和软件程序,以阐明软件的工作原理和设计思想。进行物理对象的生产和调试,记录和分析生产和调试过程中遇到的问题以及使用的解决方案。同时,所设计的系统功能应能够满足设计要求,以确保系统能够在时间到时之后做出响应。调查法。调查法是我们在系统设计初期的一种必要方法。通过调查垃圾智能分类的发展历史和现状,并通过实地的调查,发现现有垃圾种类的检测方法,不同方法识别的原理不同,所以要确定本课题使用的方法,制定了本课题设计计划和要实现的设计目标。实验的目的是在制定系统计划后,进行软件和硬件设计后面要做的实际验证工作。我们需要不断地进行实验,选择最合适的组件并编写最佳的优秀程序,此过程需要大量的时间和精力。这一部分主要是根据设计的需求,焊接硬件电路,对电路进行测试,需要花费时间和精力来仔细完成它,在完成设计同时并对产生结果统计分析。文献研究是为了使我们在设计时具有一定的基础。引用其他研究人员的研究结果可以使我们免于走弯路,同时,在实际设计过程中也会遇到问题。存在解决问题和困难的解决方案,以免造成损失并节省设计时间。现在有很多的电路分析软件,除了电路分析之外,很多的软件也具有单片机芯片,对于要求不高的场合,需要使用的模块不多,就可以使用模拟仿真法对设计的电路进行仿真,通过仿真确定本设计方案是否可行,如果仿真方案可行,那么真实的硬件就不会有太多的问题,这也是一个重要的判断依据,可以减少硬件的失误率。
2系统硬件设计
2.1光照强度检测原理
本设计的光照强度检测采用的光敏电阻作为光照强度检测传感器,光敏电阻的主要材料为硫化镉,其具有在光照强度越高电阻越小的特性,其采用的主要原理是内光电效应,当光敏电阻在特定的光波照射环境中,光照会促进其产生更多的载流子,载流子越多,其导电性能越强,所以其电阻降低,在本次设计中利用其电阻在光照下降低的特性,搭载一个分压电路,光敏电阻的电阻变化从而引起其分压的变化,然后本设计采用ADC模块来采集电压的变化,将数据传输给单片机,通过分析ADC采集的数据,即可实现对光照强度的分析处理,ADC是一款高精度的模拟量转数字量的ADC模块,其采用两根总线进行信号传输,属于串行通信,一根总线负责时钟信号传输,一根总线负责数据传输,通过光敏电阻,分压电路以及ADC模块组成光照强度检测模块。本设计的光电传感器采用的是E18-D80NK光电传感器模块,其主要工作原理就是发射光经过调制后发出,然后由接收头接收反射回来的光,然后由光感电子元件将光信号转化为电信号进行传递。经过调制,能够有效的避免可见光的干扰;透镜的使用,增加了该传感器的检测距离。单片机通过检验运行输出口的电平来判断是否前方具有物体,当检测物体的时候E18-D80NK传感器输出低电平,同时该模块具有LED灯提示,检测到物体的同时亮灯提示,在平时运行没有检测到物体时的输出高电平,LED灯熄灭,而且该传感器模块通过调节器后背的旋钮可以调整检测的距离,最远测距可以达到80厘米。单片机就是我们常说的单片微型计算机的简称,他是典型的嵌入式控制器,他的产生最早被用来做工业控制,在早些年代,其集成度高、体积小、功耗低、稳定性高以及丰富的I/O接口的特点迅速为工业控制领域做出了重大贡献。单片机由内部只有中央处理器(CPU)的芯片以及大量的外围设备组成的一个集成度较高的微控制模块(如图一),用通俗的话来讲,单片机就是利用外围电路(包括各种外围传感器)收集外界非电信号,通过中央处理器(CPU)进行信号处理,并输出相应执行指令。STC89C52单片机作为一个一种低功耗、高性能CMOS8位微控制器,具有以8k字节Flash,内置4KBEEPROM,MAX复位电路,看门狗定时器,字节RAM,32位I/O口线,3个16位定时器/计数器,4个外部中断,丰富的全双工串行口,这使得STC89C52在众多微控制处理器中脱颖而出,为工业控制提供丰富的解决方案。另外,STC89C52可将频率降到0Hz的静态逻辑状态,支持节电模式。在空闲模式下,CPU停止工作,允许RAM、中断继续工作。在掉电保护方式下,将RAM里面的内容保存起来,石英晶体振荡器被迫终止动作,因为单片机需要石英晶体脉冲来进行一切工作,一旦晶振停止工作,CPU停止工作,直到人为干预使得下一个中断或硬件复位到来,使得CPU重新接收脉冲信号,从新运行指令。STC98C52单片机供电采用DC口接入,此芯片不需外接电压电流补偿元件,内含电流过载保护电路,其额定电压,一般5V。XTAL1和XTAL2引脚为单片机的时钟晶振引脚,其中XTAL1为时钟晶体振荡电路的输入端XTAL2为时钟晶体振荡电路的输出端。STC89C52的控制线引脚包括ALE/其作用为地址所存允许和编程脉冲,而PSEN为外部ROM读选通信号引脚;RST为复位引脚;而端为内外ROM选择/EPROM编程电源。在IO口方面STC89C52单片机共有4个8位并行I/O端口,这些接口均可编程访问接入。
P0口双向I/O口,可以写入也可以写出。在程序中,每对一个接口写入逻辑电平“1”时,表明对该接口高电平接入,写入逻辑电平“0”时,表明低电平接入。在对程序进行校验时,往往需要对外接一个上拉电阻,通过一个电阻钳位在高电平,同时通过该电阻对单片机起到限流保护的作用。
P1、P2、P3口具有内部上拉电阻的8位双向I/O口,对P1端口写“1”时,内部上拉电阻将高电平进行钳位拉高,做对内输入口用,当对外输出口时,将电阻拉低,由于内部钳位电阻的原因,引脚将输出电流(IIL)。该系统采用了人体红外传感器(PIR)模块HC-SR,本模块的工作原理是通过红外检测装置,来感应人体的向外发射的红外线。正常人的体温一般在36℃度到36.8℃之间,人体会发出特定波长9.8um左右的能够通过滤光片的聚集下照到红外感应源上的红外线,本装置根据热释效应对9.8UM左右的红外线特别敏感,所以红外感应装置就是这样来感应是否有人经过的,而本模块采用菲涅尔透镜原理,大大提高了模块的灵敏性。本模块通过调整触发方式,当检测到人体时,输出端口的电平置低,变为0V,通过连接单片机的I/O口和语音模块的playe引脚,即可将有人经过的信号传递到特定模块,而且本模块具有灵敏度调整旋钮,可以根据检测范围和周围环境的情况调整灵敏度,具有较好的应用效果。
2.2系统方案的选择
2.2.1单片机选择
单片机是本设计最主要的核心之一,没有单片机,其他的模块也就无法运行,整个系统也就无法实现,而单片机作为设计的核心是系统的各种运算、处理的一个核心器件,现在单片机的使用非常广泛,市面上比较常用的有51系列单片机以及现在比较主流的stm32单片机,当然还有其他的AVR,以及以功耗著称的msp,TI公司的单片机。每一种单片机都有自己的优点,而每一个系列的单片机的普通型号也有自己的优点,所以选择合适的单片机是非常重要的,而选择合适的单片机,无非是针对自己的需求,每个单片机的位数,接口以及功能都有自己的特点,需要根据自己的设计进行逐一选择,本设计需要对时钟模块、按键模块、液晶显示模块以及声音提醒模块实现与单片机的连接,基于以c语言为基础的单面机编程,所以决定在51单片机和stm32系列单片机中进行比较选择,选择合适的单片机作为本设计的系统控制器。AT89CC51单片机是一款功能强悍的8位CPU单片机,有着中断,定时器,ROM和RAM等多种功能。5种不同的中断可以进行搭配,更是有可以两个中断进行套嵌使用,可以满足学生现阶段所有的需要,它的简单方便更是值得大家肯定的,更不用说这是最早一批大家使用的单片机。更是可以通过外设来增加需要的其他功能呢,单片机上的P0、P1、P2和P3引脚上都可以进行外设的连接,使其实现所需要的[3]。而且网上的资料也很丰富,便于进行学习和查找资料。简单的汇编方式使得可以进行更多的操作,也可以实现更多的功能。广受大家的喜爱。STM32单片机是一款功能强大,性能优越的一款单片机,异于51单片机和stm32单片机,它有着自己独特的特点,以自身更强的储存能力和运行能力使得它可以在市场上有一席之地。它不仅有着32位的CPU处理系统,使其可以拥有更快的运行速度。可以进行更多更快的程序运行,使其可以进行更多的操作。它也有着更丰富的集成资源,它的汇编模式也有所改变,可以进行寄存器和库操作,两种不同的方式都可以。正是因为有着高性能、低成本、低功耗的嵌入式应用设计的内核,但由于的作品C51单片已经符合条件就无需再选取STM32来进行使用。51单片机是使用最为广泛的一种单片机,其操作简单,对于学生来说是接触最多的,51单片机是一个非常大的系列,其最基础的一种并且也是最常用的一种就是89系列的单片机,该系列单片机价格便宜。开发资源极其丰富,开发时间非常的久,各种资源及各种模块的设计都有着非常丰富的参考资料,可以满足很多人的开发要求,该单片机是8位的单片机,其处理速度算是比较基础的,对于本设计来说,对于单片机的处理速度并没有极高的要求,且51单片机的接口比较丰富,完全能够胜任本赛设计各种模块的要求,使用该单片机以及其丰富的参考资料及其资源,可以大大的减少设计的难度,可以大大节约开发的时间,是不可多得的选择之一。STM32单片机是属于arm内核的一种单片机代表其属于32位的单片机,其内部资源以及接口内部集成的功能,远远超过51单片机,其运行速度非常快,可以达到72兆赫兹,虽然其性能非常的强大,处理速度也非常的快,但是这价格却十分合理,机器性价比非常的高,其开发选择很多,可以选择定时器或者是酷,还是版本以c语言为基础的开发,其自由度非常的广,其代码的一致性也非常的高,所以说对于一些高性能高要求的设计,可以采用STM32单片机,但是其虽然性价比非常高,但是其价格还是要远贵于51单片机的,同时其丰富的资源以及接口在处理起来也比较麻烦,对于本设计来说完全是一种浪费。综合以上的考虑,还是使用51单片机更加合理一点,所以本设计基于单片机的多用途定时器采用——51单片机。32处理器顾名思义就是拥有32位ARM架构的处理器,它是一种可以提供给用户全新的自由开发空间,他的性能很高,有很强大的数字信号处理能力,集结了低功耗和电压等优秀的特点于一身,功能很强大,并且可以自己编程操作系统,处理能力极强,并且ST公司还根据32单片机的资源将单片机分为多种配置类型,同时实现了高性能对低性能的完整兼容,这使越来越多的去选32单片机,同时stm32的价格也是比较实惠的,目前被广大的人员采用。采用蓝牙模块作为设计的发送模块,蓝牙模块在人们的生活中使用是比较普遍的,每个人都有手机,手机中具有蓝牙这一功能,但是由于WiFi技术的发展使得蓝牙这种短距离无线通讯技术慢慢淡出了人们的生活,但是在生活中仍然保留了一些蓝牙技术的应用,例如蓝牙耳机就是其中一个例子,蓝牙是一种短距离无线通信模块,目前可以分为三种类型,分别为数据传输和音频模块以及蓝牙加数据2合1的一种模块,手机中的蓝牙都是设计完成的。而市场上真正需要自己应用的是一种半成品的蓝牙模块,可以通过串口调试功能以及AT指令设置蓝牙模块的功能,根据自己的需求设置,无线通讯就需要有发射端和接收端,蓝牙模块是可以实现传输模块的功能指令,一端作为主机一端作为从机,这样就可以看出是可以实现无限传输功能的,但是用过蓝牙的用户都知道蓝牙传输速度慢,且蓝牙传输的速度与距离是有非常大的关系的,并且蓝牙传输的距离受到了很大的限制,所以在稍微长一点距离的传输时,蓝牙几乎无法实现,所以根据本设计的需求蓝牙虽然能够满足,但是并不是优先选择的点。采用M超再生高频接收模块,M这种模块是应用于较短距离通信传输的一种模块。由于其是高频模块,所以在传输速度上并不慢,而且这种模块是专门应用于这种遥控开关接收以及家庭防盗产品之类的设计当中,所以本设计无线遥控门铃也属于家庭短距离无线通信的一种,所以对于本设计的应用其实是有很好的契合性。其工作电压在5伏左右,接收频率在.92MHz或者是MHz。其工作电压在5伏的时候要与电源的电压保持一致,并且由于是高频电路,所以要做好电源滤波,不然会产生一些干扰,这种模块需要天线作为交流的工具,所以天线对于模块的影响非常的大,需要选择比较合适的天线,而且天线的位置也对模块的接收有影响,所以在设计的过程中需要考虑天线能够露出,还要考虑不能使用屏蔽信号的材料。综上所述,蓝牙模块在使用的时候收到了很大的限制,而M高频接收模块是专门用于这种短距离通讯的专业模块,所以在功能上肯定是要比蓝牙模块强很多,所以综合考虑还是选择使用M高频接收模块作为系统无线传输模块。在上述已经确定了无线传输模块用M高频接收模块。这种模块的使用并不是单一的需要有发送编码和接收解码的模块进行配合使用,这样才能识别发送的码和接收的码是否匹配,并且才能正常做出反应。通过查阅相应的资料,确定了M这种模块编码器,常用的选择是用单片机或者是对应的编码解码模块芯片。所以以下分析单片机和编码解码模块芯片之间的优缺点确定本设计选择哪一种使用单片机作为系统的编码解码器,单片机是具有编程能力的,可以通过编程实现单片机的一些功能,其中就包括编码和解码,M发射和接受模块需要相应的发射编码和接收解码,利用单片机编程对发射端的信号进行编码发射,然后通过单片机对于接收端的信号进行解码,然后识别是否是这个发射端发送的信号,再次做出选择确定是否将门铃驱动。但是就需要使用单片机进行编程,而且单片机的价格比较贵,这样一来需要使用两个单片机,在性价比上,单片机是不如芯片的。而且在开发的难度上也比专用的解码芯片或者是编码芯片要难很多,所以不考虑使用单片机。
(2)使用专门的编码解码芯片。在查阅相应资料的时候查阅到了配合M高频接收模块使用的接码或者是编码芯片,例如,编码芯片可以使用SC编码芯片,解码芯片可以使用SC解码芯片。通过芯片进行电路的简单搭建,就可以实现编码和解码的功能,在硬件上即可解决这些问题,不需要在像单片机既要解决硬件还要解决软件上的问题,在开发的难度以及性价比上都要优于单片机这种选择,所以综上考虑结果已经显而易见。
所以综上可以看出,专用的SC和SC芯片更加适合于M模块的解码和编码功能的实现,所以无线遥控门铃系统的编码解码器使用SC和SC芯片。
2.2.2供电电源的选型
电子设备是离不开电能的,在生活中所有的电器都需要供电,但是有所不
一般家用电是V,在供配电系统中从发电厂输出电能大约是35~KV,在经过总降压变电所将发电厂输出的电压降至6~10KV,通过高压输送电路送至变电所,经过车间变电所降至V~V,为普通用户供电。在生活中有很多地方需要的电压并不是V或者V,这就需要通过降压来为其提供电压,降压就要涉及到整流和滤波,要根据系统需要的电能要求,进行电路的设计,但是这种要求很高,一般除非是是直接供电V,其他的需要电源模块才能实现供电,在使用中都需要对交流电进行整流和稳压才能够使用。
现如今有可充电的锂离子电池,它的容量也比较高并且是其他干电池的2倍左右,并且在漏电方面,锂离子电池做的更加的突出。它的应用现如今十分的广泛,在许多的电子设备上都有用到它,在价格方面也比干电池要贵上一些,但是它是无毒的对环境没有那么大的污染。它的工作原理主要是在正负极间的来回往返的运动,在电池工作的时候它的正极带正电的Li+跑到负极,充电时相反。它的缺点也有很多,比如说它的价钱就比较贵,并不能让所有设备都可以使用的上,在日后技术日益成熟,应用也会更加广泛。在它的保存上对温度要求20摄氏度并且可以放上比较长的时间。最终考虑到设计所有的工作模块电压都不是很高,所以决定使用可充电锂电池作为设计的供电电源。GY-是一款远距离测温模块,该模块在测量时可保持极高的精度和高达1m的无接触测温,同时在体积上,该模块在的体积十分小巧,可以很便捷的安装在各种大小设备中,现在普遍测温枪中都是采用了该模块。同时该模块可以在节能模式下,减小电流的消耗,可以延长小型电子设备的待机时间。在IO口上,该模块可以采用I2C通讯,可以极大的节约单片机的IO资源。
18B20是现在常用的环境温度测量元件,不仅仅是因为其测量的精准度更是因为18B20在数据输出上输出的为数字信号。也正因如此,使18B20在测量温度时很少出现误差。在数据传输上,18B20可以通过一根数据线即可实现与单片机之间的双向数据交流,在传输数据时以串行输出9至12位数字量,通过转化即可得出每一时刻的温度。18B20倍运用于冷冻库、空调等各种测量环境温度设备中。选用DS18B20温度传感器作为系统的温度检测模块,这是一种数字温度传感器,也就是其输出就是数字类型,不需要再经过模拟量转化为数字量的模块作为中介才能读取,数据使用起来较为方便,不占用系统内存。且其体积小,抗干扰能力强,价格低,在很多环境中都有所应用。而且能针对不同的场合改变其外观形状,例如正常的测温可以是裸露的外观,在进行液体测温的时候,可以用金属管将其包裹,保证其与水的接触而不导电。在其他的环境中也有不同的封装设计。其主要的读取是单总线式的,只要按照其设定的时序就可以完成对数据的读取,读取时间也非常的短。而且在单总线上可以挂接多个温度传感器,按照特定的读取方式就可以读取多路温度,在日常设计中是非常好的一种选择。选用PT热电偶作为系统温度模块,热电偶是一种金属与金属之间的转换,将金属测得的温度转化为电信号的一种模块。且具有特定的表格可以查询到特定数据对应的温度,而其温度有具体的计算公式,可以进行转换。一般PT温度传感器需要与变送器两部分组合使用,其PT作为传感器,变送器则作为信号转换器的功能。PT是一种运用在工业现场的温度传感器,拥有非常广泛的测量空间,可以从负的℃到正的℃。因为其主要应用在工业现场,所以其价格也较为昂贵,根据其精密度以及金属的不同,其价格也有相应的变化。在日常生活中很少见到用其来测量温度。
综上所述,DS18B20是更加贴合日常生活的一种温度传感器,所以通过比较DS18B20是更加适合本设计的选择,所以设计选择作为系统温度传感器。
2.2.3测距模块的选型
HY-SRF05超声波模块主要通过发送一定的方波,当方波碰到障碍物时会被反弹回来,此时HY-SRF05超声波模块再次接受返还回来的方波信号,而方波在此段时间内所通过的路程即是模块到前方障碍物的距离。因此在精度上该模块可达到3MM,是现在常用超声波模块中精度较为突出的一款测距模块。
GP2Y0A21YK0F红外测距模块采用了三角测量的方式,该模式下测量的数值不会因为材料、温度、时间等外界因素的改变而发生改变,该模块的有效距离为20至CM。GP2Y0A21YK0F红外测距模块在输出时输出的数据为模拟量,所以当单片机与GP2Y0A21YK0F红外测距模块在进行使用时需要在两者之间增加模数转换电路,否则单片机无法直接进行数据的读取。
本设计采用超声波模块作为避障模块,超声波传感器采用的是HC-SR04,这是使用非常普遍的超声波模块超声波,作为声波的一种,是通过声音的传播速度以及时间计算声波与障碍物之间的距离,这种计算非常的简单,除此之外,超声波的方向性好,所以常被作为定向检测的传感器,例如测算传感器与液面的距离,在很多的地方都有所应用,安防、测距、小车防撞等的应用,本设计需要检测传感器与障碍物之间的距离就很适合,但是测算的距离是超声波与障碍物之间距离的两倍,所以需要进行相应的计算处理。
利用红外传感器作为系统避障模块,红外传感器的工作原理是利用红外辐射,然后根据辐射返回信号确定被辐射情况的特征,红外传感器有两种类型,分别是光子探测器和热敏感探测器,光子探测器主要是针对检测光信号变化,当光信号变化的时候会转换成电信号,电信号可以被单片机接收并处理,第二种是热敏感探测,热敏感是利用物体的热量的检测方式,红外传感器可以接收到辐射物体的热量信息,转化为电信号,本设计需要的就是光探测类型的传感器,但是由于太阳光和夹杂红外光的光线对这种红外传感器的干扰太大,所以设计不选择红外传感器作为检测模块。综上分析可知,超声波的检测更有优势,所以设计采用超声波传感器。设计加水加料需要通过驱动进行控制,而水泵等需要利用电机驱动进行控制,这是因为电机的运行电流比较大,不能直接和控制器连接,需要通过电机驱动作为中介,这样通过控制器控制电机驱动,然后利用电机驱动控制电机,本设计采用的电机驱动型号是ln,这是驱动电机的常用驱动器,同时该驱动器有一个好处是可以有输出端口给单片机进行供电,这样省去了单片机的外部供电问题,所以对于本设计来说,ln的选择是性价比非常高的一种。
采用继电器控制,继电器是一种通电线圈的吸合与断开实现继电器的工作,而本设计需要控制加水和加料的开关,与电机驱动相比较虽然没有速度的控制,但是只需要开断即可,所以继电器是更好的选择。
综上所述,本设计选择继电器作为设计的开关模块更有实际的意义。所以选
ESPWIFI模块是一款专门运用于小型设备、物联网等方面的一款低功耗的科技产品。ESPWIFI模块可通过强大的无线局域网的搭建向服务器传送数据,以及接受服务器发送过来的数据。同时它还具备32位RISC处理器,CPU时钟速度最高可达MHz不仅如此ESP可以抵抗任何的恶劣环境下维持正常工作。在使用不仅支持单片机通过串口想ESP传输操作指令,同时可直接将ESP与电脑串口模块相连接,通过电脑直接对ESP进行相关指令的操作。NRF24L02模块是一款内部自带USB转TTL功能的WIFI模块,在使用时可直接将其插在电脑上对其进行操作,也可以通过相应的引脚连接至单片机中进行通讯。NRF24L02模块内了2.4GHz的ISM频段,可专门为模块处于低功耗下进行工作。同时在功能上支持全双工模式以及提供了windows驱动以及linux内核自带驱动,有利于开发者在使用单片机开发系统的使用。
时钟模块的选择也是本设计的一个主要重点之一,因为定时器的选择跟时间脱不了干系,必须要选择适合的模块充当定时器的功能,我们目前使用比较多的有时钟模块和单片机内部定时器的选择,外接使用模块的选择比较多,可以选择比较常用的ds型的即时芯片,或者是选择其他型号的,但是其功能基本一致,只是处理的方法不一样,而与之有对比性的是单片机内部定时器的定时,从上述对于单片机的选择是采用了51单片机,51单片机内部具有自带的定时器,可以通过定时器设置定时的时间,但时间到时也会有产生与时钟模块相应的效果,但其两者的差别还是较为明显的。单片机内部定时,在平常的程序当中是使用比较多的,例如延时函数或者是简单的定时函数,都是需要使用到单片机内部自带的定时器计数模块,这种单片机自带的定时器对于要求不高的场所还是非常适用的,可以基本上可以满足定时的要求,但是如果在要求比较高的场合,也会出现一些非常大的缺点,比如其最大的缺点就是断电之后无法保存当前的数据,也就是说一旦断电,前面计数全部被清空,再次上电需要从零开始重新计时,这样可能会造成一些不必要的麻烦,对于本设计来说,单片机的定时器以及机器多功能用途,如果出现断电的情况,则会出现时间紊乱,定时不准造成了本设计的设计失败,所以对于本设计来说,采用单片机内部定时器是一个非常不好的选择。
DS时钟模块采用d型即时芯片,通过刚才的发现,单片机内部定时器的最大缺点就是断电之后会丢失,而ds型时钟芯片优点就在于其断电之后不会丢失数据。这样即便在断电之后,仍然可以再重新上电时记录时间,除此之外,因为其是专门的计时芯片及计时的精度肯定是要高于单片机内部只带了定时器的,所以,这就是计时芯片的好处,还有就是价格便宜,数据处理方面也比较简单,不需要像单片机那样写函数,并且要计算定时的时间是否准确,此模块只需要根据相应的寄存器地址写入对应的时间即可完成,时间计时非常方便,除此之外它可以记录年、月、日、时、分、秒等等数据,可以精确到每一秒钟,这是本设计定时器的一个重要的点。综合以上考虑可以发现采用专用的时钟芯片,可以很好的解决精度以及时间数据丢失的问题,所以方案2采用ds型时钟模块是最好的选择。选用单片机内部定时器作为系统时钟模块,通过上述对系统控制器的选择,可以知道本设计选用了STC89C51单片机作为系统控制器。单片机内部具有两个定时器,分别为T0和T1,这两个定时器有两个8位的专用寄存器组成。在程序中可以设定其初值,以及其定时的时间根据系统晶振计算一秒钟需要设定的程序,通过不停的自加运算可以,模拟系统时钟的功能,再通过系统定义变量,分别对应时分秒,以及年月日等数据,构成一个由单片机定时器的系统时钟,虽然这种方法也可以实现,但是其程序设计较为复杂,需要有精准的计算才可以完成时间的控制,否则时间将会有误差,产生累积误差造成的时间会越来越不准确,所以在时间设计上是非常复杂的,而且单片机内部定时器计时,如果出现断电,则无法继续保存数据。上电之后,时间会重新初始化,系统则会出现很多错误,所以选用单片机内部定时器不是很好的选择。
选用DS时钟模块作为系统的时钟模块,该时钟模块是由美国一家公司设计,专门用作时间计时的时钟芯片,可以对年、月、日、时、分、秒进行精准的计时,以及具有闰年补偿的功能,是专用的时钟模块,还有其具有低功耗的特点,可以利用纽扣电池对其进行供电,一块纽扣电池可以保证其数年的正常工作,就在于其具有涓细电流的供电特点,虽然是专用的时钟芯片,但是其价格低廉,使用方便,可以搭建串行的时电路进行创新数据传输,而且由于其低功耗的特点,即使系统断电,其数据依然可以通过电池保存,再次上电的时候,时钟依然还是会在后台继续运行,所以即便断电之后,再上电其还是能够正常工作,所以在很多的应用当中,是非常好的选择。
通过上述的分析,采用专用的时钟模块可以减少很多的麻烦,而且时钟具有断电保存的能力,更加适合设计的需求,所以本设计选用作为系统时钟模块。
光电传感器是一种以红外线原理的检测装置,红外传感器是通过模块自身发出红外线,如果在发出的过程中遇到物体遮挡,模块的电路会有电平信号的变化,该电平信号会标志模块的状态,光电传感器需要配合光电码盘一起使用,在车轮转动的过程中,码盘上会有一系列的遮挡物和孔,此时红外传感器会不断的产生电平变化,通过统计这个电平变化的速率,即可反应汽车的速度。霍尔传感器使用的霍尔原理,及遇到磁性物体即可产生电平信号的变化,其原理是在车轮上固定一个磁性物体,在汽车的运动过程中会出现磁性物体和传感器不断的接触,没接触一次就会产生一次电平信号的变化,通过单片机统计电平信号的变化,就可以反应车辆行驶的速度。
通过上述的分析,两种传感器都可以完成汽车速度的检测,但是红外传感器的受影响程度会比霍尔传感器要大,所以设计考虑选择霍尔传感器更加的适合。
2.2.4按键模块的选择
矩阵按键模块是对独立按键的矩形排列组合的形式组成的,为了可以减少对单片机上引脚的使用,使其可以达到对单片机引脚的使用率最大化,也代表着可以单片机的资源利用的最大化。避免浪费和多使用其他的外设模块。增加其他等不同的功能呢,虽然进行了矩形排列的方法,但的操作,也依然很简单,仅需要进行段选和位选就可以来调用其矩阵键盘中的按键,这样不仅减少了单片机上的I/O口的使用,还简便了操作的难度,使其可以更大限度的减少了单片机的内部资源和外部引脚的占用,更大程度的释放了其单片机,可以使其单片机可以做更多其他的事情,同时,应该了解到对于按键的操作时,应该对其进行延时和消抖,防止按键的抖动对实验的影响。所以此次实验采用矩阵键盘。独立键盘是由一个个的按键所组成的,这样的按键对于简单的程序的使用时,会有着更加方便的操作,但对于复杂的程序来所的话就会太过于麻烦和繁琐,那是需要一个一个的定义其按键的,不同按键的不同定义不同的变量,不利于对程序的编写,在对于键盘的判定时,所采用的是高低电平来确定其功能是否运行。但由于此实验所使用的按键较多,故未使用独立键盘,而是采用的矩阵按键。综上独立按键模块更具有优势,所以本系统采用。显示模块在本设计中主要,是提供辅助的作用,因为通过按键输入设定的时间可能设置的不准确,所以需要通过液晶显示设置的时间,给人以直观的感受,知道当前时间设计的多少,常用的显示模块有数码管或者是液晶屏,两者各有特点,根据显示内容的多少可以选择其中之一。LCD2液晶显示模块是一款字符型的液晶显示屏幕,采用了若干个5*7的点阵字符位组成,从而来实现对字符、数字等的显示,每个点阵字符都可进行显示一位字符单位,使其可以准确的显示出其所需要的字符、符号和数字等相关信息,并且可以采用对比度可以进行调整。使其显示度的不同,从而显示的效果也将不同。且还具备着清屏、字符闪烁等多种控制的命令,使其让其功能可以更加多样化。它更是以低功耗、体积小、显示的内容丰富和超薄轻巧的特点使其让大多数认识到了这款
TFT彩屏,正如其所说是一款可以显示其彩色的字符、数字和符号等功能的显示模块,它是由荧光管、玻璃基板和液晶材料等构成的,现已经逐渐使用在手机彩屏上了,如果能显示的颜色越多,那么就代表着它能够显示更加复杂的图像,使其画面感的层次可以更加丰富。且TFT液晶显示模块也是一款显示分辨率很高的一款显示模块,不但而且它的反应时间也是比较快的,约为80ms的速度,这样可以减少延迟的是时间避免有误差的感觉产生,使其有误差的出现,同时,其可视角也可以达到度的程度,让其可以有着更好的可视性。但由于性价比没有LCD2的性价比高,所以未选用此模块。数码管是比较常用的模块之一,经常用来作为数字时钟显示,但其显示的内容较为简单,只有8段数码管,只能显示数字,即便可以显示一些英文字母,也是不很标准的。针对本设计的定时时间来说,其显示上可以完成,但是在相对体积相同的情况下,即显示的内容完全是不足以和液晶屏进行匹敌的,所以对于本设计,首先不考虑使用数码管进行显示。晶屏是现在比较常用的一种显示器件,且显示的内容更加多,显示的更加清楚,所以也得到广泛的采用,在相同的体积下,液晶屏可以显示数字,字母以及中文等等,但是数码管的显示较为单一,在这一点上,液晶屏的功能是要胜于数码管的,在体积上,相同大小的体积,液晶屏显示的数据药比数码管更加多,而且数码管的控制并不比液晶屏要简单多少,所以本设计还是优先考虑使用液晶屏作为显示模块。ISD是ISD公司基于单片机系列生产的语言播放装置,在该装置内可永久存储录音装置,并通过喇叭进行播放,整体构造简单。但同时具备了语音播放完美,断点语音保护以及抗干扰能力强的众多优点,在使用它时需将音频信号存储在EEPROM中,即在存储音频信息过大时,需另外的存储芯片帮助其存储音频信息。蜂鸣器的种类可分为为无源和有源,在日常生活中常用的为有源蜂鸣器。无源蜂鸣器需要对其进行一定的脉冲信号才能进行发声,但也可根据脉冲信号的长短发出不同的声音;而有源蜂鸣器只需进行供电便可直接发出声响。蜂鸣器的声音响亮,同时电路简单,因为蜂鸣器一般的电压为1.5V,所以在搭建无源蜂鸣器电路时可使用2K电阻与其串联,再将一段其直接与单片机相连,通常使用低电平管脚进行相连,通过单片机的I/O口直接控制发声时间的长短。所以在本次设计中选择蜂鸣器只作为提醒装置。蜂鸣器的使用节约了单片机的内部资源,降低技术难度,同时相对语音提示装置更加节省成本。
综上所述,蜂鸣器模块的作用更加的直接,所以设计选择作为设计模块。
2.2.5显示屏幕的选型
LCD是目前使用非常广泛的一款字符型液晶屏,来源广,使用简单,拥有*64个字符,接口也可以根据实际设计过程不同情况进行选择不同的方式,如果使用的接口数量足够可以使用四线或者是八线IO口直接连接;如果数量不够也可以选择2线或者3线的串行接口,非常的方便,市场上价格便宜,如果没有特殊的要求,这款显示屏是非常适合使用的,在编程的时,有很多的指令可以选择,这样文字呈现的方式就可以多种多样,而且有很多的资料和案例可以参考,非常方便。TFT液晶显示屏LCD*是一款彩色屏幕它的分辨率为*,驱动芯片是ST,彩色TFTLCD65K色。在网上的它的资源也都是开源的,并且有很多资料可以参考。它的写入方式是通过SPI通信函数来完成的,如果要显示想要的内容可以通过取模软件,来提取写入数据,并且也很方便。在对其配之过程中对管脚的高低电平进行配置进行使能。综上所述,两个屏幕各有特点,TFT彩屏的功能更加强大,但是课题需要的显示内容不是很多,知识一点汉字即可,所以最终选择LCD液晶屏作为显示的模块。
3硬件系统的设计
3.1单片机最小系统的设计
从上图中可以清晰看出该单片机共有40引脚其中第1至第8位P1口引脚,其引脚内部本身带有上拉电阻且具有驱动极强的不同数量的TTL电路的8位准双向I/O端口,在使用时可直接进行使用,无需像P0口外加上拉电阻。
第10至第18引脚为P3口引脚,该引脚全部具有第二功能,其中P3.0为RXD,即串口输入端RXD,同时与TXD构成单片机的程序写入端口;P3.1为TXD,串行输出端TXD,同时与RXD构成单片机的程序写入端口;P3.2为INT0,外部中断0输入端,该引脚在受电平刺激时可进入中断,执行中断程序。P3.3为INT1,外部中断1输入端,该引脚功能与INT0相同;P3.4为T0,可对外部传输的高低电平信号进行采集,实现计数功能。右侧第32至第39为P0口,其内部为8位漏极开关型双向I/O端口。可搭载8路TTL负载电路[6],同时是单片机系统总线低八位数据输出端,在使用时也可以作为通用I/O口使用,但如果作为通用I/O口使用必须焊接10K的上拉电阻,以保证管脚在使用的电压稳定。
在51单片机最小系统中,晶振对于单片机程序运行起非常重要的,晶振的两个管脚分别与单片机的第18和19管脚连接,与MCU内部构成皮尔斯振荡器。同时晶振也决定单片机的机器周期和指令周期的时间。如图3.2所示,是单片机电路在单片机电路中有主控制芯片,电容,电阻以及晶振等部分组成,在单片机的五脚和六脚分别接了是单片机的时钟电路,这是一个外接的8兆的晶振,以及两个20皮法的电容,单片机的正常工作离不开时钟电路,因为大单片机内部工作需要通过时序进行运作,如果单片机没有提供时钟,程序在执行的过程中会发生紊乱,造成电路不能正常工作,这是非常危险的,虽然在stm32单片机内部集成了时钟电路,但是外部的时钟电路可以帮助单片机更好的运行,除此之外单片机的复位电路也是一个重要的保证,因为在单片机运行的过程中,可能会出现外部因素,造成程序不能正常执行,所以此时需要通过复位按键将程序复位,单片机程序从头开始执行,可以保证单片机的正常运行,不至于断电造成某种损失,对于单片机的供电端口便不多,阐述单片机的正常运行离不开电源的提供,所以需要保证单片机正常运行,必须给单片机最小系统提供电源。图3.1是单片机的最小系统,单片机最小系统包括三个部分,分别是芯片、时钟电路、复位电路,有这三个部分,即可以保证单片机组成最小系统电路,复位电路主要是和单片机的9号引脚连接,在该引脚出现两个周期以上的高电平时,单片机会认为这是复位指令,复位的意思及程序从头开始执行,主要是针对单片机在运行过程中出现问题时复位,可以保证单片机回到原位,而不耽误整个系统的运行。
时钟系统是由振荡器产生的外部电路,主要是由晶振和电容组成的时钟电路,分别与单片机的18引脚和19引脚连接,作为外部单独输入引脚,单片机的四十引脚和二十引脚是其供电引脚,51单片机的供电电压都是以4-5.5V的范围电压为主要供电电压,剩下的单片机有32个IO输入输出引脚,可以作为输入输出功能,分别与系统外部的时钟模块、显示模块,、温度传感器和水泵等外部模块进行连接,作为其控制输出输入指令的接口。如图3.3是无线遥控门铃的单片机最小系统图。图中介绍了,51单片机芯片以及其组成最小系统的电路构成。STC89C51单片机一共有40个引脚本设计采用的是直插型封装的dip40。图中芯片的40引脚和20引脚分别是电源的正极供电引脚和负极供电引脚,这两个引脚保证了电源的正常供电芯片,芯片得以正常工作。芯片的18引脚和19引脚连接了一个12M的晶振和两个30pf的电容,这个部分的电路为单片机最小系统的时钟电路,时钟电路是组成单片机最小系统的两大电路之一,是非常重要的一个部分,单片机内部工作是需要有相应的时序的,所以单片机能否正常工作,需要依靠时钟电路提供相应的时间,如果没有这一部分单片机的程序没有办法正常执行,也无法实现对应的功能。最小系统的另一大电路则是系统的复位电路,复位电路与9引脚连接的RES,Reset按键是保证系统在运行的时候,如果出现了某些情况,系统不能正常工作,或者是由于外界的某些干扰造成程序突然情况下非正常性工作,此时就需要通过复位按键对整个系统进行复位,让程序从头开始执,保证了硬件不会由于强行断电而损坏或者程序混乱,导致功能性的损坏。图3.1是Arduino核心板原理图,本设计采用的是ArduinoUNO最小系统图中可以看出该系统体积非常小,适合于比较小的控制系统,在图中有,最下方是一个小的供电端口,这是可以使用老式的手机充电器对其进行供电,此时要注意其最大输入电压不能超过9伏,否则会对整个系统板造成损坏。
该核心板具有复位功能,复位是reset按键,Reset是系统的复位按键,复位按键主要是针对当系统程序正在运行的时候出现了某些异常情况,导致系统程序不能正常运行,即程序跑飞的情况,这些情况可能是外部水滴湿度的干扰,或者是手部静电或者是其他造成的一些原因是程序不能正常工作,此时我们需要通过此按键将程序复位,程序会从头开始执行,保证了硬件以及软件的功能性,该模块采用的是ATMEGA单片机,采用外部晶振模块,晶振是单片机运行的时钟部分,单片机内部运行都是有相应的时序的,如果不提供时钟,则内部时序运行紊乱,程序也不能正常运行,所以晶振对于单片机的运行也是非常重要的。
单片机系统的程序调试与下载十分简单,只需要通过USB即可以实现这些功能,单片机的接口简单也使得最小系统的功能性得到了最佳的应用,使用也非常的广泛,所以选择这款单片机最小系统也是从其体积,功能性价比等等方面进行考虑。如图3.4是无线遥控门铃的发射电路图,图中18引脚和9号引脚是芯片的供电引脚,图中可以看出电池的正极连接了S1按键的,另一端接着18号引脚VCC,电源的负极连接4个4×10K的电阻以及发射模块的GND和TE一端。右上方的发射模块是概要的画出了发射模块M的三个引脚分别为ATAD维VCC和GND,VCC和GND是电源引脚,ATAD则是信号发射引脚,信号发射引脚与SC的out引脚连接,通过SC,实现对于数据发送时对数据的编码,但按键S1按下的时候,电源接通此时发射模块得到了SC的编码之后,可以将该数据发送出去。门铃接收电路图,分为接收模块引脚电路图和SC芯片电路图。接收模块只画了其相应的接收引脚,分别为VCC、GND以及DATA。VCC和GND是接收模块的电源引脚,DATA为其数据引脚,两个数据引脚并联之后,连接到了SC的DIN端,D3作为输出引脚连接了一个三极管,并且将的集电极与单片机的P25号引脚进行连接,但接收到数据之后,SC开始解码分析数据是否是发送模块发送过来的,然后通过三极管的开关作用将信号传输到单片机的P25引脚,利用单片机进行处理分析是否需要启动门铃。图3.6是无线遥控门铃的门铃电路图,该电路图比较简单,通过P27引脚输出电平信号经过放大之后控制喇叭发声,这是因为单片机IO口输出的电流较小,无法驱动喇叭这样的大功率器件,所以需要通过三极管进行放大,放大之后其声音更加响亮,并且通过P27引脚输出的信号,可以控制门铃发出音乐,使其声音更加的悦耳。图3.7是无线遥控门铃的供电电路,该电路比较简单,是直接通过电池进行供电的,电池连接之后会有正极和负极,电池的正极和负极分别连接了发射端的芯片。而接收端则没有采用电池进行供电,因为接收端是处于室内,利用电池供电则显得有些浪费,所以采用了5伏的电源直接供电,5伏电源可以采用充电宝或者是家用的直流插头进行整流之后,都可以实现对接收模块的供电,在供电端有一个开关,可以实现对于供电接收模块的开断,方便了对其进行控制。该电路中DS18B20有三个引脚,1号引脚和3号引脚分别是传感器的供电引脚,分别连接VCC和GND,即电源的正极端和负极端,2号引脚为传感器的数字数据输出端,由于该传感器是依靠单总线传输数据的模块,所以需要连接一个上拉电阻,才能够保证其数据传输的稳定性,也即2号引脚与单片机引脚连接的中间连接了一个4.7K的上拉电阻,其电路连接较为简单,而且本设计没有采用多个传感器挂接总线,所以不需要判断总线上是哪一个温度传感器反馈的数据,仅仅一个传感器电路,处理起来比较简单。
3.2时钟电路设计
DS的引脚图如图3.3所示,图中该芯片一共有8个引脚,其1号引脚与8号引脚。都是VCC供电引脚,从图中可以看出,8号引脚为VCC1,与电池进行连接,VCC2与VCC进行连接。这是因为该芯片具有外部电源供电的能力,主要是为了保持主系统断电之后数据不丢失的效果。所以vcc1主要是与电池连接,vcc2与主系统的电源进行连接,其主要供电方式取决于两者之间的电压大小,在两个电源都供电的情况下,会判断VCC1端的电压与vcc2端的电压大小,选择电压大的一端的电源作为供电。2号引脚与3号引脚分别是震荡源电路接口,该震荡源连接了一个32.k赫兹的晶振。RST为复位和片选端,当该引脚为高电平时,则启动数据传输。RST端口还可以作为逻辑控制,允许地址和命令传输。SCLK为时钟控制引脚,只有当该引脚为低电平时,才能将RST端设置为高电平,IO端是和单片机口进行连接的,具有输入输出的能力。2是烟雾传感器的实物图从图中看出其模块功能结构是比较简单的。图中银色的凸起是烟雾检测的部分,当如烟雾出现的时候,该部分会检测烟雾的状态,烟雾的状态会引起内部信号的变化,通过右下方的排针可以将信号传输到单片机当中。图中一共有4个排针引脚。其中两个排阵引角是对应的供电端口,分别是vcc和gnd,这是每个模块都不可缺少的,剩下的两个分别是数字端口输出和模拟端口输出,数字端口输出及逻辑量的变化,只有高电平或者是低电平的状态,即当有烟雾的时候会突出低电平,此时,单片机会接收到此电瓶变化信号会认为此时出现了烟雾就会报警,如果在检测的时候出现的是高电平,则认为此时一切正常,没有出现烟雾。而模拟量输出及将烟雾的浓度对应成数值,数值越大,则烟雾浓度越大,可以设定数值的阈值,如果烟雾浓度大于该阈值则会报警,可以看出使用模拟输出功能更加的准确可靠,所以在使用的时候尽量使用模拟输出功能,但是模拟输出,需要使用AD对模拟值进行转换,这就需要利用到AD模块,由于STM32单片机是自带模拟输入AD转换功能的,所以此模块的AD信息采取也不会非常的困难。
3.3超声波电路
如图所示,是超声波电路,超声波电路比较简单,是只有4个端口进行与单片机之间的连接。在图中除了超声波模块的电源端口外,还有两个接口分别是超声波的发送端口和接收端口LCD显示电路原理此次设计使用的LCD2显示屏为5X7点阵图形的液晶,同时该LCD显示屏的容量为每行8个字,共计两行16个字。LCD2的管脚共计16脚,其中
第3管脚为VEE接口,是液晶显示器字符显示强度调整端,通过调节10K电位器的阻值可调节显示屏亮度。
第4脚RS,这个引脚是选择寄存器是读取数据还是写数据,如果RS为1时寄存器开始读取数据,当RS为0时要往显示屏里写数据。
第7至14管脚为八位双向并行数据传输引脚,传输速度相对于串行输入速度更快。
第6脚是E端口,为2的使能端口,当该引脚端由输入高电平变成输入低电平时,LCD2内部执行数据引脚即P0引脚传输过来的指令,将读取的数据在显示屏幕上进行显示;
第5脚RW引脚,这个引脚的主要的功能是控制2数据是读取还是写数据,当这个引脚为1的时候,就会去读取单片机传送上来的数据,当这个引脚是低电平时就对2内部进行写数据并且有显示地址,如果是忙信号无法对2寄存器的任何单位组进行任何的读写数据操作,即关闭LCD2读写功能;当RS为高电平RW为低电平时可写入数据;
在LCD2的电路中它的D0~D7脚对应单片机的引脚口八个管教,它的作用是输出数据至液晶显示屏中。1管脚VSS接地,第2管脚接10K电位器用来控制显示屏字符的亮度,RW直接接地。此次设计使用的LCD2显示屏为5X7点阵图形的液晶,同时该LCD显示屏的容量为每行8个字,共计两行16个字。LCD2的管脚共计16脚,其中第4脚为RS接口,高电平时选择数据寄存器进行读写,而当该引脚为低电平时选择指令寄存器进行读写;第7至14管脚为八位双向并行数据传输引脚,传输速度相对于串行输入速度更快。第6脚是E端口,当该引脚端由输入高电平变成输入低电平时,LCD2内部执行数据引脚即P0引脚传输过来的指令,在电路中LCD2的D0~D7八个端口分别与单片机的P0的P0.0~P0.7相连接,作为数据传输口,E即使能端连接单片机P2.2管脚,RS即寄存器选择连接单片机的P2.7管脚。第3管脚为VEE接口,是液晶显示器字符显示强度调整端,通过调节10K电位器的阻值可调节显示屏亮度[9]。此次设计使用的LCD2显示屏为5X7点阵图形的液晶,同时该LCD显示屏的容量为每行8个字,共计两行16个字。LCD2的管脚共计16脚,其中第4脚为RS接口,高电平时选择数据寄存器进行读写,而当该引脚为低电平时选择指令寄存器进行读写;第7至14管脚为八位双向并行数据传输引脚,传输速度相对于串行输入速度更快。第6脚是E端口,当该引脚端由输入高电平变成输入低电平时,LCD2内部执行数据引脚即P0引脚传输过来的指令,将读取的数据在显示屏幕上进行显示;第5脚为RW引脚,是读写信号的控住端口。当RS为读忙信号时,无法对2寄存器的任何单位组进行任何的读写数据操作,即关闭LCD2读写功能;当RS是高电平RW是低电平时才可通过八位数据串口进行数据写入[8]。
在电路中LCD2的D0~D7八个端口分别与单片机的P0的P0.0~P0.7相连接,作为数据传输口,E即使能端连接单片机P2.2管脚,RS即寄存器选择连接单片机的P2.7管脚。第3管脚为VEE接口,是液晶显示器字符显示强度调整端,通过调节10K电位器的阻值可调节显示屏亮度[9]。第1管脚VSS接地,第2管脚接10K电位器用来控制显示屏字符的亮度,RW连接的单片机的P2.6。图3.4是LCD显示屏的电路图,这是一款带中文字库的液晶显示屏,具有×64为的显示空间。拥有多种并行和串行连接方式,根据自身的需求可以选择,本设计选用的就是并行传输。该显示屏显示的内容非常广泛,可以显示汉字字符,ASCII码以及英文字符等等,利用该模块可以与单片机之间进行连接,由单片机输出控制指令,确定屏幕需要显示的内容,该显示屏是低功耗、低电压的一种屏幕。该屏幕的控制也比较简单,从图中可以看出,除了电源供电引脚之外,以及8位的并行传输数据引脚外,剩下了三位控制引脚,分别控制数据的写入读取等等,根据相应的控制指令可以确定数据显示的位置,显示的类型等等。
3.4蜂鸣器电路设计
如图3.4是蜂鸣器报警电路,蜂鸣器有多种类型的表现,设计采用的是有源蜂鸣器,所以只需要有电平的变化就可以发出声音,所以只需要通过单片机的IO口控制就可以实现报警电路的工作。报警电路与单片机的P31口连接与P31口连接2.2K的电阻再连接一个三极管,当三极管处于饱和状态下,就可以当作开关使用,就可以通过单片机IO口控制蜂鸣器的开关,蜂鸣器一端与VCC连接一端与三极管连接,当单片机发出指令的时候,三极管导通此时蜂鸣器两端的电源,接通蜂鸣器就可以发出声音,这样就可以保证蜂鸣器电路的控制作用,蜂鸣器主要在雨滴或者是光照以及压力值超标的时候,才会报警,用于提醒人们注意某些非正常情况发生,所以蜂鸣器在本设计中的作用是非常重要的。图3.2是语音识别模块的电路图,该电路图比较简单,这两个电源供电端口之外,是通过两个通讯端口与单片机进行通讯。该模块上有一个咪头可以作为语音的输入,将语音转换为电信号,电信号会在语音识别模块中进行转换,确定语音的内容,将内容通过电信号的方式传输到单片机中,由单片机确定,应当以何种指令反馈,这就是一种语音模块与单片机的通讯功能的实现。语音模块的输出电路如图3.3所示,从该图可以看出该传感器有两个端口是与扩音喇叭进行结合,有两个供电端口以及三个控制端口,通过控制这些端口可以实现该语音存储的语音数据通过喇叭输出。该芯片的控制非常简单,就是语音的存储,利用单片机控制指令,将其按照需要的语音进行输出即可。阵键盘是一种组合式的按键,通过4*4的按键组合在一起,四行四列,每一个行列对应一个单片机的IO口,通过设置对应的键值,就可以判断是哪个按键被按下了,所以在设计上是比较节约单片机IO口的占用,除此之外就是控制比较方便,4*4一共有十六个按键,十六个按键可以直接输入数据,操作相对简单。如图3.10是光敏模块的电路图,实际是一种利用模数转换模块采集光敏值的电路,光敏是一种能够根据光线的强度,改变自身电阻值的一种电子器件,所以在光敏电阻两端加上电压,通过光敏阻值的变化,就会产生电压的变化,此时利用ADC就可以采集光敏电阻两端的电压,光敏电阻的电压是反应光强的重要标志,ADC是双通道的AD采集模块,本设计采用的是通道零,经过单片机对片选端和时钟端口的控制,就可以利用5和6管脚采集数据,对数据进行进一步的加工计算,就可以得到光线强度数据。
4软件系统的设计
4.1编程语言及软件的选择
本设计超速监控系统的设计采用的是51单片机,51单片机有两种编程方法,分别是利用汇编语言和C语言函数编程,C语言函数编程使用较多,而开发语言是高级语言C语言,C函数编程方法,使用灵活,移植性较高,所以在使用该C函数编程的时候使用的是C语言,C语言是编程的技术语言具有自己的独特优点,所以想要使用51单片机使用C语言进行编程是非常的方便的,在使用C语言编程的时候,有两款软件可以选择,根据自身的一些特点,所以本设计选用KEIL软件进行编程,该软件具有在线编译下载程序以及debug调试功能,对于程序的书写编译以及调试都可以实现,且相对来讲其软件更加稳定是适合于本设计的,所以本设计选择C语言编程使用KEIL软件实现编程的功能。本设计是超速监控系统的设计。其主要的控制核心是stm32单片机,在使用到单片机的时候,就必然离不开编程本设计使用的编程软件是keil,keil软件是针对单片机而设计的一款专门的编程软件,除了keil外,还有IAR编程软件。两者各有特色,但是相对来讲,keil的运行更加的稳定,且其具有在线调试功能是非常重要的。根据个人的习惯以及软件的稳定性,在系统编程软件的选择时,还是倾向于使用keil软件。在使用keil软件时需要新建程序文件,建立stm32单片机的工程模板,这是stm32编程的第1个步骤,在工程模板里包括各种头文件以及单片机正常运行的各种文件,本设计是利用单片机的库函数进行开发的,所以在进行库函数开发时,需要调用到很多的文件,通过调用函数实现对应的功能,库函数的开发大大缩小了编程的工作量,不像寄存器编程需要知道每一个寄存器的功能,这样能操作起来非常的复杂,所以本设计采用了库函数的编程方法。本设计超速监控系统的设计采用的是stm32单片机,STM32单片机有两种编程方法,分别是利用寄存器书写编程语言,另外一种是使用库函数进行编程。一般使用比较多的是使用库函数进行,变成该变成方法,使用灵活,一致性较高,所以在使用该库函数编程的时候使用的是C语言,C语言是编程的技术语言具有自己的独特优点,所以想要使用STM32单片机就必须使用C语言进行编程,这是无可挑选的,在使用C语言编程的时候,有两款软件可以选择,根据自身的一些特点,所以本设计选用KEIL软件进行编程,该软件具有在线编译下载程序以及debug调试功能,对于程序的书写编译以及调试都可以实现,且相对来讲其软件更加稳定是适合于本设计的,所以本设计选择C语言编程使用KEIL软件实现编程的功能。Keil4是一种编程软件,在9年的时候就发布出来,是一种灵活的窗口编程管理系统,该软件开发人员可以在软件中新建项目、新建文档等等,通过在窗口编写对应的单片机程序。对编写的程序进行编译、调试等等,实现必要的功能,可以使开发人员了解到程序中的错误和报警等等。该软件可以支持C语言高级语言编程,以及汇编语言编程,因为单片机的编程语言并不统一,在早期都是使用汇编语言进行单片机程序编写,后来高级语言C语言的普及,使得现在使用较多的都是利用C语言进行编程。第2是该软件还具有与硬件进行联合debug调试功能,只要该芯片支持debug调试,就可以设置断点通过调试发现程序中的一些问题,是非常好的开发助手。本设计需要编程实现硬件的功能,所以设计选用了Keil4作为系统编程软件,通过软件与硬件的结合,很方便的实现了硬件的功能。系统原理图绘制软件分析本设计选用的AltiumDesigner作为设计原理图的绘制软件,该软件的前身及protel软件。是由Altium公司设计了一种电子产品开发系统,可以在微软平台运行,该软件功能强大,可以绘制原理图、PCB图,还可以电路仿真等等。通过该软件可以绘制本设计的原理图,通过对原理图的绘制可以清楚的知道电路的组成,同时也方便了电路的焊接工作。在使用该软件的时候,需要有相应的原理图库,通过在原理图库中选择电阻、电容以及各式的芯片,可以将其拖入到绘制画面。通过导线进行连接,以及相应的电源端口进行连接,该软件还具有原理图的DRC检查功能。可以判断原理图绘制的正确与否,是非常好用的一种电路图绘制软件。所示,是无线遥控门铃软件仿真的截图,该软件是proteus,这是一款专门应用于电路仿真的软件,除了电路仿真之外,还可以进行一些单片机及一些模块的仿真,但是里面单面机的类型较少,一般只可利用AT89C51单片机进行一些较简单的仿真测试,该软件主要还是利用其独特的性能进行电路测试,通过软件仿真可以知道自己设计的电路方案可不可行,所以这款软件也给设计人员带来了非常大的便捷性。中与其他相类似的电子设计软件都是相通的,新建文件加入文件以及选择相应的器件或者是模拟工具等等,该软件与Altiumdesigner软件非常的相似,该软件也可以进行原理图的绘制,但是由于其功能的多样性也注定了其无法对一项技能进行精确的设计,所以这款软件也仅仅用于一些电路之类的仿真,对于本设计来讲,使用该软件进行仿真,在很大方面有局限性,由于没有无线传输模块,所以只能测试通过单片机接收到信号之后是否能触发蜂鸣器电路,即能否实现门铃的功能,但是这也大大的减少了在硬件设计时的工作量,解决了一部分的电路问题,只需要解决无线通讯的问题,通过测试门铃部分的电路以及程序都是可行的,所以该设计还是有非常大的可行性的。
4.2超声波工作流程图
如图4.3所示是超声波模块工作流程图。在流程图中介绍了超声波模块的具体工作流程,首先在上电之后,程序开始初始化操作。初始化完成之后开始发送起始信号,此时超声波开始发送声波同时定时器开始计时,在计时的过程中。检测超声波模块是否接收到了返回的信号。
如果接收到了信号则停止计时,计算计时的时间,通过时间带入到距离计算算法当中,计算超声波传感器,声波探测的距离。如果没有检测到返回信号,则一段时间之后开始重新计时进行下一次的探测。
本设计是基于超声波模块的智能避障机器人。超声波模块探测障碍物的本质就是通过声波探测前方是否有障碍物,通过识别障碍物与声波之间的距离,判断与障碍物之间是否到达了适合的转向位置。使得机器人在运行的时候能够成功的避开障碍物,防止机器人撞向障碍物,导致机器人损毁。所以超声波模块的功能也就是计算距离,通过距离作为唯一判断依据,实现机器人的避障功能。如图4.3所示是超声波模块工作流程图。在流程图中介绍了超声波模块的具体工作流程,首先在上电之后,程序开始初始化操作。初始化完成之后开始发送起始信号,此时超声波开始发送声波同时定时器开始计时,在计时的过程中。检测超声波模块是否接收到了返回的信号。如果接收到了信号则停止计时,计算计时的时间,通过时间带入到距离计算算法当中,计算超声波传感器,声波探测的距离。如果没有检测到返回信号,则一段时间之后开始重新计时进行下一次的探测。图4.1所示是GSM模块的工作流程图,图中可以看出,从开始到结束,中间进行了很多的步骤,在使用单片机进行编程的时候,进入主函数前,需要进行初始化,进入初始化之后,开始进入主函数的大循环当中。那可以保证外部检测模块的初始状态不会对检测产生干扰,在初始化完成之后开始检测数据,如果通过手机端或者是检测模块发生信号可以检测数据的变化。比如家中烟雾传感器检测到的数据超标,可以将该信号反馈给单片机,通过待面机报警,然后发送短信给家里的主人。数据超标的情况,如果数据不超标,重新初始化传感器再次检测数据,如果出现超标则进行上述步骤,否则则进入无限循环检测当中。直到程序结束相同的如果发送信息端人发送信息给单片机也可以控制家中电器的开关状态,此时就需要利用继电器来控制家用电器的开关,是可以双向联通。从上述的介绍当中可以知道,本设计采用了烟雾传感器检测模块,检测家中是否发生火灾,或者是某些情况造成的烟雾,通过烟雾检测传感器可以检测家中的状态,以GSM模块发送给主人,让人知道家中的情况。而烟雾传感器模块有数字输出功能和模拟输出功能,为了保证传感器检测数据的有效性和真实性,所以需要通过模拟输入端口输入数值,通过检测数值以确定家中烟雾浓度,如果浓度超标,基本上可以确定是发生了火灾或者是某些地方烟雾传入家中,此时可以报警给主人而模拟输入输出功能。是需要有AD进行采样,然后转成二进制数据检测,在使用AD时。前面已经讲述了单片机内部是自带了AD转换功能,所以在程序开始时需要调用单片机的AD,首先读取时钟电平。读取失重电瓶之后,开始读取数据总线的电平,通过这些数据的读取可以将数据的高位和低位进行取出,通过一位组合数据将这些高位和低位组合在一起,并且经过一系列的处理将数据保存下来,此时通过单片机内部转换,可以将二进制数据转化为10进制,通过与设定的数值进行比较确定家中的烟雾传感器数值情况,如果确定数据的准确性,就可以结束一次采集,再进行下一次采集。如下为设计的程序流程图
4.3时钟子流程设计
如图4.2是系统时钟子程序流程图,系统开始执行的时候,需要将其他模块初始化,初始化完成之后等待判断是否有设置命令,如果有时间设置命令,则进行写操作,如果没有则继续等待时间,时间设置命令写,操作完成之后会按照新的时间执行,也就是时间已经校准过,此时需要读取当前的时间数据,将读取的数据通过数据端口输送到单片机中。此外还会判断有无时间的调整命令,如果没有时间调整,命令会再次下一次的读取当前数据输送到单片机中,如果有则进行写操作重新按照新的时间继续执行,会重复上述单片机读取时钟数据的操作。
五实物设计
5.1硬件的测试分析
硬件的测试也就是用户非功能性的设计其一,在对用户功能使用的稳定性以及安全性都讲到了,如何进行硬件测试,首先在电路设计完成之后,我们需要检查是否有漏焊或者是虚焊或者是连焊的情况出现,这些情况都会造成电路的不能正常工作或者是电路的损坏,所以当电路设计完成之后,先不着急上电,使用万用表检测电路各个部分的通断性,并通过眼睛对电路板的焊点进行观察,是否有虚焊的情况或者是漏焊的情况,以及是否有出现连焊的情况,如果通过肉眼观察电路板的焊点都是正常的,并且通过万用表检测,各个部分连通性都是合格的,此时就可以通过上电测试了。上电测试的时候,需要用手去触摸一下各个芯片是否发热,如果出现发热的情况要及时断电,再次检查电路的正负极是否出现了问题,如果没有出现发热的情况,则可以进行下一步测试,通过矩阵按键设置一定的时间,当时间到时时观察蜂鸣器是否发出了报警的声音,同时通过手机的定时器进行定时与产品的定时器进行比对,观察产品的时间走时与手机的走时是否一致,如果出现误差,需要进行程序的调整,如果程序正确,则时间一致,再者就是进行设计的老化实验。
我们需要通电长时间的,观察设计是否能正常工作,并且其可工作时间的设定是否符合设计的预期,再者就是断电之后重新上电观察时间是否能正常走时,如果不能正常走时,则需要进行电池的更换或者是程序的更改,如果能正常进行,则产品设计合格,通过以上的测试,我设计的硬件都完成了预定的功能,且功能性合理,运行稳定,没有出现虚焊漏焊或者是连焊的情况,设计的走时是精准的,并且在断电再次上电之后,时间依然能够精准的计时,并且在到达预定的时间可以发出报警。硬件的检测主要包括两个方面分别是对电路的检测以及对整体功能的检测,电路的检测主要是对电路板的检测,首先通过肉眼观察电路是否出现了一些焊点问题,这些焊点问题主要包括虚焊漏焊或者是焊点连在一起等情况,这些情况都会造成功能的无法实现,或者是对电路板造成损伤,无法实现功能,所以这些焊点都是可以通过肉眼进行观察的,假如肉眼无法观察,可以通过放大镜等设备对电路的每一个焊点进行观察,在焊接完成之后,需要用洗发水对电路进行洗刷,防止出现一些不必要的细小设备或者是焊锡等。造成电路的短路,在焊点没有问题的时候,可以通过万用表对电路进行检查确定每条路都是通路,不会出现短路。在检查完电路之后开始测试硬件的功能,只需要通过开关控制系统打开此时通过继电器连接电器功能确定是否可以通过手机端对这些电器进行开关控制,以及当检测模块检测到烟雾浓度超过预定值的时候,手机端会接收到短信进行提醒,通过这些设置和检测之后确定系统的可行性。硬件的检测主要包括两个方面分别是对电路的检测以及对整体功能的检测,电路的检测主要是对电路板的检测,首先通过肉眼观察电路是否出现了一些焊点问题,这些焊点问题主要包括虚焊漏焊或者是焊点连在一起等情况,这些情况都会造成功能的无法实现,或者是对电路板造成损伤,无法实现功能,所以这些焊点都是可以通过肉眼进行观察的,假如肉眼无法观察,可以通过放大镜等设备对电路的每一个焊点进行观察,在焊接完成之后,需要用洗板水对电路进行洗刷,防止出现一些不必要的细小设备或者是焊锡等。造成电路的短路,在焊点没有问题的时候,可以通过万用表对电路进行检查确定每条路都是通路,不会出现短路。硬件的设计是非常重要的,硬件设计好了可以保证,软件程序的正常工作也有助于当软件出现错误的时候可以排除掉硬件的问题,在调试的时候可以节约大量的时间,所以硬件的设计是设计本小车的前提,在本设计中需要设计电源,超声波模块、控制器、继电器和水位传感器等等部分的连接,除了模块之间的连线比较简单之外,还需要通过电烙铁焊接一些必要的电路。接的时候需要注意很多的问题在焊接的过程中首先摆放好元器件的位置,合理的摆放位置可以节省很多的焊接时间,否则布线过乱,一是焊接上会比较困难,二是在焊接的过程中可能会出现短路的情况,所以必须要解决这个问题,再者就是焊接完成之后需要用万用表检测是否有短路的情况,因为一旦短路就会损坏元器件,这是非常危险的,除此之外还需要检查是否有虚焊漏焊的情况,这样的情况会造成设计工作不正常,检查没有问题之后就可以上电测试。
总结
从论文题目下来到设计完成这个过程是非常值得回忆的,虽然这个设计已经不是那么的新颖,但是通过自己的努力已经完成了设计,在设计的过程中我学习到了很多的知识,首先是电路,各个模块都有自己的工作电路,需要将各个部分的电路组合起来,实现其功能,在这就是对于单片机的编程,单片机是一门很重要的技术,在编程的过程中不仅仅考验的是C语言知识,还有很多的单片机结构以及霍尔检测模块的使用等等,还有就是焊接的能力,焊接也是非常考验一个人的技术,不仅仅是焊接好的问题,每一个焊点都能很好是基础的,更重要的是需要将各个元器件都排列合理,这样可以节约很多的时间,这样就不用乱接线,这是一个经验的总结,焊接多了就会有经验了,这个是我还需要多多学习的,最终是完成了设计的内容,虽然还有很多的不合理之处,但是功能都已经实现了,如果以后有时间就再将这个设计完善一下,使得其更加具有智能化的功能。
致谢
从论文完成的这一刻,我的内心是欣喜的,从论文的选题、收集资料、定初稿,在反复修改,最终历经一年的时间,我的论文终于如期定稿完成了。回首大学四年,光阴似箭,日月如梭,帮助过我的老师同学朋友仍历历在目,在这篇论文的完成过程中我最该感谢的就是他们。首先,我要感谢的是我论文指导老师,他学识渊博,给了我很多专业指导,拥有严谨的科学态度,对待论文指导工作一丝不苟,竭尽所能帮助我解决写论文过程中的遇到难题,给了很多宝贵的意见,使我茅塞顿开,有“听君一席话胜读十年书”的意味。导师给我的论文指出的每一个问题,指出的每一个思路,都使我的论文质量得到很大的提升。导师指导了很多毕业论文,工作量巨大,但他仍然不厌其烦的给出最优的意见,我心生感激。其次,我要感谢大学四年来教授过我的没一位老师,他们都将自己的知识锦囊传授给我们每一位同学,对同学们的问题知无不言,言无不尽,更是秉承育人的理念,无私奉献,对我们谆谆教导,循循善诱。最后我要感谢帮助我的同学和朋友们,在收集资料的过程中,他们对我提供了很大的帮助,对于我的请求也从未拒绝过,他们的无私的付出让我感受到校园的温暖。我们一起互相帮助,相互激励,度过一段美好难忘的时光,这会成为我最美好的回忆,最后感谢学校为我们提供良好的学习平台,让优秀的我们在此相遇,彼此珍惜,共同进步。为我踏上新的旅程做了充分的准备。时光荏苒,一转眼大学四年过去了,拿在手里的几张薄纸,不只是对自己四年学业生涯承载,也是对这四年情感的寄托。虽然论文只需要一年就足以完成,但这其中的份量或重于泰山或轻如鸿毛。我要感谢的人太多,这四年里,传授我专业知识的老师,教我人情世故的朋友,他们引导我,教导我,帮助我。我学会了很多,也懂得了很多。这次写论文的过程中我迷茫过,焦虑过,最后还是坚定信心顺利的将它完成了。这是对我来说是一段成长的过程,它有艰难,有美好,亦是有惊喜的过程。其中,我由衷地感谢我的论文指导老师,当我在为写论文不知所措时,是导师给我提示论文的切入点,给我最专业的指导意见,帮助我修改的论文提出建设性意见,让我豁然开朗,根据导师的建议,修改论文直至定稿。在我们同一小组中,虽然论题不同,但最终目的都是相同的,我们各自为自己的论文奔波收集资料,却也经常一起讨论,相互给出意见,这样的小组模式对我们完成论文有很大帮助,我们也相互交流,相互学习。至此,我也非常感谢我的同学们,他们给我的帮助是无形且强有力的,使我有动力继续坚持热爱学习,热爱生活。中,我的父母和朋友也给我很大的支持与鼓励,感谢他们,他们是我的精神支柱,是我前进奋斗的动力。感谢他们教我做人,做事,为自己加油。敲完最后一个句号的时刻,我的论文终稿完成了,时间仿佛凝固了一般,一时不知是惊喜还是忧愁。白驹过隙,脑海中最先闪过的便是为论文繁忙的时刻,感叹到时间过得真快呀,不过一切都是值得的。想起那些充实的日子,我也是很享受那些努力拼搏的时光,喜欢那个坚持不懈的自己。师最是让我敬仰和钦佩,我十分感谢导师对我的指导,没有导师的悉心教导我的论文也不可能如此顺利的完成,导师对我的论文提出的问题一针见血,个个都切中要害。因此,我据此加以修改调整,才最终完成一篇优秀的论文。得到了导师的认可,这才松了一口气。在修改论文时,我也曾痛苦不堪,觉得太难了,但是又没办法,强行逼着自己写,但效率实在不高,我的同学们看到我如此便鼓励我坚持到底,我们一起砥砺前行,克服毕业路上论文这个拦路虎,将它变成垫脚石,成为我门更上一层楼的阶梯。没有我的同学们,我也难以独自完成论文,在这我非常感激他们,感谢学校让我遇到了你们,和你们成为同学,成为并肩作战的伙伴。
最后,我想说感谢学校里面所有教职工人员,你们使这个校园有希望,你们为学校默默无闻的付出,都在莘莘学子的眼里,在他们的心里,我们会时刻铭记你们的教诲,不忘初心,砥砺前行。经过一年的时间一字一句的敲打,我的论文终于完成了,这篇论文对我来说不仅仅是我的心血,更是凝聚着众多人的心血。没有我的指导老师,没有我的同学朋友们,这篇论文就无法完成,就是不全的。最终以我的名义完成了它,我是幸运的,也是应得的。虽然付出了很多,但是它值得我这么拼,值得我们一起努力。本篇论文得以完成我的导师功不可没,我特别感谢他,感谢他成为我的导师,感谢他给予我的支持与帮助,感谢他呕心沥血,感谢他认真负责,这篇论文是我的心血也是他的心血,多少个日夜,我打扰他向他请教问题,导师都从不抱怨,都认真心细给我讲解,直到我搞懂问题,交出令人满意的答案,达到我的预期效果。导师就是我写论文路上指明灯,照亮我前行的路,披荆斩棘到达终点。我也真心的感谢的我同学们,我们曾一起度过写论文之路,这是一条团队之路,每个人都必不可少,都从不缺席。不论何时,都有一个共同的目标,都一起朝着这个目标进步,肩并肩不放弃不弃,我们都是最棒的!最好的!相信自己,下一个路口我们仍一起加油努力!最后,我在此再次感谢我的导师和我的同学们,感谢我们有缘相遇,感谢我们在彼此的人生中留下印记,那将是我不可磨灭的最精彩最难忘的回忆!也谢谢我的家人朋友们,你们是我坚强的后盾!