老师修改的颜色传感器论文模板_第1页
老师修改的颜色传感器论文模板_第2页
老师修改的颜色传感器论文模板_第3页
老师修改的颜色传感器论文模板_第4页
老师修改的颜色传感器论文模板_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、编号: 传感器综合设计电路设计与制作实训(论文)说明书题 目: 颜色传感器的设计 /字居中 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 巫玲 学 号: 0901130421 指导教师:王守华、童有为、胡机秀、李秀东2012年 6月19日摘 要随着时代的进步和发展,传感器技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术。传感器是将感受的物理量、化学量等信息,按一定规律转换成便于测量和传输的信号的装置。本文设计了一种以stc89c51单片机和tcs230传感器为核心的颜色检测系统,其利用tcs230颜色传感器将彩色光转换成频率信号,然后经单片机进行处理

2、和判别,获取某一颜色中所含三基色的亮度值,分析被测光中的颜色成分和亮度,即可有效地得出相应的被测颜色,同时将检测结果数字化的显示到lcd屏上。文中简述了利用软件对tcs230的实际颜色测量值进行校正的处理办法,给出了相应的硬件设计电路、软件流程图和测试程序清单。该传感器电路具有成本低、测量速度快、精确高、便携等特点,可广泛应用于各种需要对光色成分进行测量、分析与识别的行业。关键词:传感器;颜色检测;tcs230;stc89c51单片机abstract along with the time progress and the development, the sensor technology

3、already popularized to us lives, the work, the scientific research, each domain, already became one kind of quite mature technology. the sensor is information and so on physical quantity which, chemistry quantity feels, transforms according to certain rule is advantageous for the survey and the tran

4、smission signal installment. this article has designed one kind take the stc89c51 monolithic integrated circuit and the tcs230 sensor as the core color examination system, it transforms using the tcs230 color sensor the colored light the frequency code, then carries on processing and the distinction

5、 after the monolithic integrated circuit, gains in some color to contain three primary color luminance values, analyzes by the light measuring in the color component and brightness, then effectively obtains correspondingly is measured the color, simultaneously test result digitization demonstration

6、lcd on screen. in the article summarized has carried on the adjustment using the software to the tcs230 actual color observed value the measure, has given the corresponding hardware design electric circuit, the software flow chart and the test order detailed list. the electric circuit has the cost t

7、o be low, survey speed quick, precise high, portable and so on characteristics, but widely applies in each kind needs to carry on the survey, the analysis and the recognition profession to the light color ingredient. 窗体底端key word: sensor; color examination; tcs230; stc89c51 monolithic integrated cir

8、cuit 窗体底端窗体底端第1页 共2页目 录传感器电路设计与制作1引言21 概述31.1颜色识别与检测原理31.2 方案论证32.tcs230 颜色传感器的介绍32.1 tcs230芯片的结构框图与特点32.2 tcs230识别颜色原理53系统硬件设计63.1硬件系统设计框图63.2 硬件电路各功能模块及其说明74系统软件设计94.1 程序流程图104.2 白平衡测试子程序及解析114.3 获取颜色频率测试子程序及解析114.4 综合测试124.5 tcs230测试中需要注意的问题125 总结14谢 辞16参考文献15第 15 页 共 23 页引言随着现代工业生产向高速化、自动化方向的发展,

9、颜色检测系统被越来越广泛地应用于颜色测量、颜色变化的识别、打印控制、颜色校正和机器人安全监控等领域。颜色的测量准确度实际受多种因素影响,与光源的光谱特性、光源方位、物体反射特性、观测位置、以及传感器光谱响应性能等有关,测量过程中的环境因素变化也会造成测量误差。然而在很多实际应用中,往往并不需要精确分析颜色的光谱组成,而只需对不同的颜色加以区别。现有的亮度或色度计,都是通过电流的强弱来标定被测物的亮度大小。通常无颜色选择功能,如果需要测量某种颜色的光强(常指三基色红、绿、蓝),则电路复杂,且精度不高。在遇到同时需要对多种颜色光强进行测量的场合,误差会更大,严重影响了识别的效果。目前,颜色传感器通

