为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

金属探测器本科生毕业论文

2018-09-23 50页 doc 1MB 13阅读

用户头像 个人认证

北溟愚鱼

暂无简介

举报
金属探测器本科生毕业论文 金属探测器毕业论文 摘 要 金属探测器是专门用来探测金属的仪器。广泛应用于工业生产、安检、娱乐等领域。这里我们设计的是一个基于单片机的手持金属探测器。它可以检测到人随身携带的金属物品,如小刀、钢笔甚至可以检测到香烟盒(内部有铝薄膜)。可随身携带,使用方便。 金属探测是根据电磁感应原理制成的,将一金属置于变化的磁场当中时,根据电磁感应原理就会在金属内部产生涡流,涡流产生的磁场反过来又影响原磁场,这种变化可以转换为电压幅值的变化,供相关电路进行检测。它也可以表现为振荡电路频率的变化,用检测频率的办法进行检测,这里使用的是后者...
金属探测器本科生毕业论文
金属探测器毕业论文 摘 要 金属探测器是专门用来探测金属的仪器。广泛应用于工业生产、安检、娱乐等领域。这里我们设计的是一个基于单片机的手持金属探测器。它可以检测到人随身携带的金属物品,如小刀、钢笔甚至可以检测到香烟盒(内部有铝薄膜)。可随身携带,使用方便。 金属探测是根据电磁感应原理制成的,将一金属置于变化的磁场当中时,根据电磁感应原理就会在金属内部产生涡流,涡流产生的磁场反过来又影响原磁场,这种变化可以转换为电压幅值的变化,供相关电路进行检测。它也可以现为振荡电路频率的变化,用检测频率的办法进行检测,这里使用的是后者,振荡部分由电容三点式振荡电路组成,产生的正弦波进行放大和脉冲转换电路,再送入单片机,由单片机探测它频率的变化。当遇见金属时由于电磁感应原理原先建立起来的振荡将受到影响,频率将发生变化,单片机探测到这种变化后进行报警。 本次金属探测器的设计还给它添加了接口可以和外围的系统进行通讯,这里实现了与液晶显示,键盘和AT89S52组成的外围数据处理与显示模块的通信,对前端探测到的数据进行再处理和分析,并将结果显示在液晶屏幕上,并可以通过键盘对前端的探测进度进行设置。 关键字:金属探测;电磁感应原理;单片机;涡流;振荡电路 ABSTRACT Metal detector is an instrument which use for detecting metal specially. it has been extensively used in produce ,Safety inspection, entertainment and so on. Here we designed a handheld metal detectors which based on the MCU. It can detect people carrying metal items such as knives,pens and even boxes of cigarettes (within the aluminum film). Portable, easy to use. It is made according to principle of electromagnetism induction. when we put an metal object around magnetic field with changing series. there will produce vortex inner metal object. The vortex will create magnetic field too. The new magnetic field will affect the old. The change can be convert into voltage signal for detecting by relative electrocircuit . It can also convert into frequency signal and be detected by frequency detector. Here we use the second method. The oscillation circuit part is composed by Capacitance three-point oscillation circuit. The signal created by the part is magnified first and then convert into impulse signal. Then it can be processed by SCM. SCM detect its frequency ,compare with the base frequency and then determine whether to worn. We add an interface to the detector. So it can communicate with other SCM system which content a lcd,a keyboard,a SCM. The SCM system can process the data more precisely and then display the result through lcd.the keyboard is used for user who want to set the detecting precision. Keywords:metaldetector;the principle of electromagnetism induction;SCM;vortex;oscillation circuit 目 录 11 引言 2 综述 3 3 方案论证 5 3.1 基于单片机的金属探测器的设计方案 5 3.2 MD—898K金属探测器 6 3.3 基于霍尔器件的数字金属探测器 6 4 总体设计 8 4.1 硬件电路设计 8 4.2 软件结构设计 9 4.2.1 前端程序结构设计 9 4.2.2 外围数据处理与显示程序结构设计 10 5 单元电路设计 11 5.1 振荡电路设计 11 5.2 放大电路和脉冲变换电路 12 5.3 单片机系统 14 5.4 外围设置与显示系统 15 6 软件模块设计 17 6.1 前端软件设计 17 6.2 外围数据处理与显示模块设计 20 7 实现与性能分析 23 7.1 硬件电路焊接与调试 23 7.1.1 振荡电路的焊接与调试 23 7.1.2 放大电路与脉冲转换电路的焊接与调试 24 7.1.3 单片机系统的焊接与调试 24 7.1.4 外围数据处理与显示模块的焊接与调试 25 7.2 软件模块的调试与集成 27 7.2.1 前端金属探测模块的调试与集成 28 7.2.2 外围数据处理与显示模块的调试与集成 30 7.3 系统性能分析 31 7.3.1 基准频率测定方法的优缺点分析 32 7.3.2 金属探测的精度 32 总结 33 致谢 34 参考文献 35 附录 36 附录一 系统实物图 36 附录二 系统总体电路图 37 附录三 防抖动键盘处理源程序 40 附录四 前端金属探测部分源程序 43 附录五 外围金属探测精度设置源程序 49 1 引 言 金属探测器是一中专门用来探测金属的仪器,除了探测有金属外壳或金属部件的地雷以外,还可以用来探测隐蔽在墙壁内部的电线、埋在地下的水管电缆,甚至能够地下探宝,发现埋藏在地下的金属物体。目前还广泛用于各种大型会议中心、汇展场管、体育场管公检法、监狱系统及娱乐场所的安全检查和工厂企业的防偷检查,甚至用于对高考禁带物品的检查。 金属探测器按其功能和市场应用的不同可分为以下几种:通道式金属探测器(简称安检门)、手持式金属探测器、便携式金属探测器、台式金属探测器、工业用金属探测器和水下金属探测器[4]。 世界上第一台金属探测器诞生与1960年,步入工业时代的最初的金属探测器主要用于工矿业,是检查矿产纯度和提高效益的得力助手,随着社会的发展,犯罪案件的上升,1970年金属探测器被引入一个新的应用领域——安全检查,也就是今天所使用的金属探测门的雏形,它的出现意味着人类对安全认识已步入一个新纪元。 20世纪70年代随着航空工业的迅速发展,劫机和危险事件的发生使航空和机场安全逐渐受到重视,于是在机场众多设备中,金属探测门排查违禁物品的重要角色。同样再0世纪70年代,由于金属探测门在机场安检中崭露头角,大型运动会、展览会及政府安全保卫工作中开始启用金属探测门。 20世纪80年代,监狱暴力案件呈直线上升趋势,如何及早预防并阻止暴力案件发生成了监狱管理工作中的重中之重,在依靠警员对囚犯加强管理的同时,金属探测门再次成为了美国、英国、比利时等发达国家监狱管理机构必备的安检设备;与此同时西方兴起的“探宝热”,也使金属探测器取得了长足的发展。 进入20世纪90年代,迅速升温的电子制造业成了这个时代的宠儿,大型的电子公司为了减少产品的流失、结束员工与公司之间的尴尬局面,陆续采用了金属探测门和手持金属探测器,作为管理员工行为、减少产品流失的利刃,于是金属探测器又有了它的新作用产品防盗。 “9.11”事件发生后反恐成为国际社会的一个重要的议。爆炸案、恐怖活动的猖獗使恐怖分子成了各国安全部门重点打击的对象。此时国际社会“安全防范”的认识也提高到了一个新的高度,受“9.11”事件的影响各行各业加强了保安工作的部署,金属探测器也成功渗透到公共娱乐场所等行业。然而此时简单的通道式金属探测门已不能完全满足安检要求,安检人员需要的是一种能准确判定物品藏匿位置的安检产品。于是多区位金属探测技术孕育而生,它的诞生是金属探测器历史上又一次变革,原来单一的磁场分布变成了现在互相叠加而又相对独立的多个磁场,在根据人体学把人体分为多个区段使之与人体相对应,相应的区段在金属探测门上形成相对的区域,这样金属探测门便拥有了报警定位功能。 又根据国务院发布<<单位内部治安保卫条例>>,监考人员在高考考又根据国务院发布<<单位内部治安保卫条例>>,监考人员在高考考场里使用金属探测器符合相关规定,它将作为一项常规载入我国考试监考制度中[4]。 金属探测器的工作原理简单的讲就是利用电磁感应原理,让交流电通过电感线圈,产生迅速变化的磁场,该磁场能在被检测的金属物体内部产生感生涡流[3]。涡流反过来有影响原来的磁场,引发探测器发声。 金属探测器自诞生至今40多年过去了,金属探测器经历了几代金属探测的变革,从最初的信号模拟技术到连续波技术,再到今天的数字脉冲技术,金属探测器简单的磁场切割原理被引入多种技术成果中。无论是灵敏度、分辨率、探测精度还是在工作性能上都得到了质的飞跃,应用领域也随着产品质量的提高延伸到多个行业。 2 综 述 金属探测器是基于电磁感应原理工作的,依工作方式主要有脉冲感应型、VLF(very low frequency)连续波型和LC振荡型三类。其中LC振荡型主要应用在小目标近距探测方面,已较少使用,目前广泛应用的金属探测器主要是脉冲感应型和VLF连续波型。脉冲感应型和连续波型金属探测器都是通过探测被测金属感应电流产生的二次磁场确定被测金属的有无及种类。脉冲感应型金属探测器检测波形为随时间指数衰减的波形。由于脉冲感应型检测波形的特殊性,在很大程度上限制了数字信号处理技术在脉冲感应型金属探测器中的应用。VLF连续波型检测波形为有特定相位滞后的正弦波,当前有很多数字信号处理算法适用于VLF连续波型,连续波型金属探测器具有广阔的发展前景。 VLF连续波型金属探测器中,接收线圈上的感生电压主要受介质的磁导率影响。铁磁性物质的磁导率很高,即μ>>1,如铸铁为200~400。非铁磁性物质的磁导率近似等于真空中的磁导率,部分非铁磁性物质<1,如铜、银的相对磁导率分别为0.99990、0.999974。部分非铁磁性物质>1,如铂的相对磁导率为1.00026。当铁磁性物质接近线圈时,线圈间介质磁导率偏大,接收线圈上的感生电压显著增大。当<1的非铁磁性物质(如铜、银)接近线圈时,线圈间介质磁导率减小,接收线圈上的感生电压值减小。当>1的非铁磁性物质(如铂)接近线圈时,线圈间介质磁导率增加,接收线圈上的感生电压的的电压幅值微弱增加[4]。 在技术进步的前提下,今日的金属探测器有能力作比以前更多、更为复杂的工作。整体来讲,当今的金属探测器已经出现了两种最具特色的技术功能。其中之一是金属探测器的网络化功能。具备了这种技术,人们可以在任何一个地方拨打该金属探测器,对仪器进行维修,分析所通过的人流量,并可根据治安的好坏或威胁的大小,调整金属探测器的工作灵敏度。所有这一切都可以远距离进行操作。金属探测器的另一个技术进步就是分段限时技术的出现,世界几大著名的金属探测器生产厂商,如EIPaso、CeiaUSA、Ranger&Metorex等,均投入了相当的资金从事这项研究、开发工作。它利用探测器的侧面或另一仪表盘上的灯光来指示或显示出人体中金属物品的近似位置,可以用在诸如法庭以及其他不允许发出声音的地方,虽然关闭了探测器的音量,但它仍能显示并提醒操作人员何时何处有金属物品存在。 金属探测器可以与其他的出入控制装置,如入口读卡机等整合在一起。银行业是该出入整合设备的最大客户。美国CeiaUSA公司董事长ScootDennision不久前曾经说过,他们公司已经开始着手为美国的几大银行安装整合式金属探测器。他们使用的是一种双门系统,它具备这样的功能:在第二道门打开之前,银行或其他机构借助于该系统就能够断定正在进入的人员是否携带有枪支等物品。在该系统中,金属探测器与CCTV、对讲电话系统、出入控制以及其他安全防范手段整合在一起。但是该金属探测器,也可以在独立的基础上与出入控制整合在一起。CeiaUSA公司业已开发出了一种新技术,能够在人员通过金属探测器的时候自动刷卡,不但能探测人员是否携带有武器,而且还能进行读写校验以确定人员是否能合法进入该场所。这种名叫MET卡的产品已于去年9月在美国上市,它借助于近发无线电技术,可使工作人员腾出双手,免去了手持劳作之苦。在读卡的基础上,该系统可根据工作性质、对象调节安全报警信号的阀值。如果你是一个警察,依法可以持有枪支,那么该系统就会自动降低报警的灵敏度;而对下一个通过探测器的一般人来说,金属探测器将自动提高或调整报警的灵敏度。MET卡也可以安装在门框中充当跟踪设备,用以防止贵重物品的丢失和被盗。 前面所讲的是金属探测器的最新情况,金属探测契经过40多年的发展其技术上已经发生了几次飞跃,人类已经步入到数字化时代,金属探测器也顺应这一时代的现状,无论是金属探测器的网络化还是出入整合技术,都需要强大的数字电路对信息进行分析处理,在进行传送控制。因此在这种前提下进行数字金属探测器的设计是顺应时代发展和需求的,本次金属探测器是一种基于单片机的数字金属探测器,其对金属的判断报警都是在数字单片机内完成的,可拓展性强,在对其加入外围功能电路后也能实现网络化和和出入整合。 3 方案论证 金属探测器的设计方案根据它的应用的不同而不同,这里引入两种与本次设计应用相进的金属探测设计方案,拿它们与我们的设计方案进行对比,以突显出彼此的优缺。 3.1 基于单片机的金属探测器的设计方案 正如综述里所说的数字金属探测器的设计是顺应时代发展,本次设计所要完成的任务是实现一个基于单片机的手持金属探测器。其模型如图3-1所示。可以看出它由四部分组成:高频振荡、信号放大、脉冲转换和信号的处理与报警,下面简单论述以下各个模块的功能。 1)高频振荡 这一部分是金属探测的基础,金属探测器的原理是:当金属物体置于变化的磁场当中时,金属内部就会产生涡流,而涡流所产生的磁场又会影响原磁场。高频振荡部分的任务首先就是产生变化的磁场,它往往由一LC振荡电路组成。其次,在遇见金属后由于金属内部涡流的存在,它的磁场会影响原有磁场,使原有振荡电路的振幅和周期都发生改变。这种改变经转换后送入单片机,单片机中有相应的程序对其进行分析判断。 2)放大电路 振荡电路所产生的正弦波信号的幅值是比较小的,因此需要放大才能进行再处理。 3)脉冲转换电路 这是本套设计方案所独有的,它是实现本次金属探测数字化的桥梁,单片机只能处理数字脉冲型号,因此振荡电路所产生的信号经放大不能直接送入单片机,这一部分只需要一个TTL门电路对放大电路输出的波形进行转换就行,简单但很重要。 4)信号处理与报警 这一部分是整个电路的大脑,所有的电路都是为它服务,这一部分也是整个探测器实现网络化或其他功能的桥梁。作为整个电路的大脑,它对整个电路所产生的信号做最终的处理,并根据处理的结果决定是否存在金属,是否要发出警报。这一部分处理能力的强弱影响这整个系统的性能。作为与外部进行沟通的桥梁,它可以将金属探测的信息发送给外围模块供他们进行进一步的处理,它同时也接收外围模块传送过来的控制信号,如对金属探测的精度或其他方面进行设置。 3.2 MD—898K金属探测器 图3-2[4]为MD—898K金属探测器的组成模块图,看上去在结构上和本次设计的金属探测器很相近,实际上它们存在本质的差别。首先,两者在设计思想上完全不同,MD—898K金属探测器是模拟信号处理的模拟金属探测器,而此次要实现的金属探测器信号的处理和报警都在数字单片机内完成。其次,在可拓展性方面MD—898K没有可拓展性而言,因为每一部分的单元电路紧密的联系在一起,即使可以扩展也要对整个电路进行从新设计,而且设计的难度相对很大,而本次设计,将频率信号转换为数字信号供数字单片机进行分析,单片机提供了很多I/O口可以很方便的和其他单片机进行通讯,加入串口通信模块后还可以直接和PC机进行通讯,借助于PC机强大存储和网络资源对数据进行再分析在处理,就可以完善金属探测的性能,并且借助于PC机的强大功能可以使探测的精度得到新的改善。 3.3 基于霍尔器件的数字金属探测器 图3-3[1]是另一种数字探测器的设计方案,虽然是基于单片机的数字式金属探测器,但是在探测原理上与本次采用的方法存在这很大的差别,它的基本思想是这样的,在电感线圈的中心固定一霍尔器件,用于探测磁场的变化并能将信号转换为电压信号,这样在没有遇见金属物体时送入单片机的电压是一固定值,当遇见金属物体时,由于电磁感应现象磁场强度会发生变化,这时霍尔器件将此变化转换为电压信号供单片机进行判断,霍尔器件产生的是一些连续的电压信号,磁场是周期性变化的因此传出的电压信号也是周期性连续变化的,所以需要波峰检测将其峰值检测出来通过模数转换变为数据信息送入单片机。因此单片机只是根据电压值的变化就能判断有无金属。 它与本次设计方案的不同在于,本次设计方案是检测振荡电路的频率变化来判断金属的有无,而图3-3所示的方案是检测磁场的变化,而且它是通过将磁信号转换为电信号,再通过波峰检测模数转换最后送入单片机,与此相比本此的设计方案就相对简单,不用霍尔器件和A/D转换这些昂贵的芯片,只需将振荡电路产生的正弦波进行放大,再用廉价的门电路对其进行脉冲转换就行。其次,在性能上还要优于图3-3的方案,因为磁场很容易受到外界的影响而发生变化,这样产生的电压信号是很不稳定的,相比之下进行振荡频率的检测就相对稳定。 图3-1 手持数字金属探测器原理框图 图3-2 MD—898K金属探测器原理框图 图3-3 基于霍尔器件的数字金属探测器 4 总体设计 总体设计将影响整个项目的实现,对整个项目的开发起着指导性的作用,因此总体设计的好坏影响深远,这里的软硬件方案都是经过再三的比较与分析才确定的,硬件和软件两个互相影响,协同工作实现系统的基本功能。由于硬件系统是基础,是软件系统得以运行的平台,因此将它放在前面,先依据硬件的总体设计方案,完成各个单元电路的设计与实现,接下来再根据软件模块的总体方案设计程序流程,在硬件电路的基础之上进行调试。但在设计之初两个部分都需经过认真的分析,确定总体方案后再分阶段进行实现。 4.1 硬件电路设计 硬件电路设计是进行软件设计的基础,是整个金属探测器中最位重要的部分。它设计的好坏决定着系统的稳定性和可扩展性。本次设计的金属探测器的框图如图4-1所示,包括五大部分:线圈振荡、信号放大、脉冲产生、中央处理和外围设置显示模块。 图4-1 手持数字金属探测器硬件设计框图 这四部分组合起来构成了一个基于单片机的开环金属探测模型。线圈振荡电路是基础,依靠它来进行金属探测,这一部分可以产生稳定的正弦波,但在遇到金属物体时正弦波的频率和幅度会发生变化。振荡部分产生的正弦波经放大后送入脉冲变换电路产生一定频率的脉冲,然后将其送如单片机。因此在前端振荡电路频率变化时这种变化同时将送入单片机,单片机进行分析判断后进行报警。外围控制模块的作用是,与前端单片机进行通讯,将获得的信息进行分析运算再进行显示并且通过键盘对前端金属探测的精度进行设置。 4.2 软件结构设计 硬件完成信号的产生与处理后,接下来的工作就全部由软件部分完成,软件系统的实现才能真正体现系统的价值,软件结构设计是软件实现的起点,它对整个软件部分的实现起指导作用,同时它也罗列出系统的所有功能。 4.2.1 前端程序结构设计 图4-2就是前端软件的结构图,从图中可以看出前端软件的主要作用是,频率测定、声光报警和通讯。它是整个金属探测模块的大脑,它分析判断前面功能电路传过来的频率信号对它进行分析判断最后决定是否发出检测到金属的警报。 图4-2 前端软件设计结构图 4.2.2 外围数据处理与显示程序结构设计 图4-3 外围数据处理与显示软件结构图 引入外围模块的目的是借助于PC机的强大资源或内置有大容量编程存储器的单片机进行数据分析与处理,从而加强和拓展金属探测器的功能。其次,引入了另一中金属探测的模式,那就是不需要一定去在现场进行金属探测,将这个任务分给在前端进行金属探测的探测小车,探测小车将探测到的信息通过无线模块即时的反馈给后台的处理系统,而这时的分析员只需坐在PC机前就回对前端的情况了如指掌。外围数据处理与显示模块的软件结构图如图4-3所示。 5 单元电路设计 单元电路设计是在硬件总体设计的指导下完成一个个小的功能电路的设计,在将各个部分组合起来实现一个整体的功能,因此每一个功能电路设计的好坏都将影响系统的整体功能。完成每一个功能电路的设计后,设计阶段才告以段落。这一部分的设计直接与实现紧密联系,器件参数的确定,电路板的焊接与调试,以及到最后的性能分析,都要用到这一部分的设计结果,因此这一部分的设计最有实际价值。 5.1 振荡电路设计 振荡电路部分采用的是电容三点式振荡电路,设计的主旨是在保证产生稳定振荡的前提下,使频率低于300KHz,这样的目的是为了金属探测器在进行工作时不受广播频段的影响。这部分的电路图如图5-1所示。 电路元器件参数是在满足主旨的情况下进行选取的。因此谐振回路中电容C1、C2和电感L的取值分别为0.22μf、0.47μf、500μh。其中电感值只是理论计算的理想值,实际中是用半径0.31mm漆包线绕20圈直径为6cm的线圈而构成的,电感值接近500uf但有一定范围的偏差。偶合电容选用两个10μf的独石电容,旁路电容Cb3选用47μf的铝电解电容。共射极反馈放大电路中的晶体管选用放大倍数超过50倍的cs9014。组装调试后振荡电路的实际频率为33KHz满足我们的要求。 电容三点式振荡电路的工作原理分析,假设将反馈回路断开,同时假如晶体管的基极以(+)极性信号,则BJT的集电极为(-)极性(共射极放大电路的反向放大特性),由于谐振回路的两个电容的一端同时接地,另一端串一电感所以两个电容的极性相反,即反馈端的为(+)极性,因此满足相位平衡条件[15]。电路中晶体管的放大倍数比较大且C1和C2的比值小于0.5,都有利于起振。由于反馈电压是从电容两端去出的对高次谐波的阻抗小,因此可将高次谐波滤除,所以输出的波形好。电容三点式振荡电路的频率为: [15] (5-1) 使用谐振回路中的电感线圈进行金属探测,当遇见金属是电感L1的Q值将发生变化,由电容三点式振荡电路的频率计算公式可以看出,电感增加时谐振频率减小,电感减小时谐振频率增加。电路的谐振频率同时也影响着检测金属的精度,当谐振频率高时线圈产 图5-1 电容三点式振荡电路 生磁场的变化率也就越高,根据电磁感应原理在金属内部产生的涡流就越大,同是涡流产生磁场对原磁场的影响也就越大。 5.2 放大电路和脉冲变换电路 放大电路和脉冲产生电路合起来产生一定频率的脉冲供单片机进行处理。电路原理图如图5-2所示。从振荡回路传过来的正弦波信号经过电压跟随器传送到差分放大电路针对其交流信号进行放大,放大后产生的电压信号送给TTL门电路对其进行整形以产生规则的脉冲波送入单片机。电压跟随器和差分运放均选用LM358。将集成运放的输出端和它的反向输入端相连就构成了电压跟随器,由于它的电压增益为“1”所以叫电压跟随器,它的特点是输入阻抗高输出阻抗低,因此起到隔离的作用,对其后的工作电路如同一个恒压源,又由于它的输入阻抗高就相当与对前级电路开路,这里引入电压跟随器的目的也是为了使振荡信号的产生和处理分开,使其互不影响。 放大部分的作用是对正玄交流信号进行无穷放大,LM358的反向端接受电压跟随器穿过来的电压信号,同向端和反向端接一5K的分压电阻,给与同向端并联的电阻并联一个10μf的电解电容的目的是为了使同向端保持一个稳定的直流分压,这样送往集成运放的差分电压信号就只是交流信号,在交流信号进行无穷次的放大,最终产生的是频率与正弦波频率相同的梯形波。 门电路选用的是74LS08(与门),用史密特触发器替换也可以,它对输入的梯形波进行逻辑运算在以TTL电平出运算结果,因此可以将梯形波转换成适合于单片机进行处理的脉冲波。 图5-2 放大与脉冲转换电路 使用LS08进行波形变换的原理图如图5-2所示,正弦波经过上图的放大模块后变为梯形波,梯形波经过LS08最后变换为标准的方波。 图5-3 波形转换 5.3 单片机系统 图5-4就是单片机处理系统,将频率探测、报警和通讯几个模块程序组合起来烧写进去,它就会按你事先编写好的步骤进行工作。 1)复位电路 REST引脚一但变成两个周期以上高电平所有的I/O口都将复位到“1”状态,编程地址计数器复位到000H,针对这一特点在按钮两端并联一10μf的电解电容,正极接电源,这样在按钮按下又释放后由于电容的充电可以在电阻两端维持至少两个时钟周期以上的高电平。 2)蜂鸣器 在给蜂鸣器的正极和负极分别通上高电平和低电平时蜂鸣器就会发声,因此你可以通过给蜂鸣器不同频率的电平来使它发出不同的声音。 3)单片机 单片机选用的是AT89C2051高性能CMOSE8位单片机,内含2K的可反复檫写的FLASH只读存储器和128B的随机存储器。由于本次金属探测器的设计,包括前端金属探测部分和后台数据处理和显示两个部分,因此在前断只需要一个容量不大的单片机进行振荡频率的测量、报警和通信,2K的AT89C2051足以满足需求。2051的“1”号记数器记录由LS08发送过来的脉冲信号,联合“0”号计数器来检测振荡电路的频率。再根据频率的变化激活相应的发光二极管和峰鸣器进行报警。 图5-4 前端金属探测部分单片机系统 5.4 外围设置与显示系统 图5-5就是外围设置与显示系统,它有三部分构成:键盘输入、液晶显示和单片机系统。 1)键盘输入 键盘采用的是2×3的按键阵列,如图5-6所示,该阵列键盘的工作原理是,将两条行线和3条列线接入AT89S52的一组I/O双向接口(比如:P1的低5为),在程序中通过给行线和列线先后输入,高电平低电平、低电平和高电平来判断是哪个按钮按下。例如给P1的低5位的电平信号为11000,假如现在第2个按钮按下则此时的管脚电平信号为01000,所以判断为第一行。再将P1的低5位置为00111,由于第2个按钮被按下,则此时的管脚电压为00101,所以可以判断是第2列,到此就可以判断是第1行第2列的按钮被按下了[10]。 2)液晶显示 引入液晶显示的目的主要是为了显示频率值、金属类型、精度设置时的一些提示语,其次,有了显示器对键盘的调试将更加方便。液晶显示的要求比较低,1602A内置有基本ASCII字符的显示编码,使用起来比较方便。且价格低廉可以满足需求。 3)单片机系统 单片机使用的是有8K容量FLASH的AT89S52,由于在这个模块要引进算法对数据进行再处理,在加上液晶和键盘的驱动程序,所以需要比较大的程序空间。 图5-6 阵列键盘原理图 图5-5 液晶显示器接线图 6 软件模块设计 硬件电路要完成的任务是,产生振荡,并将波形变换为能够被单片机处理的方波,接下来进行频率测定、报警、通讯等都要用程序实现最后烧入单片机。以下是各功能模块的软件设计。 软件模块是整个系统的灵魂,软件部分设计的好坏直接影响到系统的精度、可用性、方便性和智能性。好的软件上在实现系统功能的前提下尽可能的友好,方便用户的使用。金属探测器中的程序分为两个部分,前端软件模块和外围数据处理与显示模块,前端软件完成的是一些比较基础的工作,如振荡频率的检测,比较,报警等,它与底层的硬件关系比较密切所以采用汇编语言进行编写,而外围数据处理与显示模块是进行数据的再处理的,是更高一层的分析与判断,它直接处理由前端模块传过来的数据,对其进行处理显示。它的程序量比较大,包括键盘的驱动和液晶的驱动,所以选择模块性比较强的c语言进行编写,两个模块结合起来实现了一个更加方便、智能的数字金属探测器。 6.1 前端软件设计 前端软件负责频率的测定、频率的比较、报警以及与外围模块的通信,程序流程图如图6-1所示。 1)频率获得 获得频率是通过定时器T0和计数器T1两个协同工作而完成的。程序中所使用的频率不论是基准频率还是新探测的频率,都是50ms内所获得的脉冲数。这对此次设计的手持式金属探测器已经足够了,要想提高精度,一是延长获得脉冲的时间,二是减小△PRISE(它是频率波动的范围,如果超出此范围则报警)。 2)获取基准频率 基准频率的获得至关重要,因为它一经获得将作为判断有无金属的基准。其值的可靠性将影响整个程序的健壮性。基准频率的获得是按照如下方法获得的,如图6-2所示。 图6-1 前端金属探测主程序流程图 F_COMM:标志是否进行通讯;F_COMP:标志比较的结果;F_FR:标志基准频率是否成功获得 F_FR:标志是否已经顺利获得基准频率。F_COMM:后台是否发送通信请求。F_OK:标志通讯已建立。F1:新获取的频率。F基准频率。 图6-2 基准频率测定程序流程图 3)比较模块 比较模块的程序流程图如图6-3所示,比较模块比较重要,程序通过它它来判断是否要发出警报和发出什么样的警报,可以修改传入给它的参数来改变金属探测的精度。 4)精度设置模块 精度设置模块的程序流程图如图6-4所示,精度设置是通过改变传入给比较模块的△PRISEH,△PRISEL的值来改变精度的,如果△PRISEH,△PRISEL的值设置的都比较大则对微小的频率变化系统不会发出警报。 图6-3 频率比较程序流程图 图6-4 精度设置程序流程图 6.2 外围数据处理与显示模块设计 1)液晶显示 液晶显示模块是严格按照产品操作的时序图编写的驱动函数,共分为两大类函数,指令的读写和数据的读写,只要将操作位和数据位按照时序严格的结合在一起就可以完成数据的显示。用户只需要调用封装好的显示函数:DisplayOneChar(显示单个字符)、DisplayListChar(显示一个字符串)、Displayarray(显示一字符数组)。 2)键盘接受 键盘是输入设备,用它来实现人机交互,让机器更好的按人的要求去工作。这里引入键盘的目的是,1进行金属探测精度的设置;2在进行数据通讯时进行控制。由于键盘普遍存在抖动现象,如果抖动现象处理不好,会发生意想不到的结果。为了防止抖动,在程序设计中采用了,一次键位判断,两次键位检测的方法,每一步骤间隔5ms,每次键位确定需要15ms,在检测与接受过程中每一步骤出现错误都将从新开始验证,因此保证了对用户输入的无误接受。键盘接受模块的程序流程图如图6-5所示。 3)键盘处理模块 键盘处理模块在判断是哪个键按下后,就立即引发相关的操作来满足用户的需求。同时键盘处理模块也展现出了系统提供给用户的所有功能。精度设置部分程序流程图如图6-6所示。 图6-5 键盘接受处理程序流程图 图6-6 设置数据与前端单片机的通讯图 7 实现与性能分析 前面所有的准备都是为这一阶段作准备,这一部分的内容也将是最重要,最烦琐,最能考验人意志的。首先你需要来回奔走于电子市场,去准备器件,一次是绝对不会准备好所有的器件的,因为在调试时时常会发生与你预想的结果不一致的情况,或许在这个阶段你还要进行方案的局部修改,我就是这样。其次,调试工作考验人的细心与耐心,梢有不甚就可能烧毁器件,比如将单片机接反、电解电容接反、电源线接反、器件管脚焊接不对、电路板短路等等一系列由于不细心造成的后果。然而这个阶段也是最锻炼人的阶段,这一部分的经历将最深刻最让人难以忘怀。因为在没有登山之前你绝对体会不到登山的滋味,只有亲自爬一次山你才会体会到什么是爬山,而这个时候任何人对爬山的描述对你来说也都不重要了,这一阶段就好比爬山,道路越艰险,最后的成就感越大。 7.1 硬件电路焊接与调试 硬件电路的调试我分为四个阶段:振荡电路的焊接与调试、脉冲转换电路的焊接与调试、单片机处理系统的焊接与调试和外围单片机系统的焊接与调试。 7.1.1 振荡电路的焊接与调试 1)所需器件 面包板一个、三极管(cs9014)一个、10μf偶合电容两个、47μf旁路电容一个、谐振电容0.22μf和0.47μf各一个、自绕电感线圈一扎、33K、20K、1.3K、2K电阻各一个。 2)电感绕制 选用半径为0.31mm的漆包线,绕成半径为3cm的线圈,绕制20圈。在电感测量仪上测量其电感值大约在500μf左右,用手使线圈间距边小,线圈的电感值会相应的增大,最后用胶带纸将线圈缠在一起使它们之间的间距相对固定,这样电感值保持在500μf,误差在10μf以内。 3)调试 所有的器件准备好并焊接在面包板上,按照电路图检查各器件件的连接情况无误后,进行上电调试。振荡电路的起振都没有问题,可以产生幅值越为0.2V、频率接近33KHz的正弦波。 4)出现的问题与解决方法 (1)可以产生稳定的正弦波,频率符合,但是幅值偏小。将C1(0.47μf)、C2(0.22μf)的两个谐振电容进行调换以后,正弦波的幅值明显增加,增为0.5V,频率不变。 (2)信号的直流分量不是一个固定的值而是在2.0V~2.4V之间进行周期性的变化,先从2.4V减到2.0V,再变为2.4V就这样周期性的变化。这个问题是在信号放大部分解决的。 7.1.2 放大电路与脉冲转换电路的焊接与调试 这一部分多为集成电路只需按照放大电路的要求进行连接连接就可以。 1)所需器件 面包板与上面共用,LM358(内置两个放大器)一片、74LS08(内置4个与门)一片、10μf铝电解一个、5K、500K电阻各一个。 2)调试 振荡电路产生的正弦波不能直接进行脉冲波的变换,因为它的幅值太小,所以必须经过放大电路的放大。由于上面出现的电压不稳定问题,因此这里的放大电路只对信号的交流分量进行无穷放大。信号经电压跟随器进入LM358的反向端,同向端与反向端之间接一5K的电阻,而同向端则通过分压器分得与反向端成固定比例的电压。这样可以使同向与反向之间要进行差分放大的部分保持相对不变。在加上在同向端并联一10μf的旁路电容,它可以短路交流信号,因此同向端可以保持一个固定的直流分量,而交流分量通过差分放大器进行无穷次的放大。信经此放大电路后变换为与前面正弦波频率相等的梯形波幅值为3.7V,如图3-1。转换为幅值为3.7V梯形波后,在将其转换为单片机可以处理的脉冲波就相对容易了。简单的处理就是通过一TTL门电路,TTL门电路可以将逻辑运算的结果转换为TTL电平(5V),这里选用的是74LS08(与门),当然史密特出发器,其它的门电路都可以完成这样的转换。将与门的一端接入5V电源另一端接放大电路的输出端。转换的结果如图5-3所示。 3)出现的问题与解决方案 如果放大电路不是采用上面的接法,而是将同向端接一电阻接地或是从电源经一分压器得一固定的分压,那么也可以产生梯形波不过它是不稳定的,表现为波峰和波谷之间进行周期性的转换,比如开始波峰占2/3周期波谷占1/3周期,过一会波峰占1/3波谷占2/3,最后到波峰消失,而后又回到初始状态,这种现象对脉冲变换和最后的频率检测都是不利的,更可怕的是会由于波形的不稳定而造成意想不到的结果。比如在没有碰到金属时发出警报。 7.1.3 单片机系统的焊接与调试 单片机系统的焊接与调试往往是放在最后一个环节,这是由于单片机系统的作用是进行控制和数据的处理,因此在对它进行调试之前,被控制的功能电路必须已经调试完毕,并能将信号发送给单片机供单片机进行分析判断,最后将控制信号从I/O口输出。 1)所需器件 AT89C20511个、30pf陶瓷电容两个、12MHz石英晶体振荡器1个用于振荡电路,按钮1个、10μf铝电解1个、10K电1个用于复位电路,1个蜂鸣器、2个发光二极管用于报警。 2)调试 要使单片机系统进行工作,必须要有振荡电路,以提供时钟信号给单片机。这里采用石英晶振,它有6MHz、12MHz、11.059MHz的不同类型,用户可以根据需要进行选择,一旦确定,单片机的主频就确定,机器周期为主频的1/12。这里用到的无论是前端探测的单片机系统还是外围数据处理与显示的单片机系统都选用12MHz的石英晶振。单片机系统的测试与其它电路的测试不同,你需写一段小的测试程序,编译后烧写到单片机的程序存储器中,看其运行情况,这里我做了一个小小的灯光闪烁程序。 3)AT89C2051介绍 AT89C2051是ATMEL公司生产的低电压,高CMOS8位单片机,片内含有2KB的可反复察写的只读程序存储器和128BYTES的随机存取数据存储器 (RAM),15个I/O口线,两个16位定时计数器,一个5向量两极中断结构,一个全双工串行通信口,内置一个精密比较器,片内振荡器及时钟电路。同时,AT89C2051可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容MCS-51指令系统,片内置通用8位中央处理器和flash存储单元。 4)出现的问题与解决方法 要让单片机执行程序存储器内的指令,必须使单片机的EA/Vpp管脚置为高电平。开始没有注意这一点,直接将闪烁程序烧入单片机,发现灯一直亮但不闪烁(复位后个管脚将置4为高电平),开始还以为是延时的问题,但到后来延时已设的很长还是没有闪烁。最终才发现上由于该管脚没有接高电平。该管脚要是接地的话执行的是片外的程序。 7.1.4 外围数据处理与显示模块的焊接与调试 1)所须器件 单片机系统与前面焊接的单片机系统一样,只不过这里的CPU用的是AT89S52,另外还需要型号为SMC1602A,容量为16×2个字符的液晶显示器,和用于输入用户需求的2×3按键阵列。 2)AT89S52介绍 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 3)调试 液晶和键盘的调试都是建立在单片机系统的基础之上的,也就是说它们需要单片机执行程序来进行控制。在保证单片机系统正常运行后首先调试的是液晶,这样是为了调试键盘做准备。液晶显示器的调试主要在于编写的液晶驱动程序,因为不同的液晶显示器它的控制时序和控制字是不同的,因此必须针对不同型号的液晶显示器采用与之匹配的驱动程序。 1602A液晶显示器的操作时序为: 读状态:输入:RS=L,RW=H,E=H, 输出:D0-D7=状态字 写指令:输入:RS=L,RW=L,E=高脉冲H, 输出:无 读数据:输入:RS=H,RW=H,E=H, 输出:D0-D7=数据 写数据:输入:RS=H,RW=L,E=高脉冲, 输出:无 1602A的初始化过程为: (1)延时15ms; (2)写指令38H(不检测忙信号); (3)延时5ms; (4)写指令38H(不检测忙信号); (5)延时5ms; (6)写指令38H(不检测忙信号以后每次读/写操作之前均要检测忙信号); (7)写指令38H显示模式设置; (8)写指令08H显示关闭; (9)写指令01H显示清屏; (10)写指令6H显示光标移动设置; (11)写指令0CH显示开及光标设置[11]; 液晶显示器的VDD和VO之间接了一个10K的电位器是用来调节对比度用的,在对液晶调试的过程中应尽量使对比度大,也就是使VO端的输出端电压低。其次,液晶显示器在没有给它输入正确的数据的时候,屏幕的一半是黑屏,这不能说液晶显示器坏了,恰恰相反,它说明了液晶显示器是好的你需要检查你的程序。最后液晶显示器的初试化也很重要,应按照datasheet上面所给的初始化顺序和延时时间来严格进行,如有不慎,也会出现半边黑屏的情况。 键盘采用的是2×3的按键阵列,键盘的调试,是在液晶调试完毕后,这样可以借助于液晶来判断键盘按下是否会有响应。一遇到键盘都会涉及到键盘的防抖动问题,键盘的防抖动有两种方法:一种是硬件方法,那就是在硬件电路里加延时来去掉抖动。另一种方法是软件方法,就是在对键盘扫描采用一定的方法和延时来防止抖动。本次设计采用的是软件的方法,将在软件调试中进行详细的论述。 4)出现的问题和解决方法 (1)在一开始调试液晶时发现液晶屏幕上即没有显示的字符,也没有出现半边黑屏的现象,以为是接法不当将液晶显示器给烧了,其实事实不是这样,每个1602的使用电路中都会要求配一个电位器,它是用来调整液晶的偏压的,最后的结果是可以提高或降低液晶的对比度,必须选择适当的偏压,因为偏压过大就会出现刚才所说的现象,偏压过小就会出现“鬼影现象”,两个都不是我们所期望的。但是在一开始调试液晶的时候,建议将偏压调制最小,这样无论如何它会有所显示,当你将液晶全都验证好时再将偏压调制适中。 (2)也是液晶问题,出现黑屏以后,发现无论送给液晶什么数据它都是黑屏,没显示任何字符串,最终决定让它只显示一个字符,但是还是黑屏。检查电路后发现,原来是将P0_9接为P0_10,由于P0_10是管脚EA/VPP它是接电源的,也就是说给液晶显示器第8位数据管脚的电平时刻为高,这样在你将要显示的字符送给液晶显示器时,这个字符很可能就不是ASCII字符,所以无法显示出现黑屏。因此总结出调试液晶时应该注意的问题,首先,若在在调试时液晶出现黑屏,那说明液晶显示器是好的,你应检查你的程序和电路,如果没有出现黑屏,你应该调节电位器使偏压减小以至有所显示。其次,如果出现黑屏你应该检查三点两点,一个是液晶显示器的初始化,看初始化指令字调用的顺序对不对,中间必要的延时加没加。另一个是保证向液晶传入数据的数据端口无误。最后一个是,看你读写的时序和控制字的电平是否严格按照产品说明上的要求。 7.2 软件模块的调试与集成 程序部分的调试采用的是从下到上逐步集成的思想,先将各个小的模块验证成功,在将它们集成为一个大的模块进行验证,最后到整个系统的集成调试。这里进行程序开发所使用的工具是keil第二版。在进行调试时程序要不停的写入单片机进行即时的验证,所以必备烧写程序的工具,这里使用的是TOP2000烧写器和它的配套烧写软件。 7.2.1 前端金属探测模块的调试与集成 程序的作用是对硬件电路传过来的电信号进行分析、处理、判断最后发出控制信号。这一部分软件的主要功能是频率的检测与报警。由于这一部分所用的单片机编程存储空间比较小,且程序的数据来自于底层的电路信号所以选用MCS—51汇编指令来进行变成。 1)频率检测 从示波器上可以看到振荡的频率大约为33KHz,这里的频率探测是以50ms为一个单位,也就是50ms内计数器1所记录的脉冲数。并以此值作为判断有无金属的依据。在程序中将每次获得的频率值存到两个内存单元中,一个存高8位,一个存低8位,使用的时候只需到固定的内存单元中进行读取。 2)频率的分析计算 由于频率值分存在两个内存单元,为16位,因此对它的处理都是另外编写的16位运算,其中包括加法、比较。比较程序的程序流程图详见第二章,比较程序的结果保存在自定义的标记中,主程序中就是根据比较子程序的结果来判断是否有金属。 3)数据通信 外围与前端单片机之间通信的信息多为16位的频率值,在进行数据接受时,使用一标志,用来完整的接受16为数据。串口通讯的方式选择方式2(异步通讯),无奇偶校验。 4)出现的问题与解决方法 (1)在用MCS—51编写程序时,立即寻址时,一定要在立即数前加“#”否则的程序将以直接寻址的方式对待,造成不可预料的错误。 (2)频率测定时要不停的使用定时器,因此不停的要引发定时器中断,在编程的过程中曾经出现过定时器中断处理程序只能被引发一次,而后面即使发生中断,也不会执行中断处理程序的现象。结果发现原来是将RETI写为RET的原因,RETI除了执行RET的指令功能外,还清除内部响应的中断状态寄存器因此中断服务子程序必须以RETI为结束指令。 (3)写延时指令时需小心死循环。此次调试过程中曾经出现过这样的情况,开始不知道问题的原因所在,最后在每一步设标志才找出原因。 5)定时计数器的使用介绍 定时器的结构图如图7-1[9]所示,其中TCON用于控制定时/计数器T0和T1的启动和停止,同时包含定时/计数器的状态,它属于特殊功能寄存器其内容靠软件设置,系统复位时寄存器的所有位都被清零。定时计数器的工作方式是在TMOD寄存器中设置的,TMOD 图7-1 定时/计数器原理框图 和TCON的格式如图7-2[9]所示,模式设置组合如表7-1[9]由于这里只用到方式1所以对方式1加以说明,方式1的结构如图7-3[7]所示,方式1为计数器THX作为高8位TLX作为低8位,定时时间=(216-T0初值)×时钟周期×12[7],因此要定时50ms需给定时器T0的初值为D8F0H。 图7-2 定时/计数器的控制字格式 表7-1 模式设置组合 M1 M0 功能选择 0 0 方式0,13位定时/计数器 0 1 方式1,16位定时/计数器 1 0 方式2常数自动装入寄存器 1 1 仅适用于T0,分为两个8位计数器,对T1停止计数 图7-3 T0定时计数器的工作原理图 7.2.2 外围数据处理与显示模块的调试与集成 这一部分的程序是用C语言来写的,原因是这一部分的程序量,大倾向与数据处理而非底层的电路控制。 1)键盘模块的调试 键盘模块包括键盘输入的接收和键盘输入的处理,两个部分相互依赖。键盘接收部分采用了软件防抖动技术其基本原理如图7-4所示。 2)出现的问题 按键在按下的瞬间,它不是产生一个完整的脉冲信号,而是带有无数个毛刺的信号序列,要是不加防抖动处理或是防抖动处理的不好,那么程序接收到的将是按键多次按下,这样会产生意想不到的错误。在外围处理模块有一个精度设置模块,一个精度“加”按钮,一个精度“减”按钮,一开始程序的防抖动是这样的,没有延时,只有行列值确定和一次校验,最后按下“加”键后,液晶上显示的数值从初始值一直往上加,按下减值后数值有一直往下减。最后加二次检验和延时后这种现象消失了。原因是改进后的代码每进行一次键位的确定都要经过3个步骤,每个步骤5ms,这三步骤必须同时满足,才能确定一个键位的按下,要是其中那一步出现了问题都会重新开始,这样就避免了很多干扰和脉冲中的毛刺。 图7-4 防抖动键盘程序流程图 R:表示确定的行值;C表示确定的列值;J:最终确定键值;J1:第一次确定的键值;J2第二次确定的键值; 7.3 系统性能分析 这里主要分析一下影响系统探测精度的因素以及提高探测精度的方法。 7.3.1 基准频率测定方法的优缺点分析 基准频率测定所使用的程序流程图如图6-2所示,由图可知基准频率不是一开始就设定的固定值,而是在系统开始运行时进行即时测定的。当然在振荡电路确定后系统的振荡频率也就固定下来,那么为什么不选用这个固定值作为基准频率?只能说这两个方案各有利弊吧,如果一开始就将基准频率固定,那么系统要做的是“绝对金属的测量”,意思是说,一旦遇见金属使得振荡电路的频率发生改变,用这个变化了的频率与固定的频率进行比较,如果超出了改变的范围则进行报警。但是如果遇见这种情况,在一堆同类型金属中检测别的类型的金属时这种法就不行,那就要用到“相对金属测量”也就是本次所使用的方法,是在系统运行是对频率进行确定。这样基准频率将随着环境的不同而变化,所以它探测金属的情况,是在当前环境中去检测金属的,所以可以辨别不同的金属。 7.3.2 金属探测的精度 金属探测器根据应用的不同,会有不同的精度要求,决定这一点的是金属探测器本身的设计与实现。这里只对本次毕业设计所做的金属探测器的精度进行讨论。对与本次设计的金属探测器影响它精度的有三方面因素,首先是振荡电路的振荡频率与幅值;其次是频率的测量;再次时频率变化范围的确定(这决定频率超过什么范围才进行报警)。振荡电路的频率与幅值,是有振荡电路本身的设计方案决定的,一经实现就无法改变,因此这里只对后两者进行讨论,先说频率的测量,频率测量的问题是说你多长时间的脉冲数作为进行比较判断的频率,这一点很重要,它直接影响着测量的精度,你选择10ms、20ms、和50ms为单位所测的值,对频率变化所反映的程度是不同的,例如10ms和50ms相差5倍,如果遇见某金属使振荡电路的频率增加20,那么用10ms做单位的则探测不到这种变化,而使用50ms的则可以探测到,也就是说所选用的时间段越长探测的精确度越高。下来就是你在程序中设定的频率的变化范围,它用来报警,如果当前的振荡频率高出或低出基准频率某个值,那么就驱动蜂鸣器进行报警,很显然这个值设置的越大则探测的精度越小,用户也是通过这种方法来改变探测的精度的,他在键盘上增加或减小的值就是这个频率的变化范围。 总 结 本次所做的题目为手持数字金属探测器,经历了金属探测器原理分析、总体设计、实现调试和最后的项目改进5个步骤,充分体会到了进行电子产品开发的辛劳,也从中体悟到了如何从事工程项目的开发以及应该具备的品质。做完这次毕业设计后我身有体会,我觉得作为一个自然科学研究与学习的人员,首要具备的品质是冷静,要冷静的寻找问题的根源,冷静的面对任何突发的情况,只有这样你才能寻找更好的方法摆脱目前的困境,解决现存的问题。其次,要有足够的耐心,在进行工程的开发,尤其是电子产品的开发时,其过程中会暴露出许许多多的问题,你必须耐心对待这些问题,找出原因最后满足项目的要求。如过没有足够的耐心和勇气遇见挫折就开始心浮气躁,不知所措。那么要想顺利完成一件工程真是难上加难。 这里所使用的设计方案其实有很大的扩展空间,既然金属探测模块对外提供了一个数据接口,我们可以在这个接口之上添加一个无线的收发模块,单片机传过来的数据通过无线发送模块发送出去,接收模块通过一个串口连接到PC机,在PC机中用软件编写一个接收器,对接收过来的数据进行再处理。PC机具有强大的存储空间,这样可以引入更加复杂的算法来对数据进行处理,进一步准确的判断金属的类型,况且通过PC机还可以获得更加庞大的网络资源,可以借此对金属探测器的功能进行在扩大。还可以将前端金属探测模块做成一个探雷小车,小车在前方进行探测,而操作人员只需在很远处借助于一台PC机就会对前端的情形了如指掌。 其实还可以与更多的数字功能模块相连实现更加强大的功能,这就是数字探测器的魅力所在。 致 谢 毕业设计是一个重要的教学环节,也是对学生综合素质的一次考核,所要完成的任务对每个同学来说都是一次挑战。 这次能够顺利地完成手持数字金属探测器的设计与实现,离不开老师、同学和家长的支持,这里特别感谢我的指导老师朱宇副教授,没有他的多次指导和建议就不会有现在的成果,还有与我一起进行电子制作的伙伴们,没有我们彼此并肩作战,相互支持的氛围,同样不会有现在的成果。 由于本人时间比较仓促,本次毕业设计金属探测器,还有很大的扩展空间,这里提供了一个数字金属探测器的设计思想。若有不足之处还望指正。 参考文献 [1]范丽珍,李树华.基于单片机的智能型金属探测器设计[J].内蒙古大学学报自然科学版,2006 [2]刘慧娟,张奕黄.一种数字金属探测器的设计[J].北京交通大学仪器仪表学报,2004.8 [3]张学勇,赵群,李义宝,唐震.一种金属探测器的设计[J].安徽建筑工业学院学报,2007.6 [4]司德平.漫谈金属探测器[J].物理通报,2006.4 [5]李金平,沈明山,姜余祥.电子系统设计[M].北京:电子工业出版社,2007.8 [6]张庆双.电子元器件的选用与检测[M].机械工业出版社,2005.1 [7]张振荣,晋明武,王毅平.MCS-51单片机原理及实用技术[M].人民邮电出版社,2000.8 [8]胡辉.单片机原理及应用设计[M].中国水利水电出版社,2005.7 [9]秦实宏,周龙,肖忠.单片机原理与应用技术[M].中国水利水电出版社,2005.9 [10]胡学海.单片机原理及应用系统设计[M].电子工业出版社,2005.8 [11]张洪润,张亚凡.单片机原理及应用[M].清华大学出版社,2007.6 [12]李琼瑞.国外最新应用电路设计精选[M].电子工业出版社,2005.6 [13]黄智伟.全国大学生电子设计竞赛技能训练[M].北京航空航天大学出,2005.6 [14]李瀚荪.电路分析基础[M].高等教育出版社,1993.6(3) [15]康华光.电子技术基础[M].高等教育出版社,1999.6(4) [16]http://www.eefocus.com/ [17]http://www.21ic.com/ [18]http://www.avrw.com/ 附录 附录一 系统实物图 附录二 系统总体电路图 附录三 防抖动键盘处理源程序 void EnterAccept() { scankey=KBD_PORT; if(scankey^0xe3) { keypress=1; } else { keypress=0; } switch(fsm_key) { case FSM_INIT: //键盘初始化,开始一执行就可以进入键盘检测程序段 KBD_PORT=0xe3; fsm_key=FSM_WAIT_PRESS; break; case FSM_WAIT_PRESS: //键盘监测,如果有按键按下,则判断是哪一个被按下去了(主要是通过判断行与列而得到) if(keypress) { // 若有键按下先判断是那一行 key_val=7; if(KR0==0){ kbd_row=0; //记录是那一行 } else if(KR1==0){ kbd_row=1; } else { fsm_key=FSM_INIT; } KBD_PORT=0xfc; //寄存器的高四位变F低四位变为0,用于检测是哪一列 if( KBD_PORT^0xfc) { if(KC0==0){ fsm_key=FSM_VERFY1;//下一个时间段为确认时间段 kbd_col=0; //记录列号 } else if(KC1==0){ fsm_key=FSM_VERFY1; kbd_col=1; } else if(KC2==0){ fsm_key=FSM_VERFY1; kbd_col=2; } else{ fsm_key=FSM_INIT; //如果无按键被按下则返回初始化状态 } } else{ fsm_key=FSM_INIT; //如果无按键被按下则返回初始化状态 } } break; case FSM_VERFY1: switch(KBD_PORT) { case 0xf8: key_val1=kbd_row*3+kbd_col; break; case 0xf4: key_val1=kbd_row*3+kbd_col; break; case 0xec: key_val1=kbd_row*3+kbd_col; break; default:key_val1=7; break; } KBD_PORT=0xe3; //还原到初始的检测状态 fsm_key=FSM_VERFY2; break; case FSM_VERFY2: switch(KBD_PORT) { case 0xe2: key_val2=kbd_row*3+kbd_col; break; case 0xe1: key_val2=kbd_row*3+kbd_col; break; default:key_val2=7; break; } fsm_key=FSM_WAIT_RELESE; break; case FSM_WAIT_RELESE: if(!keypress) { //若键盘未释放,则继续保持在键盘释放状态 fsm_key=FSM_INIT; } setDally(4); break; default: fsm_key=FSM_INIT; break; } if(key_val1!=key_val2) { key_val=7; } else { key_val=key_val1; key_val1=7; key_val2=7; } } 附录四 前端金属探测部分源程序 ORG 0000H LJMP START ORG 000BH ;定时器T0中断程序入口 LJMP TT0 ORG 0013H AJMP INTT1 F_COMM EQU 23H ;标志是否要进行通讯 F_FR EQU 20H ;标志基准[频率是否顺利获得 F_DF EQU 21H ;标志是否以获得新探测到的频率 F_W EQU 22H ;标志警报的类型(逆磁性还是顺磁性) F_COMP EQU 24H ;标志探测的频率是否在正常的频率范围 F_OK EQU 25H F_CHANGE EQU 26H PRISEH EQU 49H PRISEL EQU 50H START: MOV SP,#60H MOV P3,#0FFH MOV P1,#0FFH MOV TMOD,#51H MOV SCON,#80H MOV PCON,#80H SETB ET0 SETB EX1 SETB IT1 SETB EA CLR F_COMM CLR F_FR CLR F_DF CLR F_COMP CLR F_OK CLR F_CHANGE MOV PRISEH,#2 MOV PRISEL,#1 CLR P1.6 MOV R4,#40 ;r4用来装延时的时间(5ms的整数倍 ) LCALL DALLY LCALL FR_DETECT S1: JNB F_FR,S1 CLR F_DF S2: LCALL START_DETECT S3: JNB F_DF,S3 CLR F_DF JNB F_COMM,SS9 JNB F_OK,SS10;如果通讯标志为一则发送接通信号 MOV R5,#01H MOV R6,#01H LCALL DATACOMM CLR F_OK SS10: ACALL P_SET JNB F_CHANGE,SS9 CLR F_CHANGE MOV R5,#01H MOV R6,#01H LCALL DATACOMM SS9: MOV R4,PRISEH MOV R3,PRISEL ;R3,R4用来向比较函数传递参数 MOV R5,40H MOV R6,41H LCALL FR_COMP JNB F_COMP,S2 JNB F_COMM,SS7 MOV R5,42H MOV R6,43H ACALL DATACOMM SS7: MOV A,40H CJNE A,42H,SS1 AJMP SS8 SS1: JC SS2 ;如果比基准频率大则清零F_W SS4: SETB F_W AJMP SS5 SS2: CLR F_W AJMP SS5 SS8: MOV A,41H CJNE A,43H,SS6 SS6: JC SS2 AJMP SS4 SS5: ACALL WORNING AJMP S2 WADD: MOV A,R1 ADD A,R2 MOV R1,A JNC W1 INC R0 W1: RET WORNING:MOV 48H,#10 WO0: JB F_W,WO1 CLR P1.6 CLR P1.5 MOV R4,#8 ACALL DALLY AJMP WO2 WO1: CLR P1.7 CLR P1.5 MOV R4,#8 LCALL DALLY WO2: SETB P1.6 SETB P1.7 SETB P1.5 MOV R4,#10 ACALL DALLY DJNZ 48H,WO0 RET START_DETECT: MOV TH0,#0D8H MOV TL0,#0F0H MOV TH1,#0 MOV TL1,#0 SETB TR0 SETB TR1 RET ;确定基准频率 TT0: CLR TR1 CLR TR0 MOV 42H,TH1 MOV 43H,TL1 SETB F_DF RETI FR_DETECT: MOV R7,#10 ACALL START_DETECT FR1: JNB F_DF,FR1 CLR F_DF MOV 40H,42H MOV 41H,43H FR2: ACALL START_DETECT FR3: JNB F_DF,FR3 CLR F_DF MOV R3,#2 MOV R4,#2 LCALL FR_COMP JNB F_COMP,FR5 MOV 40H,42H MOV 41H,43H DJNZ R7,FR2 LCALL WORNING AJMP FR6 FR5: SETB P1.6 SETB F_FR FR6: RET DALLY: MOV R5,#50 D2: MOV R6,#80 D1: DJNZ R6,D1 DJNZ R5,D2 DJNZ R4,DALLY RET INTT1: CPL F_COMM SETB F_OK RETI DATACOMM;MOV SBUF,R5 DA1: JBC TI,DA4 AJMP DA1 DA4: MOV R5,#200 DA3: DJNZ R5,DA3 MOV SBUF,R6 DA2: JBC TI,DA5 AJMP DA2 DA5: RET ;比较模块判断测得的频率值是否在给定的范围内,如果在则返回0,不在则返回1. FR_COMP: MOV R0,40H;F10) { for(j=0;j0? n_plus<0? SET=1 延时 F_OK==1? F_OK=0 设置成功 返回� 设置失败 在ADD口发送n_plus个脉冲 在DEC口发送 -n_plus个脉冲 否 是 否 否 否 是 是 是 _1275217031.vsd � � � 确定行列 延时5ms 行列确定成功? 检验一 J1=R*3+C 延时5ms 检验一通过? 检验二 J2=R*3+C 延时5ms 检验一通过? JI==J2? J=J1=J2 返回 J=7 否 否 否 是 是 否 是 是 _1274933601.vsd � � � 延时� R0=10� 当前频率→F 获得当前频率F1� F1-2(42,43H)?� (44,45H)<(46,47H)?� F_COMP=0 返回 F_COMP=1� 否 是 否 是 _1274248761.unknown
/
本文档为【金属探测器本科生毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索