基于单片机的乒乓球自动分拣控制系统设计_第1页
基于单片机的乒乓球自动分拣控制系统设计_第2页
基于单片机的乒乓球自动分拣控制系统设计_第3页
基于单片机的乒乓球自动分拣控制系统设计_第4页
基于单片机的乒乓球自动分拣控制系统设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

桂林电子科技大学毕业设计(论文)第56页共56页引言本次毕业设计课题,是基于单片机的乒乓球自动控制分拣系统。随着乒乓球比赛和各种世界大赛以及职业联赛的不断发展,运动员的技术更加的细腻。为保证比赛的公平性,国际乒联组织对比赛用球的大小和重量有十分严格的规定,因此,乒乓球生产厂家必须将所生产的乒乓球按重量进行准确分拣,以达到区分球的档次,挑选高档比赛用球的目的。这项工作以前一直是由工人手工完成,由于工人工作量十分巨大,为保证精度导致精神过度集中,工作紧张,因此分拣效率很低,生产成本非常的高。为改变这种状况,开发乒乓球自动控制分拣系统成了促进乒乓球生产发展的当务之急。基于单片机控制的乒乓球自动分拣系统能够自动并且准确地称出乒乓球的重量,并按所示重量等级对乒乓球自动分档,同时它能耗低,成本低,节能环保,大大减少了工人们的工作量,提高了乒乓球的分拣效率。因此,此设计具有相当重要的现实意义和实用价值。1绪论1.1概述在科技飞速发展的21世纪里,许多电力电子产品及工业生产中的自动控制系统得到了迅速发展。越来越多的设备趋于人性化、智能化,自动化。这些电气设备大部分都含有CPU控制器、DSP或者是单片机等。当今社会,应用单片机的产品已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的足迹。单片机以其用电电压低、功耗低、高可靠性、高性价比等一系列优点,近几年得到非常迅猛的发展和大范围的推广使用,被广泛应用于工业控制系统、移动通讯设备、智能仪表、实时工控、导航系统、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如智能型家用电器(彩电、冰箱、空调、饮水设备等)、工业自动化控制系统、车间流水线控制等等。用单片机来控制的小型家电产品具有便携实用,操作简单的特点。由于应用广泛,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。科技越发达,智能化的东西就越多。学习单片机是社会发展的必然需求,也是一名电子爱好者和电气工程师的必修课。因此,学习并掌握单片机技术是对一名电气专业的大学生的重要要求。

