版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
声明声明本人郑重声明:所呈交的设计是本人在指导教师的指导下进行的研究工作及取得研究结果。设计在引用他人已经发表或撰写的研究成果时,已经作了明确的标识;除此之外,设计中不包括其他人已经发表或撰写的研究成果,均为独立完成。其他同志对本设计所做的任何贡献均已在设计中做了明确的说明并表达了谢意。学生签名:___________年月日导师签名:___________年月日河北理工大学信息学院 摘要 xiii3系统的硬件设计3.1显示模块方案一:LCD1602液晶显示屏LCD1602是一种字符型液晶显示屏,可显示2行16列的字符。它的优势在于成本低廉、功耗小、驱动简单。LCD模块只需低压单电源供电,与单片机的接口也很简单,只需通过几根引脚就可实现完整的通信和控制。此外,LCD1602的显示内容清晰、响应速度快。它的缺点主要是显示内容单一、清晰度一般。图2.6LCD1602实物图LCD1602作为一款经典的字符液晶显示模块,广泛应用于各类嵌入式系统。它采用了简单的并行接口,只需通过8根数据线和3根控制线就能与单片机连接。LCD1602内置了标准的HD44780控制器芯片,支持英文、数字和部分符号的显示。该模块提供了丰富的指令集,可以很方便地控制显示位置、清屏、光标移动等操作。在可靠性方面,LCD1602使用了CMOS低功耗芯片,并采用了扭曲行场效应(TN)液晶材料,拥有较好的温度特性。此外,它对比度高、视角宽,即使在一定视角范围也能保持良好的可读性。总的来说,LCD1602由于其低功耗、低成本、简单可靠等优势,成为了嵌入式系统中最常用的显示模块之一。方案二:OLED显示屏OLED是一种新型的自发光显示器件,在分辨率、对比度、视角等方面优于LCD。相比LCD1602,OLED能显示丰富多彩的图形和动画,观赏体验好。但是,OLED也存在一些不足,如成本昂贵、功耗大、驱动电路复杂等,并且对环境温度和湿度的要求较高。图2.7OLED实物图OLED(有机发光二极管)显示屏凭借其自发光特性,在显示效果上拥有诸多优势。首先,OLED拥有卓越的对比度表现,黑色部分完全不发光,因此画面层次分明。其次,OLED具备超广的视角,无论从何角度观看,图像都保持清晰不失真。再者,OLED显示器模块体积纤薄,重量极轻,非常适合便携式设备。值得一提的是,OLED显示屏响应速度飞快,画面几乎没有残影和拖尾。除此之外,OLED的低温性能也非常出色,在严寒环境下依然能正常工作。然而,OLED也存在一些缺陷,如较高的功耗、有机材料的老化问题、对潮湿环境敏感等,这些都是其发展过程中亟待解决的问题。通过对比,本设计最终选择了方案一LCD1602液晶显示屏。这是因为本系统无需显示复杂图形,只需显示文本即可,而LCD1602在这方面就完全够用,且成本低廉。相比之下,OLED虽然显示效果好,但是对本系统的实际需求就有些超前和浪费了。3.2STC89C52RC单片机方案一:STC89C52RC单片机STC89C52RC是一款基于8051内核的传统单片机,具有很多优点。首先,它采用了成熟可靠的8051架构,稳定性好、二次开发难度低。其次,它拥有较高的性能,最高主频可达35MHz,对于本系统的要求已足够使用。再者,该单片机资源丰富,拥有8K字节的FLASH和256字节的RAM,可以较好地满足程序和数据存储的需求。另外,STC89C52RC的成本低廉,非常经济实惠。最后,该单片机的发展历史悠久,拥有庞大的用户群体和完善的资料库,有利于后续的维护和二次开发。图2.2STC89C52RC实物图STC89C52RC作为一款经典的8051单片机,其性能表现十分出色。它采用了高性能的8051内核,指令系统完整,可编程逻辑控制器(PLC)功能强大。此外,STC89C52RC拥有多种工作模式,可根据实际需求在性能和功耗之间进行权衡,使之能够适应不同的应用场景。该单片机还提供了丰富的中断源和IO口线,可满足多种外设的连接需求。在安全性方面,STC89C52RC内置了看门狗定时器和上电/掉电复位电路,能有效防止程序死机等异常情况。总的来说,STC89C52RC凭借其优秀的性价比,长期备受广大开发者的青睐。方案二:STM32F103单片机STM32F103属于新一代的32位ARMCortex-M3内核单片机,相较于8051架构有了长足的进步。它的最大优势是性能出众,主频高达72MHz,运算能力强劲。同时它拥有高达128K的FLASH和20K的SRAM资源,存储空间充裕。此外,STM32整合了丰富的外设接口,例如多个串口、CAN、USB、以太网等,可灵活扩展更多功能。然而,STM32的缺点是学习和开发难度较高,生态圈小,资料相对匮乏。此外,它的成本也远高于8051系列单片机。图3.1STC89C52RC实物图STM32F103作为ARMCortex-M3内核的代表产品,可谓是32位单片机领域的佼佼者。采用了ARM的新指令集架构,其指令执行效率大大提升。除了运算性能之外,STM32F103还拥有丰富的外围资源,如高达13路DMA通道、7个通用定时器等,能高效处理实时任务。在存储容量方面,STM32F103拥有多种型号可选,最大可达1MB的FLASH。此外,其集成了诸多通信接口,如UART、I2C、SPI、USB等,可广泛应用于工业控制等领域。值得一提的是,STM32全系列产品都采用了较高的工作电压,具有更好的抗干扰能力。总的来说,STM32F103凝聚了ARM先进的设计理念,是一款极具实力的高端单片机。通过权衡比较,本设计最终选择了STC89C52RC作为本系统的核心控制单片机。这是因为本系统的功能要求并不太复杂,STC89C52RC就完全可以胜任,而且它的低功耗、低成本、开发便捷等优势非常适合该项目。如图3.1所示,本系统的核心控制器是STC89C52RC单片机,它基于51单片机内核,具有低功耗、高速度、高集成度和低成本等优点,非常适合应用于简单的控制和数据处理任务。STC89C52RC是一款8位单片机,工作电压为5V,最高工作频率可达12MHz。它内置有8KB的闪存程序存储器和256字节的数据存储器RAM。I/O端口共有32个,分为4个8位端口,分别命名为P0、P1、P2和P3,这些I/O端口既可用作通用的输入输出端口,也可作为芯片内部特殊功能的引脚使用。该单片机配备了两个16位的timer/counter,分别是timer0和timer1,能够被配置为定时器或计数器使用,同时也可作为串行通信接口的波特率发生器。全双工的串行通信接口支持异步和同步两种工作模式,可与外部设备实现数据交换。中断控制系统较为完善,一共有6个中断源,包括外部中断0、外断1、timer0、timer1、串行口和复位中断。中断响应方式可设置为电平触发或边沿触发,并支持中断优先级控制。此外,STC89C52RC还内置了看门狗定时器,可用于监控程序运行状态,防止死循环等异常情况发生。一旦检测到异常,看门狗定时器会执行软件复位操作,从而恢复系统正常运行。作为本系统的核心控制芯片,STC89C52RC单片机集成了丰富的功能模块,性能指标均衡,成本低廉,非常适合应用于对功耗、速度、集成度和成本等都有一定要求的控制系统中。STC89C52RC单片机的工作流程如下:单片机通过P0口和P2口与LCD1602显示器连接,用于显示巡检小车的运行状态和检测数据;单片机通过P1口和P3口与各个传感器模块连接,用于接收和处理温度、烟雾、火焰、障碍物等检测信号;单片机通过P3口与L298N电机驱动模块连接,用于控制巡检小车的前进、后退、左转、右转等运动;最后,单片机通过P3口与声光报警模块连接,用于当检测到异常情况时,发出声光信号,提醒用户和工作人员进行处理。图3.1STC89C52RC单片机内部结构图3.2STC89C52RC单片机接线情况3.3DS18B20温度检测模块方案一:DS18B20温度传感器DS18B20是一款数字温度传感器,它的优点主要有:首先,精度高,测量误差可以控制在±0.5℃以内,完全能满足本系统的温度检测要求;其次,它采用了单总线通信方式,只需一根数据线便可与单片机连接,使得硬件电路连接简单;再者,DS18B20具有出色的抗干扰能力,即使工作在恶劣的环境中也能保证数据的可靠性;最后,该传感器功耗低、体积小,非常节省空间和能源。图2.4DS18B20实物图DS18B20作为一款先进的数字温度传感器,其性能表现十分出色。它采用了高精度的带隙参考电压源,经过了高度线性化处理,使其达到了±0.5℃的卓越精度。该传感器内置了温度传感元件和A/D转换电路,可直接输出12位的数字温度数据,免去了外部A/D转换电路,简化了系统设计。DS18B20还具备了单总线通信协议,只需一根数据线便可同时与多达64个传感器连接和通信,极大方便了系统集成。值得一提的是,该传感器采用了多项抗干扰技术,如散热口耦合、噪声滤波等,使其在恶劣环境下工作也能保持精确的测量性能。此外,DS18B20的工作电流仅为1mA,待机功耗低至1μA,大大延长了电池的使用寿命。方案二:AD590模拟温度传感器AD590是一种模拟温度传感器,它的优点在于响应速度快、线性度好、模拟输出方便后级电路处理。但是它也存在一些不足:首先,AD590只能输出模拟电压信号,需要引入模数转换电路才能与数字系统通信,增加了硬件复杂度;其次,该传感器的精度和抗干扰能力都比不上DS18B20;再者,AD590测量范围有限,只能测量0~150℃的温度。图2.5DS18B20实物图AD590作为一款经典的模拟温度传感器,也有不少优秀之处。该传感器采用了基于硅能带隙的测温原理,其电路结构简单,只需一个外部电阻即可工作。AD590具有极佳的线性度,输出电压与温度呈现近乎完美的线性关系,简化了后续的线性化处理。该传感器的工作电流约为1mA,功耗较低。但AD590相比DS18B20而言,还是存在一些不足,如测温精度一般、抗干扰能力较差、测量范围有限等,在某些苛刻的应用场合可能会力有未逮。具有种种考虑,本设计最终采用了方案一DS18B20作为温度检测模块。这是因为变电站环境恶劣,温度检测的可靠性和精度要求都很高,DS18B20能很好地满足这些要求。同时,它的低功耗、体积小巧等特点也很适合本系统。本系统温度检测模块采用的是DS18B20数字温度传感器,它是一款工作稳定、精度高、便于数字化读取的温度检测元件。DS18B20内置温度传感器和数字编码电路,能直接输出数字温度数据。其测温范围广泛,涵盖了-55°C到+125°C的范围,温度分辨率高达12位,可实现±0.5°C的测量精度。这对于对温度测量要求较高的应用来说,是非常优秀的性能表现。除了温度测量本身,DS18B20还具有单总线串行接口,支持多点并联方式连接。单根通信总线即可连接多达64个DS18B20传感器。这极大地简化了系统布线和接线要求。DS18B20内部集成有温度传感器本体、A/D转换器、存储器等功能模块。温度检测流程为:温度传感器检测当前温度并输出相应的模拟电压信号,经内部A/D转换器digitize后,温度数据和设备地址编码存储在存储器中。主控制器如STC89C52RC单片机通过单总线接口即可读取温度数值。该传感器采用单总线数字通信方式,无需模拟量A/D转换电路,接口电路简单,免去了常规模拟量输入方式所需的耦合电容、滤波电路等。温度数据直接为数字信号,抗干扰能力强。DS18B20的上电复位、温度转换和读取数据的时序也都由内部电路自动完成,使用方便,测量过程自动化程度高。此外,它的功耗极低,有效减轻了系统的能耗负担。DS18B20数字温度传感器作为本系统的温度检测模块,具有测量精度高、抗干扰能力强、使用方便、低功耗等诸多优点,是非常适合的选择。图3.3DS18B20内部结构图3.4DS18B20模块实际接线图3.4MQ-2烟雾检测模块MQ-2是一种廉价且广泛使用的烟雾及可燃气体检测模块,其工作原理是基于半导体气敏元件对特定气体分子的吸附和解吸过程。当空气中存在可燃气体时,气敏元件表面会发生化学反应,导致其电阻值发生变化。MQ-2模块通过测量气敏元件的电阻变化,并将其转化为相应的电压信号输出,从而检测到空气中可燃气体的浓度变化。MQ-2可检测的气体种类包括烟雾、液化石油气、甲烷、丁烷、丙烷、乙醇蒸气等。它具有灵敏度高、响应时间快等优点,但也存在一些缺陷,如对某些气体存在交叉灵敏性、受环境温湿度影响较大等。因此,在实际应用中需结合具体环境对MQ-2进行校准和调试,以提高检测精度。MQ-2模块的工作温度范围为-20℃~50℃,工作电压为5V直流电源,加热电路需要160mA的电流。模块有两个输出模式:模拟输出和数字输出。模拟输出引脚输出的是与气体浓度成正比的电压信号,一般在0~3.3V之间;数字输出引脚则根据设定的阈值输出高低电平,可直接用于控制报警装置。模块正面还有一个调节电位器,用于设置数字输出的阈值浓度。在实际应用中,为了提高检测的准确性和可靠性,MQ-2模块通常需要与单片机或其他控制器配合使用。单片机可以对模拟输出进行AD转换,并根据转换后的数字量对气体浓度进行计算和显示;同时也可以通过检测数字输出引脚的电平变化,从而触发相应的报警动作,如点亮LED指示灯、鸣响蜂鸣器等。此外,还需要对MQ-2进行预热一段时间(通常需要20秒以上),以使气敏元件达到工作状态,从而获得稳定可靠的检测结果。总之,MQ-2是一种性价比较高的气体检测模块,广泛应用于家用燃气泄漏报警器、工业环境监测、智能家居等领域。但同时也需要针对具体使用环境对其进行适当调试,以发挥其最佳检测性能。图3.5MQ-2烟雾检测模块实际接线图3.5火焰检测模块方案一:JC-GD2013烟雾传感器JC-GD2013是一款基于光学原理的烟雾传感器。它利用红外线发射管发出一束光线,当存在烟雾颗粒时,光线会被反射并被接收管接收,通过接收光强的变化来检测烟雾浓度。该传感器的优点是响应灵敏、探测距离远、价格低廉。但它也存在一些不足,例如对颗粒物的误判率较高,测量范围有限。图2.10JC-GD2013实物图JC-GD2013采用了先进的光学散射原理,能够高灵敏度地检测到烟雾中的微小颗粒物。它内置了一个红外发射二极管和一个光电二极管接收管,发射管发出的红外线束在遇到烟雾颗粒时会被反射和散射,散射光线被接收管接收并转化为电流信号。该传感器采用了高质量的窄带红外光源,极大提高了对烟雾粒子的选择性,有效降低了对尘埃等其他颗粒物的误判。同时,JC-GD2013内部采用了优化的光路折射设计,使其探测距离可达几米远。值得一提的是,该传感器集成了运算放大电路,输出为标准的模拟电压信号,易于后级系统读取和处理。方案二:MQ-2气体传感器MQ-2是基于半导体气敏原理的气体传感器,它能够检测烟雾、液化气、甲烷等多种可燃气体。该传感器的优点是种类检测范围广、响应快,而且具备长期稳定性。不过它的灵敏度较低,对一些气体的响应不太理想,并且受环境温湿度影响较大。图2.11MQ-2实物图MQ-2气体传感器采用了一种特殊的SnO2敏感材料,当空气中存在可燃性气体时,这种材料会发生显著的电导率变化。根据不同气体导致的电导率变化特征,MQ-2就能够识别和分辨出不同的可燃性气体。该传感器的灵敏度非常高,对液化气、甲烷、烟雾等气体的最低检测浓度可低至200ppm。MQ-2内部集成了一个小型加热环,使得敏感材料能够保持在最佳工作温度,从而获得良好的检测稳定性。此外,该传感器还具有快速响应的特点,对气体的反应时间通常在10秒以内。值得一提的是,MQ-2的寿命也非常长,在正常工作环境下可使用5-6年之久。通过全面对比,本设计最终采用了MQ-2气体传感器作为烟雾检测模块。尽管JC-GD2013对纯烟雾的检测更加专一灵敏,但变电站环境下可能存在多种气体泄露的情况,MQ-2能够检测更广泛的气体种类,更加适合本系统。此外,MQ-2半导体式设计也赋予了它良好的长期稳定性,可靠性更高。虽然MQ-2对环境要求较高,但通过精心设计电路和软件算法,这一点可以得到有效改善。火焰检测模块是一种基于红外光电二极管的先进传感器,它利用红外线对火焰的特殊吸收和发射特性来检测火焰的存在。这种传感器具有以下显著特点:(1)灵敏度高该传感器采用高灵敏度红外光电二极管作为探测器件,能够捕捉微小的火焰信号。它采用窄带滤波器来过滤非火焰光源的干扰,使检测特别灵敏准确。(2)响应迅速火焰传感器的响应时间通常在几十毫秒左右,能够快速发现火情并作出反应,提高火灾预防和控制的时效性。(3)抗干扰能力强传统的烟雾探测器容易受到灰尘、蒸汽等影响而误报警,而火焰传感器则具有良好的抗干扰能力,不会被一般环境扰动所影响。(4)监测范围广采用专用光学透镜设计,使传感器具有广角视野,能够覆盖较大范围,适合对工厂车间、仓库等开阔空间进行火灾监测。(5)安装灵活体积小巧,易于安装在天花板、墙壁等多种位置。安装位置灵活性强。该火焰传感器的工作原理主要分为两部分:·模拟量输出端:通过红外接收器接收火焰发出的红外辐射信号,经过滤波和放大电路处理后,输出一个与火焰强度成反比的模拟电压(0-3.3V)。可根据这一模拟量判断火焰大小,进行报警等级判断。·数字量输出端:同时还设有一个数字输出引脚,当火焰强度超过预设阈值时输出低电平,否则为高电平。可将其直接接入单片机中断引脚,触发相应的报警动作。通过电位计可以现场调节检测灵敏度和距离。综合运用上述两个输出端,可以实现对火情的精确检测与分级报警。与传统的烟雾探测器相比,火焰传感器无需取样,无运动部件,抗干扰性强,安装方便,是目前公认的最佳火灾探测手段之一。图3.6火焰检测模块实际接线图3.6HC-SR04超声波检测模块方案一:JSNSR04T超声波测距模块JSNSR04T是一款常见的超声波测距模块,它的工作原理是发射高频超声波,并测量声波被障碍物反射回来的时间,从而计算出障碍物的距离。该模块的优势在于测距范围广、精度高、抗干扰能力强。不过它的缺点是只能测量一个方向的距离,如需测量多个方向需要多个模块配合。图2.12JSNSR04T实物图JSNSR04T超声波测距模块采用了IO触发的工作方式,非常方便与单片机或其他MCU进行集成。该模块共有4个引脚,分别为VCC、Trig(发射触发)、Echo(反射信号输入)和GND。工作时,MCU通过拉高Trig引脚来触发JSNSR04T发射一束40KHz的超声波脉冲。该脉冲遇到障碍物会被反射回来,JSNSR04T接收到反射波并将Echo引脚电平拉高,MCU测量Echo的高电平时间就可以计算出距离值。JSNSR04T的最大有效测距范围为4米,测距精度可以达到3mm,远远超过其他测距方式。此外,该模块采用了自动校准电路和环境温漂补偿算法,抗干扰能力非常出色。方案二:HC-SR04超声波模块HC-SR04与JSNSR04T的工作原理类似,也是通过测量超声波传播时间来测距。但是该模块做了一些改进,它的发射角度增大到30度,能够测量一个范围内的距离。HC-SR04的最大测距范围可达4米,精度可以达到3mm,性能优于JSNSR04T。不过它的成本也相应提高。图2.13HC-SR04实物图HC-SR04可谓是JSNSR04T的升级版本,它将发射角度从直线束扩大到了30度的扇形区域。这使得HC-SR04不仅能测量单一方向上的距离,还能检测一定范围内存在的障碍物。在电路设计上,HC-SR04采用了类似的IO触发接口,与MCU的连接简单方便。不过,由于增加了扇形发射和接收电路,HC-SR04的制作工艺难度加大,因此成本也相应提高。但从功能来看,该模块无疑增强了对复杂环境的适应能力,可以为移动机器人等设备提供更完善的环境检测支持。此外,HC-SR04还针对盲区和干扰信号进行了一些优化,使其检测精度和抗干扰性能都有所提升。针对本系统的需求,本设计选择了HC-SR04超声波检测模块。这是因为变电站内部环境较为复杂,障碍物分布比较散乱,单一方向的测距已经不能满足要求,本设计需要在一定范围内检测障碍物的分布情况。HC-SR04的扩展探测角度可以很好地满足这一需求,从而保证巡检小车行进的安全性。虽然成本有所提高,但相比提升的检测能力而言,这是非常值得的。总的来说,每个模块的选型都是根据系统的实际需求、模块的性能参数、可靠性以及经济性等因素,进行综合权衡而做出的最优决策。只有合理的硬件选型,才能保证整个系统的高效稳定运行。本系统的障碍物检测模块采用的是HC-SR04超声波检测模块,它是一种基于超声波的非接触式距离测量传感器,能够精确检测障碍物的距离和位置。HC-SR04模块的工作原理是利用超声波的飞行时间原理来测量目标物体的距离。它内部集成了一个超声波发射电路和接收电路。工作时,模块首先通过触发引脚接收一个10μs的高电平脉冲信号,这会触发发射电路发射一个40kHz的超声波脉冲。这个超声波脉冲以声速在空气中传播,当遇到障碍物后就会被反射回来,被模块内部的接收电路检测到。接收到的反射脉冲会被模块转换为一个与障碍物距离成正比的高电平回响脉冲,输出到回响引脚。本设计只需测量这个高电平回响脉冲的宽度,就可以根据公式计算出实际的障碍物距离。公式为:d=2t×v其中,d是障碍物的距离,单位为cm;t是回响引脚的高电平脉冲的宽度,单位为us;v是超声波的传播速度,单位为cm/us,取值为0.034。图3.7超声波检测工作原理HC-SR04的工作电压为5V,工作电流约15mA,能够在0~70摄氏度的温度范围内稳定工作。除了触发和回响引脚,它还有VCC和GND两根引脚分别接正负电源。为了获得准确的测距结果,该模块采用了自动校准的方式,可以很好地消除温度、湿度等环境因素的影响,提高了测距精度和抗干扰能力。它的测距范围可以达到2cm~450cm,非常适合应用于各种需要检测障碍物位置的机器人和自动化系统中。在实际应用中,本设计只需将VCC接5V电源、GND接地,再把触发引脚与单片机的IO口相连。每次发送一个10μs的高脉冲至触发引脚,模块就会自动发射一次超声波并等待反射回响。当回响引脚输出一个高电平时,本设计用单片机的外部中断或定时器捕获这个高电平的持续时间,代入上面的公式就可以算出目标物体的距离了。图3.7给出了超声波测距的工作原理示意图。图3.8展示了HC-SR04模块在实际电路中的接线方式。通过该模块与单片机的无缝集成,本设计可以非常方便地在系统中实现对障碍物位置的检测和避障功能。图3.8HC-SR04超声波检测模块实际接线图3.7TCRT5000红外循迹模块本系统的循迹模块是TCRT5000红外循迹模块,它是一种基于红外发射和接收的循迹模块,具有灵敏度高、响应快、抗干扰强等特点,非常适用于检测黑白线条的位置和方向。TCRT5000红外循迹模块的工作原理是利用红外发射管发出的红外线照射在地面,根据地面颜色的不同反射率来判断线路。当照射到黑线时,由于黑色物体对红外线有很强的吸收能力,反射率很低;而当照射到白色区域时,反射率就会很高。模块内部的红外接收管能够检测到这些反射回来的红外线强弱,并转换成相应的电平输出。该模块的工作电压范围为3.3~5V,工作电流约为20mA,能够在-25℃~85℃的宽温度范围内稳定工作。它有一个模拟输出引脚,输出电压值(0~5V)与检测到的黑白线条反射率成反比关系。同时,它还有一个数字输出引脚,根据可调节的电位器设定一个阈值,当检测到的反射率低于阈值时输出低电平,反之则输出高电平。这个数字输出可以直接连接到单片机的中断引脚,用于触发单片机相应的中断服务程序。在实际应用中,TCRT5000会先通过红外发射管发射红外光线照射在待检测的黑白路面上。根据路面颜色的反射率不同,模块内部的红外接收管接收到的反射光强度也不同。较强的反射光会使模拟输出引脚输出较高的电压值,较弱的反射光则输出较低的电压值。这个模拟电压经过电阻分压电路和运算放大器的转换后,会变换到0~3.3V的范围,然后被单片机的模数转换器转换为数字量,用于确定巡检小车的运动方向。同时,根据预先设定的阈值,当模拟电压对应的反射率低于阈值时,数字输出引脚会输出低电平;反之则输出高电平。这个数字高低电平可以被单片机的外部中断引脚检测到,从而控制巡检小车的运动状态,比如在检测到黑线时停止或减速等。通过TCRT5000红外循迹模块的这些设计,能够高效、准确地检测出地面黑白线条的位置和方向变化,非常适合应用于各种需要精确导航的机器人或小车系统中。图3.9给出了该模块的实际接线示意图。图3.9TCRT5000红外循迹模块实际接线图3.8L298N电机驱动模块方案一:MX1508MX1508是一款集成了H桥电路的直流电机驱动模块,具有诸多出色的特性。首先,它能够实现电机的正反转和速度调节控制,满足本系统对风扇电机的控制需求。其次,MX1508驱动能力强,可以驱动功率较大的电机。此外,该模块接口简单,与单片机的连接较为方便。最后,MX1508的成本较低,性价比较高。实物图如下所示:图2.8MX1508实物图方案二:L298N直流电机驱动模块L298N是一款H桥驱动芯片模块,适合驱动直流减速电机。它的优点是驱动电流大,可提供高达2A的最大驱动电流,能够驱动体积和功率较大的电机。同时,L298N的供电电压范围广,可在5~46V之间工作。此外,它还集成了一些保护电路,能够应对过载、过热等情况。L298N模块的缺点是控制精度相对较低,无法实现精细的位置或速度控制。L298N双H桥驱动模块是一款性能卓越的直流电机驱动芯片。它采用了先进的单片双H桥驱动电路设计,可同时驱动两个直流电机,并能控制它们的旋转方向。L298N提供了逻辑电平和PWM两种控制模式,能够轻松实现电机的开关控制和速度调节。该芯片还内置了多种保护电路,包括过流、过热、逆向电流和功率集电极保护等,极大提高了系统的可靠性。此外,L298N模块板本身集成了多个散热孔,即使在高功率工作时也能良好散热。值得一提的是,该模块输出端采用了大功率三极管,使其具备了2A的驱动能力。总的来说,L298N芯片模块能为电机提供高效可靠的驱动支持,是驱动直流电机的首选之一。虽然L298N在控制精度方面的确略显不足,但对于本系统的巡检小车而言,只需要控制电机的启动、制动和方向就已足够,并不需要过于精细的位置控制。相比之下,L298N能提供足够的驱动能力,同时集成的保护电路也有利于提高系统的可靠性。因此,L298N更加匹配本系统的实际需求。对比两种方案后,本设计最终选择了L298N电机驱动模块。这是因为本系统采用的是直流减速电机,而非步进电机,L298N正是专为此类电机设计的驱动芯片。它能够满足本系统对电机驱动的所有要求,是最佳选择。图2.9L298N实物图本系统的驱动模块是L298N电机驱动模块,它是一种基于L298N芯片的双路H桥电机驱动模块,具有驱动能力强、效率高、抗干扰能力强等优点,非常适合驱动直流电机或步进电机。L298N芯片是意大利ST公司生产的一款双路H桥驱动芯片,广泛应用于各种需要驱动直流电机或步进电机的场合。它的工作电压范围为5~35V,能够驱动两路电机,每路最大持续工作电流为2A,峰值电流可达3A,能够满足大多数中小型电机的驱动需求。L298N芯片的工作温度范围为-25℃~130℃,具有优秀的抗干扰能力和热保护功能,即使在恶劣的工作环境下也能稳定可靠地工作。L298N电机驱动模块拥有丰富的引脚资源。它有两个使能引脚ENA和ENB,用于控制两路电机的启动和停止;四个输入引脚IN1、IN2、IN3、IN4,用于控制两路电机的正反转方向;四个输出引脚OUT1、OUT2、OUT3、OUT4,用于连接两路电机的正负极引线。此外,模块还集成了一个5V电压稳压器,通过5V输出引脚可以为单片机或其他模块提供5V工作电压;并提供了12V输入引脚,用于接入12V直流电源为电机提供工作电压;同时也有一个地线引脚GND,用于接地。在实际应用中,L298N电机驱动模块通过12V输入引脚接入12V直流电源,为连接到输出引脚的两路电机提供驱动电压;而单片机或控制器则通过5V输出引脚获得5V工作电压。当需要控制电机启动或停止时,单片机将高低电平信号输出到使能引脚ENA和ENB;当需要控制电机正反转时,单片机将不同的高低电平组合输出到输入引脚IN1~IN4。通过这种方式,L298N模块就可以根据单片机的指令,灵活控制连接到输出端的两路电机的启动、停止、正转和反转。由于L298N模块集成了完整的H桥驱动电路,大大简化了电机驱动的硬件设计,使得电路连接更加简单、可靠。同时其优秀的抗干扰能力和热保护功能,也确保了系统在恶劣环境下的稳定运行。因此,L298N模块非常适合应用于各种需要控制直流电机或步进电机的系统中,如机器人、自动化设备、仪器仪表等,是一款性能优秀、使用方便的电机驱动模块。图3.10L298N电机驱动模块实际接线图3.9声光报警模块本系统的报警模块是声光报警模块,它是一种基于蜂鸣器和LED灯的报警模块,具有声光效果明显、功耗低、寿命长等特点,适用于当检测到异常情况时,发出声光信号,提醒用户和工作人员进行处理。它的工作电压为3.3~5V,工作电流为10mA,工作温度为-40℃~85℃。它有一个输入引脚,用于接收单片机的高低电平信号,控制蜂鸣器和LED灯的开关;它有一个VCC引脚,用于接5V电源;它有一个GND引脚,用于接地。声光报警模块通过VCC引脚接5V电源,为蜂鸣器和LED灯提供工作电压;通过输入引脚接收单片机的高低电平信号,控制蜂鸣器和LED灯的开关;当输入引脚接收到高电平信号时,蜂鸣器和LED灯同时工作,发出声光信号;当输入引脚接收到低电平信号时,蜂鸣器和LED灯同时停止工作,停止声光信号。图3.11声光报警模块实际接线图3.10本章小结本章对智能巡检小车系统的硬件设计进行了重点介绍。系统的核心是STC89C52RC单片机,负责接收和处理来自各传感器的检测信号,并控制相应的执行模块工作。温度检测采用DS18B20数字温度传感器,检测精度高,通过单总线直接与单片机通信。烟雾检测使用MQ-2气敏传感器,可检测烟雾及可燃气体。火焰检测依赖红外光电二极管传感器,具有灵敏度高的优点。障碍物检测则由HC-SR04超声波测距模块完成,测距范围广、抗干扰能力强。小车的运动依赖TCRT5000红外循迹模块检测地面黑白线路的位置和方向。L298N双路H桥电机驱动模块控制小车的行进,LCD1602显示运行状态,声光报警模块发出异常报警信号。各硬件模块的工作原理、连线方式及在系统中的作用都有详细说明,可操作性强。毕业设计4系统的软件设计4系统的软件设计4.1软件介绍Keil4是一款针对51系列和ARM系列微控制器的集成开发环境(IDE),由德国Keil公司开发。它支持多种芯片架构和编程语言,提供了项目管理、代码编辑、编译、链接、调试等一体化功能,大大提高了嵌入式系统的开发效率。作为嵌入式开发领域的经典工具,Keil4主要具有以下特点:(1)芯片支持广泛Keil4支持诸多主流的51系列和ARM系列微控制器,覆盖了包括飞思卡尔、英特尔、Atmel、TI等多家芯片厂商的产品。无论是8位还是32位、是否集成特殊外设,开发人员都可以在Keil4上进行无缝开发。(2)开发环境集成Keil4将编辑器、编译器、链接器、调试器融为一体,为开发者提供了简单易用的集成式操作界面。项目文件的生成和管理、源代码的编辑和编译、目标代码的下载和调试等关键流程无需在多个工具间频繁切换,可在一个IDE窗口内高效完成,节省开发时间。(3)调试功能强大Keil4内置了功能强大的调试组件,支持下载代码、设置断点、单步执行、查看内存变量、跟踪代码执行等多种调试操作。其中的模拟器(Simulator)功能尤为出色,可在不需连接实际硬件的情况下,模拟执行ARM和8051程序,有助于程序逻辑的验证和BUG定位。(4)丰富的代码模板Keil4自带多个代码模板和库文件,包括针对芯片外设驱动的模板、协议栈模板、RTOS模板等,可以帮助开发者快速构建应用框架,实现常见的功能模块,减轻编码工作量。(5)支持多种语言Keil4支持多种编程语言,包括C、C++、Pascal和汇编语言。开发者可以根据项目需求和自身习惯,自由选择使用。不仅如此,Keil4还支持在同一个项目中混合使用不同语言编写的源文件。(6)丰富的文档支持Keil4提供了翔实的帮助文档和实例程序,可以有效帮助开发人员了解工具的功能使用,掌握目标芯片的编程细节,缩短学习周期。此外,还有专门的技术论坛,汇聚Keil工具专家及广大使用者分享的各种问题解决方案,是开发中遇到疑难时的重要参考资源。(7)良好的商业支持作为商业化的集成工具,Keil4不仅软件版本持续更新迭代,还提供了完善的培训和客户支持服务。用户可根据需求,订购不同层级的授权版本,从而享有相应的优惠政策和技术支持。无论是从开发效率、调试手段的多样性,还是功能的全面性以及文档支持的详尽度,Keil4都展现出了强大的实力和无法比拟的独特优势。正是这些显著且出色的特性,使得Keil4不仅赢得了业界的高度评价,还受到了学术界的广泛认可。在众多嵌入式开发工具中,它已经成为了培养新一代嵌入式技术人才和开发前沿嵌入式产品时的首选工具。随着互联网、物联网、人工智能等前沿科技的快速发展,嵌入式系统的应用场景将越来越广泛。本设计坚信,Keil4会不断创新,紧密跟随技术发展的步伐,为全球嵌入式开发者带来更多贴心且强大的新功能,继续稳固其在嵌入式开发工具领域的领导地位。图4.1Keil_4软件界面4.2软件程序的设计4.2.1主程序流程图4.2系统逻辑流程图本系统的软件程序的设计主要分为三个部分,分别是主程序、显示子程序和按键子程序。以下是本系统的软件程序的设计的详细介绍:主程序的功能是控制系统的整体运行,包括初始化单片机的各个模块,接收和处理传感器的检测信号,控制巡检小车的运动和报警,与显示子程序和按键子程序进行数据交换。主程序的函数流程如图4.2所示。4.2.2按键函数子流程图按键去抖(Debouncing)是在电子设备中常用的技术,用于消除机械按键在按下或释放时可能引起的抖动现象。检测按键信号变化:通过轮询或中断等方式检测按键信号的变化。在检测到按键状态变化后,启动一个计时器开始计时。等待一段时间,通常称为去抖时间窗口,以确保按键信号稳定。在去抖时间窗口结束后,再次检测按键状态。如果按键状态在时间窗口内保持一致,确认为有效的按键操作。流程图如图4.3所示。图4.3按键程序流程图4.3.1HC-SR04子程序流程如图4.4所示,HC-SR04是一种常用的超声波测距模块,通常用于测量距离。初始化超声波模块的引脚,通常包括一个用于发送超声波脉冲的引脚和一个用于接收回波的引脚。通过发送一个短脉冲给超声波模块的发送引脚,激活超声波传感器发送一系列超声波脉冲。超声波脉冲发射后,等待接收从目标反射回来的超声波信号。当超声波信号被接收到时,通过接收引脚反馈一个信号。通过测量从发送超声波到接收超声波的时间间隔来计算目标物体与传感器之间的距离。根据声波在空气中的传播速度和时间间隔,可以使用简单的公式来计算距离。将计算得到的距离值返回给调用者,供后续的处理和应用使用。图4.4.HC-SR04子程序流程图4.2.4显示子程序流程如图4.5所示,显示子流程的作用是控制LCD1602液晶显示屏,用于向用户展示系统的运行状态、检测数据等重要信息。该子程序需要完成初始化显示屏、发送显示数据、更新显示内容等任务。显示初始化包括设置显示模式(显示开启、光标开启/关闭、光标闪烁开启/关闭)、清除显示等。发送显示数据则是将需要显示的字符/字符串数据逐个发送至显示控制器。更新显示则是根据系统检测到的各种状态,动态刷新和切换LCD上显示的内容。整个显示子程序可通过调用一系列显示函数来实现,比如初始化函数、写命令函数、写数据函数、显示字符串函数等。通过这种模块化的代码编写,不但提高了程序的可读性和可维护性,还方便了将来的扩展和修改。该子程序与主程序紧密配合,主程序将需要显示的数据传递给显示子程序,显示子程序负责格式化后在LCD上渲染显示,从而实现了人机交互界面。图4.5显示子程序流程图4.2.5中断子程序流程如图4.6所示,中断是指出现某些特殊事件时,CPU暂停当前执行的程序,转而执行相应的中断服务程序的过程。在本系统中,中断主要用于及时响应传感器状态的变化,例如障碍物被检测、烟雾浓度超标等情况。首先需要初始化中断系统,包括中断向量表和中断控制寄存器的设置。然后编写对应的中断服务程序,当中断事件发生时,CPU将自动转入执行该服务程序。该程序需要保护现场(暂存中断前的工作环境),处理本次中断事件,并最终通过相关指令退出中断,回到断点处继续原程序的执行。中断子程序的作用在于提供实时响应和处理能力。与主程序的轮询方式相比,中断方式对事件的响应更快捷高效,可以有效解决因程序运行时序导致的数据丢失或错误处理问题。同时,不同的中断事件可设置不同的中断优先级,以确保重要或紧急的中断能够被优先响应和处理。通过恰当利用中断机制,可以大幅提升系统的实时性和可靠性。因此,中断子流程是系统软件设计中一个非常重要的部分,合理的中断设计和程序编写,对于保证系统的高效稳定运行至关重要。图4.6中断子程序流程图4.2.6温度检测子程序流程温度检测子程序是智能巡检小车控制系统中的重要组成部分。该程序首先初始化与DS18B20温度传感器的通信,然后发送指令启动温度转换并读取转换后的温度数据。一旦获取到温度值,程序会立即判断该值是否超过35度。如果温度超标,系统会立即通过声光报警模块发出警报,并通过电机驱动模块控制小车停止移动,以确保变电站内部环境的安全。这一流程的高效运作,对于及时发现并应对潜在的安全风险至关重要。图4.7温度检测子程序流程图4.3本章小结本章主要介绍了系统的软件设计,包括软件开发环境以及关键程序的流程和实现。Keil4作为MCS-51系列单片机的集成开发环境,提供了项目管理、代码编辑、编译调试等一体化功能,是软件开发的重要工具。主程序的功能在于控制系统整体运行,包括初始化、处理传感器信号、控制执行模块等。子程序则负责具体的任务实现,比如按键处理程序实现去抖动、HC-SR04程序实现超声波测距等。每个程序的流程图都有详尽的讲解,代码也附有必要的注释说明,方便阅读和理解。系统软件设计合理、可靠、可扩展,为硬件的正常运转提供了坚实的基础。毕业设计5系统的测试5系统的测试5.1软件硬件调试5.1.1软件调试软件调试是保证智能巡检系统软件程序正确性和稳定性的关键环节。本系统软件采用模块化设计,分为主程序、显示子程序、按键处理子程序、中断服务子程序等多个模块,需要对每个模块的代码进行单元测试,并进行整体集成测试。(1)单元测试单元测试主要针对每个独立的程序模块进行测试,确保其功能的正确实现。本设计采用了白盒测试的方法,即直接查看和分析源代码,编写相应的测试用例,覆盖代码的每个逻辑分支、循环等。以温度检测模块为例,本设计分别设计了多种测试用例,包括在已知温度值的情况下检查检测结果是否正确、在极端温度值时是否会出现数据溢出、在恶劣环境下是否能可靠工作等,全面验证了该模块的可靠性和健壮性。对于一些涉及硬件的模块,如按键处理、超声波测距等,本设计则采取了模拟输入,通过构造并注入虚拟按键事件、模拟距离数据等方式进行软件测试。这种方法避免了硬件设备的频繁更换,提高了测试效率。(2)集成测试在完成各单元模块的测试后,本设计进行了系统的集成测试。集成测试的目的是检查各个模块之间的接口通信是否正常,数据传递是否准确,资源共享和调度是否存在冲突等。本设计首先构建了一个包含所有模块的完整系统框架,,逐步将测试通过的模块组装集成并进行测试。在集成每个新模块时,都会重复执行之前所有用例,确保新模块的加入不会影响已有功能。例如在集成红外循迹模块时,本设计不仅测试了小车沿线运行的正常情况,还专门增加了模块发生异常的用例,考察异常处理的正确性。通过这种全面严格的测试,能够尽早发现并修复系统级缺陷,为后续调试扫清障碍。除了功能测试外,本设计还执行了非功能性测试,如代码覆盖率、内存占用率、性能测试等,以进一步提高软件质量。5.1.2硬件调试硬件调试是保证整个智能巡检系统能够正常稳定运行的前提和基础。该系统由多个传感器、执行器、控制模块等硬件模块组成,存在着复杂的电路连接和信号交互,硬件调试的目的就是确保各模块间的电气连接正确、时序正常、无电路故障等。(1)电路连接检查电路连接检查是硬件调试的首要步骤。本设计首先按照原理图和设计文档,对每个模块的供电电路、地线、信号线等进行了全面检查,确保无误连接、虚连、短路等问题。例如对于超声波测距模块,本设计检查了VCC、Trig、Echo三根线是否正确并稳定地连接到单片机的相应引脚;对于电机驱动模块,本设计检查了电源线与逻辑控制线是否划分清晰,避免了可能的冲突干扰。同时还对接线的走线长度、排布方式、材料选用等细节进行了优化,减小了串扰、惠斯特效应等影响,提高了系统的可靠性。(2)独立模块测试在电路连接无误的基础上,本设计对每个独立硬件模块进行了单元测试。通过给定特定输入,测试其输出和工作状态是否符合预期。同时还会模拟一些极端和异常工作环境,观察模块的容错和自恢复能力。以液晶显示模块为例,本设计不仅简单地检查了正常显示,还专门测试了高低温、振动、碰撞等恶劣条件下的表现。对于出现黑屏、花屏、乱码等异常情况,本设计均予以记录并分析原因,最终保证模块可靠运行。(3)集成模块测试在各模块单独测试通过后,本设计进行了硬件的整体集成测试,重现真实的运行环境。该测试按照流程对系统进行了全方位的检查,包括供电电压、工作电流、发热量、电磁兼容等,并测试了系统的核心功能,如自动导航、环境检测、异常报警等。对于发现的任何硬件故障或异常,本设计均及时进行了排查和修复,并完善了相关设计文档,为后续批量生产做好准备。通过上述步骤的软硬件调试,本设计最终保证了整个智能巡检系统程序的正确性和完整性,硬件的可靠性和鲁棒性,为系统的正式运行打下了坚实的基础。5.2实物展示本系统的实物展示以巡检小车的卓越性能为核心,通过一系列精心设计的实验场景,充分展现了其在变电站巡检中的高效性与可靠性。巡检小车凭借其先进的导航技术和精确的传感器阵列,能够在铺设的黑白线条上实现自动或半自动的巡检任务。在巡检过程中,小车不仅可以顺畅地按照预设路径行进,更能在检测到异常情况时迅速作出反应。实物如图5.1所示:图5.1系统实物图5.2.1障碍物检测展示图5.2障碍物检测当小车通过障碍物检测模块识别到前方有障碍物时,它会立即启动安全停车机制,同时触发声光报警系统,以强烈的警示信号通知用户和工作人员及时处理。如图5.2所示,障碍物检测展示直观地呈现了小车在遇到障碍物时的反应速度和安全性。5.2.2烟雾检测展示图5.3烟雾检测在烟雾检测方面,本系统同样表现出色。一旦烟雾检测模块检测到空气中烟雾浓度超过预设的安全阈值,小车会立即停止运行,并通过声光报警装置发出警报。图5.3展示了烟雾检测的实际效果,进一步验证了本系统对潜在安全隐患的敏感性和响应速度。5.3.1火焰检测界面图5.4火焰检测本系统还具备火焰检测功能。通过火焰检测模块的高灵敏度传感器,小车能够迅速捕捉到火源的存在,并立即启动相应的安全处理机制。图5.4展示的火焰检测界面,不仅清晰地显示了火焰被成功检测并定位的情况,还凸显了本系统对火灾风险的强大防控能力。5.3本章小结本章描述了智能巡检小车系统软硬件的调试过程和最终测试情况。软硬件调试包括使用Keil4编写、编译、调试软件程序,以及通过STC-ISP软件将程序下载到单片机中并与硬件电路相连接,进行实物测试。调试的目的是检查并排除程序中的语法错误、逻辑错误等问题,保证最终程序的正确性和稳定性。实物测试则对整个系统的实际运行效果进行展示,包括正常行驶的红外循迹情况、障碍物检测报警情况、烟雾检测报警情况、火焰检测报警情况等。每种异常情况下,系统都能够及时检测到并通过声光报警设备发出警告,同时LCD屏幕会显示具体的状态信息,整体运行效果良好。实物演示直观呈现了系统智能化、自动化的优势,验证了本设计设计方案的可行性和有效性。结论结论结论本设计描述了一种基于STC89C52RC单片机的变电站智能巡检小车控制系统。首先,这一系统的核心在于实现变电站的自动化巡检,以提高巡检效率和安全性,并降低人工巡检的风险和成本。通过集成多种传感器模块,系统能够实时监测变电站内部的环境参数,包括温度、烟雾、火焰和障碍物等。中期,在系统设计过程中,硬件设计方面考虑了系统的功能需求和实际应用场景,合理选择了各硬件模块,如STC89C52RC单片机、DS18B20温度传感器、MQ-2烟雾检测模块等,并详细阐述了它们的工作原理和连接方式。软件设计方面,明确了主程序和各子程序的功能和流程,确保系统的软件逻辑清晰、易于实现和维护。最终,经过严格的软硬件调试和系统测试,验证了系统的可行性和高效性。在实际运行中,系统能够按照预设路径进行巡检,并通过LCD显示屏实时展示巡检状态和环境参数。一旦侦测到异常情况,系统能够立即停车并发出声光报警信号,以提醒相关人员及时处理。这一创新系统的成功设计和应用,为变电站管理带来了新的可能性,有效提升了电力系统的安全稳定运行水平。附录A谢辞参考文献[1]刘谢玉,杨晓冬,徐壮,等.基于树莓派的煤矿变电所巡检小车设计[J].变频器世界,2023,26(4):102-105.[2]林培玲,黄琪源,张建新,等.一种用于智能变电站巡检的便携式装置:CN202222309546.8[P].CN218273451U[2024-03-07].[3]郭昊坤.基于单片机和蓝牙控制的智能小车设计[J].2022(11).[4]曾尧.基于STM32的智能小车循迹优化设计[J].机械工程师,2022(1):3.[5]谷艺林,郑昌庭,黄山,等.基于无人值守搭建的变电站智能化联合巡检平台[J].电力设备管理,2022(4):35-37.[6]JunL.StructureandInspectionMethodofControlSystemofIntelligentandElectronic-ControlledThrottleofNewLexus400Car[J].AutomobileTechnology,2001.[7]LiZ.DesignofIntelligentInspectionCarbasedonSTM32[C]//InternationalConferenceonComputerEngineering,InformationScience&ApplicationTechnology.2019.[8]SiddiqueQ.IntelligentCarSystem.2012[2024-05-15].[9]CaiL,CaiL,ZhanW.DesignofIntelligentCar[J].ModernAppliedScience,2011,5(6).[10]ReddyR,MandaniN,MalikA,etal.IntelligentCarSystemforAccidentPrevention[J].[2024-05-15].[11]邱映杰.基于单片机的路径识别智能小车控制系统的设计与开发[J].科学技术创新,2023(14):195-198.[12]陈建辉,刘湘安.基于K60单片机智能小车设计与实践[J].汽车实用技术,2023,48(10):47-50.[13]刘松良.变电站智能巡检机器人系统的研究与设计[J].电子产品世界,2023,30(2):41-43.[14]赵俊程,黄伟成,金亮,等.基于STC32单片机的电磁感应导航自主运行智能小车[J].电脑编程技巧与维护,2023(11):134-136,158.[15]陶玉贵,胡飞.基于PID算法的智能竞速小车设计与实现[J].南方农机,2023,54(5):30-33.[16]汤俊,满达虎,王丽芳,等.基于STM32控制的水下管道智能巡检机器人设计[J].科技与创新,2023(4):97-99.[17]喻洋,董明知.光伏变电站智能巡检机器人功能设计与实现[J].电测与仪表,2023,60(6):40-45.[18]郑伶俊.变电站巡检机器人系统设计与实现[J].机械制造与自动化,2023,52(2):162-165.[19]王强.变电站智能巡检机器人的全局路径规划设计[J].集成电路应用,2023(11):292-293.[20]邱萌萌,刘瑞,徐林.基于STM32的智能小车无线充电系统设计与应用[J].嘉应学院学报,2023,41(3):16-22.[21]张骁,俞港,朱畅.基于51单片机的智能巡检小车设计[J].企业技术开发:中旬刊,2022(1):2.[22]吕天恒.基于单片机的智能巡检小车[J].山西电子技术,2019(5):2.[23]黄旭,刘丽娟,杨丰.基于AVR单片机的自动巡线小车[J].中国科技博览,2020(9):1.[24]惠鸿忠,李健,成敬敏,等.基于单片机控制的智能巡线小车的研制[J].电工技术,2019,000(010):41-42.[25]张磊.基于单片机的巡检系统设计与实现[D].东北石油大学,2021.谢辞在完成本论文的过程中,我受益于很多人的帮助和支持,在此谨致以诚挚的谢意。首先,我要衷心感谢我的指导老师XXX教授,是他的悉心指导和富有建设性的意见使我能够顺利完成论文的写作。在选题阶段,老师就根据我的兴趣爱好和研究方向,为我指明了前进的方向;在资料收集阶段,老师不辞辛劳地为我查阅文献资料,并耐心解答我的疑惑;在论文写作阶段,老师细心审阅我的初稿,指出不足之处,提出中肯的修改意见。正是有了老师的悉心指导,我才能逐步完善论文,使之达到较高的学术水平。其次,我还要感谢实验室的各位师兄师姐,是他们无私分享的经验和热情帮助让我度过了写作中的许多困难。在论文选题的初期,他们就主动与我交流,分享了自己的写作心得;在实验数据采集环节,他们手把手地教我操作仪器设备;在写作过程中,他们会不时检查我的进度,及时指出我的不足,提出宝贵的修改建议。师兄师姐的悉心指导和热心帮助,不仅增进了我的研究技能,而且锻炼了我的写作能力,为我今后的学习和工作奠定了坚实的基础。最后,我要感谢亲朋好友对我的鼓励和支持。写作过程中常常会遇到瓶颈期,但亲朋好友的关心和鼓舞给了我极大的动力,让我重拾斗志,坚持不懈地努力。虽然本论文经过我的努力,但仍有不足之处,希望您能给予宝贵的意见和建议。再次感谢所有给予我帮助的人!正是有了大家的悉心指导、热心帮助和真挚关爱,我才能圆满地完成了论文的写作。附录B附录A原理图:毕业设计附录B部分源程序:#include<reg52.h>//包含51单片机系统头文件 sfrT2MOD=0xC9;#defineSPEED_30C3495//30摄氏度时的声速,声速V=331.5+0.6*温度;#defineSPEED_23C3453//23摄氏度时的声速,声速V=331.5+0.6*温度;#defineLCD_DataP0 //定义液晶1602数据接口对应单片机的P0口#defineBusy0x80 //液晶为忙时对应的状态字//定义智能小车电机驱动芯片L293D输入IO口 sbitIN1=P1^4; //电机驱动芯片L298N的IN1管脚sbitIN2=P1^5; //电机驱动芯片L298N的IN2管脚 sbitIN3=P1^6; //电机驱动芯片L298N的IN3管脚sbitIN4=P1^7; //电机驱动芯片L298N的IN4管脚sbitEN1=P1^3; //电机驱动芯片L298N的EN1管脚sbitEN2=P3^2; //电机驱动芯片L298N的EN2管脚sbitkey1=P3^7; //暂停按键sbitkey2=P3^6; //启动按键sbitLCD_RS=P1^0; //液晶的RS管脚sbitLCD_RW=P1^1; //液晶的RW管脚sbitLCD_E=P1^2; //液晶的E管脚sbitECHO=P2^6;//超声波模块回声接收端口sbitTRIG=P2^5;//超声波模块触发端口sbitleft_led=P2^7; //左循迹引脚 sbitright_led=P2^0; //右循迹引脚sbitzhong_led=P2^2; //中循迹引脚sbitbuzzer=P3^4;sbityanwu=P2^4;sbithuoyan=P2^3;externbitStart18B20();externbitGet18B20Temp(int*temp);floatintT,decT;//温度值的整数和小数部分unsignedintwendu;unsignedcharstr_wd[5];//温度缓冲区unsignedcharcodetable0[]={"State:Stop"}; //定义字符数组SL-51B用于液晶显示//unsignedcharcodetable1[]={""}; //定义字符数组NOECHO用于液晶显示//unsignedcharcodetable2[]={"State:Avoiding"}; //液晶显示避障标志unsignedcharcodetable3[]={"Distance:xxx.xcm"}; //定义字符数组Distance:xxx.xcm用于显示unsignedcharcodetable4[]={"State:Tracing"}; //液晶显示循迹标志unsignedchardisbuff[4]={0,0,0,0};//用于分别存放距离的值0.1mm、mm、cm和m的值unsignedcharpwmval_left=0;//变量定义pwmval_left并初始化为0.用于小车的PWM调速unsignedcharpwmval_right=0; //变量定义pwmval_right并初始化为0.用于小车的PWM调速 //小车启动时的初始占空比(左电机)unsignedcharpwmval_left_init=8;//左电机占空比调节,调节值在0到20之间,调节此值可调节小车速度。 unsignedcharpwmval_right_init=8;//右电机占空比调节,调节值在0到20之间,调节此值可调节小车速度。 bitright_pwm=1; //右电机PWM开关,为1时打开bitleft_pwm=1; //左电机PWM开关,为1时打开 bitbz_flag1=1; //超声波避障标志变量 unsignedcharlyen=0; //小车工作模式标识(为0时表示小车暂停,为1时表示工作在避障模式,为2表示工作在循迹模式) longintdistance=0;//用于暂存超声波模块测到的距离longintdistance1=0; //用于转存超声波模块测到的距离unsignedcharcount; //count变量用于超声波测距/*************************延时函数***************************/voiddelay(intIn,intOut) {inti,j;for(i=0;i<In;i++){for(j=0;j<Out;j++){;}}}/*************************延时函数***************************/voiddelayt(unsignedintx) {unsignedcharj;while(x-->0){for(j=0;j<125;j++){;}}}/*************************延时函数***************************/voidDelay5Ms(void) {unsignedintTempCyc=3552; while(TempCyc--);}/**************************LCD1602读状态函数***************************/unsignedcharReadStatusLCD(void) //读液晶状态函数{LCD_Data=0xFF; //给液晶1602的数据口置0xffLCD_RS=0; //控制液晶的RS管脚为低电平LCD_RW=1; //控制液晶的RW管脚为高电平LCD_E=0; //控制液晶的E管脚为低电平LCD_E=0; //控制液晶的E管脚为低电平LCD_E=1;while(LCD_Data&Busy);//检测忙信号 return(LCD_Data);}/**************************LCD1602写数据函数***************************/voidWriteDataLCD(unsignedcharWDLCD){ReadStatusLCD();//检测忙LCD_Data=WDLCD; //将数据写入液晶的数据口LCD_E=0;//控制液晶的E管脚为低电平(若晶振速度太高可以在这后加小的延时) LCD_E=0;//控制液晶的E管脚为低电平(设置两次,相当于小小的延时)LCD_RS=1; //控制液晶的RS管脚为高电平LCD_RW=0; //控制液晶的RW管脚维低电平LCD_E=1; //控制液晶的E管脚为高电平LCD_E=0; //控制液晶的E管脚为低电平}/*************************LCD1602写指令函数****************************/voidWriteCommandLCD(unsignedcharWCLCD,BuysC)//BuysC为0时忽略忙检测 {if(BuysC)ReadStatusLCD();//根据需要检测忙 LCD_Data=WCLCD; //给液晶写命令LCD_E=0;//将液晶的管脚E设置成0,若晶振速度太高可以在这后加小的延时 LCD_E=0;//延时LCD_RS=0; //将液晶的RS设置成0LCD_RW=0; //将液晶的RW设置成0 LCD_E=1; //将液晶的E设置成1LCD_E=0; //将液晶的E设置成0}/***************************LCD1602初始化函数***************************/voidLCDInit(void)//LCD初始化{LCD_Data=0;WriteCommandLCD(0x38,0);//三次显示模式设置,不检测忙信号(给液晶写命令0x38)Delay5Ms(); //延时5msWriteCommandLCD(0x38,0);//给液晶写命令0x38Delay5Ms(); //延时5msWriteCommandLCD(0x38,0); //给液晶写命令0x38Delay5Ms(); //延时5msWriteCommandLCD(0x38,1);//显示模式设置,开始要求每次检测忙信号(给液晶写命令0x38)WriteCommandLCD(0x08,1);//关闭显示,(给液晶写命令0x08)WriteCommandLCD(0x01,1);//显示清屏,(给液晶写命令0x01)WriteCommandLCD(0x06,1);//显示光标移动设置,(给液晶写命令0x06)WriteCommandLCD(0x0C,1);//显示开及光标设置, (给液晶写命令0x0C)}/**********************LCD1602按指定位置显示一个字符*********************/voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData){Y&=0x1;X&=0xF;//限制X不能大于15,Y不能大于1 if(Y)X|=0x40;//当要显示第二行时地址码+0x40;X|=0x80;//算出指令码 WriteCommandLCD(X,0);//这里不检
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安徽农业大学动物科技学院动物科技学院人才引进11人笔试备考试题及答案解析
- 2026广西南宁马山县白山镇卫生院春季招聘5人考试参考题库及答案解析
- 2026北京大学环境科学与工程学院招聘博士后研究人员笔试模拟试题及答案解析
- 丰城博创物业招28名工作人员!考试备考题库及答案解析
- 2026年新疆教育出版社校园招聘笔试备考题库及答案解析
- 2026建设社区卫生服务中心(嘉峪关市老年病医院)招聘7人(甘肃)考试参考题库及答案解析
- 2025年海口市龙华区事业单位招聘考试试题及答案解析
- 2026年度大庆“庆蓝优引·社会招引”市属学校人才引进14人考试参考题库及答案解析
- 2026年泰州市海陵区事业单位招聘考试备考题库及答案解析
- 2026甘肃省中医院考核招聘高层次人才6人(第三期)考试备考题库及答案解析
- 四川省广元市高2026届第二次高考适应性检测数学+答案
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 2026广东广州市黄埔区大沙街道招聘编外聘用人员4人备考题库及参考答案详解
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- 2026新疆兵团第七师胡杨河市公安机关社会招聘辅警358人笔试备考试题及答案解析
- 企业车间绩效考核制度
- 医疗服务价格项目立项指南解读辅导2026
- 2026年江西赣州市高三一模高考数学试卷试题(含答案详解)
- 中兴新云逻辑测试题
- 全过程造价咨询服务的质量、进度、保密等保证措施
- 2025年四川省眉山市中考数学试卷
评论
0/150
提交评论