at89s52单片机控制的智能型金属探测器毕业论文

上传人:zhan****gclb 文档编号:180396495 上传时间:2023-01-06 格式:DOC 页数:103 大小:1.19MB
返回 下载 相关 举报
at89s52单片机控制的智能型金属探测器毕业论文_第1页
第1页 / 共103页
at89s52单片机控制的智能型金属探测器毕业论文_第2页
第2页 / 共103页
at89s52单片机控制的智能型金属探测器毕业论文_第3页
第3页 / 共103页
点击查看更多>>
资源描述
目录摘 要1ABSTRACT2第一章 绪论31.1选题的意义31.2国内外研究现状及存在问题31.3设计的基本思路4第二章 分析探测金属的理论依据52.1线圈介质条件的变化52.2 涡流效应6第三章 硬件电路设计73.1系统组成73.2硬件电路功能描述83.3整机工作原理描述28第四章 系统软件设计294.1软件设计思想294.2数字滤波及算法说明304.3主程序流程图314.4主要子程序模块设计32第五章 主要技术指标分析42总结43致谢44参考文献45附录46摘 要木文着重介绍了一种基于AT89S52单片机控制的智能型金属探测器的硬件组成、软件设计、工作原理及主要功能。该金属探测器以AT89S52单片机为核心,采用线性霍尔元件UGN3503作为传感器,来感应金属涡流效应引起的通电线圈磁场的变化,并将磁场变化转化为电压的变化,并与设定的电压基准值相比较后,判定是否探测到金属。系统软件采用汇编语言编写。在软件设计中,采用了数字滤波技术消除干扰,提高了探测器的抗干扰能力,确保了系统的准确性。此外,文中还对影响金属探测器的灵敏度与稳定性的因素进行了探讨,仪器的工作频率、检测线圈的尺寸及匝数等是影响灵敏度的主要因素;而应用现场的环境温度、湿度及线圈的制作工艺和供电电源的稳定程度是仪器稳定性的影响因素。关键词:单片机;金属探测器;线性霍尔元件ABSTRACTThis paper describes the composition of hardware and software,working principles and the functions of an intelligent metal detector which mainly consists of AT89S52 single Chip Micyoco and linear Hall-Effect Sensor. The equipment adopts UGN3503U linear hall-effect sensor as probe to detect the magnetic field change of the centre of a search coil resulted from eddy current effect and turn this magnetic field change into voltage change. The SCM measures the peak value of voltage and compares it with reference voltage. The determine whether detect metal or not. In case of detection of metallic mass,the Metal Detector provides an acoustical and optical alarm. The systems software adopts the assembler language to be written. Inside the software,the digital filter technology is utilized to eliminate the jamming. So the stability of system and the measuring veracity are improved. The effect of all factors on sensitivity and stability of Metal Detector are discussed in this paper. It is concluded that the operating frequency,the size of the search coil and turns are the main factors effected on the sensitivity of the instrument,the environment temperature and humidity in site,the winding technology of coils and the stability of power supply are the factors effected on stability of instrument.KEYWORDS:SCM (Single Chip Micyoco);metal detector;linear hall-effect sensor第一章 绪论1.1选题的意义金属检测系统作为一种最重要的安全检查设备,己被广泛地应用于社会生活和工业生产的诸多领域。在食品生产过程中对金属混入物的检测或交通部门对旅客的安全检查主要靠金属探测仪。目前,就连考试也开始启用金属探测器来防止考生利用手机等通讯工具进行作弊。食品在生产加工过程中,常因设备的磨损、零件的脱落等造成金属粉末、金属粒子或针状不定形的金属异物混入食品中,给食品安全性带来极大危害,对食品生产企业的信誉造成极大损失。因此,常采用金属探测器对产品进行检测,杜绝金属异物在产品中的存在。为了人们能够吃到安全的食品,设计一种智能金属检测系统来检测对人们身体健康构成危害的金属异物势在必行。1.2国内外研究现状及存在问题1.2.1 国内外研究现状随着科学技术的发展,金属探测器经历了几代探测技术的变革,从最初的信号模拟技术到连续波技术直到今天所使用的数字脉冲技术,金属探测器简单的磁场切割原理被引入多种科学技术成果。无论是灵敏度、分辨率、探测精确度还是工作性能上都有了质的飞跃。应用领域也随着产品质量的提高延伸到了多个行业。金属探测器的一个重大技术进步就是分段限时技术的出现,世界几大著名的金属探测器生产厂商,如EIPaso、Ceia USA、Ranger & Metorex 等,均投入了相当的资金从事这项研究、开发工作。它利用探测器的侧面或另一仪表盘上的灯光来指示或显示出人体中金属物品的近似位置,可以用在诸如法庭以及其他不允许发出声音的地方,虽然关闭了探测器的音量,但它仍能显示并提醒操作人员何时何处有金属物品存在。金属探测器对工业生产及人身安全起着重要的作用。而为了能够准确判定金属物品藏匿的位置,就需要金属探测器具有较高的检测精度。目前,国外虽然已有较为完善的系列产品(如EIPaso、Ceia USA、Ranger & Metoerx等厂商的产品),但价格极其昂贵;国内传统的金属探测器则是利用模拟电路进行检测和控制的,其电路复杂,探测灵敏度低,且整个系统易受外界环境如温度、湿度、电焊等诸因素的干扰。1.2.2存在问题传统的方法是传感器探头由LC正弦波振荡电路组成,当金属物经过探头或将探头在金属物附近移动时,由于磁场变化在金属体内产生涡流,导致LC振荡电路失谐,从而使振荡输出电压发生改变,据此信号系统可探测到附近金属物的存在。这种电路一般采用模拟电路设计,抗干扰能力差,影响整个系统的稳定性,导致波形失真甚至停止振荡。由于模拟电路比较复杂,所用的器件太多,导致在金属接近磁敏探头时,探测的灵敏度低,环境变化或元件老化造成电路工作点漂移。1.3设计的基本思路本文介绍的基于单片机控制的智能型金属探测器,采用灵敏度极高的线性霍尔元件作为传感器,检测由于金属出现引起的探测线圈周围磁场的变化,提高了检测精度;处理部件则采用AT89S52单片机作为检测和控制核心,对检测结果进行分析判断,有效地保证了检测原理的实施;此外,利用软件滤波的方法代替了传统探测器复杂的模拟电路器件,大大提高了系统的可靠性、灵敏度和抗干扰性。适用于固体食品生产过程中对金属混入物的检测,也可用于探测隐藏于墙内、护墙板内侧、空洞和土壤中的上述物品和其他金属物。第二章 分析探测金属的理论依据金属探测器是采用线圈的电磁感应原理来探测金属的。根据电磁感应原理,当有金属物靠近通电线圈平面附近时,将出现涡流效应。2.1线圈介质条件的变化当金属物接近通电线圈时,将使通电线圈周围的磁场发生变化,如图2-1,对于半径为R的单匝与圆形电感线圈,当其中通过交变电流时,线圈周围空间产生交变磁场,根据毕奥一萨伐尔定律可计算出线圈中心轴线上一点的磁感应强度B为: = (2-1)式中 ;介质的磁导率;相对磁导率;真空磁导率。对于紧密缠绕N匝的线圈,线圈中心轴线上一点的磁感应强度则为: (2-2)由公式(2-2)可知,当在线圈有效探测范围内没有金属物存在时, (非金属的相对磁导率),线圈中心磁感应强度B保持不变,当线圈有效探测范围内出现铁磁性金属物时,会变大,B随也会变大。图2-1 圆形电感线圈轴线上磁场的计算2.2 涡流效应根据电磁理论,我们知道,当金属物体被置于变化的磁场中时,金属导体内就会产生自行闭合的感应电流,这就是金属的涡流效应。涡流要产生附加的磁场,与外磁场方向相反,削弱外磁场的变化。据此,将一交流正弦信号接入绕在骨架上的空心线圈,流过线圈的电流会在周围产生交变磁场,当将金属靠近线圈时,金属产生的涡流磁场的去磁作用会削弱线圈磁场的变化。金属的电导率越大,交变电流的频率越大,则涡电流强度越大,对原磁场的抑制作用越强。通过以上分析可知,当有金属物靠近通电线圈平面附近时,无论是介质磁导率的变化,还是金属的涡流效应均能引起磁感应强度B的变化。对于非铁磁性的金属,包括抗磁体(如:金、银、铜、铅、锌等)和顺磁体(如锰、铬、钦等),较大,可以认为是导电不导磁的物质,主要产生涡流效应,磁效应可忽略不计;对于铁磁性金属(如:铁、钻、镍)很大,也较大,可认为是既导电又导磁物质,主要产生磁效应,同时又有涡流效应。本设计正是基于这样的理论,寻找一种适合的传感器检测感应线圈磁场的变化,并把磁场信号的变化转变成电信号的变化,从而实现单片机的控制。正是本着这样一个设计思路来构建系统的硬件电路。第三章 硬件电路设计3.1系统组成如图3-1所示,整个探测系统以8位单片机AT89S52作为控制核心,其硬件电路分为两个部分,一部分为线圈振荡电路,包括:多谐振荡电路、放大电路和探测线圈;另一部分为控制电路,包括:UGN3503型线性霍尔元件、前置放大电路、峰值检波电路、ADC0809模数转换器、AT89S52单片机、LED显示电路、声音报警电路及电源电路等。图3-1系统结构框图具体电路连接见附录所示电路原理图。3.2硬件电路功能描述3.2.1 线圈振荡电路图3-2 线圈振荡电路原理图 工作过程中,由555定时器构成一个多谐振荡器,产生一频率为24KHz、占空比为的脉冲信号。振荡器的频率计算公式为: (3-1)图示参数对应的频率为24KHz。从多谐振荡器输出的正脉冲信号经过电容输入到的基极(为的9013H),使其导通,经放大之后,就形成了频率稳定度高、功率较大的脉冲信号输入到探测线圈中,在线圈内产生瞬间较强的电流,从而使线圈周围产生恒定的交变磁场。由于在脉冲信号作用下,处于开关工作状态,而导通时间又非常短,所以非常省电,可以利用+9V电池供电。3.2.2 数据采集电路图3-3 数据采集电路原理图(1)线性霍尔传感器(linear Hall-Effect Sensors)在电路设计中,选用了美国ALELGRO公司生产的UGN3503U线性霍尔传感器,来检测图3-2中通电线圈周围的磁场变化。UGN3503U线性霍尔传感器的主要功能是可将感应到的磁场强度信号线性地转变为电压信号。它的功能框图示于图3-4。图3-4 UGN3503U的功能框图霍尔元件是依据霍尔效应制成的器件。其结构原理如图3-4所示。图 3-5 霍尔效应结构原理在一块半导体薄片上两端通以电流I并加上与电流I方向垂直的磁场B,在与电流I和磁场B都垂直的方向上出现一个电压,如图3-5的,这种现象就是霍尔效应。这种现象的产生,是因为通电半导体片中的载流子在磁场产生的洛仑兹力的作用下,分别向半导体片M、N两侧偏转和积聚,因而形成一个电场,称作霍尔电场。霍尔电场产生的电场力和洛仑兹力方向相反,它阻碍载流子继续堆积,直到霍尔电场力和洛仑兹力大小相等。这时,半导体片M、N两侧建立起一个稳定的电压,这就是霍尔电压。霍尔电压可用下式表示: (3-2)式中 霍尔常数();I电流(A);B磁感应强度(T);d霍尔元件的厚度(m)。令,则得到 (V) (3-3)由上式可知,霍尔电压的大小正比于控制电流I和磁感应强度B。称为霍尔元件的灵敏度,它与元件材料的性质与几何尺寸有关。因此当外加电压源电压一定时,通过的电流I为一恒值,此时输出电压只与加在霍尔元件上的磁场B的大小成正比,即: (V) (3-4)此时为常数。因此,任何引起磁场强度变化的物理量都将引起霍尔输出电压的变化。据此,将霍尔元件做成各种形式的探头,固定在工作系统的适当位置,用它去检测工作磁场,再根据霍尔输出电压的变化提取被检信息,这就是线性霍尔元件的基本物理依据和作用。本设计中采用的线性霍尔传感器UGN3503U就是将霍尔元件、高增益线性差分放大器和射极跟随器集成在同一半导体基片上,为用户提供了一个由外电压源驱动、使用方便的磁敏传感器。该器件的磁电转换特性曲线:其输出电压和加在霍尔元件上的磁感强度B成比例。它的灵敏度典型值为13.5mV/mT,静态输出电压为2.5V,输出电阻为0.05,mini-SIP封装。具有灵敏度高,线性度好;结构牢固,体积小,重量轻,耐震动,功耗小,寿命长,率高(可达);输出噪声低等特点。用它作探头可测量,的交变和恒定磁场。在测量磁场时,将元件的第一脚(面对标志面从左到右数)接电源(工作电压为5V),第二脚接地,第三脚接高输入阻抗()电压表,通电后,将电路放入被测磁场中,因霍尔器件只对垂直于霍尔片表面的磁感应强度敏感,因而必须让磁力线垂直于电路表面,当没有磁场()时,静态输出电压是电源电压的一半(即),当外加磁场的南极靠近器件标志面时,会使输出电压高于静态输出电压;当外加磁场的北极靠近器件标志面时,会使输出电压低于静态输出电压,但仍然是正值。利用线性霍尔传感器UGN3503U的上述特性,将其接在数据采集电路的前端,并固定在探测线圈的中心,即可感应线圈的磁场变化,并将磁场的变化信号转化为电压信号的变化而被后级电路拾取和放大。(2)放大和峰值检波电路由于UGN3503U线性霍尔元件采集到的电压信号是一个毫伏级的信号,信号十分微弱,所以,在对其进行处理前,首先要进行放大。在设计中,信号放大电路采用输入阻抗高、漂移较小、共模抑制比高的集成运算放大器LM324。LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形和引脚排列如图3-6所示。含四组形式完全相同的运算放大器,除电源共用,四组运放相互独立。图 3-6 UGN3503外形和引脚排列UGN3503线性霍尔元件输出的微弱信号经电容耦合到前级运算放大器U2A的同相输入端,运算放大器U2A把霍尔元件感应到的电压转换为对地电压。在电路设计中,运放LM324采用+5V单电源供电,对于不同强度的信号均可通过调节前级放大电路的反馈电位器来改变其放大倍数。经前级运算放大器放大的信号经耦合电容输入到后级峰值检测电路中。采用阻容耦合的方法可以使前后级电路的静态工作点保持独立,隔离各级静态之间的相互影响,使得电路总温漂不会太大。峰值检测电路由两级运算放大器组成,第一级运放U2B入信号的峰值传递到电容上,并保持下来。第二级运放U2C缓冲放大器,将输出与电容隔离开来。在设计中,为了获得优良的保持性能和传输性能,同样采用了输入阻抗高、响应速度较快、跟随精度较好的运算放大器LM324,这样可有效地利用LM324的资源,减少使用元器件的数量,降低了成本。当输入电压上升时,跟随上升,使二极管、导通,截止,运放U2B工作在深度负反馈状态,给电容充电,上升。当输入电压下降时,跟随下降,导通,U2B也工作在深度负反馈状态,深负反馈保证了二极管、可靠截止,值得以保持。当再次上升使上升并使、导通,截止,再次对电容充电(高于前次充电时电压),下降时,、又截止,导通,将峰值再次保持。输出反映的大小,通过峰值检波和后级缓冲放大电路,将采集到的微弱电压信号放大至0V5V的直流电平,以满足A/D转换器ADC0809所要求的输入电压变换范围,然后通过A/D转换电路将检测到的峰值转化成数字量。(3) A/D转换电路由于采集到的信号是连续变化的模拟量,不能被单片机直接处理,所以,必须把这些模拟量转换成数字量后才能够输入到单片机中进行处理,这里选用了经济实用的ADC0809型A/D转换器来完成模数转换。ADC0809芯片内部结构和工作时序示于图3-7和图3-8。图3-7 ADC0809芯片的内部结构图3-8 ADC0809的工作时序ADC0809是8位逐次逼近型啊A/D转换器,片内有八路模拟开关,可对八路模拟电压量实现分时转换,转换速度为(即10千次1秒)。址锁存允许信号ALE=1时,3位地址信号A、B、C送入地址锁存器,选择8路模拟量中的一路实现A/D变换。本设计中只使用通道IN0,地址译码器ABC直接接地为000,采用线选法寻址。ADC0809片内有三态输出缓冲器,可直接与单片机的数据总线相连接,这里将它的数据输出口直接与单片机的数据总线P0连接,AT89S52的P0口作为数据总线,又作为低8位地址总线。ADC0809的片内没有时钟,时钟信号必须由外部提供,这里利用AT89S52提供的地址锁存允许信号ALE经计数器74LS163构成的4分频器分频获得。ALE引脚的频率是单片机时钟频率的1/6,单片机时钟频率为12MHz,则ALE引脚频率约为2MHz,再经4分频后为500kHz,所以ADC0809能可靠工作。ADC0809的模拟输入范围:单极性05V,设计中采用+5V单电源供电。如图3-9所示放大后的电压信号送入ADC0809的模拟输入通道IN0进行A/D转换。将P2.7(地址总线的A15)作为片选信号,由AT89S52的写信号和P2.7控制ADC0809的地址锁存ALE和转换启动START,当ADC0809的START启动信号输入端为高电平时,A/D开始转换,在时钟的控制下,一位一位地逼近,比较器一次次进行比较,转换结束时,送出转换结束信号EOC(低到高),并将8位数字量D7D0存到输出缓存器。AT89S52的读信号端发出一个输出允许命令输入到ADC0809的ENABEL(即OE)端,ENABEL(OE)端呈高电位,用以打开三态输出锁存器,AT89S52从ADC0809读取相应电压数字量,然后存入数据缓冲器中。图 3-9 A/D转换电路3.2.3 系统控制单元采用AT89S52单片机。AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8K bytes Isp(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-52指令系统及AT89S52引脚结构(引脚图如图3-10所示),芯片内集成了通用8位中央处理器和ISP Flash存储单元。图3-10 AT89S52引脚图AT89S52片内结构如图3-11所示,它具有如下特点:40个引脚,8K bytes Flash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,看门狗定时(WDT)电路,2个数据指针,3个16位可编程定时计数器,5个中断优先级2层中断嵌套中断,2个全双工串行通信口,片内时钟振荡器。此外,AT89S52设计和配置了振荡频率可为12MHz,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM、定时计数器、串行口及外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。其工作电压为+5V,晶振频率采用12MHz。图 3-11 AT89S52内部结构3.2.4 时间显示模块1.日历芯片(1) DS1302的结构及工作原理DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据,可用来保存重要数据。该芯片采用串行I/O接口方式。另外,在读写时钟或RAM数据时,可采用单字节或多字节(串模式)方式传送数据。它可在低功率情况下工作,在小于1,时也可保持数据和时钟信息。DS1302内部有一个318的用于临时性存放数据的RAM寄存DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。(2)DS1302内部结构和引脚说明 DS1302内部主要包括实时时钟(REAL, TIME CLOCK),输入移位寄存器(INPUT SLRFI, REGIS-TERS),31字节静态RAM、电源控制部分(POWER CONTROL)、命令控制逻辑(COMMAND AND CON-TROL LOGIC)、振荡器和分频器(OSCILLATOR AND DIVIDER)等部分。DS1302具有8脚DIP和SOIC封装形式,其引脚排列如图3-12所示。1 52 6 3 7 3 7 4 8 DS1302VCC1VCC2DS1302X1X2GNDSLCKI/ORST图3-12 DS1302内部结构和管脚图其中1脚VCC1和5脚VCC2为电源电压引脚,单电源供电时接VCC1脚,双电源供电时,主工作电源接VCC2脚,备份电源接VCC1脚,备份电源可采用福一镍充电电池,也可用1uf以上的大容量电容代替。芯片具有可编程选择的对备份电池进行微电流充电的功能,有效延长了备份电池的使用寿命。若启用芯片内部的微电流充电器,则在主工作电源正常工作时,由主工作电源向充电电池充电。备份电池电压应略低于主工作电源电压,在系统掉电的情况下,则由备份电池向系统供电,以保证时钟正常运行,并保持时钟/日历信息和31个字节静态RAM中的重要数据信息不丢失;2脚X1和3脚X2为32.768KHz晶振引脚;8脚RST为复位端,若其被置为低电平,则中止所有数据传送,I/O脚变为高阻态,系统复位;7脚I/O为数据输人/输出端;6脚SCLK为串行时钟输入端,所有地址l命令字节和数据字节都是在时钟SCLK的同步控制下从I/O脚串行输入输出的。DS1302通过SCLK、I/O、RST三根线与外部进行同步串行通信。VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC10.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。(3) DS1302的寄存器的说明DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 DS1302 内部寄存器CH: 时钟停止位 寄存器2的第7位:12/24 小时标志CH=0 振荡器工作允许 bit7=1,12 小时模式CH=1 振荡器停止 bit7=0,24 小时模式WP: 写保护位 寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入 AP=1 下午模式WP=1 寄存器数据不能写入 AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电 DS=01 选择一个二极管TCS=其它 禁止涓流充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止A时钟原理图如图3-13所示图3-13 A 时钟图(4)地址/命令字节和寄存器格式定义在数据传送时,首先向DS1302写人地址/命令字节,该字节提供地址和命信息,然后输人或输出数据。 B7为数据传送标志位,要完成数据传送,B7必须为逻辑“1”,否则不能向DS1302进行写操作。B6为RAM和时钟寄存器选择位,若为逻辑“0”,表明系统要对时钟寄存器进行读写操作;B6为逻辑“1”,表明系统要对RAM进行读写操作。B1B5确定要进行读写操作的寄存器地址,当B1B5均为“1”时,选中多字节串模式传送方式,则时钟/日历数据或者RAM数据以多字节串模式进行传送。B0为读写操作选择位,若为逻辑“0”时,表明将进行写操作,即向DS1302输入数据;B0为逻辑“1”时,则表明将进行读操作,即从DS1302输出数据。DS1302片内有7个时钟/日历时标寄存器,以压缩BCD码格式存放时钟旧历数据。秒寄存器的最高位B7是时钟停止标志,当该位为“1”时,时钟晶振停止运行;当该位为“0”时,时钟开始运行。小时寄存器的最高位B7是12/24小时方式选择位,当为“0”时,选择24小时方式;当为“1”时,选择12小时方式,该寄存器的B5是上/下午标志位,B5为“0”表示上午,B5为“1”,表示下午。DS1302片内还有控制寄存器,微电流充电寄存器,串模式控制寄存器。控制寄存器的最高位B7是写保护位,在向时钟寄存器或RAM中写入数据之前,B7必须为“0”,如为“1”,则禁止对DS1302进行任何写操作,该寄存器中B0B6始终被置为“0”。微电流寄存器控制DS1302的微电流充电功能,其中微电流充电选择位B4B7控制微电流充电器的选择,为防止误操作,只有1010格式才能够使充电器工作。DS1302在上电时,微电流充电器不被使能,只有在软件程序中对其进行选择。二极管选择位B2B3和电阻选择位B0B1分别选择连在VCC1和VCC2之间充电通道上的二极管和电阻的数目。(5) 读写操作时序在数据传送时,首先传送地址/命令字节,确定下一步将要执行读操作还是写操作;将要访问的是时钟寄存器还是RAM存储器及其地址;采用单字节传送方式还是多字节(串模式)传送方式。在向DS1302写入地址/命令字节之后传送读写操作数据。单字节传送方式读写操作时序如图3-14所示。图3-14单字节传送方式读写操作时序图在数据传送时,先将复位端RST置为高电平,此时SCLK必须为低电平。然后,在第一组8个SCLK串行时钟周期的上升沿,依次将地址/命令字节的8比特串人移位寄存器。若系统要对DS1302进行写操作,则把地址/命令字节写人移位寄存器之后,数据字节在下一组8个SCLK串行时钟周期的上升沿输人DS1302;若系统要对DS1302进行读操作,则把地址/命令字节写入移位寄存器之后,数据字节在下一组8个SCLK串行时钟周期的下降沿从DS1302输出。任何字节均从低位B0开始依次输人或输出。(6) DS1302与微控制器的接口软件及功能应用举例电路设计中采用了DS1302时钟旧历芯片,提供时间和日历用于显示记录,并为定时、持续打印功能提供时钟。该系统采用ATMEL公司的AT89S52单片机作为核心控制器件,DS1302在该系统中的应用电路如图3-15所示。DS1302工作在双电源供电方式下,VCC2脚提供主工作电源,VCC1脚接3.6V镉镍充电电池。通过编程选择微电流充电功能,由VCC2在内部向VCC1脚提供充电电流,对充电电池充电。在系统掉电时,由备份电源供电维持时钟运行和保持RAM中的重要数据不丢失。DS1302的SCLK,I/O,RST端分别与单片机AT89C52 P1口的P2.2,P2.3,P2.4相连,进行双向串行通信。由于采用真时钟,可以不占用单片机的定时器资源,减轻软件设计量。下面给出用MCS-52汇编语言编写的单字节传送方式读、写操作子程序清单。在DS 1302写子程序W-1302中,累加器A中存放地址/命令字节,其首先被写人DS1302,发出写操作命令;然后把寄存器R1中存放的数据字节写入DS1302,地址/命令和数据字节均是在SCLK的上升沿输人给DS1302的。在读操作子程序READ 1302中,首先将累加器A中存放的地址/命令字节写入DS1302,发出读操作命令;然后RAM中的数据或时钟数据在SCLK的下降沿从DS1302中输出,并将其存放在累加器A中。图3-15 DS1302与单片机的连接图最后,经过比较其电路图如3-16 图3-16 DS1302的外接电路2.时间显示模块 单片机的并行口不能直接驱动LED显示器,必须采用专用的驱动电路的芯片。使之产生足够大的电流,显示器才能正常工作。如果驱动电路能力不足,即负载能力不够时显示器就不够亮,而且驱动电路长期在低电流下工作容易损坏。因此在实际使用中必须接入LED驱动 LED驱动分为两种:静态显示,动态显示。静态显示:LED驱动的选择较为简单,驱动能力与显示器电流相匹配即可,用+5V共阳,接地共阴即可。动态显示:同样考虑段位的和位位的的驱动能力,而且段的驱动能力决定能力决定位的驱动能力。 在应用系统中,设计要求不同,使用LED的显示的位数不同。选择6位一体的时钟型LED显示器用“:”号分开。分别表示“年,月,日”和“时,分,秒”。 此次设计选择动态显示。(1)LED显示器的选择对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部接在一起,所以必须使用动态扫描方式。(2) LED的段驱动芯片的选择。LED的段驱动电路有很多种,在本设计中,可以选择BCD-7段锁存/译码/驱动器做为段驱动电路。这类芯片的型号有74LS47、74LS244、74LS247、74LS248等,这类芯片具有锁存、译码驱动的功能。即在输入端输入要显示字型的BCD码,在输出端就可以得到具有一定驱动能力的7段显示字型码。(3) LED的位驱动芯片的选择LED位驱动较常用的芯片有ULN2003A和ULN2803。前者是具有7个达林顿电路的集成芯片,后者是具有8个达林顿电路的集成芯片。此种芯片集电极可以收集最大达500mA的电流,耐压为30V,能驱动常规的LED显示器。在本设计中选用74LS244作为位驱动电路,将该芯片的输入端引脚IN0、IN1、IN2、IN3与单片机的P1口或者P3口连接,该芯片的输出端引脚OUT0、OUT2、OUT3与LED显示器的4个位码引脚D1D4相连接。(4) LED驱动电路与单片机的连接可以采用单片机的P1口作为与LED的输出接口,即P1口的低四位作为LED的段码输出信号,P1口的高四位作为LED位码的输出控制信号。该电路的工作原理是:当P1口的低四位输出断码信号的BCD码后,通过74LS273芯片的锁存、74LS244的译码和驱动作用,在其输出端输出具有一定驱动能力的七段字型码,由于4-LED的段码输入引脚是并联在一起的,所以每一位LED的段码输入引脚都能获得这个段码信号。若要控制在每一时刻只有一位LED被点亮,必须靠位码信号控制。因此P1口的位码信号在每一时刻只有一位是“1”,其它位全为“0”,然后按时间顺序改变输出“1”的位置,控制在每一时刻只有一位LED被点亮,达到动态显示的目的。(5) 按键电路设计与器件选择金属检测系统工作时,应对当前时间进行调整。要实现这项功能,可以接入键盘输入电路。在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。键盘结构可以分为独立式键盘和行列式键盘(矩阵式)两类。本设计采用的是独立键盘。由于要显示年、月、日、时、分、秒,所需LED太多,所以在正常情况下,只显示时 、分、秒,当需要显示年、月、日的时候,按下S4(给单片机PSEN一个信号)即可显示,时间切换键电路如图3-17所示。图3-17 时间显示切换键3.报警电路一旦发现金属出现,,则被测物理量超限由单片机I/O口的P3.4控制发光二极管进行光报警的同时,P3.5还触发无源蜂鸣器用声报警提醒检测人员注意,进行必要的定位搜身检查。4.查询电路由于AT89S52的内存比51系列单片机和52系列的一些单片机的内存大好多(它的内存是8K),而且食品中的金属相对较少,所以将每次检测到金属的相关数据存到AT89S52单片机的内存里。为了以后能查到检测到金属的相关数据,设计3个查询独立按键。当按下S1时,可以调出最新检测到的金属的相关数据;按S2可以向上翻,按S3可以向下翻。查询按键电路如图3-18所示。图3-18 查询按键电路5.电源电路电路如图3-19所示,电源供电由9V电池和板内稳压电源组成。电路板内采用三端稳压集成电路块LM7805为板内元器件供电。LM7805三端正稳压器具有内部过流、热过载和输出晶体管安全区保护功能,可将+9VDC的输入电压转换为+5V电压,最大输出电流0.5A,保证板内555定时器、UGN3503U、AT89S52、ADC0809等芯片和元件可靠地工作。图3-19 电源电路3.3整机工作原理描述在工作过程中,由555定时器构成的多谐振荡器产生一个频率为24KHz的信号,此脉冲信号经过缓冲和放大之后,形成频率稳定度高、功率较大的脉冲信号输入到探测线圈中,通电的线圈周围就会产生磁场,此时,固定在线圈L;中心的霍尔元件UGN3503U就会感应到线圈周围的磁场,并将磁场强度信号线性地转变成电压信号。在无金属的情况下,假设霍尔输出电压为,该电压信号很微弱,属mV级信号,经过放大电路放大,再通过峰值检波电路,得到相应的0V5V的峰值输出电压,以满足ADC0809的量程,经A/D转换后,将的数字量输入到单片机储存起来。此后,以该电压信号作为基准电压,与A/D转换器采集到的电压信号进行比较判断。当探测线圈靠近金属物体时,由于电磁感应现象,会使探测电感值发生变化,从而使其周围的磁场发生变化,霍尔元件感应到该变化的磁场,并将其线性地转变成电压信号,该变化的电压经放大电路、峰值检波电路后,得到相应的0V5V的峰值输出电压,然后经A/D转换后。转换后,输入到CPU,由CPU完成与基准电压的比较,二者比较-得到一个差值,此差值与预设的灵敏度再作比较。当然,大小的设定决定着系统精度的高低。若-,就确定为探测到金属,CPU输出口P3.4输出信号驱动发光二极管发光报警,同时P3.5控制蜂鸣器发出声响,进行声音报警。第四章 系统软件设计4.1软件设计思想软件是本系统的灵魂,在设计软件中,本文从系统的实用性、可靠性及方便灵活等几个方面出发,使程序满足设计的功能要求。整个系统的软件包括主程序、一个外部中断服务程序、数字滤波程序、比较判断子程序及发光报警等若干个子程序。软件采用汇编语言编写,并采用模块化设计,使程序结构清晰,便于今后进一步扩展系统的功能。主程序初始化以后置位AT89S52的中断控制位EA,使CPU开放中断。然后通过检测ARM中21H中数值的值来判断是否采集基准电压,如果未采集过,则启动ADC0809对通道的模拟输入量进行A/D转换。在电路设计中,ADC0809与AT89S52是采用中断方式连接的,所以系统的数据采集处理功能是在中断服务程序中完成的,从附录系统电路原理图看出,ADC0809的EOC端通过反相器接AT89S52的端,作为中断申请。采用中断方式,可大大节省CPU时间。软件编程允许AT89S52响应外部中断1,且设置其响应方式为边沿触发。当A/D转换完毕后,ADC0809的EOC端向AT89S52的送入一个中断申请信号,AT89S52接此信号后响应中断请求,调用中断服务子程序取,中断服务程序进行压栈,保护现场,读取来自0809数据输出口的8位数字量,并将数字量储存到单片机RAM中,然后启动ADC0809的下一次转换。经过数据软件滤波之后将其存放在单片机RAM 21H中,作为基准电压。经反复实验测得的灵敏度的值被存放在单片机RAM地址为20H的存储器中。在检测过程中,将A/D转换器采集到的电压信号经数据软件滤波后存入内部RAM以30H为首址的数据存储器中,然后将此数据和基准电压进行比较,二者差值U存放在单片机ARM地址为22H的存储器中。而后再通过判据算法将此差值U与灵敏度进行比较,以确定是否报警。4.2数字滤波及算法说明金属探测器的噪声抑制能力是金属探测器的主要设计指标。由于在采集电压量时经常会碰到各种瞬时干扰,而采用硬件滤波存在硬件电路复杂等诸多弊端,因此本设计中采用算术平均滤波法,即在一次电压量的采集中,在很短的时间内对它进行6次采集,将它转换为数字量后求和,分析出6次输入中的最大值和最小值,然后减去最大值和最小值,除以4得到平均值的方法,完成一次数据采集的软件滤波。用软件代替硬件,从而省去了复杂的硬件,而且能够取得好而精确的效果。在一个采样周期内,对信号X的N次测量值进行算术平均,作为时刻K的输出x(k),即其中N为采样次数,为第i次的采样值。显然N越大,信号平滑度越高,灵敏度就会降低,但是本设计中需要较高的灵敏度,所以N取值不易过大,这里我选择了N=6,选择取6个数进行计算的原因,就是因为在汇编中做计算是非常麻烦的,取6个数,减去最大值和最小值后,取平均值是除4,计算机的内部计算都是二进制,而二进制每除一个2,实际上是向右移一次。所以为了计算方便,我选择取6个数,最后在算除法的时候,只需要用单片机自带的右移位命令移2次就行了。4.3主程序流程图图4-1主程序流程图图4-1主程序流程图4.4主要子程序模块设计4.4.1 初始化子程序ADPORT EQU 7FF8H ;ADC0809通道0地址 EQU 20H ;灵敏度存放在20H EQU 21H ; 基准电压存放在21HU EQU 22H;差值存放在22HORG 0000H;主程序起始地址LJMP MAIN; 转主程序ORG 0013H ;中断服务程序入口LJMP ; 转NITI中断服务程序ORG 0020HMANI : MOV SP ,#60 ;设置堆栈指针MOV 20H ,#N ;放入灵敏度值(设灵敏度值为N)Mov ,#FFH ;R7=11111111,初始化读数标志MOV 2IH ,00H ;2IH单元清零MOV 22H ,00H; 22H单元清零Mov ,#3OH ;为缓冲区数据地址指针,送数据缓冲区首址RET4.4.2 中断服务程序AD:SETB ;当ADC0809的EOC输出电平上跳沿触发中断1SETB EA ;打开总中断开关(片内中断允许寄存器IE7=EA)SETB ;允许外中断1中断MOV DPTR ,#ADPORT ;数据指针指向通道顶0通道MOV A , #00H;MOV ,A;MOVX DPTR ,A ; 启动A/D转换CJNE R7 ,#00H;LOOP :NOPAJMP LOOP;ORG 2100H;中断服务程序入口NITI :PUSH PSWPUSH APUSH DPL;PUSH DPH;MOV DPTR ,#7FF8H ; 数据指针指向通道MOVX A,DPTR; 把该通道的A/D转换结果读到累加器A中MOVR ,A ;将A/D结果存入LCALL FILTER ;调用数字滤波程序MOV A , #00H:MOVX DPTR ,A ;再次启动A/D转换MOV R7 ,#00H ; 置读数标志POP DPH ;POP DPL ;POP A ;POP PSW ;RETI ;中断返回4.4.3 数字滤波程序设计设一个采样周期,对通道0连续采样6次,然后去掉最大和最小值,把剩余的累加和求算术平均值作为本周期采样值。存入内部RAM以30H为首址的数据存储器中。其中,寄存器存放最大值,寄存器存放最小值,寄存器存放累加和,存放连续采样次数。(1) 程序框图图 4-2 数字滤波程序流程图 (2)程序清单FILTER : CLR A ; 、清0MOV , A ;MOV , A ;MOV , #3FH ; 置最小值初态MOV , #30H ; 置数据区首地址MOV , #06H ; 置连续采样次数N= 6DAV1:ADD A , ; 累加输入值MOV ,A ; 累加和输入 CLR C 清进位标志MOV A, ;取最大值SBBB A , ; 最大值一输入值JNC DAV2 ; 输入值()?MOV A , ;MOV ,A ; 更新最大值DAV2:CLRCMOV A , ; 取/结果SBBB A , ; 与最小值比较JNC DAV3 ;判断输入值(),则转到DAV3) MOV A , ;MOV , A;更新最小值 DAV3:DJNZ , DAV1 ; 判断N-1=0?(若输入值介于最大、最小值间,且-10时转至DAV1) CLR CMOV A,R4;SBBB A, ;N个数减去最大最小 CLR C CLR ARRC AMOVX ,A;将算术平均值存入以30H为首址的RAM缓冲单元中INC R ;修改数据区指针RET4.4.4 发光与报警模块DISPLAY:SETB P1.0LCALL DELAYCLR P1.0AJAMP DISPLAYALARM:SETB P1.6LCALL DELAYDELAY: MOV ,#FFHD1: MOV ,#FFHD2: DJNZ ,D2DJNZ ,DIRENEND4.4.5 LED显示程序1多字节传送方式 当命令字节为BE或BF时,DS 1302工作在多字节传送模式,8个时钟/日历寄存器从寄存器0地址开始连续读写,从0位开始的数据。当命令字节为FE或FF时,DS1302工作在多字节RAM传送模式,31个RAM寄存器从。地址开始连续读写从。位开始的数据。例如:写入00年、6月21口、星期三、13时、59分、59秒,程序设置如下:Write Multiplebyte:MOV Command, #OBEh ;命令字节为BEhMOV ByteCnt, #8 ;多字节写入模式(此模块为8个)MOV R0, #XmtDat ;数据地址覆给R0MOV XmtDat, #59h;秒单元内容为59hMOV XmtDat+1,#59h ;分单元内容为59hMOV XmtDat+2,#13h ;时单元内容为13hMOV XmtDat+3,#21h;日期单元内容为21hMOV XmtDat+4, #06h;月单元内容为06hMOV XmtDat+5,#03h;星期单元内容为03hMOV XmtDat+6,#0;年单元内容为00hMOV XmtDat+7, #0;写保护单元内容为00hACALL Send ,Byte;调用写入数据子程序RET ;返回调用本子程序处读出寄存器07的内容,程序设置如下:Read_Multiplebyte:MOV Command,#08Fh;命令字节为8FhMOV ByteCnt, #8;多字节读出模式(此模块为8个)MOV R1,#RcvDat;数据地址覆给R1ACALI. Receive Byte;调用读出数据子程序RET;返回调用本子程序处以上程序调用了基本数据接收(Receive Byte)模块及一些内存中元定义,下面的程序亦使用了这个模块。 为了使LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!