早期的大部分电子仪器和设备,不是成本太高就是电路复杂,工程师要维护它要花很多精力和时间,想要更改它的功能更加困难。而单片机强大的功能应付这些将会使您得心应手,当然前提是您必需要去了解和学习它。从事单片机技术的研发的工程师都属于高薪水岗位。据调查,截止2021年,我国的单片机从业人员已经达到了250万人。随着社会的发展,单片机的从业人员将更受到市场的欢迎。据不完全统计,到2021年,我国单片机设计从业人员预计将达400万人之多。培养单片机应用人才,特别是具有最新现代单片机技术和实践经验的工程师具有着重要的现实意义。此设计的核心是称重部分的设计以及控制过程的时序,下面就针对称重部分进行相应的介绍。称重技术自古以来就被人们重视,作为一种计量手段,广泛应用于工农业、科研、交通、内外贸易等各个领域,与人民的生活紧密相连。电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。因此,称重技术的研究和衡器工业的发展各国都非常重视。同样的,在本次设计中也应用到称重技术来分拣乒乓球,利用高精度的重量传感器,加上微控制器的分析判断、运算控制以达到分拣的目的。我国电子衡器从最初的机电结合型发展到现在的全电子型的数字智能型。我国电子衡器的技术设备和检测实验手段基本达到国际水平。电子衡器制造技术及应用得到了新发展。电子秤重技术从静态称重向动态称重发展;计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展,特别是对快速称重的动态称重的研究与应用。电子秤属于电子衡器的一种,它的发展也遵循这一趋势。随着时代科技的迅猛发展,微电子学的计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远距离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得以显著提高。做为重量测量仪器,只能电子秤在各行各业开始显现其测量准确,测量速度快,易于实时测量和监控的巨大优点,并开始逐渐取代传统型的机械杠杆测量称,成为测量领域主流产品。电子秤的发展过程与其它事物一样,也经历了由简单到复杂、由粗糙到精密、由机械到几点结合再到全电子化、由单一功能到多功能的过程。近年来,电子秤已越来越多地参与到数据处理和过程控制中。现代称重技术的数据系统已成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可缺少的组成部分。随着称重传感器各项性能的不断突破,为电子秤的发展奠定了基础,国外如美国、西欧等一些国家在20世纪60年代就出现了0.1%称量准确度的电子秤,并在70年代中期约对75%的机械秤进行了机电结合式的电子化改造。电子秤是日常生活中常用的电子衡器,广泛应用于超市、大中型商场、物流配送中心。电子秤在结构和原理上取代了以杠杆平衡为原理的传统机械式称量工具。相比传统的机械式称量工具,电子秤具有称量精度高、装机体积小、应用范围广、易于操作使用等优点,在外形布局、工作原理。本设计的称重部分实际上可以看做是电子称,电子称负责称量乒乓球的重量,然后由微控制器对重量数据进行运算、分析判断,进行相应的控制,达到控制的要求。1.2称重部分的研究方法称重传感器是利用物体的重力作用来确定物体质量(重量)的测量仪器,也可用来确定与质量相关的其它量大小、参数、或特性。不管根据什么原理制成的电子秤均由以下三部分组成:承重、传力复位系统它是被称物体与转换元件之间的机械、传力复位系统,又称电子秤的秤体,一般包括接受被称物体载荷的承载器、秤桥结构等。称重传感器即由非电量(质量或重量)转换成电量的转换元件,它是吧支撑力变换成电或者其它形式的适合于计量求值的信号所用的一种辅助手段。按照称重传感器的结构形式不同,可以分直接位移传感器(电容式、电感式、电位计式等)和应变传感器(电阻应变式、卢表面谐振式)或是利用磁弹性、压电和压阻等物理效应的传感器。对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态影响小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠。测量显示和数据输出的载荷测量装置即处理称重传感器信号的电子线路和指示部件。这部分习惯上称载荷测量装置或二次仪表。在数字式的测量电路中,通常包括前置放大、滤波、运算、变换、计数、寄存、控制和驱动显示等环节。1.3电机控制部分简介本设计的运动控制部分采用步进电机来实现。步进电机是一种把电脉冲信号变成直线位移或角位移的控制电机,其位移速度与脉冲频率成正比,位移量与脉冲数成正比。步进电机在结构上也是由定子和转子组成,可以实现角度和转动速度的高精度控制。当电流流过定子绕组时,定子绕组产生一矢量磁场,该矢量场会带动转子旋转一角度,使得转子的一对磁极磁场方向和定子的磁场方向一着该磁场旋转一个角度。因此,控制电机转子旋转实际上就是控制流过定子绕组的电流来产生旋转的磁场。每来一个脉冲电压,转子就旋转一个步距角,称为一步。根据电压脉冲的分配方式,步进电机各相绕组的电流轮流切换,如果有一个连续脉冲时,就能一步一步地连续转动,从而使步进电动机旋转。步进电机每转一周的步数相同,在不丢步的情况下运行,其步距误差不会长期积累。在没有超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,另外,步进电机只有周期性的误差而没有累积误差,精度高,步进电动机可以在较宽的频率范围内通过改变脉冲频率来实现调速、快速起停、正反转控制等,这是步进电动机最突出的优点。步进电动机上个世纪就出现了,它的组成、工作原理和今天的反应式步进电动机没有什么本质区别,也是依靠气隙间的磁导变化来产生电磁转矩。上世纪80年代以后,由于廉价的微型计算机以多功能的姿态出现,步进电动机的控制方式变得更加灵活多样。那么,怎么样实现步进电动机的控制,这是一个很核心的问题。到目前为止,步进电机驱动技术通常分为单电压驱动、单电压串电阻驱动、高低压驱动、斩波恒流驱动、升频升压驱动和细分驱动等。1.4系统的组成及工作原理1.4.1系统的组成乒乓球自动分拣系统由AVRAtmega16L小系统,LCD1602显示电路、按键电路、放大电路以及A/D转换电路和步进电机控制电路组成。AVRAtmega16L小系统AVRAtmega16L是一款高性能的单片机,内部集成了大部分常用的资源,大大简化了外部硬件电路的制作。它是有ATMEL公司研发出来的增强型内置Flash的RISC精简指令集高速8位单片机。AVR系列的单片机广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。AVR单片机具有可靠性高、功能强、速度快、功耗低以及性价比高等优点,这些优点都是衡量单片机性能的重要指标。由Atmega16L构成的小系统包括外部时钟电路(8M的晶振),复位电路,以及ISP程序下载电路组成。LCD1602显示电路LCD1602液晶是种专门用来显示字母、数字、符号的显示器,它不能显示汉字。它总共有16个引脚,可以显示两行字符,,每行16个字符。使用单片机控制LCD1602具有操作简单,控制方便的优点,在硬件电路上可以直接和单片机的IO口连接,同时只需在第三个一脚加上一个粗调的可变电阻即可。本系统通过LCD1602将称重的物体的重量以及阀门的开关状态显示出来,控制非常方便。按键电路按键电路有四个轻触按键做出,按键的一端连接单片机的IO口,另一端连接地,单片机通过判断IO口的电平高低来判断是否有按键按下。放大电路放大电路由仪表放大器AD620和一个电阻构成。AD620是一款低成本、高精度的仪表放大器,仅需一个外部电阻来设置增益,增益范围为1到10000。A/D转换电路A/D转换器的作用是将重量传感器输出的经过放大后的信号进行转换,将模拟量转换成数字量,以方便单片机读取。本系统采用10位的A/D转换器TLC1543,它是一款串行的、多通道的模数转换器,具有输入通道多、性价比高、易于和单片机连接的特点。步进电机控制电路乒乓球分拣系统需要电动机的转动带动相应的机构来将称好的球拨开,将下一个球拨到托盘上称量。以实现分拣过程的自动化。该控制电路采用集成芯片L297和L298N组成控制电路,具有价格低、易于控制的优点。1.4.2系统的工作原理步进电机带动叶轮转动,电动机每隔5秒(也可以5-8秒)选择一次,每次转动90度,即每隔一定时间将托盘上已经称好的乒乓球拨入滚槽内送走,同时将下一个未称量的球拨到托盘上称重。出口滚槽有四个出口,1-3号出口是装有继电器驱动的活动门,4号门是直滚门,单片机根据称量的球的重量控制打开某一个通道的门,实现球的自动分拣。2控制系统的硬件设计2.1系统的方案设计本系统的系统构成为:单片机组成的小系统电路、LCD显示电路、按键电路、放大电路、A/D转换电路以及电源电路。系统的总体设计方案框图如图2.1所示:A/D转换放大电路载重量传感器A/D转换放大电路载重量传感器微控制器微控制器LCDLCD显示键盘键盘负载步进电机负载步进电机步进电机驱动电路光耦隔离电路图2.1系统的总体设计方案框图数据采集部分是利用称重传感器检测压力信号,得到微弱的电信号,而后经放大电路部分处理后送入A/D转换器,将模拟信号转换为数字量输出。控制器部分接受来自A/D转换器输出的数字信号,经过运算,将数字信号转换为物体的实际重量信号。控制器根据重量来决定打开哪个的通道的阀门。另外该系统还有由LCD组成的显示电路,用于将重量等相关信息的显示。2.1.1控制器的选取方案一:采用大规模可编程逻辑器件来实现,因为系统需要大量控制液晶显示器和键盘。由于大规模可编程逻辑器件一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。本系统状态较多,难度系数较大。故不宜采用大规模可编辑逻辑器件:CPLD、FPGA来实现。方案二:采用AVR单片机来实现,考虑到本系统的具体要求,也为了简化外部硬件电路的制作,降低成本,采用Atmega16L这个型号的单片机。Atmega16L是一种高性能、低功耗的8位AVR微控制器,采用增强的RISC结构,片内资源丰富:16K的可编程Flash,512字节的EEPROM,32个通用IO口,三个定时计数器,可编程的USART,两线接口、SPI接口,8路10位ADC、看门狗等。丰富的内部资源使得外部硬件电路设计相对简单。最后我们最终选择了方案二,并采用Atmega16L这个单片机来实现系统的功能要求。内部带有16KB的可编程Flash,512字节的EEPROM。2.1.2重量传感器的选取方案一:采用电容式称重传感器它是以各种不同类型的电容器作为转换元件,是一个具有可变参数的电容器。电容式传感器由于它存在输出特性的寄生电容、非线性和分布电容,会对灵敏性和称重精度的产生影响、传感器联接电路比较复杂等原因,直接影响到它的可靠性,所以不采用该方案。方案二:采用压磁式称重传感器它是一种能够实现力—电转换的无源传感器。它利用压磁效应,将被称重量的变化变换成传感器导磁体的导磁率变化并输出电信号。压磁传感器具有输出信号大、抗干扰性能好、过载能力强、不均匀载荷对测量准确度的影响小,但缺点也是明显的:准确度低、反应速度慢。所以不采用该方案。方案三:采用电阻应变式称重传感器电阻应变式称重传感器包括两个主要部分,一个是电阻应变计:它作为传感元件井弹性体的硬币,同步地转换为电阻值的变化;令一个是弹性敏感元件:利用它将被测的重量转换为弹性体得应变值。在电阻应变式称重传感器中通过桥式电路将电阻的变化转换为电压变化。它包含一个具有至少两个可变桥臂的4电阻结构的电桥,其中由所称重量引起的电阻变化可产生一个叠加在电源电压的一半共模电压之上的差分电压。电阻应变式传感器工作原理框图如图2.2所示:电压电压敏感元件应变片测量电桥载荷p应变ε电阻变化△R输出图2.2电阻应变式称重传感器工作原理框图电阻应变式称重传感器桥式测量电路如图2.3所示:图2.3桥式测量电路R1、R2、R3、R4为4个应变片电阻,组成了桥式测量电路,Rm为温度补偿电阻,e为激励电压,V为输出电压。当弹性体承受载荷产生变形时,输出信号电压可由下式给出:由于测量电桥采用惠更斯电桥,且惠更斯电桥具有抑制温度变化的影响,抑制干扰,补偿方便等优点。所以采用该传感器构成的测重电路,具有测量精度高,温度特性好,工作稳定等优点。同时全桥式等臂电桥的灵敏度最高,各臂参数一致,各种干扰的影响容易相互抵消,所以在本设计中我们采用该方案。通过对三种方案的分析和比较,又因为本系统只需称量乒乓球的重量,选用的称重传感器的量程不宜太大,可以选用300g到1000g的传感球。且考虑到称台自重、振动和冲击分量,还有避免超重损坏传感器,综上我们最终采用矽普电子HL-8型称重传感器,额定量程为300g,精度为0.01%,综合误差0.05。可以满足本系统的精度要求。=1\*GB2⑴称重传感器技术参数表2.1称重传感器技术参数(2)电阻式应变片介绍由于本设计所以的传感器是用电阻式应变片制作的,故而对电阻式应变片的工作原理,使用方法等做相应的介绍。电阻应变片是由Φ=0.02-0.05mm的康铜丝或镍铬丝绕成栅状(或用很薄的金属箔腐蚀成栅状)夹在两层绝缘薄片中(基底)制成。用镀银铜线与应变片丝栅连接,作为电阻片引线。。图2.4电阻应变片电阻式应变片将机械量转变为电量(电压),电阻应变测量技术的优点如下:★应变片尺寸小、重量轻,安装方便。★测量灵敏度与精度高。★测量应变的范围广。大应变★可测量应力梯度较大的构件的应变。★可测量特殊环境下的应变。★可以实测量结果的数字化和计算机处理。★可以制成各种传感器。图2.5应变测量系统框图(3)称重传感器的内部结构及使用方法=1\*GB3①内部结构传感器的内部由四个应变电阻片组成,由它们构成一个半桥式测量电路。它有四根导线引出,其中两根是给传感器提供电源电压,另外两根是测量重量的输出电压信号。四根线的颜色分别为红、黑、白、绿四色,红(+)和黑(-)是接工作电源,白(+)和绿(-)是输出信号线。图2.6称重传感器内部结构=2\*GB3②使用方法首先称重传感器的安装方式一定要正确,不正确的安装有可能损坏传感器或者测量的数据不准确。安装方式如下:图2.7称重传感器安装方式要安装传感器,就要知道它的尺寸,它的尺寸如下:图2.8重量传感器的尺寸图该传感器的使用方法很简单,在按照上面的安装方法安装好后,红(+)和黑(-)接工作电源(5V),白(+)和绿(-)是输出信号线。白线和绿线输出的信号直接就可以接运算放大器。2.1.3A因本系统要求的精度不高,分辨率到1g即可,故选用10位的AD转换器TLC1543,这也是考虑到价格的原因,该AD转换器具有价格低廉,接口简单的优点。采用该AD转换器,其分辨率为300/1024=0.293g=0.3g2.1.4放大器的选取方案一:利用普通低温漂运算放大器构成前级处理电路;普通低温漂运算放大器构成多级放大器会引入大量噪声。由于A/D转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此种方案不宜采用。方案二:主要由高精度低漂移运算放大器构成差动放大器,而构成的前级处理电路;差动放人器具有高输入阻抗,增益高的特点,可以利用普通运放(如OP07)做成一个差动放大器。一般说来,集成化仪用放大器具有很高的共模抑制比和输入阻抗,因而在传统的电路设计中都是把集成化仪器放人器作为前置放人器。然而,绝人多数的集成化仪器放大器,特别是集成化仪器放大器,它们的共模抑制比与增益相关:增益越高,共模抑制比越大。而集成化仪器放大器作为心电前置放大器时,由于极化电压的存在,前置放大器的增益只能在几十倍以内,这就使得集成化仪器放大器作为前置放大器时的共模抑制比不可能很高。有同学试图在前置放大器的输入端加上隔直电容(高通网络)来避免极化电压使高增益的前置放大器进入饱和状态,但由于信号源的内阻高,且两输入端不平衡,隔直电容(高通网络)使等共模干扰转变为差模干扰,结果适得其反,严重地损害了放人器的性能。方案三:为了简化电路,方便硬件电路的制作,本系统选用了使用简单、精确度高、价格便宜的仪表放大器AD620A.无论应用于何种系统,AD620都能以更低功耗和更低的成本提供更高的精度。在简单系统中,绝对精度和漂移误差显然是最重要的误差来源。由AD620组成的放大电路的性能要优于由三个OP07运放构成的放大电路。2.1.5显示器件和输入部分的选取(1)显示输出部分方案一:采用LED数码管显示。数码管只能显示有限的数字和符号,显示内容少,无法满足设计要求。故不采用该方案。方案二:采用LCD1602液晶显示器显示1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。LCD1602具有微功耗、体积小、显示内容丰富、超薄轻巧等优点,常用在袖珍式仪表和低功耗应用系统中。而且相关的说明资料,应用例子也很多,价格也相对便宜,故本系统应用LCD1602作为显示器。2.2系统各个模块电路的设计本系统按照功能可以分为单片机小系统模块、LCD1602显示模块、按键输入模块、放大电路模块、A/D转换模块、步进电机控制电路模块等。下面就对各个模块的设计进行详细的介绍。2.2.1单片机小系统模块单片机最小系统模块由AVR单片机ATmega16L和复位电路,时钟电路组成。(1)AVR单片机Atmega16L简介单片机又称单片微控制,它是把一个计算机系统集成到一个芯片上,概括的讲:一块芯片就成了一台计算机。单片机技术是计算机技术的一个分支,是简易机器人的核心元件。2021年,由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术,共同研发出RISC精简指令集的高速8位单片机,简称AVR。相对于出现较早也较为成熟的51系列单片机,AVR系列单片机片内资源更为丰富,接口也更为强大,同时由于其价格低等优势,在很多场合可以替代51系列单片机。AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。ATmega16有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。本芯片是以Atmel高密度非易失性存储器技术生产的。片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。PDIP封装的Atmega16有40个引脚,32个可编程的双向IO口,具有可编程的的内部上拉电阻,能够输出和吸收大电流。若端口作为输入使用时,并且使能内部上拉电阻,那么端口被外部电路拉低时将输出电流。另外,32个端口除了可以作为普通的IO口外,还有第二功能。第9个管脚RESET-复位输入引脚,当给该引脚提供持续时间超过最小门限时间的低电平时,将引起系统复位。持续时间小于门限时间脉冲不能保证可靠复位。第10、11个管脚VCC和GND-数字电路部分的电源、地,为数字电路提供电源。第12、13个引脚XTAL1、XTAL2分别是反向振荡放大器与片内时钟操作电路的输入端和反向振荡放大器的输出端。第30个引脚AVCC是端口A与A/D转换器的电源。不使用AD时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC连接。本系统不适用ADC,故该引脚接VCC。第32个引脚AREF是A/D的模拟基准输入引脚。为了获得最高的性能以及并行性,AVR采用了Harvard结构,具有独立的程序和数据总线。程序存储器里的指令通过一级流水线运行。CPU在执行一条指令的同时读取下一条指令,这样实现了指令的单时钟周期运行。(2)电路原理图最小系统图采用8M的外部晶振为电路提供时钟。复位电路为系统在必要时手动复位。图2.9单片机电路原理图2.2.2LCD1602显示模块(1)LCD1602介绍1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1602采用标准的16脚接口,各引脚功能如下:表2.2字符型LCD的引脚定义那么如何对DDRAM的内容和地址进行具体操作呢,下面先说说HD44780的指令集及其设置说明,请浏览该指令集,并找出对DDRAM的内容和地址进行操作的指令。共11条指令:=1\*GB3①.清屏指令表2.3清屏指令表