10、常是在独立的光电二极管上覆盖经过修正的红、绿、蓝滤光片,然后对输出信号进行相应处理,才能识别颜色信号。其输出为模拟信号,需要一个ad电路进行采样,再对该信号进一步处理,才能进行识别,因此增加了电路的复杂性,并且存在较大的识别误差,影响了识别效果。美taos(texas advanced optoe1ectronic solutions)公司最新推出的颜色传感器tcs230 ,不仅能实现颜色的识别与检测,与传统的颜色传感器相比,还具有许多优良特性。tcs230的反应速度快,可用软件设置改变对颜色的选择,输出为数字信号,使用方便,有较强的抗干扰能力。1 概述1.1颜色识别与检测原理颜色是物体表面吸

11、收了白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。由三基色感应原理可知,如果知道构成各种颜色的三基色的值,就能够知道所测试物体的颜色。对于tcs230来说,当选定一个颜色滤波器时,它只允许某种特定原色通过,阻止其他原色通过,即可分别测出rgb的值,从而能分析出投射到tcs230传感器上的光颜色。tcs230对光源要求很高,同一种颜色在不同的实测距离、不同的光源环境中所测出的频率可能不一样。同时实际中我们所见到的光,其三基色并非是理论值。如白色的理论值是由等量的红色、绿色和蓝色混合而成的,但实际上,白色中的三原色并不完全相等,并且对于tcs230的光传感器来说,它对这三

12、种基本色的敏感性是不相同的,导致tcs230的rgb输出并不相等,所以我们必须利用白平衡进行调节与补偿,使tcs230对所检测的“白色”中的三原色相等。应适应各种不同场合,系统应有自主学习功能,即在区别颜色之前,让系统对对周围环境进行学习,得到一组表示白光的频率基准值,然后计算出3个调整参数即基色的比例因子。再把检测目标测得的三基色脉冲数再乘以其相应的比例因子,得到所对应的r、g和b频率值,还原出目标物体颜色。以此作为颜色辨别的标准,从而提高系统的可靠性。1.2 方案论证本次设计的要求包括硬件电路设计和软件编程的设计。由颜色识别与检测原理可知,设计硬件电路可包括单片机控制电路、tcs230颜色

13、采集、led显示和按键控制四个部分,进而实现颜色的检测识别模式及rgb值。软件编程设计方面,通过c语言设定不同的i/o口驱动显示,在基本r、g、b三基色的基础上设定不同的频率范围来鉴别不同的颜色,可采用定时器1的工作方式1和计数器1的计数方式1进行定时计数特定时间内的脉冲数目来实现。通过设计三个按键来分别实现系统复位,切换显示rgb的值和检测颜色的模式。这样就可完成了颜色检测系统的设计。2.tcs230 颜色传感器的介绍2.1 tcs230芯片的结构框图与特点tcs230的引脚和功能框图如图2.1所示:tcs230采用8引脚的soic表面贴装式封装,在单一芯片上集成有64个光电二极管。这些二极

14、管共分为四种类型。其中16个光电二极管带有红色滤波器;16个光电二极管带有绿色滤波器;16个光电二极管带有蓝色滤波器;其余16个不带有任何滤波器,可以透过全部的光信息。这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。工作时,通过两个可编程的引脚来动态选择所需要的滤波器。该传感器的典型输出频率范围从2 hz500 khz,用户还可以通过两个可编程引脚来选择100%、20%或2%的输出比例因子,或电源关断模式。输出比例因子使传感器的输出能够适应不同

15、的测量范围,提高了它的适应能力。例如,当使用低速的频率计数器时,就可以选择小的定标值,使tcs230的输出频率和计数器相匹配。 图2.1 tcs230的引脚和功能框图/图名置中,序号从1到ntcs230芯片引脚s0、s1用于选择输出比例因子或电源关断模式;s2、s3用于选择滤波器的类型;oe是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输入引脚时,也可以作为片选信号;out是频率输出引脚,gnd是芯片的接地引脚,vcc为芯片提供工作电压。表1是s0、s1及 s2、s3的可用组合。tcs230输出为占空比5o的方波, 且输出频率与光强度成线性关系。工作时,通过程序控制s2

