//鉴于你应该知道TCS230D芯片的资料,芯片引脚功能我就不团空说了
#include<reg52.h>
unsigned char tmp
/*******************************************
定义颜色识别模块引脚
*******************************************/
sbit 差或坦 clr_S0=P3^0
sbit clr_S1=P3^1
//设置p3.0脚3.1脚分别接到tcs230d芯片的s0和s1脚
sbit clr_OE=P3^2
sbit clr_OUT=P3^5
//设置p3.2脚3.5脚分别接到tcs230d芯片的OE和OUT脚
sbit clr_S2=P3^4
sbit clr_S3=P3^3
//设置p3.4脚3.3脚分别接到tCS230D芯片的S2和S3脚
/*******************************************/
/**********
串口初始化
***********************/
/*******************************************/
void init_ser()//初始化串口
{
TMOD=0x20
TH1=0xfd
TL1=0xfd
SCON=0x50
PCON&=0xef
TR1=1
IE=0x00
}
void ser_sendchar(unsigned char a)//串口发送一个字节
{
SBUF=a
while(!TI)
TI=0
}
/*******************************************/
/********
颜色识别模块配置
*******************/
/*******************************************/
void init_clr()
{
clr_OE=1
}
unsigned int clr_get(unsigned char a)
{
unsigned int time
TMOD=0x61//设置定时器0工作方式为16位
TH0=TL0=0x00//设置定时器0从0计时
TH1=TL1=0x00
clr_S0=1
clr_S1=1
clr_S2=a&0x02
clr_S3=a&0x01
clr_OE=0
TR1=TR0=1
while(TL1<250)
TR1=TR0=0
clr_OE=1
time=TH0*256+TL0
return(time)
}
/*******************************************/
/*******************************************/
/*******************************************/
void main()
{
unsigned int a
init_ser()
init_clr()
while(1)
{
if(RI)
{
RI=0
tmp=SBUF
a=clr_get(tmp)
init_ser()
ser_sendchar(a&0x00ff)
ser_sendchar(a/256)
}
}
}
以上就是整个代码部分,希望有帮助
我也没写过颜色识别的程序,不档档过给你点提示,光的行渣乱三原色是红绿蓝,染料的三原色是品红,黄,青,梁芹所有我们可以看到的颜色都可以由三原色以不同比例混合而成,再加上色调,饱和度,亮度调节出来,你的程序可以把一种颜色拆成这些最基本的元素,每种元素占一个位置就可以了欢迎分享,转载请注明来源:内存溢出
评论列表(0条)