功能:<1>清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;

<2>光标归位,即将光标撤回液晶显示屏的左上方;

<3>将地址计数器(AC)的值设为0。=2\*GB3②.光标归位指令表2.4光标归位指令表功能:<1>把光标撤回到显示器的左上方;

<2>把地址计数器(AC)的值设置为0;

<3>保持DDRAM的内容不变。

=3\*GB3③.进入模式设置指令表2.5进入模式设置指令表功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的

情况如下所示:

位名设置

I/D0=写入新数据后光标左移1=写入新数据后光标右移

S0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移1个字符=4\*GB3④.显示开关控制指令表2.6显示开关控制指令表功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下:

位名设置

D0=显示功能关1=显示功能开

C0=无光标1=有光标

B0=光标闪烁1=光标不闪烁

=5\*GB3⑤.设定显示屏或光标移动方向指令表2.7设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下:

S/CR/L设定情况

00光标左移1格,且AC值减1

01光标右移1格,且AC值加1

10显示器上字符全部左移一格,但光标不动

11显示器上字符全部右移一格,但光标不动=6\*GB3⑥.功能设定指令表2.8功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:

位名设置

DL0=数据总线为4位1=数据总线为8位

N0=显示1行1=显示2行

F0=5×7点阵/每字符1=5×10点阵/每字符

