找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8672|回复: 6
打印 上一主题 下一主题
收起左侧

TCS230 TCS3200颜色传感器代码与资料下载

  [复制链接]
跳转到指定楼层
楼主
TCS230 TCS3200 二者通用的
TCS230是TAOS公司推出的可编程彩色光到频率的转换器。它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上集成了红绿蓝(RGB)三种滤光器,是业界第一个有数字兼容接口的RGB彩色传感器。TCS230的输出信号是数字量,可以驱动标准的TTL或CMOS逻辑输入,因此可直接与微处理器或其他逻辑电路相连接。由于输出的是数字量,并且能够实现每个彩色信道10位以上的转换精度,因而不再需要A/D转换电路,使电路变得更简单。图1是TCS230的引脚和功能框图。

关于颜色传感器模块接线说明


单片机源程序如下:
  1. /************************************************
  2. 文件 : tcs230.c
  3. 描述 :TCS320颜色识别
  4. 编写 : 朱林
  5. 目标MCU:AT89S52
  6. 晶振:11.0592MHZ
  7. ************************************************/
  8. #include "uart2.h"
  9. #define        LED P1_3
  10.    
  11. sbit  s0   =   P2^1;     
  12. sbit  s1   =   P2^2;     
  13. sbit  s2   =   P2^3;   
  14. sbit  s3   =   P2^4;
  15.    

  16. long int  green=0,red=0,blue=0;        //RGB颜色初始化

  17. /**********************RGB比例系数***************************/
  18. /****************通过白平衡得出的时间比例系数*************/
  19. #define pred   12
  20. #define pgreen 8
  21. #define pblue  6

  22. int  disp_tc;  //计数标志





  23. /***************************led测试 闪烁3次****************************/
  24. void test_led()
  25. {
  26.         uchar i;
  27.         for(i=0;i<3;i++)
  28.         {
  29.                 LED=0;
  30.                 delay_nms(200);
  31.                 LED=1;
  32.                 delay_nms(200);
  33.         }
  34.         LED=0;
  35. }
  36. /***************************计数器初始化****************************/
  37. void t0_init()
  38.         {  
  39.             TMOD=0x51;//设置定时器0为工作方式一

  40.             TH0 =0xfc;
  41.             TL0 =0x66;//如果晶振是11.0592MHZ的话,误差是0.00017%
  42.             
  43.             EA=1;
  44.             ET0=1;
  45.             TR0=1;
  46.             TR1=1;
  47.         }

  48. /************************10ms中断子程序 *******************/
  49. void c1ms_out() interrupt 1//定时器0 1ms中断响应
  50. {      
  51.         TR0=0;
  52.         TR1=0;
  53.         
  54.                 disp_tc=disp_tc+1; //计数值加一
  55.                 TH0=0xfc;
  56.             TL0=0x66+TL0;     //加定时器补偿
  57.                                                 
  58.             TR0=1;
  59.             TR1=1;
  60.         
  61. }   

  62. /*****************************主控制程序****************************/
  63. void main()
  64. {

  65.   test_led();                        //测试led
  66.   delay_nms(80);                //延时 等待串口调试工具
  67.   LED=1;                                //打开led


  68.   s0=1; s1=1;
  69.   t0_init();
  70.   Time2_init();
  71.   while(1)
  72.    {                                //选择蓝色滤光
  73.                         disp_tc=0;
  74.                                                    s2=0;
  75.                                     s3=1;
  76.                                 while(disp_tc!=pblue);
  77.                                                  TR0=0;
  78.                                      TR1=0;
  79.                                                 blue=TH1*256+TL1;
  80.                                             TL1=0x00;
  81.                                         TH1=0x00;
  82.                                               disp_tc=0;
  83.                                                 TR0=1;
  84.                                         TR1=1;

  85.                                                 //选择绿色滤光
  86.                                      s2=1;
  87.                                      s3=1;
  88.                                                  while(disp_tc!=pgreen);
  89.                                                  TR0=0;
  90.                                      TR1=0;
  91.                                                  green=TH1*256+TL1;
  92.                                                  TL1=0x00;
  93.                                          TH1=0x00;
  94.                                                disp_tc=0;
  95.                                                  TR0=1;
  96.                                          TR1=1;
  97.                                     
  98.                                                  //选择红色滤光
  99.                                       s2=0;
  100.                                       s3=0;
  101.                                                   while(disp_tc!=pred);
  102.                                                   TR0=0;
  103. ……………………

  104. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
DM-S28302 TCS230-DB 颜色传感器教学套件.rar (1.93 MB, 下载次数: 189)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:366622 发表于 2018-7-7 07:56 | 只看该作者
有完整的吗
回复

使用道具 举报

板凳
ID:390743 发表于 2018-8-28 18:15 | 只看该作者
非要充钱吗
回复

使用道具 举报

地板
ID:191900 发表于 2018-9-26 16:19 | 只看该作者
你好,请问能检测,但为什么白平衡总是校不准,是什么原因啊?
回复

使用道具 举报

5#
ID:440175 发表于 2019-2-25 16:21 | 只看该作者
xie xie lou zhu
回复

使用道具 举报

6#
ID:280309 发表于 2019-3-2 10:35 | 只看该作者
现在学习了!
回复

使用道具 举报

7#
ID:313055 发表于 2019-9-3 20:06 | 只看该作者
有stm32的吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表