1、基于 51 的 tcs3200 颜色辨别,用 lcd1602 显示数据,并根据相对数据进行颜色辨别,先用 1602 查看每种颜色对应的数据,再通过这些数据设定范围,然后通过 P22、P23 、P24 三盏 LED 灯显示对应的三种颜色,程序复制直接可用,具体调试范围在下面#include /51 寄存器文件#include #define uchar unsigned char#define uint unsigned intvoid conversion(uint temp_data) ;void t0_init();/*引脚定义*/ sbit s2=P10; /TCS3200 S2 sbi
2、t s3=P11; /TCS3200 S3sbit Rled = P24; sbit Bled = P23;sbit Gled = P22;sbit E0 = P12;/变量、常量定义uchar ge,shi,bai ;uchar rp=3,gp=6,bp=9,tt=0; /定义比例因子,具体环境可以修改/颜色标志位(0:红 1:绿 2:蓝)uint temp; /显示数组uchar disp_R3=0,0,0; /红uchar disp_G3=0,0,0; /绿uchar disp_B3=0,0,0; /蓝int sumR,sumB,sumG,count=0;typedef unsigned
3、 char BYTE;/用 BYTE 代替 unsigned char typedef bit BOOL; / 用 BOOL 代替 bit sbit LCD_RS = P27; /复位端 sbit LCD_RW = P26; /写数据端sbit LCD_EP = P25; /使能端/*延时函数 */void delay(int ms) /延时子程序int i;while(ms-)for(i = 0; i=64)/检测绿色的范围Gled=0;delay(4000);Gled=1;else if(sumG=27)/检测红色的范围Rled=0;delay(4000);Rled=1;else if(sumB=33)检测蓝色的范围Bled=0;delay(4000);Bled=1; EA = 1;