程序
/*
* 用途:TCS3200颜色测试,读取RGB值,LCD1602显示R,G,B值
*///接线说明:
//模块S2-----单片机P2.1
//模块S3-----单片机P2.0
//模块OUT----单片机P3.5(计数器1输入)
//模块VCC----单片机VCC
//模块GND----单片机GND#include
#include//Keil library
#include//Keil library
#include#define uchar unsigned char
#define uintunsigned int
#define DataPort P0//LCD1602 数据端口
sbitLCM_RS=P1^2;
//LCD1602 控制端口
sbitLCM_RW=P1^1;
//LCD1602 控制端口
sbitLCM_EN=P1^0;
//LCD1602 控制端口/**引脚定义**/
sbit s2=P2^1;
//TCS3200 S2
sbit s3=P2^0;
//TCS3200 S3
//TCS3200 S0 模块内部默认上拉
//TCS3200 S1 模块内部默认上拉
//TCS3200 OE 模块内部接地
sbit test_pin=P2^2;
//用示波器看这个引脚,可知道定时器中断频率
//变量、常量定义
uchar ge,shi,bai ;
uchar rp=3,gp=3,bp=6;
//定义比例因子,具体环境可以修改
uchar count;
//颜色标志位(0:红 1:绿 2:蓝)//显示数组
uchar disp_R[3];
//红
uchar disp_G[3];
//绿
uchar disp_B[3];
//蓝//********定义函数*****************************
voiddelay(unsigned int k);
voidInitLcd();
voidWriteDataLCM(uchar dataW);
voidWriteCommandLCM(uchar CMD,uchar Attribc);
voidDisplayOneChar(uchar X,uchar Y,uchar DData);
//*********LCD1602初始化**********************
void InitLcd()
{
WriteCommandLCM(0x38,1);
WriteCommandLCM(0x08,1);
WriteCommandLCM(0x01,1);
WriteCommandLCM(0x06,1);
WriteCommandLCM(0x0c,1);
}//**********检测忙信号************************
void WaitForEnable(void)
{
DataPort=0xff;
LCM_RS=0;
LCM_RW=1;
_nop_();
LCM_EN=1;
_nop_();
_nop_();
while(DataPort&0x80);
LCM_EN=0;
}//**********写命令至LCD***********************
void WriteCommandLCM(uchar CMD,uchar Attribc)
{
if(Attribc)WaitForEnable();
LCM_RS=0;
LCM_RW=0;
_nop_();
DataPort=CMD;
_nop_();
LCM_EN=1;
_nop_();
_nop_();
LCM_EN=0;
} //**********写数据至LCD************************
void WriteDataLCM(uchar dataW)
{
WaitForEnable();
LCM_RS=1;
LCM_RW=0;
_nop_();
DataPort=dataW;
_nop_();
LCM_EN=1;
_nop_();
_nop_();
LCM_EN=0;
}//*********写一个字符数据到指定的目标***********
void DisplayOneChar(uchar X,uchar Y,uchar DData)
{
Y&=1;
X&=15;
if(Y)X|=0x40;
X|=0x80;
WriteCommandLCM(X,0);
WriteDataLCM(DData);
}//**********延时函数***************
void delay(unsigned int k)
{
unsigned int i,j;
for(i=0;
i
TCS230模块原理及程序视频讲解: 【电子DIY|《电子DIY》之《单片机实践项目》之基于51单片机的TCS230颜色识别模块】TCS230模块
推荐阅读
- 关于欧几里得算法和拓展欧几里得算法
- 蛇精,蜈蚣
- 程序|android 不销毁当前activity,返回上一层,亲测有效
- c语言while循环打印等腰三角型
- 《ESP8266EX模块讲解(第五期视频》ESP8266模块通过AT指令配置成AP模式,手机与ESP8266EX相互传输数据操作步骤详细讲解)
- 《ESP8266EX模块讲解(第七期视频》NODE MCU(ESP8266)开发软件使用,lua脚本编程学习,编程步骤及注意事项)
- 《ESP8266EX模块讲解(第六期视频》之《单片机实践项目》NODE MCU(ESP8266)的lua固件库下载详细讲解)
- JsonHelper
- Jmysy-Pear-Admin-Layui