基于单片机的红外测距仪设计和实现机械自动化专业_第1页
基于单片机的红外测距仪设计和实现机械自动化专业_第2页
基于单片机的红外测距仪设计和实现机械自动化专业_第3页
基于单片机的红外测距仪设计和实现机械自动化专业_第4页
基于单片机的红外测距仪设计和实现机械自动化专业_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

本科论文目录TOC\h\z\t"标题1,2,标题2,3,标题,1,二级标题,1,三级标题,3,样式三级标题+首行缩进:2字符,3,样式二级标题+首行缩进:2字符,2,样式一级标题+首行缩进:2字符,1,样式三级标题+首行缩进:2字符1,3,样式三级标题+首行缩进:2字符2,3,样式二级标题+首行缩进:2字符1,2,副标题,2"摘要 IAbstract II引言 11控制系统设计 31.1主控制器选择 31.2项目总体设计 32项目硬件设计 52.1单片机控制模块 52.2测距模块设计 92.3液晶显示模块 102.4报警模块 113项目软件设计 123.1软件开发环境 123.2系统主程序设计 133.3LCD显示程序设计 144系统调试 164.1系统硬件测试 164.2系统软件测试 16结论 18参考文献 19附录1源程序清单 21附录2总体接线图 29致谢 30摘要红外测距系统是一种无线测量系统,用于测量任务中的设备,它是提高工厂测量效率的必要设备之一。为了满足测量近距离且高精度的需求,本文设计了一款操作简单、可靠性高、可以保证完成测量的红外测距系统。本设计主要采用单片机作为系统处理器,并将红外传感器、液晶显示模块、蜂鸣器模块结合起来,完成红外测距功能。系统可以随时进行测量,可以把测量到的距离数值在液晶屏上显示出来。该系统的测量距离一般在几十厘米之内,超出极限测量范围则会发生报警。硬件设计介绍了实现红外测距的一般想法,并制作了红外电路原理图,说明了工作原理,报警模块,液晶显示模块,STC89C51单片机的红外测距传感器的引脚分布。软件设计描述了整个程序流的设计和每个程序的功能。最后,总结了整体设计,证明了红外测距的可能性。然后,可以逐步形成设计,改进软件和硬件开发平台,进一步扩展和开发。关键词:红外测距;STC89C51单片机;液晶显示