16、、s3来动态选择所需要的滤波器,通过控制so和s1来选择电源关断模式或输出比例因子(100、20或2),详见表1。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。传感器的典型输出频率范围从2 hz500 khz,芯片采用8引脚soic表面贴封装,适用于色度计的测量应用。表1 :s0、s1及s2、s3的组合选项/表名置中,序号从1到n表2: tcs3200d的管脚功能:引 脚 号符 号类 型功 能 说 明1s0i输出频率分频系数选择输入端2s1i3oei输入频率使能端。低电平有效4gnd电源地5vdd电源电压6outo输出频率(fo)7s2i光电二极管类型选择输入端8s3i

17、2.2 tcs230识别颜色原理(1) 三原色的感应原理通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如:红r、黄y、绿g、青v、蓝b、紫 p)。根据德国物理学家赫姆霍兹(helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。(2) tcs230识别颜色的原理由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于 tcs230来说,当选定一个颜色滤波器时,它只允

18、许某种特定的原色通过,阻止其他原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个值,就可以分析投射到tcs230 传感器上的光的颜色。(3) 白平衡和颜色识别原理白平衡就是告诉系统什么是白色。从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于tcs230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致tcs230的rgb输出并不相等,因此在测试前必须进行白平衡调整,使得tcs230对所检测的“白色”中的三原色是

19、相等的。进行白平衡调整是为后续的颜色识别作准备。在本装置中,白平衡调整的具体步骤和方法如下:将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到tcs230上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。当用tcs230识别颜色时,就用这3 个参数对所测颜色的r、g和b进行调整。这里有两种方法来计算调整参数: 依次选通三种颜色的滤波器,然后对tcs230的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间。这些时间对应于实际测试时tcs230每种滤波器所采用的时间

20、基准,在这段时间内所测得的脉冲数就是所对应的r、g和b的值。 设置定时器为一固定时间(例如10 ms),然后选通三种颜色的滤波器,计算这段时间内tcs230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,使用同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的r、g和b的值。3系统硬件设计3.1硬件系统设计框图本系统硬件分为单片机控制电路、tcs230颜色采集、led显示和按键控制等四部分,其工作原理如图3.1所示。单片机at89c51数码管显示模块颜色rgb值指示红、绿、蓝发光二极管指示模块 下载电路颜色传感器检测模块tc

21、s3200按键控制模块晶振、复位电路图3.12 硬件系统设计框图3.2 硬件电路各功能模块及其说明系统以单片机stc89c52为核心,在程序支持下,对tcs230进行检测控制,将输出的频率送往stc89c52进行处理得出相应的识别信息显示在lcd屏上可显示被测颜色r、g、b亮度值,同时显示当前颜色的亮度。(1) 数码管显示部分如图3.2所示。/通过protel属性设置,电原理图网格去掉图3.2 数码管显示部分电路图 该部分采用四位数码管显示,一位显示颜色的模值,其他三位显示rgb的频率值,采用pnp型三极管进行驱动,串接电阻进行限流防止电压过大数码管被烧坏设计为p0口显示时,还应注意加上拉电阻

22、。(2) led显示部分如图3.3所示。图3.3 led显示部分电路图该部分中实现的功能是在stc89c52的i/o口中接上三盏led灯来分别测试rgb的值。(3)功能键部分如图3.4所示。图3.4功能键部分电路图在该部分中,通过三个按键的设计,分别来实现一:系统复位;二:切换显示rgb的值(p10口);三:检测颜色的模式(p11口)。(3)颜色传感器部分如图3.5所示。图3.5颜色传感器部分电路图在该部分中,通过pnp三极管串接上限流电阻驱动tsc230显示,为了使测试颜色前的白平衡调节,电路中接上四个led来照亮tsc230芯片,使得测试更为准确。4系统软件设计系统软件主要包括:主程序、白

23、平衡校正子程序和颜色比较子程序。其中白平衡校正子程序用于颜色标定;比较子程序用于颜色检测。4.1 程序流程图/软件流程图建议采用viso软件画,注意规范性,诸如判断菱形框,一般采用单箭头。开 始初始化程序白平衡调整颜色识别程序有颜色识别?noyes按键判断子程序将所要显示值赋给数码管软件主程序流程图开 始是否有按键按下noyes按键1 +按键2是否按下键1值为0显示b值颜色重新采集显示显示r值显示g值键1值为1键1值为2yes图4.1软件主程序流程图及键盘扫描流程图4.2 白平衡测试子程序及解析程序须先行进行白平衡调节,得出比例因子,再实现对物体颜色检测和校准,并在lcd上分别显示的r,g,b

24、的亮度值。通过白平衡设计颜色初值,以便其他颜色的辨别检测。下面给出白平衡测试的子程序及其解析。void white_adjust(void) / 颜色识别前先进行白平衡uchar k;tcs_led= 0; / 启动,不过此时滤波片没有选择有效值delay(5); / 等待一段时间,用来使光源平衡red_w_a_count = 0;green_w_a_count = 0;blue_w_a_count = 0;for (k = 0; k 10; k +)tcs_s2=0;tcs_s3=0; / 白平衡选择红色red_w_a_count=get_color_count() + red_w_a_co

25、unt;tcs_s2=1;tcs_s3=1; / 白平衡选择绿色green_w_a_count=get_color_count() + green_w_a_count;tcs_s2=0;tcs_s3=1; / 白平衡选择蓝色blue_w_a_count=get_color_count() + blue_w_a_count;tcs_s2=1;tcs_s3=0; / 白平衡结束后不选择滤光片4.3 获取颜色频率测试子程序及解析测试颜色的rgb值,可通过定时10ms 的计数脉冲数目来进行颜色频率的检测。下面给出白平衡测试的子程序及其解析。unsigned int get_color_count( )

26、unsigned int idata temp_tcs3200_count;bit convert_flag;th1=0x00; / 设置好后才开始计数tl1=0x00;tcs3200_time_count=0x00; / 将计数值清零后再开始新一次的计数convert_flag = tcs3200_convert_flag;while(convert_flag = tcs3200_convert_flag); / 使能tcs230转换时间计数tr1 = 1;while (tcs3200_convert_flag!=convert_flag); / 一次转换结束tr1=0;temp_tcs32

27、00_count=th1* 256 + tl1; / 保存好计数结果returntemp_tcs3200_count;4.4 综合测试软件编译通过之后,下载程序进入单片机中,依据方案设计原理进行调节测试。测试结果由按键切换通过四位数码管实现颜色检测的rgb值和颜色模式显示。在测试过程中,首先进行的是白平衡调节。使颜色传感器对着白纸,接通电源,按复位键检查rgb值是否都显示为255,是则可进行下一步的颜色检测,若小于245,则应再进行调节,使之较接近之后再做下一步测试。白平衡之后,把颜色传感器对着另一个颜色,通过按键二切换进行颜色检测,最后通过按键三可分别查看rgb的值。由得出的数值,可根据绘图

28、工具来检测测试结果与实际显示结果的差别。起初测试过程中发现电路没有输出,按键不灵,一位数码管不显示。经检查发现电源连接地线没有接上,制作pcb板时数码管有两根不连通线短接了,按键的线路焊接不好。经仔细检查电路后才解决这些问题,电路正常工作。而数码管显示较为模糊,其中是限流电阻较大的缘故。通过改变阻值较小的电阻,数码管显示非常清晰。测试结果发现与实际存在较大的误差,所以我再通过修改程序中的定时时间,发现在定时10ms 计数时误差较为小,因此最后确定定时时间为10ms。解决测试中遇到的问题之后,电路成功地实现了设计的功能。本次设计较为成功。4.5 tcs230测试中需要注意的问题(1) 颜色识别时

29、要避免外界光线的干扰,否则会影响颜色识别的结果。最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试。(2)对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰。(3) 当第1次使用tcs230时,或tcs230识别模块重启、更换光源等情况时,都需要进行白平衡调整。根据需求选择电路的设计单元进行组合,完成系统的原理图设计与pcb设计,对制作好的pcb板,按照装配图或原理图进行器件装配,装配好之后进行电路调试。通电准备打开电源之前,先按照系统原理图检查制作好的电路板的通断情况,并取下pcb板上的单片机,然后接通电源,用万用表检查板上的各点的电源电压值,完好之后再

30、关掉电源,插上单片机芯片。电路检测调试接通电源后,按下复位开关,此时单片机的所有端口均输出高电平,拔位的共阳极数码管会无显示,发光二极管发光。放开手后,数码管显示白平衡时候的rgb值,此时rgb值指示灯发光。 颜色探测模块的4个白色发光二极管发光。检测按键,观察按键是否正常工作。实验测试实验测试时,要注意以下几点1) 颜色识别时要避免外界光线的干扰,否则,会影响颜色识别的结果;2) 白平衡调整:第一次使用tcs3200d或tcs3200d识别模式块的重启、更换光源等情况时,都需要进行白平衡调整。因为当r、g、b三原色分量相等且都为255时才为白色光,但现在市面上的白色光源不可能是完全的纯白色,