=7\*GB3⑦.设定CGRAM地址指令表2.9设定CGRAM地址指令表功能:设定下一个要存入数据的CGRAM的地址。

=9\*GB3⑨.读取忙信号或AC地址指令表2.10读取忙信号或AC地址指令表功能:<1>读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;

当BF=0时,液晶显示器可以接收单片机送来的数据或指令;

<2>读取地址计数器(AC)的内容。

=10\*GB3⑩.数据写入DDRAM或CGRAM指令一览表2.11数据写入DDRAM或CGRAM指令一览表功能:<1>将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;

<2>将使用者自己设计的图形存入CGRAM。(2)电路原理图这部分的电路很简单,只需一个插针母座和一个10K的粗调电阻,LCD1602可以直接和单片机的IO口连接。如下图所示:图2.10LCD电路原理图2.2.3按键输入模块该模块由四个轻触按键构成,按键一端接单片机IO口,一端接地,单片机通过检测IO口的电平高低判断按键是否按下。图2.11按键电路原理图2.2.4放大电路模块放大电路的作用是将重量传感器输出的微弱电压信号进行放大,只有经过放大后的信号才能够继续进行相应的处理。本放大电路模块采用集成的仪表放大器AD620和一个电阻构成。AD620介绍AD620是一款低成本、低功耗的仪表放大器,仅需一个外部电阻来设置增益,增益范围为1到10000.此外,AD620采用8引脚SOIC和DIP封装,尺寸小于分立电路设计,并且功耗更低,其最大工作电路仅1.3mA,因而非常适合电池供电及便携式应用。AD620具有高精度(最大非线性度40ppm)、低失调电压(最大50uV)和低失调漂移(最大0.6uV/C)特性,是电子称和传感器接口等精密数据采集系统的理想之选。应用领域包括电子称、ECG和医疗仪器、传感器接口、数据采集系统、工业控制过程以及电池供电便携式设备等AD620是一款单芯片仪表放大器,采用经典的三运放改进设计。通过调整片内电阻的绝对值,用户只需一个电阻便可实现对增益的精确编程。单芯片结构和激光晶圆调整允许对电路元件进行严格匹配与跟踪,从而确保此电路本身具有的高性能特性。相关特性如下:项目规格特性备注增益范围1~1000只需一个电阻即可设定电源供应范围±2.3V~±18V-低耗电量Maxsupplycurrent=1.3mA可用电池驱动,方便应用于可携式器材中精确度高低补偿电压:VOFFSET(max)=50μV漂移电压:0.6μV/℃max.-\o"838电子"838电子低噪声-应用场合ECG量测与医疗器材、压力量测、V/I转换、数据撷取系统等。-表2.12AD620放大器参数表图2.12AD620内部方框图图2.13AD620引脚功能图(2)考虑到重量传感器的输出信号大小和激励电压成线性,当重量达到满量程300g,输出的电压Uo=5V*1.0mV=5mV,考虑到A/D转换器能够转换的最高输入电压为5V,所以信号放大倍数为5V/5mV=1000。外接电阻RG=49.4K/(1000-1)=49.4欧,该放大电路模块的电路原理图如下:图2.14重量传感器电路和放大电路原理图2.2.5A本系统的核心控制器部分即单片机,它只能处理数字信号,而重量传感器输出的微弱信号经过放大后依然是一个模拟信号,不能直接送给单片机处理。单片机只能处理数字信号,因而模拟信号要经过A/D转换器转换成数字信号,这样才能有单片机采集处理。本系统中采用10位的串行A/D转换器TLC1543,由于系统采用的传感器的量程为300g,A/D转换器的分辨率为300g/1024=0.29=0.3。能够满足系统的要求。故而选用该A/D转换器。TLC1543简介TLC1543美国TI司生产的多通道、低价格的模数转换器。采用串行通信接口,具有输入通道多、性价比高、易于和单片机接口的特点,可广泛应用于各种数据采集系统。TLC1543为20脚DIP装的CMOS10位开关电容逐次A/D逼近模数转换器,引脚排列如图1所示。其中A0~A10(1~9、11、12脚)为11个模拟输入端,REF+(14脚,通常为VCC)和REF-(13脚,通常为地)为基准电压正负端,CS(15脚)为片选端,在CS端的一个下降沿变化将复位内部计数器并控制和使能ADDRESS、I/OCLOCK(18脚)和DATAOUT(16脚)。ADDRESS(17脚)为串行数据输入端,是一个1的串行地址用来选择下一个即将被转换的模拟输入或测试电压。DATAOUT为A/D转换结束3态串行输出端,它与微处理器或外围的串行口通信,可对数据长度和格式灵活编程。I/OCLOCK数据输入/输出提供同步时钟,系统时钟由片内产生。芯片内部有一个14通道多路选择器,可选择11个模拟输入通道或3个内部自测电压中的任意一个进行测试。片内设有采样-保持电路,在转换结束时,EOC(19脚)输出端变高表明转换完成。内部转换器具有高速(10µS转换时间),高精度(10分辨率,最大±1LSB不可调整误差)和低噪声的特点。图2.15引脚排列(2)TLC1543工作时序TLC1543工作时序如图2示,其工作过程分为两个周期:访问周期和采样周期。工作状态由CS使能或禁止,工作时CS必须置低电平。CS为高电平时,I/OCLOCK、ADDRESS被禁止,同时DATAOUT为高阻状态。当CPU使CS变低时,TLC1543开始数据转换,I/OCLOCK、ADDRESS使能,DATAOUT脱离高阻状态。随后,CPU向ADDRESS提供4位通道地址,控制14个模拟通道选择器从11个外部模拟输入和3个内部自测电压中选通1路送到采样保持电路。同时,I/OCLOCK输入时钟时序,CPU从DATAOUT端接收前一次A/D转换结果。I/OCLOCK从CPU接收10时钟长度的时钟序列。前4个时钟用4位地址从ADDRESS端装载地址寄存器,选择所需的模拟通道,后6个时钟对模拟输入的采样提供控制时序。模拟输入的采样起始于第4个I/OCLOCK下降沿,而采样一直持续6个I/OCLOCK周期,并一直保持到第10个I/OCLOCK下降沿。转换过程中,CS的下降沿使DATAOUT引脚脱离高阻状态并起动一次I/OCLOCK工作过程。CS上升沿终止这个过程并在规定的延迟时间内使DATAOUT引脚返回到高阻状态,经过两个系统时钟周期后禁止I/OCLOCK和ADDRESS端。图2.16时钟脉冲信号(3)由TLC1543构成的A/D转换器电路原理图由于TLC1543属于串行A/D转换器,所以和单片机的接口比较少,只需5根线和单片机连接,电路原理图如下:图2.17A/D转换电路2.2.6步进电机控制电路模块该模块主要有L297和L298两块芯片和少量的外部元件构成,另外为了避免该电路模块对微控制器(单片机)的影响,该电路还采用了光耦隔离电路,采用了独立的电源供电,该模块的供电电源和控制器所在部分所用电源独立,互无联系,消除了相互间的电气干扰。组成框图如下:图2.18步进电机控制电路组成框图L297是步进电动机控制器(包括环形分配器),L298是双H桥式驱动器。这种方式结合的优点是,需要的元件很少.从而使得装配成本低,可靠性高和占空间少。并且通过软件开发,可以简化和减轻微型计算机的负担。另外,L297和L298都是独立的芯片,所以应用是十分灵活的。L297介绍L297芯片是一种硬件环分集成芯片,它可产生四相驱动信号,用于计算机控制的两相双极或四相单极步进电机。它的心脏部分是一组译码器它能产生各种所需的相序,这一部分是由两种输入模式控制,方向控制(CW/CCW)和HALF/FULL以及步进式时钟CLOCK,它将译码器从一阶梯推进至另一阶梯。译码器有四个输出点连接到输出逻辑部分,提供抑制和斩波功能所需的相序。因此L297能产生三种相序信号,对应于三种不同的工作方式:即半步方式(HALFSTEP);基本步距(FULLSTEP,整步)一相激励方式;基本步距两相激励方式。脉冲分配器内部是一个3bit可逆计数器,加上一些组合逻辑,产生每周期8步格雷码时序信号,这也就是半步工作方式的时序信号。此时HALF/FULL信号为高电。若HALF/FULL取低电平,得到基本步距工作方式,即双四拍全阶梯工作方式。L297另一个重要组成是由两个PWM斩波器来控制相绕组电流,实现恒流斩波控制以获得良好的矩频特性。每个斩波器由一个比较器、一个RS触发器和外接采样电阻组成,并设有一个公用振荡器,向两个斩波器提供触发脉冲信号。图3中,频率f是由外接16脚的RC网络决定的,当R>10kΩ时,f=1/0.69RC。当时钟振荡器脉冲使触发器置1,电机绕组相电流上升,采样电阻的Rs上电压上升到基准电压Uref时,比较器翻转,使触发器复位,功率晶体管关断,电流下降,等待下一个振荡脉冲的到来。这样,触发器输出的是恒频PWM信号,调制L297的输出信号,绕组相电流峰值由Uref确定。L297的CONTROL端的输入决定斩波器对相位线A、B、C、D或抑制线INH1和INH2起作用。CONTROL为高电平时,对A、B、C、D有控制作用;而为低电平时,则对INH1和INH2起控制作用,从而可对电动机转向和转矩进行控制。L298N介绍L298芯片是一种高压、大电流双全桥式驱动器,其设计是为接受标准TTL逻辑电平信号和驱动电感负载的,例如继电器、圆筒形线圈、直流电动机和步进电动机。具有两抑制输人来使器件不受输入信号影响。每桥的三级管的射极是连接在一起的,相应外接线端可用来连接外设传感电阻。可安置另一输入电源,使逻辑能在低电压下工作。L298芯片是具有15个引出脚的多瓦数直插式封装的集成芯片。在本控制系统中,单片机通过串口经MAX232电平转换之后与微机相连,接受上位机指令,向L297发出时钟信号、正反转信号、复位信号及使能控制等信号。由于L297内部带有斩波恒流电路,绕组相电流峰值由Uref确定。当采用两片L297通过L298分别驱动步进电机的两绕组,且通过两个D/A转换器改变每相绕组的Uref时,即组成了步进电机细分驱动电路。另外,为了有效地抑制电磁干扰,提高系统的可靠性,在单片机与步进电动机驱动回路中利用光电耦合器件组成隔离电路。其作用是切断了单片机与步进电动机驱动回路之间电的直接联系,实现了单片机与驱动回路系统地线的分别联接,防止处于大电流感性负载下工作的驱动电路产生的干扰信号以及电网负载突变产生的干扰信号通过线路串入单片机,影响单片机的正常工作。光电耦合器的介绍光耦隔离电路用到两种光电耦合器:6N137和PC817。=1\*GB3①6N137光耦合器是一款用于单通道的高速光耦合器,其内部有一个850nm波长AlGaAsLED和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及一个肖特基钳位的集电极开路的三极管组成。具有温度、电流和电压补偿功能,高的输入输出隔离,LSTTL/TTL兼容,高速(典型为10MBd),5mA的极小输入电流。特性:①转换速率高达10MBit/s;②摆率高达10kV/us;③扇出系数为8;④逻辑电平输出;⑤集电极开路输出;工作参数:最大输入电流,低电平:250uA最大输入电流,高电平:15mA最大允许低电平电压(输出高):0.8v最大允许高电平电压:Vcc最大电源电压、输出:5.5V扇出(TTL负载):8个(最多)工作温度范围:-40°Cto+85°C典型应用:高速数字开关,马达控制系统和A/D转换等。图2.19光耦合器内部结构、管脚6N137光耦合器的真值如下:6N137光耦合器的真值表输入使能输出HHLLHHHLHLLHHNCLLNCH表2.136N137光耦合器的真值表需要注意的是,在6N137光耦合器的电源管脚旁应有—个0.1uF的去耦电容。在选择电容类型时,应尽量选择高频特性好的电容器,如陶瓷电容或钽电容,并且尽量靠近6N137光耦合器的电源管脚;另外,输入使能管脚在芯片内部已有上拉电阻,无需再外接上拉电阻。6N137光耦合器的使用需要注意两点:第一是6N137光耦合器的第6脚Vo输出电路属于集电极开路电路,必须上拉一个电阻;第二是6N137光耦合器的第2脚和第3脚之间是一个LED,必须串接一个限流电阻。=2\*GB3②pc817是常用的线性光藕,在各种要求比较精密的功能电路中常常被当作耦合器件,具有上下级电路完全隔离的作用,相互不产生影响。图2.20PC817内部框图当输入端加电信号时,发光器发出光线,照射在受光器上,受光器接受光线后导通,产生光电流从输出端输出,从而实现了“电-光-电”的转换。