AbstractAninfraredrangingsystemisakindofwirelessmeasurementsystemwhichisusedtomeasureequipmentinatask.Itisoneofthenecessaryequipmenttoimprovethemeasurementefficiencyofthefactory.Wehavedesignedaninfraredrangingsystemwithsimpleoperation,highreliabilityandabilitytocompletemeasurementstomeetcloseandhighaccuracyrequirements.Inthisdesign,asinglechipmicrocomputerisusedasasystemprocessor,andaninfraredraysensor,aliquidcrystaldisplaymoduleandabuzzermodulearecombinedtocompleteaninfraredrangingfunction.Thesystemcanbemeasuredatanytime,andthemeasureddistancecanbedisplayedontheLCDscreen.Themeasurementdistanceofthesystemisgenerallywithinseveraltensofcentimetersandanalarmoccurswhenthemeasurementrangeexceedsthelimit.Inthehardwaredesign,thegeneralideaofinfraredrangingisintroduced,andinfraredcircuitdiagramwhichexplainstheoperationprinciple,alarmmodule,A/Dconversionmodule,liquidcrystaldisplaymodule,andpindistributionofSTC89C51microcontrollerinfrareddistancesensorismade.Thesoftwaredesigndescribesthedesignofthewholeprogramflowandthefunctionsofeachprogram.Finally,thewholedesignwassummarized,andthepossibilityofinfraredrangingwasproven.And,thedesignevolves,andthesoftwareandhardwaredevelopmentplatformcanbeimproved,developedanddeveloped.Keywords:Infrareddistance;STC89C51microcontroller;LCD引言单片机在我们的生活中占有非常重要的地位,它的发展速度非常快,因为单片机具有可靠性,低电压和低功耗的明显优势,人们愿意大范围的推广。它在日常消费类产品、玩具、工业控制系统、智能设备和通信系统等范围中有许多应用。因此,基于单片机的红外测距系统具有很大的研发价值。通过红外测距相比于通过尺度测距等测距方式有很大的优势,因为红外测距更方便快捷,它对测量效率具有决定性影响。回想这几年,我国对于无线测量在技术上的庞大需求,国家也希望有越来越多的新技术和新产品走入无线测量这个领域,然而红外测距扩展了该领域的领土,并朝着更高的智能迈进。有些工业测量任务中,由于没有高效率的完成测量,导致测量任务没有及时完成,造成时间的浪费和生产上的损失。红外测距系统是一种用于近距离、高准度的无线测量设备,它是提高测量效率的必要设备之一。如今是智能化的时代,利用红外测距系统可以极大的提高测距的效率和精度,同时也降低了人工的成本。红外测距设备是当前工业自动化测距的主流产品,在自动化技术的推动下,红外测距在国内无线测量的核心领域占有一定的地位,无论是性能的体现还是产品的形态方面都具有一定的优势。在信息化、智能、开放的时代,我国红外线的开发和应用促进了产业自动化的发展,形成了产业动向。从可靠性和安全性的角度来看,红外测距仪在可靠的干扰防控能力的实例中得到强调,并且可以保证在任何环境下的测量。在商业市场的需求中,红外测距仪有着巨大的投资机会,也面临着各种各样的产业。近年来,红外测距仪不仅可以简单操作,而且具有小尺寸,高精度,轻量,性能稳定,因此在我国对这种产品的需求很大。而且随着无线测距技术在不断的发展,逐渐的应用到工业设备上。红外测距系统是一套自动化的无线测距系统,此类设备可以更高效快捷准确的进行距离上的无线测量。在设计、制造和使用设备时,要便于使用单位,维护人员的便捷可靠性以及设备运行的稳定性。同时,也要符合市场发展和用户的需求以及未来拓展功能,系统的通用性和可扩展性也非常重要。据统计,工厂里的员工们每天要完成很多的由工厂委派的测量任务,并要将这些任务精确、高效、准时完成交工。一名工厂员工每天需要完成的测量任务数量可达几十到几百个。由此可见,红外测距系统将会成为工业测量成本、节省时间、创新并提升员工测量效率的重点之一。目前来看,红外测距系统在建材、机械、电力、轻工等基础的工业领域都可以有广泛的应用。一个正确的测量方法对于工厂员工去高效地完成任务来说一般有很大影响,基于单片机的红外测距仪能快速完成测量任务主要体现在该设备利用红外线进行测距,这种无线测量相比于员工的手动尺度测量要便捷,而且红外线在测距的途中不会因为受到环境的影响而出现误差,反观尺度测量就非常容易遭受环境因素的影响而无法完成测量任务。如果测量的距离出现错误,那么不仅给工厂员工自身带来麻烦,而且可能会导致某个器件的出产以及整个生产的进度,甚至进而损害工厂的利益。因此,为了便于测量任务的高效完成,特别是保证测距的便捷准确,在进行测量任务的时候一定要使用红外测距仪进行测距,记录距离的时候必须要精准,这也是生产中的一项重要技术指标。因此,本文设计的是一款红外测距系统,采取单片机作为主控制器,该系统简化了外围设计,使操作更加流畅。本篇文章共分为四个章节,具体的介绍了这种基于单片机的红外测距系统:第一章介绍了主控制器的选择,以及项目的总体设计分成的几个模块,做出了系统的结构框图。第二章介绍了红外测距系统的硬件设计,包括部分硬件型号的选择;各个模块工作原理以及电路原理图。第三章介绍了系统软件设计,描述了系统开发环境和流程图以及显示程序流程图。第四章介绍了系统的调试部分,分别为电路焊接、硬件调试以及软件调试。