31、所以,要进行白平衡调整,否则,对检查结果会有一定的影响。测试结果及分析本设计的颜色检测系统可以检测12种颜色,通过10次测试记录数据,所测颜色的rgb平均值如表3所示表3: tcs3200d颜色检测系统测试数据表/此处甚好,有最终结果测量数据!颜色白浅蓝粉红黑紫红黄绿淡紫米黄蓝橙r值255143171261311511857621918160181g值255193702550451551041501807576b值25420675307151193641721709565根据表3所测12种颜色的rgb值输入到word文档里的绘图工具中的调色板,可以观察出调试板上显示的颜色和tcs3200d颜色

32、检测系统检测的颜色基本接近。由此可知本设计tcs3200d颜色检测系统检测精度比较高。5 总结在本次滤波器的实训过程中,我不但复习了传感器这门课程的知识,对滤颜色传感器的设计有了更好的把握,同时也丰富了我的课外阅历,提高了我的自学能力,为我们的将来出去工作打下了良好的基础。本次实训的内容包括两部分内容:一是硬件电路设计部分;二是软件编程设计部分。首先通过查阅资料,以及在网上搜索相关资料,我懂得了颜色传感器的基本应用原理:由三基色感应原理可知,如果知道构成各种颜色的三基色的值,就能够知道所测试物体的颜色。对于tcs230来说,当选定一个颜色滤波器时,它只允许某种特定原色通过,阻止其他原色通过,即

