基于TCS230颜色传感器的颜色识别器设计_第1页
基于TCS230颜色传感器的颜色识别器设计_第2页
基于TCS230颜色传感器的颜色识别器设计_第3页
基于TCS230颜色传感器的颜色识别器设计_第4页
基于TCS230颜色传感器的颜色识别器设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于TCS230颜色传感器的色彩识别器的设计实用文档绪论1.1研究背景随着工业生产中自动化、高速化程度的不断提升,颜色识别在各种工业控制和检测领域的应用更加广泛,颜色传感器在终生活与生产中的作用将会越来越大,颜色传感器在终端设备中的作用将会越来越大。例如颜色识别器在图书馆图书的分类和包装行业的应用已经十分普遍;现阶段其主要应作为彩色打印机和绘图仪的主要构成部分。并在化妆品、纺织品和涂料制造过程中颜色的调配以及医疗等方面都起着重要的作用。1.2颜色识别技术的现状及未来发展趋势颜色识别技术是新兴检测技术,在彩色打印、商标识别和材料分拣等方面已在我国拥有广泛应用。虽然我国在机器人视觉系统领域已取得举世瞩目的成就,但是在高分辨的颜色识别方面仍然缺乏自主研发能力。高精度的颜色识别技术仍然由少数发达国家掌控,我国高分辨率颜色传感器的研究工作任重而道远。颜色识别系统提出的时间较晚,出现在自动控制系统之后。其作为一种新兴的检测技术也是控制理论的简单应用,经过几十年的发展,在工业控制中逐渐开始大范围的应用。颜色传感器在实时检测系统以及自动控制方面有着重要的意义,伴随着单片机等处理器技术的发展,颜色识别系统的效率也大大的增加。颜色识别在现代生产中的应用愈加广泛,特别是在遥感技术、工业过程控制、材料分拣、图像处理、机器人视觉系统等方面的起着重要的作用,颜色传感器的快速发展为上述生产应用自动化的实现提供了可能。随着颜色传感器的广泛应用,颜色识别技术已成为工业自动化必不可少的部分,发展前景十分广阔。1.2.1颜色传感器的几种设计方案颜色别传感器又称作色彩传感器色。目前通用的颜色测量方法是采用通过测量待测颜色的三个基本颜色的频率输入到单片机等处理器中进行数据处理,得到三基色的值,通过仿真软件或RGB颜色对应表将三基色按所测数据合,从而成得到样品的颜色。目前市面上常见的色颜色传感器大致有两种类型:一种是RGB(红、绿、蓝)三基色型颜色传感器,通过检测带测光的红、绿、蓝三基色刺激值来识别颜色;另一种为色差传感器,主要通过测量待测物体颜色与基准颜色之间的色差来识别颜色。下边简要介绍三种常见的颜色传感器的设计方案:带滤色器和跨阻抗放大器的分立型光电二极管本方案是传统颜色识别器的设计方案,具体方法是将表面分别带有红、蓝、绿三种滤色器的光电二极管排列在同一芯片上测取带测光的频率,(通常将两个蓝滤色器组合在一起以补偿硅片对于蓝光的低灵敏度)。然后通过独立的跨阻抗放大器将光电二极管的输出的方波输送至A/D转换器中转化为数字信号输送给单片机或其他数字处理器中。这种方法能按个人需要调节放大器的增益和A/D转换器的分辨率,使系统具有更高的灵活度。但是这种设计却为增加了设计难度,元器件的增多也对电路板的排版要求变得苛刻。此实际方案因其能调节放大器增益和A/D转换器频率而适用于那些工业控制中的短时间响应的过程检测。集成光-电压转换器集成光-电压转换器相对于分立型光电二极管将跨阻抗放大器也集成在同一块芯片上,提高了系统的集成度。测量时也是将三个光电二极管的输出传送至外部A/D转换器中转化为数字信号再输出至处理器中进行数据处理。这种方法去除了独立的跨阻抗放大器,降低了所需的元件数,由于集成度较高,因此芯片质小量轻,便于安装,并且简化了电路板的布局,更易于设计。但是该方法也存在着部分缺点。例如不能随意的改变是颜色传感器的灵敏度和放大增益。该方法主要应用于那些对空间要求较小或具有明确光照条件的系统。集成光-频率转换器第三种方法直接将待测光通过电流-频率转换器转换为其对应频率输出一个脉冲序列。因输出为其为数字输出且输出能驱动一个TTL负载,故无需增设A/D转化器可直接将传感器输出给单片机等微处理器。如此简化了电路设计的难度。美国陶氏公司(TAOS)推出的TCS230颜色传感器便是采用此设计方法。该方案取消了A/D转换器和跨阻抗放大器是电路排版更加简洁,数字输出相较于模拟量输出提高了系统抗噪声干扰能力,使颜色传感器的远程测量的误差大大减小。1.3主要工作及意义本文主要研究色彩识别系统,并实现其功能,设计采用STC89C52型单片机,利用TCS230颜色传感器采集颜色频率经单片机处理后输出至LCD1602将处理后的数据显示出来。测试需在在密闭隔光的条件下,测出被测物体的RGB三基色的值并利用LCD1602将RGB值和其对应十六进制显示出来,通过仿真软件或RGB颜色对照表合成出实验数据对应的颜色与实际颜色进行对照。虽然色彩识别兴起的时间比较晚,但却在工业自动化与智能化方面有着极其中亚的作用,单片机及微控制器的引入极大的提高了色彩识别的速度和智能化程度。如何提高系统识别的精度与快速性、扩大其颜色识别范围成为本设计主要技术难题。所以颜色识别系统的研究仍需深入进行,对国外先进的颜色识别仪器技术及其发展都要进行必要的了解,这可以在一定程度上给我们启示,使我们跟上当今颜色传感器的发展方向,帮助我们早日解决这些技术难题。研究的色彩识别系统的意义在于研究颜色传感器识别颜色的原理并实现其颜色识别功能,简化颜色识别难度,且确保检测结果能准确可信。2颜色识别技术介绍2.1色彩识别实际上,颜色就是白光(日光)在物体上所反射色光在人眼中的反应。而色光是频率连续的电磁波,故理论上的色彩是无限的,但常见色光如红橙黄绿青蓝紫实物波长在380—780nm之间,波长在此范围之外的电磁波不会会引起人的色彩感觉。人们能分辨出的色彩种类十分有限,不同的人对颜色有着不同的区别能力且差异明显。从事颜色设计相关行业的人在颜色设计时能以5%或更小的区别调整色彩。当这些大致相同的颜色并排在一块时,绝大多数人都能够看出它们之间的区别。但是当这些颜色单独呈现的时候,普通人是无法看出这相差5%的颜色有和区别。因此大多数人会将这些色彩简单的归类到能用红、黄、蓝等术语对颜色进行简单的描述,或对摸个色彩区间进行适当的划分比如红色可以划分为大红、橘红、品红、粉红等。这些以某种颜色为核心的而划分的颜色区间可以看作同一种颜色,虽然在此空间内颜色值并不相同。2.2色彩识别算法RGB色彩模式是工业界设定的一种颜色标准,也是目前运用最广泛的颜色标准这个标准囊括了所有人眼能感知的颜色。认为所有颜色都可以通过红(Red)、绿(Green)、蓝(Blue)三种颜色按不同比例相互叠加产生的。RGB即为红、绿、蓝三种基本颜色。2.2.1颜色识别与检测原理三基色原理:适当的选取三种基本颜色,任何颜色都能由这三种颜色按照不同的比例叠加合成,这三种颜色相互独立不能由其他颜色按比例配出,这三种颜色就称为三基色。国际照明委员会(CIE)推荐使用红、绿、蓝作为三种基本颜色且此原理已在现代工业中有了非常广泛的应用。RGB颜色模型如下图2.1所示。由三基色原理可知自然界中所有色光都可由R、G、B三种基本颜色按照不同的比例叠加合成,当三基色分量都为0时,叠加出的光为黑色,对应于立方体坐标中的(0,0,0)点;当三基色分量都为255时,叠加出的光为白色光,对应于立体坐标中得(255,255,255)。以由黑到白为对角线的正方体的其他六个顶点分别为红(255,0,0),黄(255,255,0),绿(0,255,0),青(0,255,255),蓝(0,0,255)和品红(255,0,255)。每个颜色都有其独自RGB值。图2.1RGB颜色模型白平衡算法:理论上的白光几位RGB三基色值都为255的色光,颜色即为标准白光实在物体上反射的色光在人眼中所产生的反映,但在实际中白光其RGB值并为全为255。这种白光照射在物体上所反射的三基色光强与标准白光所反射的三基色光强是不相同的。而颜色传感器TCS230就是通过检测标准白光在被测物体上所反射三基色的RGB值来得到所测物体颜色的,故在测量中光源定会对实验结果产生较大的影响。解决这个难题的方法就是进行白平衡调节即测出在标准光源想啊物体反射光的三基色值比上标准光源的的三基色值,得到的结果可认为是物体的实际颜色,也是该物体的反射性质。如公式(1),(2),(3)。R=P物红/P源红(1)G=P物绿/P源绿(2)B=P物蓝/P源蓝(3)3基于TCS230的设计3.1STC89C52型单片机功能简介国产宏晶STC51系列单片机不但低功耗、高稳定性能而且具有低廉的价格,自上市以来成为国内单片机从业者的首选。STC8952系列单片机便是目前国内使用最多的一种单片机类型。其采用MCS-51为内核,并在此基础上做了很多改进使的芯片功能更加强大。STC89C52型单片机参数如下:1.指令代码与传统8051的代码完全兼容2.工作电压:3.3V~5.5V3.工作频率:0~40MHz4.8K字节Flash5.片上集成512KRAM6.通用I/O口(32个)7.不需专用编程器,也不需专用得仿真器,可通过串口直接下载程序8.具有EEPROM功能9.具有看门狗功能10.有3个十六位定时器/计数器。即T0、T1和T211.有四个外部中断12.通用异步串行口13.工作温度范围:0~75℃14.PDIP封装3.2颜色传感器3.2.1TCS230芯片的结构框图与特点TCS230是美国陶氏公司(TAOS)推出的将彩色光转化为其对应频率的数字输出型传感器。它直接将待测光通过电流-频率转换器转换为其对应频率输出一个脉冲序列。TCS230是业界推出的第一个数字输出式RGB颜色传感器。其输出可以驱动标准的TTL,因此可以与单片机和逻辑电路直接相连,无需A/D转换电路,这样大大简化了电路。图3.1与图3.2为TCS230的引脚图与实物图。图3.3是颜色传感器TCS230的功能图。图3.1C51单片机管脚图图3.2C51单片机实物图图3.3TCS230的引脚和功能图在单一的TCS230芯片上集成四种类型的光电二极管,这些光电二极管表面分别镶嵌着红、绿、蓝三种颜色的滤光器,加上未镶嵌的中共64个,每种16个。这四种带滤波器的光电二极管在传感器芯片内交叉排列,四种光电二极管能够均匀的就接收光源辐射,极大的地减小因入射光幅射不均而造成的误差,提高颜色识别的精确度。工作时,通过引脚S2、S3选择所需滤波器的颜色类型。TCS230传感器的可通过引脚S0、S1来选择输出频率定标,其输出频率范围为2Hz~500kHz。下面简要介绍TCS230芯片各个引脚的功能。