1控制系统设计1.1主控制器选择 基于单片机的红外测距系统设计需要通过一个主控制器来实现,通过查找资料和学习,提出了两种可供选择的主控制器,分别为单片机控制和DSP控制,具体方案如下:方案一:采用DSP作为主控制器,DSP即数字信号处理器,是一种研究用数字对信号进行分析,转换,滤波,检测,调制,解调和高速算法的元件[3]。数字处理器是用来保证各模块之间的通信,主要包括开机引导、信号读取和液晶屏初始化,以及液晶屏显示数字编解码芯片的运行状态。音频数字信号存储在闪存中。方案二:系统可以使用单片机作为主控制器,单片机是一种虽然小但很完整的芯片,应用在集成电路中,也可以称之为微型计算机系统。芯片中包含随机储存器RAM、中央处理器处理器、只读存储器ROM、中断、定时器以及若干个I/O口等模块[2]。有些芯片中还包括脉宽调节模块、驱动模块、多路模拟转换等电路。单片机大量运用在工业环境中。采用单片机作为本设计的控制部分,系统主要由单片机、红外传感器、蜂鸣器及液晶显示器构成。红外传感器接收到信号后,模数转换器将好的数字信号转换到单片机上,再由单片机进行数字信号处理,最后由软件计算出数据发送到LCD。综上,与单片机相比,DSP主要是针对一些应用程序需要更高的计算能力,DSP的运行速度很快,但其控制算法相对复杂。而单片机的系统的控制方法相对简单,且可靠性高、价格较低、功耗低,不过单片机相比DSP功能比较简单,但是完全满足本设计需求,同时单片机来实现红外测距有着非常大的研究价值。因此本设计选用单片机作为主控制器。1.2项目总体设计本设计基于单片机的红外测距系统设计由:STC89C51、红外传感器、LCD1602液晶显示器以及报警装置组成。按下红外测距系统的启动按键,可以进行预测值的设置,接着红外传感器进行测距,信号通过单片机处理转变为数据,将数据显示在LCD1602液晶显示器上,构成完整的红外测距系统。由如下模块组成:(1)测距模块:红外传感器,发射并接收被反射的红外线进行测距,将所测得的模拟信号信息传入单片机中。(2)最小系统模块:STC89C51单片机作为系统的主控制器,接收红外传感器所传递的的模拟信号信息[1],经过处理后再传递到液晶显示模块上。(3)报警模块:有源蜂鸣器,如若测距范围超出装置的预设测量范围,则蜂鸣器发生报警。(4)液晶显示模块:LCD1602液晶显示屏,接收单片机所处理好的数字信号信息,显示最终测得的数据值。系统总体结构图如图1.1所示:图1.1系统总体框图