普通光电耦合器只能传输数字信号(开关信号),不适合传输模拟信号。线性光电耦合器是一种新型的光电隔离器件,能够传输连续变化的模拟电压或电流信号,这样随着输入信号的强弱变化会产生相应的光信号,从而使光敏晶体管的导通程度也不同,输出的电压或电流也随之不同。

PC817光电耦合器不但可以起到反馈作用还可以起到隔离作用。电路原理图由于电路图较大,为了能够看得清楚,在此先截一部分的图,L297+L298N电路图2.21光耦隔离电路部分:图2.22步进电机控制原理图整体的电路图如下:图2.23完整设计电路图2.3硬件制作调试过程中常见的问题硬件调试过程中常见的问题有一下几个:(1)焊接不牢,可能是因为焊接技术有限,在焊接的时候对焊锡加热的时间把握得不够好,以至于出现虚焊,特别是晶振电路和复位电路,如果焊接的不好,单片机的外部时钟不振动,那么单片机没法工作。而且如果单片机的复位端口处于复位状态,也有可能是复位电路没有焊接好。解决的方法是:在焊接的时候电烙铁要首先加热被焊接的元件,然后才加热焊锡,这是防止产生虚焊的重要手段。(2)除了焊接时出现虚焊,遇到的另外一个问题是放大电路的放大电阻的调节问题。由于本设计要把信号放大1000倍,需要外加一个49.4欧姆的电阻,本系统采用可调的精密电阻来达到目的。如果采用电阻值比较小的可变电阻,比如100欧姆的精密可调电阻,很容易出现的一个问题是测量出来的数据不稳定,老是在几个数据之间跳动,所以本设计采用了电阻值比较大的电阻来作为放大电路的外部电阻,这样测量出来的数据要相对稳定。(3)遇到另外的一个问题是光电耦合器的问题,光电耦合器,简称光耦,是一种隔离器件。在本设计中用到了6N137和PC817两种共计6个光耦。一般来说,光耦的输入端都是一个发光的二极管,所以需要外接一个330欧-680欧的电阻,输出端和电源之间要加一个上拉电阻,需要注意的是上拉电阻不能太小,刚开始我用的上拉电阻太小,只有几百欧姆,出现的一个问题就是发出的控制命令不起作用,本来单片机发出反转的信号,用万用表测量的命令信号没有错误,但是电动机就是不反转,后来把上拉电阻改为了10K,这样问题就解决了。控制系统的软件设计控制系统的软件设计流程图本控制系统采用 C语言编程,通过AVR单片机实现对系统的控制。通过ICCAVR这款编程软件编写系统的控制程序,经过编译之后可以使用串行在线编程(ISP)方式将程序写入,即可直接在电路板上进行程序的烧写和修改,所需的装置就是一根ISP下载线。整个控制系统的程序流程框图包括初始化程序、键盘扫描程序、读取AD转换结果程序、AD转换结果处理程序、重量显示、程序步进电动机控制程序以及继电器控制程序等,程序流程框图如下:图3.1软件设计流程图3.2各个子程序设计下面将要对主要的子程序的程序流程框图进行介绍,包括键盘扫描程序、AD转换部分程序、重量显示程序、步进电动机控制程序的流程图。3.2.1键盘扫描程序的设计本按键扫描程序的原理很简单,通过程序读取和按键连接的单片机的IO口的电平高低来判断是否有按键按下。和按键连接的IO口输出的是高电平,通过编程使能单片机内部的上拉电阻,如果检测到某一个IO口是低电平,则说明和该IO口连接的按键按下,程序根据按键值进行相应的操作。为了消除抖动的影响,在程序上有由延时程序。程序流程图如下: 进入程序进入程序读取PD口电平读取PD口电平是否有按键按下?是否有按键按下?NoNo延时10ms程序退出给变量赋值并把该值返回再次读取PD口电平延时10ms程序退出给变量赋值并把该值返回再次读取PD口电平Yes是否有按键按下?是否有按键按下?NoYes根据读取的PD口值判断根据读取的PD口值判断按下的是哪一个按键图3.2键盘扫描程序流程图3.2.2AD转换部分程序的设计A/D转换器将称重传感器输出的经过放大的信号转换成数字信号,单片机采集到的数据进行运算处理。程序流程图如下:图3.3A/D转换流程图3.2.3重量显示程序的设计重量显示程序将A/D转换器器转换的结果,在经过相应的运算之后,送到LCD1602显示。程序流程图如下:图3.4重量显示程序流程图3.2.4步进电动机控制程序的设计该部分的控制程序主要负责电动机的运动控制,使得乒乓球分拣系统能够实现工作的自动化,每隔固定的时间,发出电机转动命令,转过一定的角度后发出电机停止命令,程序的流程图如下:进入程序进入程序启动定时器2,并发出电动机转换命令启动定时器2,并发出电动机转换命令定时时间到了否否?定时时间到了否否?NoYes设置计数初始值,发出电机停转命令设置计数初始值,发出电机停转命令程序退出程序退出图3.5步进电动机控制程序流程图3.3软件调试过程中常见的问题本设计的软件部分采用C语言编写,通过专用的C语言编写软件,编写程序,编译之后下载到单片机内部运行。在软件调试的过程中遇到的几个问题如下:(1)IO口的初始化问题。由于本设计采用的是AVR公司生产的Atmega16L单片机,该单片机的IO口属于真正的双向IO口,可以通过编程来控制IO口是作输入端口还是输出端口,是否使能内部上拉电阻等。最容易出现的一个问题是没明确IO口是输入还是输出。比如在按键扫描程序中,相应的端口是要作为输入端口使用,并且内部的上拉电阻要有效,这样控制程序才不会出现错误。这一点和51单片机不同,51单片机不需设定IO口的方向。而AVR单片机则需要通过编程来指定IO口的方向。如果一个端口没有指定为输出端口,那么你就不能用这个端口来输出信号。所以在程序的最开始处,一定要对IO口初始化。(2)A/D转换器的控制时序问题。本系统采用10位的串行A/D转换器TLC1543来实现将模拟信号转换为数字信号。TLC1543有严格的时序要求,必须按照规定的时序来编写控制程序,如果程序的时序不对,那么就有可能出现问题。TLC1543属于串行的A/D转换器,有11个转换通道,而本设计只需用到一个通道,故而一定要先写入地址信息,选定A/D转换通道,指定A/D转换器要对哪一个通道的电压进行转换。然后再输入6个时钟脉冲,A/D转换器开始对输入通道的电压进行转换。程序开始检测A/D转换结束标志是否置位。置位后就可以开始读取A/D转换器的转换值。这是器件的操作时序的问题。(3)另外的一个问题就是整个程序的控制时序,程序的控制时序总的来说稍显复杂,需要用到两个定时器相互配合工作。完成数据的采样,电动机的转动等自动化操作。结论本论文详细介绍一种基于单片机的乒乓球的自动分拣系统的设计。采用AVR单片机和重量传感器,再加上相应的放大的电路和A/D转换电路,还有相应的显示电路、电机控制电路等,在了解乒乓球分拣系统的工作过程及分拣原则的基础上,实现了对自动分拣系统的自动工作的顺序控制。具有进球、称重、分拣、出球等动作的控制,当然也有称重显示。控制系统的重点和难点在称重部分,特别是称重传感器部分的运放放大电路和A/D转换电路。称重传感器输出的信号是mV级的,需要进行数百倍甚至达到1000多倍,采用的集成的仪表放大器AD620虽然有很高的精度,但是难度就在于外部电阻的使用上。由于电阻的精度受温度的影响,总会有误差,故而采用了可调电阻。可以说,做好了放大电路就等于做好了整个设计的一半。A/D转换器采用了10位串行的转换器,这是一款具有11个输入通道的转换器,具有操作简单,控制管脚少的优点,只要控制时序没有问题,该A/D转换器也很容易实现模数转换。本设计采用的单片机是AVR单片机,具体型号为Atmega16L。它和传统的51单片机相比,具有速度快,功能丰富,功耗低等优点。IO口属于标准的双向IO口,能够通过编程让内部上拉电阻有效,而不需像51单片机那样需要外接上拉电阻。另外本设计采用LCD1602作为显示器。该显示器具有硬件电路简单,控制容易,能够显示的数据比较多的优点,能够显示两行共32个字符,能够轻松实现系统的显示要求。这点大大的优于采用数码管显示的方案。总的来说,经过自己的不懈努力,终于完成的乒乓球自动分拣系统的设计,它能够实现分拣的自动控制,具有进球、称重、分拣、称重显示、出球等动作,满足了系统的要求。谢辞时光荏苒,时光飞逝,转眼间四年的大学学习生活即将结束,最后的学习任务——毕业设计也即将完成。将近一个学期的毕业设计给我的感触很深,这次设计也是对四年所学内容的一次总结,也是对四年来的学习的一次检测。本课题在选题及研究过程中得到指导老师刘华东老师的悉心指导。刘老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。对此,我心中的感激之情是无法用言语表达的。在论文即将完成之际,我的心情无法平静,四年的大学就此画上句号,但是并不意味着我们的人生也画上句号。而是标志着人生的另一个开端,未来的路还很漫长,也可能会遇到各种各样的困难,但是我相信,经过这次毕业设计的过程之后,不管遇到什么困难,我都能克服!参考文献[1]

