資源簡介
TCS230顏色傳感器是業內第一款集成三色識別的顏色傳感器,能識別三原色,芯片內集成10位AD,輸出為數字信號,采用記頻就可以很輕松的將三原色的頻率采集,我的程序已經調試通過,相等不錯的,請大家放心

代碼片段和文件信息
/***********************/
//時間:2010年4月30日
//函數:顏色識別
/*************************/
#include
#include?
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
uint?fry;
bit?int_stop;
uchar?l_tmpdate[8];//程序顯示的緩沖區
/////顯示部分/////
sbit?RW_SID=P2^0;//RW
sbit?E_CLK=P2^1;//EN
code?uchar?xianshi1[]=“????學院物電系??“;
code?uchar?xianshi2[]=“顏色傳感器CS230?“;
code?uchar?xianshi3[]=“當前顏色為:????“;
code?uchar?xianshi4[]=“當前頻率為:????“;
code?uchar?yanse[8]=“藍綠紅百“;
/*********端口定義********/
sbit?fs0?=P1^0;
sbit?fs1?=P1^1;
sbit?en=P1^2;
sbit?out=P3^4;?//頻率從T0口入
sbit?fs2?=P1^4;
sbit?fs3?=P1^5;
sbit?key0=P3^2;
sbit?LED0=P3^5;
sbit?LED=P2^6;
uchar?l_key;
uchar?color;
uchar?T[5]; //color?timer
uchar?TH[4];
uchar?TL[4];
uchar?bizhi[4];
uint??comp[3];
uchar?flag;
uint?disp_datdisp_dat1;
////////////////////
/*******延時函數***********/
void?delay(void)//空5個指令
{
_nop_();_nop_();_nop_();_nop_();_nop_();
}
void?delayms(uint?x)
{
??uint?y;
??for(x;x>0;x--)
????for(y=110;y>0;y--);
}
/*void?delayms(uint?i)
{
??for(i=0;i<255;i++);
}*/
/***********串口函數***********/
///////////////////////////////////////////////////????
void?SendByte(unsigned?char?dat)//串行發送一字節數據
????{???
?????unsigned?char?i;???
?????for(i=0;i<8;i++)???
?????{???
???????E_CLK=0;???
???????if(dat&0x80)
???????RW_SID=1;
???????else?????
???????RW_SID=0;???
???????E_CLK=1;???
???????dat=dat<<1;???
?????}???
????}?
////////////////////////////////////////////////////
//寫命令
void??sendcom(unsigned?char?dat)???
????{
??????SendByte(0xF8);//11111000?????RW=0RS=0?????同步標志???
??????SendByte(dat&0xF0);//高四位???
??????SendByte((dat&0x0F)<<4);//低四位?
????}
//寫數據?
void?senddat(unsigned?char?dat)???
????{
??????SendByte(0xFA);//11111010?????RW=0RS=1???
??????SendByte(dat&0xF0);//高四位???
??????SendByte((dat&0x0F)<<4);//低四位?
????}
/***********初始化12864******************/
void?init12864()
{
???uint?i;
???sendcom(0x30);//功能設置,一次送8位數據,基本指令集???
???sendcom(0x0C);//00001100???????整體顯示,游標off,游標位置off???
???sendcom(0x01);//00000001?????清DDRAM???
???sendcom(0x02);//00000010?????DDRAM地址歸位???
???sendcom(0x80);//10000000?????設定DDRAM?7位地址000,0000到地址計數器AC?
?
??sendcom(0x80);
??delayms(40);
??for(i=0;i<16;i++)
??{
??senddat(xianshi1[i]);
??delayms(20);
??}
??
??sendcom(0x90);
??delayms(40);
??for(i=0;i<16;i++)
??{
??senddat(xianshi2[i]);
??delayms(20);
??}
??
??sendcom(0x88);
??delayms(40);
??for(i=0;i<16;i++)
??{
??senddat(xianshi3[i]);
??delayms(20);
??}
??
??sendcom(0x98);
??delayms(40);
??for(i=0;i<16;i++)
??{
??senddat(xianshi4[i]);
??delayms(20);
??}
??
}
/*void?display(uchar?dat)
{
??writedat(0xfadat);
}*/
?
/******顏色初始化函數*******/
//函數:設置單片機定時計數器工作模式
//功能:選擇TCS230輸出比例因子,使能輸出
/***************************/
/*void?init51(void)
{
?TMOD=0x11;??//工作狀態
?TH0=256-(50000/256);?//定時器初值
?TL0=256-(50000%256);
?TH1=256-500/256;
?TL1=256-500%256; //初始化
?ET0=1;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9371??2010-05-16?18:53??顏色識別.c
-----------?---------??----------?-----??----
?????????????????9371????????????????????1
- 上一篇:OPenGL中繪制茶杯模型
- 下一篇:數學建模資源分配問題
評論
共有 條評論