2项目硬件设计2.1单片机控制模块2.1.1单片机型号选择基于单片机的红外测距系统设计,对单片机的要求较高,要选用带有4K字节EEPROM存储空间的单片机,其次为了保证系统更好的运行,应选用性价比高、可靠性高、低功耗的控制器,以防止器件的损坏,影响系统的运行。基于此有以下两种方案可供选择:方案一:采用STC89C51作为主控制器。STC89C51是系统中的可编程芯片。它使用8051内核,工作频率高达80MHz。该设备包含4K字节的只读程序内存,可进行擦除1000次,单片机指令与MCS-51完全兼容该设备。该芯片由8位通用处理器和ISP闪存单元组成。STC89C51单片机是一个时钟/机器周期的速度很快、能量消耗较低的新型单片机,它具有的开发简单、可在线编程下载、成本低的特点是非常不错的选择。方案二:使用MSP430单片机作为主控制器。它被叫做混合信号处理器,它可以使许多功能各异的模块和微处理器集成在一个芯片上,MSP430系列单片机具有16位能量消耗超低和精简指令集[5]。一般来说,需要使用电池供电的设备仪表使用该系列的单片机。但是开发难度相对比较大、价格昂贵。综上所述,与MSP430单片机相比,STC89C51单片机开发难度较低、稳定性高,而且价格合适,结合设计所需要的性能,最终选用STC89C51单片机作为主控制器。2.1.2单片机的引脚说明STC89C51单片机有两种封装形式,分别是PDIP(40引脚)和PLCC(44引脚)。在本设计中,直接插入PDIP(40个引脚)。为了方便更换芯片,避免芯片在高温焊接时损坏,焊接时可采用集成电路插座进行焊接,焊接完成后可将芯片插入集成电路插座,STC89C51所拥有的40个引脚中可以控制的有P0、P1、P2、P3各32个。这些引脚可以单独或同时在特定位的I/O端口进行控制,不需要定义输入和输出就可以很方便地进行控制。当将值赋给I/O时,I/O端口将自动转换为输出,当读取I/O端口时,I/O端口将自动转换为输入。如图2.1所示,引脚相对应的功能如表2.1所示。表2.1单片机引脚功能引脚功能P0.0~0.7普通I/O口,与LCD1602相连P1.0~1.3普通I/O口输入,与按键相连P1.4~P1.6普通I/O口,与LCD1602相连P2.5P2.7普通I/O口输出,与led灯相连P3.0RXD,串行输入P3.1TXD,串行输出P3.4~P3.7普通I/O口,与ISD4004相连图2.1STC89C51单片机引脚图2.1.3单片机的最小系统单片机最小系统有三个部分,分别为:电源电路、晶振电路以及复位电路。在本设计中,STC89C51单片机可以在4.5~5.5V的电压范围中正常工作。电源部分采用USB电源线,可连接手机充电插头或5V移动电源,为系统供电。单片机的最小系统如图2.2所示:图2.2为STC89C51单片机最小系统的电路图在晶振电路中有两个独立的反向放大器,它们不仅可以与石英晶振配合,作为单片机的内部振荡器。而且能够单独作为一个元器件,需要被外部时钟驱动来使用。也就是说,晶振电路的输入端着连接两个电容,输出端着连接一个石英晶体振荡器,这样就产生了一个内部振荡器,从而起到调节频率的作用。如图2.3所示:图2.3晶振电路在本设计中,单片机系统是否稳定直接取决于复位电路的完好程度。如果单片机没有立即投入运行,就说明单片机的电源电压不稳定,需要先进行一段时间的复位。电源稳定后,单片机将开始工作。复位电路通常包括手动钥匙复位、电源复位和整体复位。在这种设计中,由于微控制器的电容效应,启动时间将在工作开始后延迟一段时间。复位电路如图2.4所示:图2.4复位电路