谭浩强.

C语言程序设计[M].清华大学出版社,2021

[2]

王强,张明珠.材料自动分拣系统中的PLC

应用研究[J].首都师范大学学报(自然科学版),2021,32(6):5-8.

[3]

蒋萌辉.基于单片机测控系统抗干扰的硬件设计[J].微计算机信息,2021,2:35-36.

[4]

徐爱卿.单片机微型计算机应用和开发系统[M].

北京航空航天大学出版社,1992

[5]

龚天军,贺地求,符荣华.机械零件分拣机系统设计[J].机械电子,

2021,(02):24-26

[6]

武庆生,仇梅.MCS

系列单片机及接口实用教程[M].电子科技大学出版社,2021[7]赵茂泰.智能仪器原理及应用[M]北京:电子工业出版社,2021[8]贾伯年,俞朴.传感器技术[M]重庆:东南大学出版社,2021[9]李道华,李玲,朱艳.传感器电路分析与设计[M]湖北:武汉大学出版社,2021[10]周林,数据采集与分析技术[M].西安:西安电子科技大学出版社,2021[11]任艳玲.给予单片机的量程自动转换电压表设计[J]电子科技,2021[12]程林,超省电型电子称的设计方案[J].福建:福建省计量科学技术研究所.2021.3[13]徐进,孙兴进.步进电动机最佳变速控制的单片机实现[J].上海电力学院学报,2021,16(1):21—25.[14]邓红,郭威娜.用字位显示接口驱动步进电机的设计方法[J].微计算机信息,2021,21(8-1):111—112.[15]凌均淑.步进电动机的应用及驱动方式[J].电力建设,[16]阎石.数字电子技术基础.第四版.北京:高等教育出版社,2021.12[17]AdelS.Sedra,KennethC.Smith:MicroelectronicsCircuits,3rdEdition,HoltRinehartandWinston,Inc.,1991[18]