33、可分别测出rgb的值,从而能分析出投射到tcs230传感器上的光颜色。在区别颜色之前,让系统对对周围环境进行学习,得到一组表示白光的频率基准值,然后计算出3个调整参数即基色的比例因子。再把检测目标测得的三基色脉冲数再乘以其相应的比例因子,得到所对应的r、g和b频率值,还原出目标物体颜色,这就完成了通过颜色传感器检测颜色的目的。掌握其基本原理之后,我就开始着手于设计电路图了。系统硬件分为单片机控制电路、串口通信电路、tcs230颜色采集、lcd显示和按键控制等五部分。在电路设计制作过程中,依据实现功能进行设计,其中通过设定p31和p32控制s0、s1用于选择频率的输出模式,p33和p34控制s2

34、、s3用于选择滤波器,按键一用于切换rgb的值,按键二用于设定重新检测颜色。还要注意的是颜色传感器的部分,其中,tcs230为贴片式芯片,设计时应该进行镜像,此外,为了时芯片有更好的显示效果,可设计四盏灯照亮芯片以便调测。驱动数码管时还应加上拉电阻。电路原理图制作好电路板之后,就进行相应的程序编写。根据电路原理图,定义各个i/o口,按键,应注意的地方是颜色传感器的白平衡,因此需要分别开启rgb滤波器定时计数10ms。进行相应的程序编写后,仿真测试进行相应的调整和性能测试,检验总体设计的结果。在测试过程中,我遇到了不少问题。例如刚开始发现电路没有输出,按键不灵,一位数码管不显示。经检查发现电源连

