版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./WORD格式整理版金属内伤探测器设计研究摘要本文是基于单片机AT89S52,利用电感式接近开关传感器LJ18A4-10-Z/BD设计一个简易金属探测器用于检测金属存在并进行金属个数计数,包括硬件电路和软件设计两大部分。硬件电路由传感器外围电路和单片机外围电路构成。电感式接近开关传感器是一个感应金属物体的线性器件,型号为LJ18A4-10-Z/BD的接近开关在没有检测到金属时会输出一个电流值,但当检测到金属时,输出电流值会发生变化。传感器输出为电流信号,不能直接进行A/D转换,应通过电流电压转换电路,把传感器输出电流信号转换为满足A/D转换器PCF8591输入要求的电压信号。经过A/D转换后的数字信号,送入单片机处理。软件设计主要包括A/D转换、数据处理、LCD显示和报警程序四大模块。PCF8591采集系统开机电压U0和进入金属检测状态时的电压U<x>。数据处理主要完成电压值的精度转换,要求精确到小数后第二位;计算U0和U<x>差值,并判断电压差值和传感器预设灵敏度是否相等,从而判断是否检测到金属。当传感器检测到金属时,蜂鸣器报警,同时LCD显示已检测到的金属个数。关键词:金属检测;金属计数;单片机AT89S52;A/D转换器PCF8591;电感式接近开关LJ18A4-10-Z/BD.AbstractInthispaper,itistodesignasimplemetaldetectorthatcancounttheexistingmetalnumbersonthebasisofmicro-controllerAT89S52andinductiveproximityswitchsensorLJ18A4-10-Z/BD,includingthedesignofhardwarecircuitandsoftware.Thedesignofhardwarecircuitismadeupofthesensor’speripheralcircuitandthemicro-controller’speripheralcircuit.Inductiveproximityswitchislineardevicethatcaninducetheexistingofmetal.LJ18A4-10-Z/BDsensorwilloutputacurrentwithoutmeasuredobject.Untilitinducesmetal,theoutputcurrentwillbechanged.Becausetheoutputcurrentcannotbeconvertedtodigitalsignaldirectly,currenttovoltageconvertingcircuithastobeneeded,whichchangestheoutputcurrentsignalofsensorintovoltagesignalthatsatisfiestheinputrequirementsofPCF8591.Afteranalogtodigitalconverter<ADC>,thedigitalsignalissenttomicro-controllerforprocessing.ThedesignofsoftwarecontainsfourpartswhichareADC,dateprocessing,liquidcrystaldisplay<LCD>andbeepalarming.PCF8591collectstheinitialvoltageUoandU<x>.U<x>isthevoltagewhenthesensorisinconditionofdetectingmetal.Inthemoduleofdataprocessingitcompletestheprecisionchangingofcollectedvoltageandcorrectstheresultsto2decimalplaces,meanwhileitcalculatesthedifferencebetweenthevalueofUoandU<x>,thencomparethedifferencevaluewiththesensor’spre-establishedprecisionvaluetodecidewhetherthesensorhasinducedmetal.TheBeeperalarmsuntildetectingmetal,atthesametimetheLCDdisplaysthenumberofinducedmetals.Keywords:mentaldetection;metalnumbercounting;micro-controllerAT89S52;ADCPCF8591;inductiveproximityswitchLJ18A4-10-Z/BD.目录第1章绪论 1第2章金属探测系统概述 21.1整体设计思路 21.2ME500B单片机开发系统介绍 3第3章传感器介绍及硬件电路设计 53.1线型接近开关传感器 5线性接近开关传感器的分类 5电感式接近开关工作原理 63.2传感器外围电路设计 63.2.1电流电压转换电路 63.2.2稳压电路 83.3单片机及其外围硬件电路设计 93.3.1AT89S52单片机 93.3.2A/D转换电路 123.3.3LCD1602显示电路 153.3.4BEEP报警电路 173.4本章小结 17第4章软件设计 194.1WAVE6000软件开发环境介绍 194.2软件设计整体概述 21设计思想 21.金属检测系统软件设计中单片机端口定义 22主程序 234.3A/D转换程序设计 244.4数据处理程序设计 264.5LCD显示程序设计 284.6报警程序设计 304.7本章小结 32第5章结论 34参考文献 35致谢 36.第1章绪论金属探测器是一种能探测金属用的电子仪器,应用于各个领域,如安检、汽车、机械工程、机器人工业等。工业上可用于在线监测中,如识别断裂的钻头、转速测试、识别瓶罐和盖子等。金属探测器还可以作为开展青少年国防教育和科普活动的用具。金属探测器设计使用的元件从电子管、晶体管,乃至集成电路到智能化,有了更新换代的发展,其应用范围几乎扩大到各个领域,对工业生产及人身安全起着重要的作用。当今的金属探测器已经出现了两种最具特色的技术功能。其中之一是金属探测器的网络化功能。具备了这种技术,人们可以在任何一个地方拨打该金属探测器,对仪器进维修,分析所通过的人流量,并可根据治安的好坏或威胁的大小,调整金属探测器的工作灵敏度。所有这一切都可以远距离进行操作。另一个技术进步就是分段限时技术的出现。它利用探测器的侧面或另一仪表盘上的灯光来指示或显示出人体中金属物品的近似位置,可以用在诸如法庭以及其他不允许发出声音的地方,虽然关闭了探测器的音量,但它仍能显示并提醒操作人员何时何处有金属物品存在。本文是设计一个简易金属探测器用于检测金属并进行金属个数计数。由于受电感式接近开关检测距离和灵敏度的限制,该探测器只能近距离检测金属,例如可以用于检测食物内的金属颗粒,识别瓶罐和金属瓶,探测墙壁内的金属电线,工业流水线生产的金属计数等。.第2章金属探测系统概述本文是结合ME500B单片机综合开发系统,设计一个简易金属探测器用于检测金属的存在并实现金属个数计数功能。2.1整体设计思路简易金属探测器设计,包括硬件电路和软件设计两大部分。本设计结合ME500B单片机综合开发系统,搭建电感式接近开关传感器外围电路,包括电流电压转换电路和稳压电路,并通过软件编程完成A/D转换、数据处理、LCD显示和蜂鸣器报警。硬件电路中的电感式接近开关传感器LJ18A4-10-Z/BD输出为电流信号,不能直接进行A/D转换。A/D转换器PCF8591要求输入幅值小于等于5V的电压值,故应通过电流电压转换电路,把传感器输出的电流信号转换为电压信号。经过A/D转换后的数字信号,送入单片机AT89S52进行处理。由于系统对电源稳定度要求高,故选用三端稳压器LM7812搭建稳压电路,稳压电路的输出对传感器和电流电压转换电路中的集成运算放大器LM358供电。电感式接近开关电流电压转换电路A/D转换器MCULCD显示BEEP报警传感器外围电路单片机外围电路稳压电路电源图2-1简易金属探测器整体设计框图接近开关电感式接近开关电流电压转换电路A/D转换器MCULCD显示BEEP报警传感器外围电路单片机外围电路稳压电路电源图2-1简易金属探测器整体设计框图2.2ME500B单片机开发系统介绍ME500B是一款具有实验仪、编程器、仿真器、ISP下载线四种功能合一的单片机综合学习开发系统,系统自带单片机AT89S52。可以支持51系列,AVR系列,PIC系列三种单片机的实验和开发。ME500B硬件资源和接口主要包括:AT89S52单片机;A/D转换器PCF8591;LCD1602显示接口和LED数码显示管;蜂鸣器;PCF8591外部电压输入跳线接口J9;40Pin外扩接口;ISP下载接口等。ME500B硬件结构图如图2-2所示:图2-2ME500B硬件结构图图2-2ME500B硬件结构图金属检测系统使用硬件资源和各部分功能介绍如下:金属检测系统中,主要使用ME500B单片机综合开发系统中的单片机AT89S52、A/D转换芯片PCF8591、LCD显示屏LCD1602和蜂鸣器。单片机实现对整个金属检测系统的智能控制,PCF8591完成模拟电压的采集和转换,蜂鸣器用于检测到金属时的报警,LCD1602用于显示用户界面和显示检测到金属的个数。.第3章传感器介绍及硬件电路设计金属检测系统式使用电感式接近开关传感器来检测金属,该类传感器属于线性接近开关传感器中的一类。传感器输出为电流信号,不能直接送入A/D转换器,需要搭建电流电压转换电路,实现电流电压转换,并搭建稳压电路为传感器和电流电压转换电路中的运算放大器提供稳定的工作电压。单片机对整个系统进行智能控制,其外围电路主要由A/D转换电路、LCD显示电路和蜂鸣器电路组成。3.1线型接近开关传感器线性接近开关传感器是一种属于物体感应的线性器件。接通电源后,在传感器的感应面将产生一个交变磁场,当物体接近此感应面时,物体中则产生涡流而吸取了振荡器的能量,使振荡器输出幅度线性衰减,然后根据衰减量的变化来完成无接触检测物体的目的。线性接近开关传感器特性如下:非接触检测,避免了对传感器自身和目标物的损坏;无触点输出,操作寿命长;即使在有水或油喷溅的苛刻环境中也能稳定检测;小型探测头,安装灵活。3.1.1线性接近开关传感器的分类1、按配置分类〔1电感式接近开关:检测物体为金属,如铁、钢、铜等;
〔2电容式接近开关:检测物体为任何物体,如玻璃、金属、塑料、水、油、纸等;〔3霍尔式接近开关:检测物体为磁性金属,如永久性磁铁。2、按检测方法分类〔1通用型:主要检测黑色金属;〔2所有金属型:在相同的检测距离内检测任何金属;〔3有色金属型:主要检测铝一类的有色金属。简易金属探测器设计中,选用型号为LJ18A4-10-Z/BD的通用型电感式接近开关。电感式接近开关工作原理电感式接近开关属于一种有开关量输出的位置传感器,也叫涡流式接近开关,主要由振荡器、信号处理和开关电路组成。金属物体在接近能产生电磁场的振荡感应头时,物体内部会产生涡流。这个涡流反作用于接近开关,使接近开关振荡能力衰减,内部电路的参数发生变化,输出电流值也发生变化,由此识别有无金属物体接近。这种接近开关所能检测的物体必须是金属物体。传感器工作流程图如图3-1所示。振荡器振荡器感应头被检测金属高频震荡电路整形检波信号处理开关量输出图3-1传感器工作流程图电感式接近开关LJ18A4-10-Z/BD参数介绍:开关类别:电感式接近开关;检测距离:10mm;工作电压:6~36V;输出状态:常开;输出形式:二线直流输出,输出电流≤200mA。电感式接近开关可以用于识别轮上的固定螺钉以检查速度和方向,识别断裂的钻头,识别瓶罐和金属盖子等。3.2传感器外围电路设计电感式接近开关传感器外围电路设计主要包括电流电压转换电路和稳压电路的设计。电流电压转换电路完成传感器输出电流信号到电压信号的转变,稳压电路输出为传感器和集成运算放大器供电。3.2.1电流电压转换电路本设计是使用集成运算放大器LM358搭建一个电压电流负反馈回路[1],实现电流电压转换。1、LM358芯片介绍LM358集成运算放大器内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。管脚图如图3-2所示。〔1各管脚功能管脚1:通道A输出端;管脚2:通道A反向输入端;管脚3:通道A正向输入端;管脚4:电源地;管脚5:通道B正向输入端;管脚6:通道B反向输入端;图3-2LM358引脚图管脚7:通道B输出端;图3-2LM358引脚图管脚8:电源。〔2集成运算放大器LM358特性内部频率补偿;直流电压增益高<约100dB>;单位增益频带宽<约1MHz>;电源电压范围宽:单电源<3~30V>;低功耗电流,适合于电池供电;输出电压摆幅大<0至Vcc-1.5V>。2、电流电压转换电路设计金属检测系统中,传感器输出为电流信号,而A/D转换器PCF8591采集的是电压信号,因而必须使用电流电压转换电路,把电流信号转换为电压信号。在电流电压转换电路中,用电阻直接转换电流信号效率低,信号衰减大。而用运算放大器做电流电压转换,电路灵活,增益可调、失真小。在精度要求不高的情况下,可以用电阻直接进行转换。本设计中传感器灵敏度低〔实测灵敏度为0.04V,故选用集成运算放大器LM358来实现电流电压转换[1]。电流电压转换电路的Multisim仿真电路如图3-3所示。这是一典型的电压电流负反馈回路,输出为电压,输入为电流。当输入电流一定时,输出稳定的电压Uo=I×R=。金属检测系统中选用集成运算放大器LM358来搭建电流电压转换电路,Multisim仿真图中的模拟电流源在实际电路中为电感式接近开关的输出电流。仿真图中电压表测得的Uo值为输入A/D转换PCF8591模拟输入通道1的电压值。为满足PCF8591最大输入电压为5V的要求,在电路的输出端并联一个击穿值为5V的稳压管二极管,当输出电压值大于5V时,二极管反向击穿导通,使输出端短路,输出电压为零,起到保护PCF8591芯片的作用。图3-3电流电压转换电路的Multisim仿真电路图3-3电流电压转换电路的Multisim仿真电路3.2.2稳压电路由三端稳压器构成的直流稳压电路在对电压稳定度要求高的场合得到广泛的应用。根据输出稳定电压值的不同,可以选用不同型号的三端稳压器。三端固定集成稳压器包含7800和7900两大系列,7800系列是固定输出正电压的稳压器,7900系列是固定输出负电压的稳压器。在本设计中基于系统对电压稳定度、传感器和集成运算放大器LM358对电源供电的要求,选用了三端稳压器LM7812。三端稳压器LM7812稳定输出12V直流电压,要求输入电压范围为14~35V。在允许输入电压范围内,输入电压越高,稳定输出效果越好。稳压电路的Multisim仿真电路如图3-4所示。图3-4稳压电路的Multism仿真电路图3-4稳压电路的Multism仿真电路三端集成稳压器LM7812的输入、输出端处,分别接入和的电容,其目的是使稳压器在整个输入电压和输出电流变化范围内〔0~1.5A,提高其工作稳定性和改善瞬变响应。为了获得最佳的效果,电容器选用频率特性好的陶瓷电容。另外为了进一步减小输出电压的纹波,在集成稳压器的输出端并入一个的电解电容。在稳压器的输入和输出之间跨接一个二极管D1,稳压器正常工作时,该二极管处于截止状态,当输入端突然短路时,二极管为输出端电容器提供泄放通路,起到保护三端稳压器LM7812的作用[1]。实际电路中,14V的电源通过一个可调直流电源提供。3.3单片机及其外围硬件电路设计本设计是基于单片机AT89S52,单片机对整个系统实现智能控制。单片机外围电路主要由A/D转换器PCF8591构成的模数转换电路、LCD1602构成的液晶显示电路和蜂鸣器报警电路组成。3.3.1AT89S52单片机AT89S52单片机与MCS-51系列单片机产品兼容,它具有8K字节在系统可编程Flash存储器,可进行1000次擦写操作,具有三级加密程序存储器,32个可编程I/O口线,三个16位定时器/计数器,八个中断源,具有全双工UART串行通道,掉电标识符等。图3-5AT89S52管脚图AT89S52是一种低功耗、高性能CMOS8位微控制器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在芯片上,拥有灵巧的8位CPU和在系统可编程Flash存储器,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89S52可降至0Hz静态逻辑操作,可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52管脚图如图3-5所示。图3-5AT89S52管脚图各管脚功能说明如下:<1>管脚40VCC:电源;<2>管脚20GND:地;<3>管脚32~39P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写"1"时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外接上拉电阻;<4>管脚1~8P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入和定时器/计数器2的触发输入。在flash编程和校验时,P1口接收低8位地址字节。P1口第二功能具体见表3-1;表3-1P1口第二功能引脚号第二功能P1.0T2〔定时器/计数器T2的外部计数输入,时钟输出P1.1定时器/计数器T2的捕捉/重载触发信号和方向控制P1.5MISO〔在系统编程用P1.6MOSI〔在系统编程用P1.7SCK〔在系统编程用<5>管脚21~28P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号;〔6管脚10~17P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2口输出缓冲器能驱动4个TTL逻辑电平。对P3端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在flash编程和校验时,P3口也接收一些控制信号。P3口亦作为AT89S52的第二功能使用,如表2-2所示;〔7管脚9RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平;〔8管脚30:当访问访问外部程序存储器时,地址锁存控制信号有效。在flash编程时,此引脚也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置"1",ALE操作将无效。这一位置"1",ALE仅在执行MOVX或MOVC指令时有效;表3-2P3口第二功能引脚号第二功能P3.0RXD〔串行输入P3.1TXD〔串行输出P3.2INT0<外部中断0>P3.3INT0<外部中断0>P3.4T0〔定时器0外部输入P3.5T1〔定时器1外部输入P3.6WR<外部数据存储器写选通>P3.7RD<外部数据存储器读选通>〔9管脚29:外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期内被激活两次,而在访问外部数据存储器时将不被激活;〔10管脚31:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接12V的VCC电压;〔11管脚18XTAL1:振荡器反相放大器和内部时钟发生电路的输入端;〔12管脚19XTAL2:振荡器反相放大器的输出端。金属检测系统中,单片机和外围电路的数据交换和单片机对外围电路的控制主要使用了单片机的P1.0、P1.3、P2.0~P2.2、P0和P3.7这些端口,具体连接如下:P1.0口连接PCF8591时钟线;P1.3口连接PCF8591数据线;P2.0口连接LCD数据/命令选择端;P2.1口连接LCD读写选择端;P2.2口连接LCD使能信号端;P0口连接LCD数据端口;P3.7口连接蜂鸣器。3.3.2A/D转换电路在基于单片机的控制系统中,如果现场采集量为模拟量,A/D转换芯片是不可缺少的部分。金属检测系统中使用型号为PCF8591的A/D转换芯片实现模数转换。A/D转换器PCF8591介绍如下。PCF8591是具有I2C总线接口的8位A/D及D/A转换器。有4路A/D转换输入,1路D/A模拟输出。在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现。PCF8591转换为逐次比较型,电源电压典型值为5V。转换精度为:5V/28≈0.02V,完成一次A/D转换的最大时间由I2C总线的实际速度决定。PCF8591引脚图如图3-6所示。各管脚功能说明如下:〔1管脚1~4AIN0~AIN3:模拟号输入端;〔2管脚5~7A0~A2:引脚地址端;〔3管脚8,16VDD、VSS:电源端;〔4管脚9,10SDA、SCL:I2C总线的数据线、时钟线;〔5管脚11OSC:外部时钟输入端,内部时钟输出端;图3-6PCF8591引脚图〔6管脚12EXT:内部、外部时钟选择线,使用内部时钟时,图3-6PCF8591引脚图〔7管脚13AGND:模拟信号地;〔8管脚14VREF:基准电源端;〔9管脚15AOUT:D/A转换输出端;1、I2C总线协议I2C<Inter-IntegratedCircuit>总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。I2C是一种较为常用的串行接口标准,具有协议完善、支持芯片多和占用I/O少等优点。I2C总线占用的空间非常小,减少电路板的空间和芯片管脚数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线协议支持多主控,其中任何能够进行发送和接收的设备都可以成为主控器。一个主控器能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控器。2、PCF8591的I2C总线协议工作原理PCF8591在进行A/D转换时,首先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主控器从被控器读出第一个数据字节,主控器发出应答,主控器从被控器读出第二个数据字节,主控器发出应答…,一直到主控器从被控器中读出第n个数据字节,主控器发出非应答信号,最后主控器发出停止信号。A/D转换读数据过程如图3-7所示。一次A/D转换周期是在发送固定的读寻址字后,开始于时钟脉冲的上升沿,传送当前转换结果的同时开始一次转换周期,A/D转换时序图如图3-8所示[2]。图3-7A/D转换读数据过程图3-7A/D转换读数据过程图3-8A/D转换时序图图3-8A/D转换时序图单片机向PCF8591发起始信号包括寻址字和控制字节,寻址字和控制字节介绍如下:〔1寻址字PCF8591采用典型的I2C总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成。飞利蒲公司规定A/D器件地址为1001。引脚地址为A2、A1、A0,其值由用户选择,因此I2C系统中最多可接23=8个具有I2C总线接口的A/D器件。地址的最后一位为方向位,当主控器对A/D器件进行读操作时为1,进行写操作时为0。总线操作时,由器件地址、引脚地址和方向位组成的从地址为主控器发送的第一字节。寻址字结构如图3-9所示。图3-9寻址字格式图3-9寻址字格式〔2控制字节控制字节用于实现器件的各种功能,如模拟信号由哪几个通道输入等。控制字节存放在控制寄存器中。总线操作时为主控器发送的第二字节。控制字格式如图3-10所示。其中:D1、D0两位是A/D通道编号:00通道0,01通道1,10通道2,11通道3;D2
自动增益选择〔有效位为1;D5、D4模拟量输入选择:00为四路单数入、01为三路差分输入、10为单端与差分配合混合输入、11为二路差分输入。图3-10控制字格式图3-10控制字格式3、PCF8591和单片机的接口电路经过电流电压转化,符合PCF8591芯片输入值要求的电压送入PCF8591的模拟信号输入通道1,其中通道0为开发板上内部电压采集口。可以通过J9跳线,短接模拟输入通道1、通道2和通道3。转换后的数据通过数据总线SDA输出,SDA连接单片机的P1.0口,SCL时钟线连接单片机的P1.0。A/D转换器通过数据总线SDA和时钟总线SCL来与单片机实现数据的交互。PCF8591和单片机的接口电路图如图3-11所示。图3-11PCF8591和单片机的接口电路图图3-11PCF8591和单片机的接口电路图3.3.3LCD1602显示电路金属探测器的设计中,用LCD1602液晶作显示模块,包括英文字符和金属个数的显示。1、LCD1602介绍LCD1602是一块通用的液晶显示模块。模块内部主要由LCD控制器〔LCDController,LCD显示屏〔LCDPanel,列驱动器〔Segmentdriver和LED背光〔LEDBacklight组成。结构框图如图3-12所示。图图3-12LCD结构框图各管脚说明:VSS:电源地;VDD:电源电压〔+5V;V0:LCD驱动电压;RS:寄存器选择输入端。输入单片机选择模块内部寄存器类型信号,RS=0,当MCU进行写模块操作,指向指令寄存器;当MCU进行读模块操作,指向地址计数器;RS=1,无论MCU读操还是写操作,均指向数据寄存器;R/W:读写控制输入端;EN:使能信号输入端;DB0~DB7:LCD1602和单片机的数据通道;LEDA〔BL+:背光+5V端;LEDK〔BL-:背光0V端。LCD1602特性:图3-13LCD1602和单片机的接口电路内置192种字符;图3-13LCD1602和单片机的接口电路具有64个字节的自定义字符RAM;显示方式:STN、半透、正显;背光方式:底部LED;通讯方式:8位并口;显示容量:16×2个字符。2、LCD1602和单片机的接口电路LCD1602和单片机的接口电路如图2-13。J3为LCD显示屏的接口,通过电阻R28可以调节LCD的亮度,在实际电路中,R1固定为。LCD数据输出端连接单片机的P0口。单片机的P2.0口控制访问LCD的指令寄存器和数据寄存器。P2.1口控制LCD寄存器的读写操作。P2.2口控制LCD的使能端口。BL+接+5V,BL-接地。3.3.4BEEP报警电路BEEP和单片机的接口电路如图3-14。此电路用于检测到金属后的报警用。电路中的电阻R1和R2用于限流。蜂鸣器连接单片机的P3.7口,通过P3.7口输出高低电平信号控制三极管Q7的通断,当P3.7口输出低电平时,三极管导通,蜂鸣器响。图3-14BEEP和单片机的接口电路3.4本章小结图3-14BEEP和单片机的接口电路金属探测器设计是基于单片机AT89S52,利用型号为LJ18A4-10-Z/BD的电感式接近开关来检测金属并计数。整个硬件电路的设计主要包括电流电压转换电路和稳压电路。接近开关传感器输出为电流信号,不能直接送入A/D转换器PCF8591进行采集,应先通过电流电压转换电路,实现电流转换为电压后,再把电压信号送入PCF8591。受系统对电压稳定度的要求,在传感器外围电路设计中,搭建一个由三段稳压器LM7812组成的稳压电路,稳压后的输出为传感器和电流电压转换电路中的集成运算放大器供电。经过电流电压转换电路后的电压信号,通过一根2端口杜邦头实验线送入ME500B单片机综合开发板上的PCF8591外部电压输入接口J9,实现外围电路和开发板的结合。整个硬件电路设计完成后,进行硬件电路测试,主要是测试传感器的实际灵敏度。用万用表的5V直流电压档测试杜邦头实验线的输出端电压,也就是测试送入PCF8591模拟输入通道的电压值。经过反复测试得出如下结果:传感器检测到金属前的基准电压Uo=2.00V;传感器检测到金属时的电压值U<x>=2.04V,由此可得知传感器的灵敏度△U为0.04V。金属检测系统中硬件电路的设计达到预定的目标,下一步的设计是编程实现A/D转换、数据处理、报警和显示。.第4章软件设计金属检测系统软件设计是结合WAVE6000软件开发系统完成的,主要在开发环境中完成汇编源代码的编辑、程序调试和单片机可执行HEX文件的生成等。4.1WAVE6000软件开发环境介绍WAVE仿真器有两种版本:DOS版本和Windows版本。中文界面,英文界面可任选,并支持ASM,C,PLM语言混合编程,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。有丰富的窗口显示方式,能多方位,动态地显示仿真的各种过程。可采用双工作模式:软件模拟仿真〔不要仿真器也能模拟仿真和硬件仿真。由于编辑、编译、下载、调试全部集中在一个环境下,为使用者提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口,为用户提供了方便。WAVE仿真器具有强大的逻辑分析仪综合调试功能,通过交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样,并能实时在线调试分析。WAVE6000软件开发环境的设置和软件开发过程如下。1、WAVE软件主界面如图4-1所示。主界面包括项目和数据观察窗口、工作区窗口和信息窗口,程序开发主要在工作区内进行。项目和数据观察窗口工作区窗口信息窗口项目和数据观察窗口工作区窗口信息窗口图4-1WAVE软件主界面图4-1WAVE软件主界面2、开发环境具体设置步骤如下〔1首先,打开菜单目录中仿真器下的仿真器设置对话框,如图3-2所示。仿真器设置对话框中有四个选项:语言、目标文件、仿真器、通信设置。仿真器各选项卡设置如图3-3,设置完成后,点击"√好"按钮,到此仿真器设置完成。图4-2仿真器设置对话框图4-2仿真器设置对话框图4-3图4-3仿真器各选项卡设置3、软件开发首先在工作区新建一个空白文档,在空白文档内用单片机汇编语言进行源代码的编辑,编辑完成后保存。点击工具栏的编译按钮或按快捷键F9进行编译,并生成HEX文件,HEX文件是下载到单片机中的文件。如果在编译过程出现错误,可以通过信息窗口找到源代码出错位置并进行修改。当想进行单步调试时,可以按快捷键F8进行单步调试,此时可以通过工程和数据窗口中的SFR<特殊功能寄存器>、REG〔段寄存器、DATA<数据>按钮切换到需要观察的窗口,观察程序运行过程中各寄存器值和数据存储区值变化过程。4.2软件设计整体概述金属检测系统中软件设计主要由A/D转换、数据处理、LCD显示和蜂鸣器报警四个模块组成。4.2.1设计思想金属检测系统开机后,LCD显示屏提示用户系统正在进行初始化,此时无法进行金属的检测;初始化完毕,系统采集开机初试电压值Uo,并把Uo作为基准电压值。基准电压值Uo采集完后,LCD清屏提示用户此时系统进入金属检测状态。以后系统不断采集电压值U<x>,并对U<x>和基准电压Uo做减法运算后,判断电压差值是否等于灵敏度△U。如果差值等于灵敏度,则进入报警子程序,并同时显示已经检测到的金属个数。报警、计数完后,系统进入循环检测状态。如果电压差值不满足等于△U条件,则直接进入循环检测状态。△U值为0.04V,此值为经过反复实验测得的传感器在检测到金属前和检测到金属后电压差值。在属检测系统中采用︱U<x>-Uo︱的差和△U比较是为了提高检测准确度,消除因干扰而引起的误检测[3]。软件设计整体流程图如图4-3所示。软件设计主要模块介绍:1、A/D转换数模转换使用芯片PCF8591来实现,主要完成电压值的采集并转换为数字信号送入单片机。电压采集包括传感器检测到金属前的开机基准电压值Uo和传感器进入检测状态时的电压值U<x>。2、数据处理数据处理主要完成采集电压值的精度转换,电压值Uo和U<x>求差,判断差值电压和传感器灵敏度是否相等。3、LCD显示LCD显示程序设计主要是完成用户界面的显示和传感器检测到金属时显示检测到金属的个数。4、蜂鸣器报警报警程序设计主要完成当传感器检测到金属时的报警操作。图4-3软件设计整体流程图系统初始化开始图4-3软件设计整体流程图系统初始化开始采集Uo并存储报警,金属个数加1并显示个数N采集U<x>并存储并启动A/D︱U<x>-Uo︱=△U启动A/DYLCD清屏,进入检测状态提示用户等待4.2.2金属检测系统软件设计中单片机端口定义BEEPEQUP3.7;蜂鸣器SCLEQUP1.0;A/D转换器PCF8591时钟线SDAEQUP1.3;PCF8591数据线LCD_RSEQUP2.0;LCD数据/命令选择端LCD_RWEQUP2.1;LCD读/写选择端LCD_ENEQUP2.2;LCD使能信号LCD_DATAEQUP0;LCD数据端口4.2.3主程序START:MOVSP,#70HLCALLSET_LCD1;提示用户等待MOVR1,#13MOVR0,#PRECISIONMOVA,#00HMOVR7,A;金属计数单元清零LOOP:MOV@R0,A;存储单元清零DJNZR1,ADD1MOVPRECISION,#4;预设灵敏度,灵敏度的小数后第二位为4MOVP0,#0FFH;P0口用作输入口MOVP2,#0FFHMOVR5,#10STRAT1:LCALLDELAY;延时5ms子程序DJNZR5,STRAT1STRAT2:MOVR1,#U0LCALLPCF_AD;采集UoMOVAD_TEMP,U0;A/D转换临时存放单元CALLTUNBCD;显示数据转为三位BCD码子程序LCALLCONV1;ASCII转换子程序,MOVU0_BFW,ALCALLSET_LCD2;清屏,系统进入待机检测状态STRAT3:MOVR1,#UXLCALLPCF_AD;采集U<x>MOVAD_TEMP,UXCALLTUNBCDLCALLCONV1MOVU1_BFW,A;保存U<x>值小数后第二位的ASCII码值CALLDIFF;电压差值计算子程序CALLCOMP;电压差值和精度比较CALLADD_NUM;金属计数子程序MOVR6,#2;蜂鸣器响周期计数CALLBEEP_LCD;报警程序,并同时显示已检测到金属个数JMPSTRAT34.3A/D转换程序设计在对A/D转换器PCF8591进行数据操作时,首先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主控器从被控器读出第一个数据字节,主控器发出应答,主控器从被控器读出第二个数据字节,主控器发出应答…,一直到主控器从被控器中读出第n个数据字节,主控器发出非应答信号,最后主控器发出停止信号。PCF8591完成一次A/D转换的流程图如图4-4所示。初始化总线驱动写读寻址字初始化总线驱动写读寻址字数据采集CPU发非应答信号结束开始图4-4PCF8591完成一次A/D转换流程图图4-4PCF8591完成一次A/D转换流程图A/D转换部分程序:PCF_AD:NOPLCALLBUSSTR;总线启动子程序MOVA,#90H;写PCF8591A/D寻址字LCALLWR0;发送一个字节子程序LCALLCHEK;查询CPU是否应答JBF0,PCF_AD;错误,重发MOVA,#01H;A/D控制字,选择通道1,自动增1无效LCALLWR0LCALLCHEKJBF0,PCF_AD;错误,重发。PCF_AD1:LCALLBUSSTR;总线启动子程序MOVA,#91H;读PCF8591A/D寻址字LCALLWR0LCALLCHEKJBF0,PCF_AD1MOVR1,#AD_DATA;数据存储区首地址WRD3:LCALLRD0;接收一个字节子程序,出口参数为AMOV@R1,A;数据放数据存储区LCALLYIDAF;发送非应答信号子程序LCALLSTOP;转化结束RET4.4数据处理程序设计金属检测系统中,实验测得传感器输出电压灵敏度为0.04V。通过比较采集电压差值小数点后第二位和灵敏度小数后第二位是否相等来判断是否检测到金属。在此过程中,采集电压值转换为三位BCD码显得尤为重要,转换为三位BCD码是为最终分离出电压值小数后第二位的值。数据处理思想是对采集电压值进行除51运算,分别分离出个位数,小数后第一位和小数后第二位。电压值转化为三位BCD码程序流程图如图4-5所示。开始取数开始取数除51,分离整数位取余数乘10除51,分离小数后第一位取余数乘10除51,分离小数后第二位结束图4-5电压值转换为三位BCD码程序流程图三位BCD码转化部分程序如下:TUNBCD:MOVA,AD_TEMPMOVB,#51DIVABMOVAD_TEMP+2,A;整数个位数放入AD_TEMP+2MOVA,BCLRF0SUBBA,#1AH;相减不够,C=1表示余数小于1AH<26>MOVF0,CMOVA,#10MULAB;余数乘以10,相当于补0,继续除。MOVB,#51DIVAB;再除以51JBF0,T_BCD1;余数大于1AH,F0为0,乘法溢出,果加5ADDA,#5T_BCD1:MOVAD_TEMP+1,A;小数后第一位放入AD_TEMP+1MOVA,BCLRF0SUBBA,#1AHMOVF0,CMOVA,#10MULABMOVB,#51DIVABJBF0,T_BCD2ADDA,#5T_BCD2:MOVAD_TEMP,A;小数后第二位放入AD_TEMPRET算法分析:A/D最大采集电压为5V,对应的十六进制数为FFH〔255,由得程序中的除数51。A/D转换后的数字电压直接除51得个位数。然后,取余数乘10,乘积再除51分离小数后第一位。乘10过程中,当余数大于1AH<26>时,将产生溢出,但在此并未直接考虑乘法溢出的处理,而是通过余数和1AH作减法运算后,把进位标志C放入标志位F0中,F0控制程序的流向。当余数大于1AH时,F0为0,会对商值加5,通过商值加5操作来得出有溢出时的实际转换值。小数后第二位的分离思想和小数后第一位的分离思想类似。4.5LCD显示程序设计本次设计中,LCD的显示包括用户界面的英文字符显示和传感器检测到金属时,金属个数的显示,金属个数的显示与报警同时进行。字符的显示只需把需要显示字符的内容、位置和LCD的DDRAM地址对应皆可。LCD显示字符程序流程图如图4-6。开始开始LCD初始化写DDRAM地址取字符结束码?写字符地址加1结束图4-6LCD显示字符程序流程图YNLCD显示字符部分程序:LCD_SHOW:CJNEA,#1,LINE2;判断是否为第一行,是第一行则顺序执行LINE1:MOVA,#80H;设置LCD的第一行地址,DDRAM地址设置CALLWCOM;写入命令CALLCLR_LINE;清除该行字符数据MOVA,#80HCALLWCOM;写入命令JMPFILLLINE2:MOVA,#0C0H;设置LCD的第二行地址CALLWCOM;写入命令CALLCLR_LINE;清除该行字符数据MOVA,#0C0HCALLWCOM;写入命令FILL:CLRA;填入字符子程序MOVCA,@A+DPTR;由消息区取出字符CJNEA,#0,LC1;判断是否为结束码RETLC1:CALLWDATA;写入数据INCDPTR;指针加1JMPFILL;继续填入字符RET4.6报警程序设计金属检测系统中,当传感器检测到金属时,单片机控制蜂鸣器报警,提示检测到金属。软件编程产生频率分别为500Hz和1KHz的报警声。报警的同时,LCD闪烁显示已检测到金属个数,闪烁周期和蜂鸣器的报警周期相同。报警程序流程图如图4-7所示。开始开始计数器赋值显示金属个数产生500Hz信号产生1KHz信号计数结束?结束NY图4-7报警程序流程图报警程序部分程序如下:INFO5:DB"DETECTMENTAL",0;第一行显示信息INFO6:DB"TIMES:",0;第二行显示信息BEEP_LCD:CLRLCD_EN;LCD使能信号,写操作下降沿有效CALLINIT_LCD;初始化LCDCALLDELAY1MOVDPTR,#INFO5;指针指到显示信息5MOVA,#1;显示在第一行CALLLCD_SHOWMOVDPTR,#INFO6;指针指到显示信息2MOVA,#2;显示在第二行CALLLCD_SHOWMOVLCD_X,#11;LCD显示位置MOVA,NUM_TEMP;加载高四位的ASCII码值CALLSHOW_DIG2;显示数据MOVA,NUM_TEMP+1;加载低四位的ASCII码值INCLCD_XCALLSHOW_DIG2;显示数据MOVR2,#200LOOP1:CPLBEEP;输出频率500Hz,,周期2msLCALLDELAY500;延时500usLCALLDELAY500DJNZR2,LOOP1MOVR2,#200LOOP2:CPLBEEP;输出频率1KHz,周期1msLCALLDELAY500;延时500usDJNZR2,LOOP2DJNZR6,BEEP_LCDRET4.7本章小结金属检测系统中软件设计主要包括A/D转换、数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度网络游戏虚拟物品交易合同
- 2024年度建筑工程施工承包合同标的明细
- 2024城市地下综合管廊建设项目融资合同
- 2024年度放心签建材销售合同模板
- 2024年工程质量检测与环保评估合同
- 2024年度广告发布合同标的广告内容与投放时间
- 2024小产权房买卖合同纠纷
- 地理教学课件教学课件
- 2024房产代理销售模式房产代理销售合同范本2
- 04版5城市基础设施建设项目合同
- 食品营养学选择试题库(附参考答案)
- 北师大版二年级数学上册第五单元《2~5的乘法口诀》(大单元教学设计)
- 2024年入团知识考试题库及答案
- 肿瘤化疗导致的中性粒细胞减少诊治中国专家共识(2023版)解读
- 《新能源汽车概论》课件-6新能源汽车空调系统结构及工作原理
- 2024年共青团入团考试题库(附答案)
- 田径运动会各种记录表格
- 产科新生儿疫苗接种课件
- 企业信息管理概述课件
- 室外健身器材投标方案(技术方案)
- 足浴店店长聘用合同范本
评论
0/150
提交评论