2.2测距模块设计2.2.1传感器的选择本设计中的传感器要实现对信号发送与接收的功能,可将接收的信号传递到模数转换模块中进行处理,并且适用于STC89C51单片机,与其组合能体现出更好的发挥,以下为本模块的方案选择:方案一:基于红外传感器的设计,红外传输,使用红外传输管发送信号,通过障碍物反射信号,红外接收管接收反射信号。并且,根据信号强度,是显示模块中显示的对应的电压值以及此时的记录的距离。红外传感器用于测距,所接收的模拟量通过模数转换器转换成单芯片微计算机处理的数字量。通过处理来自模数转换器的数字量,可以在显示模块上显示与由红外线接收管接收的信号强度对应的距离值。方案二:经由激光发射二极管对障碍物发射激光信号,激光射达障碍物表面后,其向各个方向发散,当激光接收器接收到反射回的光时,其中的光学系统对其进行接收后,然后对检测到的微弱光信号进行放大,进而转化成相应的电信号传送回单片机中通过程序进行分析,最终得出结果。综上考虑,虽然方案二中的激光传感器具有远距离测量、速度快,精度高等优点,但是其所检测到的数据会变得复杂,并且使用的成本也升高许多,反观方案一中的红外传感器不仅操作结构简明,实现方便,而且在成本上很节约,反应也十分灵敏,因为抗干扰能力强,不会因为周围环境的差别而影响最终的测试结果,所以便于用在近距离情况的检测。故选用方案一。在该设计中,红外传感器VCC连接到电源GND和GND接地线。已知红外传感器的测量范围为10cm~80cm,测量误差不大于0.5cm。形成位置感测检测器和红外LED,是范围测量传感器单元和PSD的集成组合。在这个设计中,使用三角测量方法将红外发射器从特定角度发射到红外。当光线接触对象时,对象会反射光线。此时,可以检测反射的红外光,并且可以获得偏移L。可以使用三角关系和滤波器的出射角、偏移距离L、中心矩X和焦距F来确定传感器和目标之间的距离D。如图2.6所示:图2.6红外传感器2.3液晶显示模块2.3.1液晶显示模块选择对于基于设计的显示模块,显示器应当具有方便和灵活的接口。可以通过简单的编码、简洁、明确的信息在接口上显示。工作电压和电源必须低于同一类型的光栅模块。硬件电路和程序相对简单。方案一:作为系统的显示装置使用LED。LED或数字管适合低成本显示数字和文字。但是,在与本系统的主控制装置连接的情况下,LED动态扫描方法占据更多的I/O端口,主控制端口的电流输出不足,因此驱动模块还需要放大电流以控制数字管。另外,数字管显示器的内容选择增加了焊接的难度,容易发生焊接错误。方案二:LCD1602屏幕用作系统的显示设备。LCD1602液晶还被称为文字液晶,可以同时显示16×2或32个字符,包括数字、字符、符号或自定义字符。LCD1602由多个位图字符组成,每一个位图可以分别显示字符、字符和各条线的各个位,这被称为字符间隔和线条间隔。基于以上说明,液晶画面控制相对简单,画面尺寸适当,没有发生资源废弃物,满足设计的功能要求。因此,使用LCD1602作为系统的显示装置。2.3.2LCD1602模块设计LCD1602可以通过执行读取状态操作、写入命令操作、读取数据操作和轻数据操作来控制。LCD1602共计11个指示,SCM向液晶显示器发送了这些指示。然后,您可以完成某些特定功能(例如,开启、关闭、屏幕清除等)。如果LCD1602本身不能直接调用出该字库,则需要使用自定义字符写到CGRM中,挪用的方法与自定义字符的写入,显示字符的方法相同,将自定义字符字模写入LCD的CGROM中即可。LCD1602已经非常普遍,可以很容易地适用于市场上大部分的显示需求。字符型LCD通常有14针线或16针线LCD,多余的2条是背光线VCC(15针)和接地GND(16针),原则上与14针LCD相同。如图2.7所示:图2.7液晶显示模块原理图2.4报警模块2.4.1蜂鸣器选择基于本设计要求在测量距离超出最大可测范围之后,系统会发出声音进行报警,为了实现这一功能,需要选取一种程序控制方便的蜂鸣器。方案一:有源报警器。有源蜂鸣器是一种简单的振荡电路,用于将恒定直流电流转换为某个频率的脉冲信号,并交替来自表面的磁场来驱动钼片的振动和声音的电子结构。蜂鸣器只需电平即可驱动。方案二:无源蜂鸣器。属于一种被动蜂鸣器。无源蜂鸣器内没有振荡电路。使用DC信号的话,因为不能发出声音,所以必须用2K~5K的方波来驱动。DC可以连续按振膜而不发出声音。综上,相比于无源蜂鸣器,有源蜂鸣器控制方便,功能更多,所以最终选用带有震荡源的5V有源蜂鸣器来实现设计的报警功能。如图2.8所示:图2.8报警模块原理图

3项目软件设计3.1软件开发环境本设计使用KeilμVision来实现。Keil是一个软件开发系统,其中兼容C语言。对于汇编来说,C语言具备可移植、易于维护和修改、方便调用模块、简单易学。Keil提供了完整的开发计划,包括C编译器,库管理,宏程序集,连接器以及将这些组件组装到集成开发环境(Vision)中的非常强大的模拟器调试器[9]。而使用它则因为其集成环境很方便,并且适用于STC89C51单片机。,该软件开发界面如图3.1所示 。图3.1软件开发界面图具体的操作步骤为:开发时首先需要建立“Project”工程,选择“NewμVisionProject”,为新建的工程命名后点击保存,选择本设计选取的单片机型号“STC89C51”;成功建立工程后,选择“SourceGroup”按键,可添加文件,如果想编辑文件,可以点击“Add”。如图3.2所示:图3.2KeilμVision软件开发流程图3.2系统主程序设计在整个系统运行过程中,当红外测距系统被启动后,首先,在装置进行预测值设定,接着红外传感器开始进行测距,将测得的信号传入单片机中,单片机开始判断所测距离是否超出预测范围,如果超过了预测范围,则蜂鸣器开始报警,此时应该对单片机进行复位操作,并且重新设定预测值;如果所测距离没有超过预测范围,则单片机将数据送至液晶显示屏上进行距离显示,随后对距离进行记录并关闭红外测距装置。在软件设计中,主程序不宜放太多的代码,可以采用函数将具体的代码封装后,在主函数中调用,这样修改起来也很方便。如图3.3所示。图3.3系统主程序设计流程图3.3LCD显示程序设计这里采用8位并行接口来操作LCD1602。D0-D7与单片机的P0.0至P0.7相连。采用89C51的P0口作为LCD1602显示器的数据输入口,需要严格按照产品的时序要求进行编程。LCD1602的液晶显示器首先需要设计显示数据的地址,然后通过命令按顺序写入数据。当地址写入后显示第一个内容时,地址自动递增一。如图3.4所示。图3.4LCD显示程序流程图

