求51单片机用的的 TCS230D颜色识别模块c语言程序

求51单片机用的的 TCS230D颜色识别模块c语言程序,第1张

//转自某某大侠的(名字忘了)此程序用于颜色模块TCS230D的51驱虚桐动(2010.08.26大侠)

//鉴于你应该知道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)

}

}

}

以上就是整个代码部分,希望有帮助

我也没写过颜色识别的程序,不档档过给你点提示,光的行渣乱三原色是红绿蓝,染料的三原色是品红,黄,青,梁芹所有我们可以看到的颜色都可以由三原色以不同比例混合而成,再加上色调,饱和度,亮度调节出来,你的程序可以把一种颜色拆成这些最基本的元素,每种元素占一个位置就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12240141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存