S0、S1引脚用于选择电源关断模式和输出比例因子(2%,20%,100%);引脚S2、S3用于选择滤波器的类型;OE可以控制输出的状态为频率输出使能引脚,当微处理器同接收控制多个芯片时,OE可作为芯片的片选信号;OUT为频率输出引脚,GND接电源地,VCC接+5V电源。表3.1S0、S1及S2、S3的功能表。表3.1S0、S1及S2、S3的组合选项S0S1输出频率定标S2S3滤波器类型LL关断电源LL红色LH2%LH蓝色HL20%HL无HH100%HH绿色3.2.2TCS230识别颜色的原理三原色感应原理在平常生活中见到的各种颜色,即是物体通过反射物体表面所吸收的日光中一部分的有色成分。由三原色理论可知,任何颜色都可由三种基本颜色(例如红、绿、蓝)按不同的比例混合叠加而成。TCS230识别颜色原理对于TCS230来说,利用S2、S3两引脚的组合选项选定某种颜色滤波器的光电二极管时,传感器就只能允许此种颜色的色光通过阻止其他颜色通过。如此依次选通三种带不同颜色滤光器的光电二极管,分别测量出所测颜色的三原色RGB值,利用仿真软件或RGB颜色对照表就可得到所测物体的颜色。白平衡调整原理白平衡就是向系统表明什么是白色。理论上的白色其三种基本颜色(红、绿、蓝)RGB值是相等的均为255,但在实际中白光其RGB值并为全为255。这种白光照射在物体上所反射的三基色光强与标准白光所反射的三基色光强是不相同的。而颜色传感器TCS230就是通过检测标准白光在被测物体上所反射三基色的RGB值来得到所测物体颜色的,故在测量中光源定会对实验结果产生较大的影响,因此在第一次使用TCS230传感器芯片时,必须先进行白平衡调整降低系统误差。在使用过程中下述三个问题必须注意:1.在测试时颜色传感器必须工作在一个密闭隔光的环境中,因为这样可以减少外界光对测量产生的影响。2.为了是传感器内各光电二极管受光均匀要求光源发出的光要尽可能的集中均匀的照射在待测物体上。3.第一次使用TCS230颜色传感器时一定要进行白平衡调整。3.2.3TCS230与STC89C52单片机连接TCS230输出为数字量,因此可以省去A/D转换电路直接与单片机或其他微处理器相连接,这样大大简化了电路。图3.4TCS230颜色传感器实物图图3.5TCS230颜色传感器模块实物图下图为TCS230与STC89C52的连接图 图3.6颜色传感器TCS230与单片机的电气连接图3.3LCD1602与51单片机的连接3.31液晶显示器LCD1602的简介液晶显示模块在生活当中经常可以看到,如在计算器、电表和玩具中主要用来显示数字、符号等。常见的单片机输出显示端的有液晶显示器、九段数码管和发光二极管等几种,其中发光二极管和LED数码管比较常用,但在近几年习惯用液晶显示模块作为其输出。液晶显示器又叫做LCD(LiquidCrystalDisplay)显示器,液晶经过特殊处理能改变其内光线的传输方向,液晶显示器正是利用液晶的这种特性来显示信息的。1.液晶显示器的工作原理