joseph

G.M,reino

E.S.

A

simulaition

tool

to

determine

warehouse

efficiencies

and

storage

allocations[c]

.Proceedings

of

the2021

Winter

Simulation

Conference.

2021,2,2:1274-1281[19]TheL297StepperMotorControllerApplicationNote.[20][I]BaoyanLiu,ShukangCheng.Steppermotoranditsdrivecontrolsystem[M].Harbin:HarbinInstituteofTechnologyPress,2021.附录A.电路原理图电路原理图由两部分组成,第一部分包括最小系统,系统供电电源、信号放大电路、显示电路、A/D转换电路等,第二部分是步进电机控制电路原理图,分别如下:(1)图A1(2)图A2B.系统PCB图系统的PCB图也包括两部分,第一部分包括最小系统,系统供电电源、信号放大电路、显示电路、A/D转换电路等,第二部分是步进电机控制电路原理的PCB图,分别如下:(1)图B1(2)图B2C.元件清单元件名称型号数量元件名称型号数量Atmega16L11K电阻4插针母座1排10K微调电阻1轻触按键5390欧电阻12二极管1N40071110P灰排线1根10K粗调电阻1DC3-10P牛角座2L7805CV1LCD160218M晶振1红色发光二极管630PF独石电容2光耦PC817510K电阻8光耦6N137115pf瓷片电容1500K、22K、5K电阻各一个插针2排0.5欧电阻2L2971L298N1L298N1仪表放大器AD620A1A/D转换器TLC1543110uH电感1重量传感器HL-81104独石电容11表C1D.控制系统的C语言程序#include<iom16v.h>#include<macros.h>//系统头文件#defineucharunsignedchar#defineuintunsignedint#defineled0_onPORTC&=~BIT(5)#defineled0_offPORTC|=BIT(5)#defineled1_onPORTC&=~BIT(6)#defineled1_offPORTC|=BIT(6)#defineled2_onPORTD&=~BIT(6)#defineled2_offPORTD|=BIT(6)#defineled3_onPORTD&=~BIT(7)#defineled3_offPORTD|=BIT(7)/****************L297控制管脚****************//****************复位管脚********************/#definel297_rst_clrPORTC&=~BIT(0)#definel297_rst_setPORTC|=BIT(0)/***************半步模数(四相八拍)*********/#definel297_half_modePORTC|=BIT(1)/***************全步模数*********************/#definel297_full_modePORTC&=~BIT(1)/****************方向控制管脚****************/#definel297_dir_clrPORTC&=~BIT(2)#definel297_dir_setPORTC|=BIT(2)/****************CTL管脚********************/#definel297_ctl_clrPORTC&=~BIT(3)#definel297_ctl_setPORTC|=BIT(3)/****************使能EN管脚****************/#definel297_en_clrPORTC&=~BIT(4)#definel297_en_setPORTC|=BIT(4)ucharad_finish_flag=0,get_ad_flag=0,run=0;uintbuf[8],weight,ad_result[4]={0,0,0,0},time;/********延时1ms函数********/voiddelayms(uintms){uinti,j; for(i=0;i<ms;i++)for(j=0;j<1141;j++);}/********IO口初始化函数********/voidio_init(void){DDRA|=0X07; PORTA|=0X07; DDRA&=~BIT(7); PORTA|=BIT(7);//上拉电阻有效>接EOC DDRA|=BIT(6); PORTA|=BIT(6);//clk DDRA|=BIT(5); PORTA=BIT(5);//ADDR DDRA&=~BIT(4); PORTA|=BIT(4);//DATA_OUT DDRA|=BIT(3); PORTA|=BIT(3);//PA口初始化 DDRB=0XFF;//PB口初始化 PORTB=0XFF; DDRC=0XFF; PORTC|=BIT(0)|BIT(3);//C口 PORTC&=~BIT(4);//EN=0,电机不转PORTC&=~BIT(1);PORTC&=~BIT(2); PORTC|=BIT(7)|BIT(6)|BIT(5);//PC口初始化 DDRD=0Xf0; PORTD=0Xff;//PD口初始化}/********4*1独立键盘扫描函数********/ucharkey4_scan(void){ucharkey4_value,temp=4;key4_value=PIND&0X0b; if(key4_value!=0x0b)//说明有按键按下 delayms(10);//延时确认有按键按下 key4_value=PIND&0X0b; if(key4_value!=0x0b)//判断键值 { switch(key4_value) { case0x0a:temp=0;break; case0x09:temp=1;break; case0x03:temp=2;break; //case0x07:temp=3;break; default:temp=4;break; } while((PIND&0X0b)!=0x0b);//等待按键释放 }returntemp;}/********获取AD转换数据函数********/uintget_ad_data(ucharchannel){uchari;ucharaddr;//通道地址;uintad_result; //PORTA|=BIT(3); PORTA|=BIT(7);//EOC=1 //PORTA&=~BIT(7);//CS=0 PORTA&=~BIT(3);//CS=0delayms(1);addr=channel; addr<<=4; for(i=0;i<4;i++) { if((addr&0x80)==0x80) PORTA|=BIT(5);//ADDR=1 else PORTA&=~BIT(5);//ADDR=0 PORTA|=BIT(6);//clk=1 PORTA&=~BIT(6);//clk=0 addr<<=1; } for(i=0;i<6;i++) { PORTA|=BIT(6);//clk=1 PORTA&=~BIT(6);//clk=0 } DDRA|=BIT(3); PORTA|=BIT(3);//cs=1; while(!(PINA&0X80));//等待转换结束 delayms(1); ad_result=0; PORTA&=~BIT(3);//cs=0; for(i=0;i<10;i++) { PORTA|=BIT(6);//clk=1 ad_result<<=1; if(PINA&0X10)ad_result|=0X0001; PORTA&=~BIT(6);//clk=0 } PORTA|=BIT(3);//cs=1; returnad_result;}/********定时器0初始化********/voidtimer0_init(void){SREG|=BIT(7);//使能全局中断TIMSK|=(1<<TOIE0);//使能T0溢出中断 TCCR0=0x00;//TCCR0|=(1<<CS02)|(0<<CS01)|(1<<CS00);//T/C0工作于普通模式,1024分频,TCNT0=131;//定时初值设置,定时时间4ms}/*******************定时器2初始化函数***********************/ voidtcnt2_init(void){TIMSK|=BIT(6);//溢出中断使能TCNT2=0X83; TCCR2=0X00;

温馨提示

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

评论

0/150

提交评论