4系统调试4.1系统硬件测试根据该系统的设计,焊接电路应注意是否有短路电路、开放电路、故障方向的部件、电路设计误差。部件的焊接误差和错误方向的检测方法是将物理电路基板与电路图的电路图进行比较,检查各部件和导线是否出现在物理对象上。如果发现没有或及时的重新需要,则不能进行比较,确定焊接的及时修理。在短路电路中,电路破坏、虚拟焊接等情况需要使用数字多仪表检测。在蜂鸣器文件中放入数字万用表。红笔和黑笔如果短路的话,万用表会发出蜂鸣声。根据这个原理,可以用来检测短路、故障电路和虚拟焊接。如果蜂鸣器响的话,线是正常的;如果听不到报警的话,那表示电路有什么错误。测试后,物理电路板与电路图一致,所有组件均正确连接,系统最终实现了所有硬件功能。在这种设计中,显示模块是非常重要的部分,因为它不仅在硬件核心上,而且在硬件调试中也遇到了问题,如果连接到电源上,则显示画面不亮,不显示,这是为什么呢?我开始寻找原因,检查电源是否通电,确认指示器灯是否接通,编程后将P1降低,确认P1输出低,最终P0端口未连接到拉电阻。连接后,显示画面亮灯。在硬件调试中,虽然遇到了可以显示的显示画面,但是显示器上存在大问题。调整距离后,显示器没有变化。检查后发现红外传感器和VCC连接不好,与单片机接触不良。最小的系统板调试SCM软件确保了正常工作和硬件系统。最后,组合模块进行测试以实现系统整体的功能。4.2系统软件测试基于硬件调试,C语言编号的程序将通过下载器下载到单片机。根据设计的电路参数和步骤,取景器的范围从10cm到80cm,范围取景器的最大误差在0.5cm以下。调试系统后,测量了好几次距离,与预设值进行比较,多次分析测量误差。修改程序以满足实际测量要求,调整设备并获得更完整的程序。设计软件的调试步骤如下。(1)首先在KeilμVision中创建新的项目。单击菜单栏中的“porject”,为新工程命名,并命名保存。(2)新的用户源文件:首先,创建一个新的空白文本来书写程序的源代码。写入和保存后,创建新文件,文件扩展名为“设计名.a”。(3)程序编译和调试:单击“编译”按钮启动系统。操作中输出窗口中显示反馈信息。如果看到错误信息,可以根据错误进行修改。但是,程序调试不能成功,首先是单片机的微型计算机,要写入实验,是由固定距离记录的信号强度收集的,然后在程序中添加相应的数据最后,通过红外测量模块可以显示相应的数据距离,主程序是整个程序的基础,也是核心。最后按照以上软件步骤进行软件调试,循序渐进,检查出程序并没有错误,且可以正常运行,从而得到正确的测试结果,可知软件方面的调试也顺利完成。如图4.1所示:图4.1程序调试成功显示图本科论文结论本篇论文针对工厂维修人员在需要完成测量任务的情况下,无法及时准确得测量出距离,导致任务不能有效的完成这一问题,设计出一种基于单片机的红外测距系统。维修人员使用红外测距仪根据任务的需求来进行测量,从而快速有效的完成测量任务。本设计是由STC89C51单片机、测距模块、LCD显示模块等组成的红外测距系统。也利用KeilμVision软件编写C语言程序,使各个模块实现相应功能。本设计经过了硬件以及软件的测试,各部分均达到预期功能:实现了对10cm-80cm范围内的距离测量,如果超出测量范围会进行报警。该红外测距系统操作简单,准确性高,抗干扰能力较强。该系统实现了为工厂维修人员提供测量便利,同时对于各个行业需要进行小范围测量的工作人员可以快速完成工作中的测量任务,使用测量起来方便快捷、简单准确,而且该设计成本不高,在材料上 也很节约,与其他的测量装置相比,此测量仪器性价比方面可以说是很高,而且能很快的融入人群当中所使用,更迅速的贴近生活,也能满足工业生产的测量要求,随需随用,使用起来也是简单实用。应用本设计产品,可以提高工厂维修人员完成测量任务的效率,促进企业的进一步发展。