液晶是介于固液之间的特殊状态的有机化合物,因其常态下呈液态,故取名液晶。它还有另一个特殊的性质:当给液晶外部施加一个电场会改变其内部分子排列配以偏振光片,它就会阻止相应光线的通过。如果在液晶外镶嵌彩色滤光片并改变局部液晶上所加的电压,就能改变这部分液晶对光线的通透性能,从而现实出图案或者其他形象。此便是液晶显示的原理2.液晶显示器的分类

液晶显示按按颜色分位黑白显示和多灰度与彩色显示等。若按其显示方式可分为分点阵式、段式和字符式三种--这也是比较常用的分类方式。前两种可显示数字、字符等,点阵式是最常见的液晶显示器还其可显示汉字和图案,显示效果更加多样。还可以按液晶显示器的驱动方式划分,可分为静态驱动、单纯矩阵驱动和主动矩阵驱动三大类这就是LCD显示的基本原理。。3.液晶显示器显示图形的原理:

市场上常见的液晶显示模块有2行*16字、2行*20字和2行*40字这几种,而且这些液晶显示模块具有相同的输入输出界面。本设计所使用的液晶显示模块为LCD1602。液晶显示模块LCD1602的外观极其引脚的介绍:LCD1602属于2行*16字的字符型液晶显示模块,它的正反面外观形状如下图所示。图3.7LCD1602A正反面的外观LCD1602十六个引脚情况如下:第1脚:GND为电源地第2脚:VCC接5V电源第4脚:RS为寄存器选择引脚第5脚:RW为读写信号线选择引脚第6脚:E端为使能端,高电平时读取信息,下降沿时执行指令。第7~14脚:D0~D7为8位双向数据端。第15脚:背光源的正极。第16脚:背光源的负极。5.LCD1602的时序及指令说明1602液晶模块内部控制器种共有11条控制指令,如下表3.2所示表3.2控制指令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存储器地址0001字符发生存储器的地址8置数据存储器地址001显示数据储存器的地址9读忙标志或地址01BF计数器地址10向CGRAM或DDRAM中写数10要写入的数据内容11从CGRAM或DDRAM读取数11待显示的数据内容(CGRAM为字符发生存储器;DDRAM为字符显示存储器)LCD1602通过RS和RW两个引脚的组合共同决定选择内部多个寄存器中得哪一个。选择情况如下表所示表3.3LCD1602内部寄存器选择表RSRW寄存器及操作00指令寄存器写入01地址计数器和忙标志读出10数据寄存器写入11数据寄存器读出6.LCD1602的RAM地址映射及标准字库表液晶显示模块在执行每条指令必须要先检测其忙标志的电平,若为低电平则表示芯片此刻处于空闲状态不忙,可直接执行该指令;若为高电平表示芯片处于显示状态不能执行该指令,即此指令失效。显示字符前需先输入待显示字符的地址,下图给出LCD1602的内部显示地址。图3.8LCD1602内部的显示地址LCD1602内部的字符发生存储器存储有160个不同的字符图形每一个字符均有一固定代码与之严格对应,LCD1602内部字符发生存储器字符图形显示地址如下图所示图3.9LCD1602字符发生存储器字符图形显示地址3.32LCD1602显示器与单片机的连接 图3.9LCD1602与STC89C52单片机具体接线图图4颜色识别系统的设计与实验4.1系统结构框图颜色识别系统共分五个模块,分别为颜色传感器TCS230的驱动模块、TCS230颜色采集模块、四个白色发光二极管搭建的补光模块、以STC89C52为核心的数据处理模块和液晶显示模块LCD1602。颜色识别系统的系统框架设计如图下图所示。图如4.2为所按本论文思路设计的颜色识别系统的实物图。 图4.1系统框架 图4.2颜色识别系统的实物图4.2TCS230颜色采集模块的设计4.2.1TCS230颜色采集模块与51单片机连接电路设计在本设计中,颜色传感器TCS230主要与单片机的P1口和P3口连接。P1口是准双向口I/O口。P1口的输入输出特性与P0口作为通用I/O口似的特性一样;但是当P1口输出时可提供电流负载,不需要外接上拉电阻。P1口能驱动4个TTL。P3口不但可以作准双向通用I/O接口使用外且每一个引脚都还具有另一种功能,详见表4.1.表4.1P3口的第二功能P3口的引脚第二功能P3.0RXD串行口输入端P3.1TXD串行口输出端P3.2INT0外部中断0请求输入端,低电平有效P3.3INT1外部中断1请求输入端,低电平有效P3.4T0定时/计数器0外部计数脉冲输入端P3.5T1定时/计数器1外部计数脉冲输入端P3.6WR外部数据存储器写信号,低电平有效P3.7RD外部数据存储器读信号,低电平有效颜色传感器与单片机具体的连接方式如下图所示。图4.3TCS230与单片机的具体连接方式本设计的TCS230颜色采集模块主要是利用定时器/计数器T0和外部中断INT0来实现的。流程图如下所示。图4.4颜色采集模块TCS230软件流程图4.2.2四个白色LED补光电路的设计为了防止外界光对测试结果的影响,颜色测试模块实在在密闭隔光的环境下工作的,所以需要另外添加一个稳定的光源作为基准光源。本模块采用四个白色的发光二极管作为补充光源,均匀排列在TCS230传感器四周,使其发出的光能均匀的照照射在待检测的物体上,减小测量误差。补光电路的设计如下图所示。 图4.5四个LED不光模块电路图4.3液晶显示模块LCD1602D的软件设计图4.6LCD1602与STC89C52单片机具体的连接方式LCD1602液晶显示模块采用字符串的方式进行输出显示其流程图下图所示。图4.7LCD1602显示模块流程图图4.8软件主程序流程4.4颜色识别器的实验测试利用C语言编译程序,待软件编译通过后下载入单片机,依据设计方案进行调节测试并记录下实验数据。具体操作如下:首先将颜色采集模块用个光效果的纸盒遮盖起来,铺上待测彩色纸板是传感器一段面对彩色纸板。接通开发板电源,将待测彩色纸板平铺于桌面上,再把颜色采集模块平放在待测的纸板上方月一厘米出,然后记录下LCD显示出的数数值,对不同颜色的待测纸板重复上述步骤即可。4.4.1实验测试进行测试时要注意以下两个问题:颜色识别时要确保纸盒的密闭隔光性,避免外界光线对颜色传感器的干扰,使外界光对实验结果的影响经可能减到最小。白平衡调整:首次使用TCS230时,需要进行白平衡调整。因为标准的白光其R、G、B三原色分量均为255,而我们的四个白色LED补光电路所发出的白光并不是标准的白光。所以,我们要进行白平衡调整,以减小识别系统的误差。白平衡之后,把颜色传感器对着不同的彩色纸板进行颜色检测查看其RGB的值。由得出的数值,可根据RGB颜色表来检验测试结果与实际结果的差别。下表为常用RGB颜色值对应表表。表4.2常用RGB颜色表颜色RGB值黑色000#000000红色25500#FF0000蓝色00255#0000FF绿色02550#00FF00紫色16032240#A020F0橙色255970#FF6100黄色2552550#FFFF00棕色1284242#802A2A4.4.2实验数据及分析在实验过程中进行了多次的测量试验,记录的一些数据如下表4.3表4.3实验数据仿真表结果颜色RGB测得颜色白色第一次245246251第二次248254255第三次247251255红色第一次1676368第二次1766771第三次1746570绿色第一次149202109第二次138187101第三次148204110蓝色第一次6487137第二次7196152第三次6992145黄色第一次25521183第二次25521788第三次25320387紫色第一次143104170第二次12992151第三次13297160第一次241919第二次252020第三次262121从上述实验数据和仿真结果的对比可以看出,若被测纸板颜色接近于红色,则输出显示的R值比较大;同样,若被测纸板颜色更接近于绿色或者蓝色时,输出显示的G或B值相对较大。在表格的最后一列,利用软件仿真将所测RGB值合成为相应的颜色,对比第一列的标准颜色可以明显看到两种颜色之间的差别,证明所得到的测量结果还存在着一定的误差。去除人为误差和传感器本身的误差,外界光的干扰是误差的最大来源之一。此外,补光电路中LED发出的光会受电源电压的影响使其发出的光不太稳定,这些都将对被测光RGB值得测取产生影响。另外由仿真结果可以看出本设计的精确度略低,还有很大的提升空间,希望后继研究者可以不断的改善系统性能,提高系统的精确度降低系统误差。5结论与展望5.1结论本文主要研究了颜色识别系统的原理及其功能的实现。本设计的主要工作可归结如下:(1)了解一定深度的颜色相关的知识和颜色传感器识别颜色的原理。(2)介绍颜色传感器、单片机、补光灯电路和液晶显示模块。(3)对颜色识别系统进行总体性设计。(4)做出实物进行测试,并分析实验数据。总颜色识别的核心难点在于如何设计出先进RGB三种颜色测量的算法,只有优秀的算才能基于这种算法设计出先进的颜色识别系统。由于作者水平有限,难以建立精确的测量算法,因此设计出的系统存在着较大的误差。5.2展望色彩识别技术作为一种新兴的检测技术是未来实现工业自动化、智能化的重要手段。基于本文所完成的工作,对下一步研究做如下展望:(1)完善色彩识别的算法。本文测得的RGB在精确度上不够精确,后续研究应因建立更加合理更加精确的颜色识别算法。(2)对所测颜色进行更多的色彩区分。在后续研究中要对颜色空间进行更为细微的颜色空间划分,使色彩识别更加精确。从色彩识别系统设计到实际的颜色识别器,这其中需要考虑识别系统的稳定性和抗干扰能力,也应注意系统的供电等问题。因而还有大量的研究内容,需要我们去了解去研究。我相信在不久的将来,色彩识别系统将被广泛应用到各个行业之中,成为工业自动化的一门重要技术。致谢四年大学的时光如白驹过隙,转眼间我们即将走出美丽的校园,走向竞争激烈的社会,回首既往,在这难忘的四年的时间里,经过自己的努力学习和老师的谆谆教导,我的思想和能力都有了很大的提高,在此向辛勤培育我四年的学校和老师标志真挚的感谢,是他们的教诲为我以后顺利踏入社会奠定基础。