35、接地线没有接上,制作pcb板时数码管有两根不连通线短接了,按键的线路焊接不好。经仔细检查电路后才解决这些问题,电路正常工作。软件编译时出现的问题主要是if 语句运用的不恰当,导致的警告出现。在老师和同学的帮助下,最终得以解决问题。此设计以单片机stc89c52为核心,在程序支持下,利用tcs230颜色传感器将彩色光转换成频率信号,然后经单片机进行处理和判别,获取某一颜色中所含三基色的亮度值,分析被测光中的颜色成分和亮度,即可有效地得出相应的被测颜色,同时将检测r、g、b值数字化的显示到lcd屏上,成功地完成了设计。通过这次传感器的实训,使我能更好地去分析和处理问题,理论知识和动手能力有了很大的

36、提高。通过实验验证实验原理的正确性,使我认识到理论与实践的相结合,才能更好地掌握知识。在此次信号处理的综合实训的过程中,我也发现了自己的许多不足之处,例如对电路问题的分析处理能力还不是很好,对程序的总体编写能力还有待提高等都反映出自己还有太多的知识要学习,并且要加强动手能力。要做到能将所学的知识灵活自如的运用到实际中,要不断接触更深层次的知识,并把它们用到实际生活中去,提高自身的动手能力能更深的了解知识并应用知识。 谢 辞首先,感谢信息与通信学院为我们安排了这次传感器应用实训。能够通过这次的实训对所学传感器这门课程的知识有了更好的了解与掌握。其次,非常感谢学院领导和老师给我们提供硬件条件和在理

37、论知识方面的帮助。还要感谢王守华老师、童有为老师、胡机秀老师的实训指导。整个实训内容都是在老师们的悉心指导下完成的,老师们严谨的治学作风、求实的工作态度使我受益匪浅,更重要的是从老师的身上学到了对待任何事情的那种精益求精和一丝不苟的精神和态度,特别是在三位老师的身上我学到了一种思维的扩展。在此,我要对他们表示深切的感谢之情。在本次实训中,我遇到了很多难题,然而这些难题让我不断的学习,在困难中进步。桂林电子科技大学实训说明书参考文献1 唐贤远,刘歧山.传感器原理及应用m.,成都:电子科技大学出版社,20002 李科杰.新编传感器技术手册m.北京:国防科技出版社,20023 沈永生.常用电子元器件

38、使用一读通m.,北京:人民邮电出版社,20024 赵继文.传感器与应用电路设计m.北京:科学出版社,2002.5 郁有文.传感器原理及工程应用m.西安:西安电子科技大学出版社,2001.6 金发庆.传感器技术与应用(第二版)m.北京:机械工业出版社,2006./此篇不合规格,上面参考文献都合规范的!7 protel99 se 原理图与 pcb 设计教程 , 及力 主编 , 电子工业出版社 , 2004 年。8 赵广林. protel99 se 电路设计与制版. 北京:电子工业出版社,2005年9 赵晶等编. protel99 se 高级应用. 北京:人民邮电出版社,2003年10电子线路 ca

39、d 技术 protel 电路设计 刘华东主编,清华大学出版社, 2007.6 。11johnson m a,taaffe m r. matching moments to phase distributions: nonlinear programming approachesj. communications in statisticsstochastic models, 1990,15(6):259-281.12dempster a, laird n, rubin a. maximum likelihood estimation from incomplete data via the e