参考文献[1]张明峰.PIC单片机入门与实战[M].北京:航空航天大学,2003.5:55-60[2]窦振中.PIC单片机应用设计与实例[M].北京:航空航天大学,2002.3:118-120[3]谢自美.电子线路综合设计[M].华中科技大学,2006.6:34-40[4]康华光.电子技术基础:模拟部分第五版[M].电子技术,2003.9:55-110[5]潘永雄.电子线路CAD实用教程[M].西安:电子科技大学,2007.7:115-123[6]苗振腾.基于单片机控制系统设计[J].电子世界,2018,56(23):196+198[7]徐斌.低频射频识别技术研究[D].西安:电子科技大学,2013.4:66-68[8]刘莹.基于单片机控制的红外测距设计与实现[J].电子技术与软件工程,2014,92(03):158-159[9]黄庆华.单片机开发技术与实训[M].北京:北京电子工业出版社,2011.4:108-145[10]杨新.电子设计从零开始[M].北京:北京清华大学出版社,2005.7:155-262[11]刘坤.51单片机典型应用开发范例大全[M].机电工程技术,2018.3:85-88[12]鲁刚强.基于液晶显示器的单片机系统设计[J].科技资讯,2008,27(08):35-70[13]谭浩强.C程序设计[M].北京:清华大学出版社,1999.5:88-100[14]胡学海.单片机原理及应用系统设计[M].电子工业出版社,2007.6:112-135[15]耿永刚.单片机技术与应用[M].上海:科学技术出版社,2012.9:88-100[16]张振荣.单片机原理及实用技术[M].北京:人民邮电出版社,2000.3:10-13[17]沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005.7:30-35[18]温宗周.单片机原理及接口技术[M].北京:中国电力出版社,2009.4:89-110[19]薛纪文.C语言程序设计教程[M].电脑知识与技术,2003.6:40-66[20]曲波.工业常用传感器选型指南[M].北京:清华大学出版社,2002.6:22-28[21]陈鸿茂.常用电子器件简明手册[M].中南矿业大学出版社,2001.8:88-103[22]朱华光.LCD1602的编程技巧[J].电脑知识与技术,2010,22(13):14-18