毕业设计对我来说算是一件富有挑战的一件事。由于之前专业课的学习不是太透彻,切平时没有花更多的时间去实验室锻炼自己的动手能力,在做毕业设计期间暴露了自己理论与动手能力上的不足。在此,我要特别感谢我的毕业论文指导老师陈志武老师和我的同学孟贺,在他们的帮助下我完成了动手能力较强,帮组我解决了程序的调试。这样让我明白以后的时光我们一定要把理论的知识学扎实,并在掌握理论的基础上努力锻炼自己的动手能力,结合两者才能使我们更好的掌握学习的知识。

另外,感谢我的同学以及学长学姐们对我的支持、鼓励与帮助,正是因为他们的帮助,使我客服在毕设中所遇到的难题,顺利的完成设定的目标。

参考文献[1]卢川英,于浩成,孙敬辉,孟中.基于TCS230传感器的颜色检测系统[J].吉林大学学报.2008.11.[2]杨杰,谢元媛.基于TCS230芯片颜色测量系统的研究[J].新疆电力设计院.2010.[3]李爱勤,张绪坤.基于TCS230与LabVIEW的颜色测量系统[D].南京航空大学.2007.11.[4]张松灿,肖本贤.高分辨率颜色传感器TCS230的原理和应用[D].单片机与嵌入式系统.2005.[5]胡建民.颜色传感器TCS230及颜色识别电路[EB/OL].[6]张毅刚,彭喜元,彭宇.单片机原理及应用[M].高等教育出版社.2012.11[7]王安敏,尚绪超,赵龙.基于颜色传感器TCS230的油水界面检测仪的设计[D].青岛科技大学.2010.9.[8]丁茹,李刚.可编程彩色光/频转换器TCS230及其应用[D].天津工程师范学院.2005.[9]刘双喜,丁筱玲.基于TCS230的便携式数字化调色仪的系统设计[J].电子元器件应用.2007.[10]可荣硕,马晓军,张思博.基于RGB色彩空间的颜色识别系统设计[J].微计算机信息.2010.[11]胡建民.颜色传感器TCS230及颜色识别电路[J].单片机与嵌入式系统应用.2006.[12]刘增辉.颜色传感器技术研究进展[J].传感器技术.2003.[13]庞小兵,黄东胜,邹富顺.在线式光纤传感颜色识别系统的设计[D].自动化仪表.2010.9.[14]郑喜凤,黄娉,刘贵华.三基色亮度计的设计和应用[J].微计算机信息.2009.[15]石磊,张国强.AltiumDesigner8.0中文版电路设计[M].清华大学出版社.2011.[16]颉晓明.高分辨率颜色传感器原理及应用[J].北京电力高等专科学校校报.2009[17]蒋瑞挺.察“颜”观“色”的利器颜色识别系统[J].电子制作.2011[18]JackBerlien,RayKing.色彩传感器的选择-三种成本-效益型方案各有千秋[J].今日电子.2003[19]王晴,尹志勇.基于颜色传感器TCS230的新型经皮测疸仪的设计[J].传感器与微系统.2008[20]姜丽军,李天涯,彭波.基于OPB780颜色传感器的颜色测量系统的设计[J].装备制造技术.2010[21]于志赣,刘国平,张旭斌.液显LCD1602模块的应用[J].机电技术.2009[22]卢斌.基于单片机的光电双向计数器[J].制造业自动化.2012[23]颜色传感器TCS230[EB/OL]附录(一)程序代码/*模块的使用方法:把板距离白纸2CM处开机,使输出的数据位FFFFFFF(白平衡),接下来就可以正常使用实现功能:对颜色传感器输出RGB使用芯片:AT89S52或者STC89C52或AT89S51STC89C51晶振:12MHZ编译环境:Keil#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint//==============LCD1602接口连接方法=====================/*|DB0P0.0|DB4P0.4|RWP2.3||DB1P0.1|DB5P0.5|RSP2.4||DB2P0.2|DB6P0.6|EP2.2||DB3P0.3|DB7P0.7|*///================================================*/#defineLCM_DataP0//LCD1602数据接口#defineBusy0x80//用于检测LCM状态字中的Busy标识sbitLCM_RW=P2^3;//读写控制输入端,LCD1602的第五脚sbitLCM_RS=P2^4;//寄存器选择输入端,LCD1602的第四脚sbitLCM_E=P2^2;//使能信号输入端,LCD1602的第6脚//=================颜色传感模块连接=====================/*|EOGND|S0VCC|S2P2.0|OUTP3.5|S1VCC|S3P2.1|*/sbittcs230_s2=P2^0;//TCS230S2接单片机P2.0sbittcs230_s3=P2^1;//TCS230S3接单片机P2.1sbittcs230_en=P3^0;//TCS230EN(E0)接GND//**************函数声明***************************************voidWriteDataLCM (ucharWDLCM);//LCD模块写数据voidWriteCommandLCM (ucharWCLCM,BuysC);//LCD模块写指令ucharReadStatusLCM(void);//读LCD模块的忙标voidDisplayOneChar(ucharX,ucharY,ucharASCII);//在第X+1行的第Y+1位置显示一个字符voidLCMInit(void);//LCD初始voidDelayMs(uintMs);//1MS基准延时程序voidbaipingheng();//白平衡子程序voidceliang();//实际颜色程序uintryz,gyz,byz;//分别定义红色因子绿色因子蓝色因子uintrb,gb,bb;//RGB值uchartab1[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//***********************主程序******************************main(){TMOD=0x51;//设定T0以工作方式1定时10毫秒LCMInit();//LCD初始baipingheng();//上电时先白平衡一次while(1){celiang();//颜色测试DisplayOneChar(0,0,'R');//以十进制显示RGB中红色的分值DisplayOneChar(0,1,rb/100+0x30);//显示百位数据DisplayOneChar(0,2,rb/10%10+0x30);//显示十位数据DisplayOneChar(0,3,rb%10+0x30);//显示个位数据DisplayOneChar(0,5,'G');//以十进制显示RGB中绿色的分值DisplayOneChar(0,6,gb/100+0x30);//显示百位数据DisplayOneChar(0,7,gb/10%10+0x30);DisplayOneChar(0,8,gb%10+0x30);DisplayOneChar(0,10,'B');//以十进制显示RGB中蓝色的分值DisplayOneChar(0,11,bb/100+0x30);DisplayOneChar(0,12,bb/10%10+0x30);DisplayOneChar(0,13,bb%10+0x30);//*****在LCD1602的第二行以16进制显示RGB*******************DisplayOneChar(1,1,tab1[rb/16]);DisplayOneChar(1,2,tab1[rb%16]);DisplayOneChar(1,3,'H');DisplayOneChar(1,6,tab1[gb/16]);DisplayOneChar(1,7,tab1[rb%16]);DisplayOneChar(1,8,'H');DisplayOneChar(1,11,tab1[bb/16]);DisplayOneChar(1,12,tab1[bb%16]);DisplayOneChar(1,13,'H');DelayMs(250);//每隔0.25秒测试一次颜色}}//******************************************************//白平衡子程序voidceliang(){//*********求R值************************************TH0=(65536-10000)/256; TL0=(65536-10000)%256;TH1=0;TL1=0;tcs230_s2=0;tcs230_s3=0;//选择红色滤光器tcs230_en=0;TR0=1;//10毫秒开始计时TR1=1;//开始计数while(TF0==0);//等待定时器溢出TF0=0;//清楚定时器0溢出标志TR0=0;//关闭定时0TR1=0;rb=(unsignedlong)(TH1*256+TL1)*255/ryz;if(rb>255)rb=255;//判断RGB值是否合法//***********求B值**************************************TH0=(65536-10000)/256; TL0=(65536-10000)%256;TH1=0;TL1=0;tcs230_s2=0;tcs230_s3=1;//选择蓝色滤光器TR0=1;//10毫秒开始计时TR1=1;//开始计数while(TF0==0);//等待定时器溢出TF0=0;//清楚定时器0溢出标志TR0=0;//关闭定时0TR1=0;bb=(unsignedlong)(TH1*256+TL1)*255/byz;if(bb>255)bb=255;//判断RGB值是否合法//***********求G值**************************************TH0=(65536-10000)/256; TL0=(65536-10000)%256;TH1=0;TL1=0;tcs230_s2=1;tcs230_s3=1;//选择绿色滤光器TR0=1;//10毫秒开始计时TR1=1;//开始计数while(TF0==0);//等待定时器溢出TF0=0;//清楚定时器0溢出标志TR0=0;//关闭定时0TR1=0;tcs230_en=1;gb=(unsignedlong)(TH1*256+TL1)*255/gyz;if(gb>255)gb=255;//判断RGB值是否合法}//******************************************************//白平衡子程序voidbaipingheng(){//**************求取红色因子***********************TH0=(65536-10000)/256; TL0=(65536-10000)%256;TH1=0;TL1=0;tcs230_s2=0;tcs230_s3=0;//选择红色滤光器tcs230_en=0;TR0=1;//10毫秒开始计时TR1=1;//开始计数while(TF0==0);//等待定时器溢出TF0=0;//清楚定时器0溢出标志TR0=0;//关闭定时0TR1=0;ryz=TH1*256+TL1;//其实这里的比例因子应该为255/(TH1*256+TL1)//**************求取蓝色因子***********************TH0=(65536-10000)/256; TL0=(65536-10000)%256;TH1=0;TL1=0;tcs230_s2=0;tcs230_s3=1;//选择蓝色滤光器TR0=1;//10毫秒开始计时TR1=1;//开始计数while(TF0==0);//等待定时器溢出TF0=0;//清楚定时器0溢出标志TR0=0;//关闭定时0TR1=0;byz=TH1*256+TL1;//其实这里的比例因子应该为255/(TH1*256+TL1)//**************求绿红色因子***********************TH0=(65536-10000)/256; TL0=(65536-10000)%256;TH1=0;TL1=0;tcs230_s2=1;tcs230_s3=1;//选择绿色滤光器TR0=1;//10毫秒开始计时TR1=1;//开始计数while(TF0==0);//等待定时器溢出TF0=0;//清楚定时器0溢出标志TR0=0;//关闭定时0TR1=0;tcs230_en=1;gyz=TH1*256+TL1;//其实这里的比例因子应该为255/(TH1*256+TL1)}/*======================================================================LCM初始化======================================================================*/voidLCMInit(void){LCM_Data=0;WriteCommandLCM(0x38,0);//三次显示模式设置,不检测忙信号DelayMs(5);WriteCommandLCM(0x38,0);DelayMs(5);WriteCommandLCM(0x38,0);DelayMs(5);WriteCommandLCM(0x38,1);//显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1);//关闭显示WriteCommandLCM(0x01,1);//显示清屏WriteCommandLC

温馨提示

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

评论

0/150

提交评论