40、m algorithm (with discussion)j. journal of royal statistical society: series b,1977,39(1):1-38.附 录 1电路原理图:单片机最小系统电路原理图:传感器芯片测试原理图附 录 2电路pcb图:最小系统pcb颜色传感器pcb附 录3表2为tcs3200d的管脚功能:表2 tcs3200d管脚功能引 脚 号符 号类 型功 能 说 明1s0i输出频率分频系数选择输入端2s1i3oei输入频率使能端。低电平有效4gnd电源地5vdd电源电压6outo输出频率(fo)7s2i光电二极管类型选择输入端8s3i附录4系

41、统软件主程序:#include reg52.h#define uchar unsigned char#define uint unsigned int/*管脚定义*/#define display_data p2sbittcs_led= p36;sbittcs_s0= p31;sbittcs_s1= p32; / 选择输出频率sbittcs_s2= p34;sbittcs_s3= p33; / 选择滤光片/sbittcs_oe= p37; / tcs230使能sbittcs_out= p35; / tcs230输出,即timer0 的计数输入位sbitkey1 = p10;sbitkey2 =

42、 p11;sbit led_red=p17;sbit led_green=p16;sbit led_blue=p15;/*变量定义*/unsigned inttcs3200_time_count; / 颜色脉冲计数总时间unsigned intcnt=0;unsigned longred_w_a_count; / 红色白平衡计数值unsigned longgreen_w_a_count; / 绿色白平衡计数值unsigned longblue_w_a_count; / 蓝色白平衡计数值unsigned longred_r_d_count; / 红色实际检测计数值unsigned longgre

43、en_r_d_count; / 绿色实际检测计数值unsigned longblue_r_d_count; / 蓝色实际检测计数值unsigned charrgb_red; / 红色的 rgb值unsigned charrgb_green; / 绿色的 rgb值unsigned charrgb_blue; / 蓝色的 rgb值unsigned charkey2_num=0;unsigned char key1_num=0;unsigned char clours=0; /颜色判断float temp_r_g,temp_r_b;bittcs3200_convert_flag; / tcs230转

44、换标志uchar code play_data10 = 0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0xc1, 0x1f, 0x01, 0x19;/*延时函数*/void delay(uchar delay_time) uint n; while(delay_time-) n = 600; while(-n); /*获取颜色频率*/unsigned int get_color_count( )unsigned int idata temp_tcs3200_count;bit convert_flag;th1=0x00; / 设置好后才开始计数tl1=0x00;tcs

45、3200_time_count=0x00; / 将计数值清零后再开始新一次的计数convert_flag = tcs3200_convert_flag;while(convert_flag = tcs3200_convert_flag);/ 使能tcs230转换时间计数tr1 = 1;while (tcs3200_convert_flag!=convert_flag); / 一次转换结束tr1=0;temp_tcs3200_count=th1* 256 + tl1; / 保存好计数结果returntemp_tcs3200_count;/*白平衡*/void white_adjust(void)

46、 / 颜色识别前先进行白平衡uchar k;tcs_led= 0; / 启动,不过此时滤波片没有选择有效值delay(5); / 等待一段时间,用来使光源平衡red_w_a_count = 0;green_w_a_count = 0;blue_w_a_count = 0;for (k = 0; k 10; k +)tcs_s2=0;tcs_s3=0; / 白平衡选择红色red_w_a_count=get_color_count() + red_w_a_count;tcs_s2=1;tcs_s3=1; / 白平衡选择绿色green_w_a_count=get_color_count() + green_w_a_count;tcs_s2=0;tcs_s3=1; / 白平衡选择蓝色blue_w_a_count=get_color_count() + blue_w_a_count;tcs_s2=1;tcs_s3=0; / 白平衡结束后不选择滤光片 /*颜色识别*/void color_deal(void) / 开始处理一次颜色识别unsigned char idatak;tcs_led=0;red_r_d_count = 0;green_r_d_count = 0;blue_r_d_count = 0;delay(10);for (k = 0 ; k red_w_a_count)red_

温馨提示

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

评论

0/150

提交评论