附录1源程序清单#include<reg52.h>#include<intrins.h>#include<stdio.h>#include<math.h>#include"delay.h"#include"i2c.h"sbitRS=P2^4;sbitRW=P2^5;sbitE=P2^6;sbitRES=P2^3;sbitPSB=P2^1;sbitPAUSE=P3^0;unsignedchartemp[8];floatnum,i;floata,b;doubledata3;#defineDataPortP0//MCUP0<>LCM#defineAddWr0x90//写数据地址#defineAddRd0x91//读数据地址sbitkey1=P1^2;sbitkey2=P1^3;sbitkey3=P1^4;externbitack;unsignedcharReadADC(unsignedcharChl);bitWriteDAC(unsignedchardat);/*检测忙位*/voidCheck_Busy(){RS=0;RW=1;E=1;DataPort=0xff;while((DataPort&0x80)==0x80);//忙则等待E=0;}/*写命令*/voidWrite_Cmd(unsignedcharCmd){Check_Busy();RS=0;RW=0;E=1;DataPort=Cmd;DelayUs2x(5);E=0;DelayUs2x(5);}/*写数据*/voidWrite_Data(unsignedcharData){Check_Busy();RS=1;RW=0;E=1;DataPort=Data;DelayUs2x(5);E=0;DelayUs2x(5);}/*液晶屏初始化*/voidInit_ST7920(){DelayMs(40);//大于40MS的延时程序PSB=1;//设置为8BIT并口工作模式DelayMs(1);//延时RES=0;//复位DelayMs(1);//延时RES=1;//复位置高DelayMs(10);Write_Cmd(0x30);//选择基本指令集DelayUs2x(50);//延时大于100usWrite_Cmd(0x30);//选择8bit数据流DelayUs2x(20);//延时大于37usWrite_Cmd(0x0c);//开显示(无游标、不反白)DelayUs2x(50);//延时大于100usWrite_Cmd(0x01);//清除显示,并且设定地址指针为00HDelayMs(15);//延时大于10msWrite_Cmd(0x06);//指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位,光标从右向左加1位移动DelayUs2x(50);//延时大于100us}/*显示用户自定义字符*/voidDisplayCGRAM(unsignedcharx,unsignedchary){switch(y){case1:Write_Cmd(0x80+x);break;case2:Write_Cmd(0x90+x);break;case3:Write_Cmd(0x88+x);break;case4:Write_Cmd(0x98+x);break;default:break;}Write_Data(00);Write_Data(00);}/*显示字符串x:横坐标值,范围0~8y:纵坐标值,范围1~4*/voidLCD_PutString(unsignedcharx,unsignedchary,unsignedchara[8]){unsignedchark=0;switch(y){case1:Write_Cmd(0x80+x);break;case2:Write_Cmd(0x90+x);break;case3:Write_Cmd(0x88+x);break;case4:Write_Cmd(0x98+x);break;default:break;}while(k<9){Write_Data(a[k]);k++;DelayUs2x(50);}}/*清屏*/voidClrScreen(){Write_Cmd(0x01);DelayMs(15);}/*显示图片*/voidLCD_PutGraphic(unsignedcharcode*img){inti,j;//显示上半屏内容设置for(i=0;i<32;i++){Write_Cmd(0x80+i);//SET垂直地址VERTICALADDWrite_Cmd(0x80);//SET水平地址HORIZONTALADDfor(j=0;j<16;j++){Write_Data(*img);img++;}}//显示下半屏内容设置for(i=0;i<32;i++){Write_Cmd(0x80+i);//SET垂直地址VERTICALADDWrite_Cmd(0x88);//SET水平地址HORIZONTALADDfor(j=0;j<16;j++){Write_Data(*img);img++;}}}/*设置到绘图模式*/voidSetGraphicMode(){Write_Cmd(0x36);//选择8bit数据流图形模式DelayUs2x(20);}/*主程序*/main(){unsignedchari,j;Init_ST7920();while(1){ LCD_PutString(0,1,"长");LCD_PutString(0,2,"宽");LCD_PutString(0,3,"S");while(key1){i=ReadADC(0);if(i>=20&&i<=31){num=-2.5*i+130;}elseif(i>=31&&i<=39){num=-1.428*i+95.714;}elseif(i>=39&&i<=48){num=-1.111*i+83.333;}elseif(i>=48&&i<=54){num=-0.833*i+70;}elseif(i>=54&&i<=69){num=-0.357*i+44.286;}elseif(i>=69&&i<=90){num=-0.227*i+35.455;}elseif(i>=90&&i<=126){num=-0.147*i+28.235;}a=num;num=num*100;temp[0]='0';temp[1]=(int)num/1000+'0';temp[2]=(int)num/100%10+'0';temp[3]='.';temp[4]=(int)num/10%10+'0';temp[5]=(int)num%10+'0';temp[6]='c';temp[7]='m';temp[8]='';LCD_PutString(2,1,temp);DelayMs(50);}while(key2){i=ReadADC(0);if(i>=20&&i<=31){num=-2.5*i+130;}elseif(i>=31&&i<=39){num=-1.428*i+95.714;}elseif(i>=39&&i<=4

温馨提示

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

评论

0/150

提交评论