基于.51的tcs3200颜色辨别

基于.51的tcs3200颜色辨别

ID:21837546

大小:42.00 KB

页数:8页

时间:2018-10-25

基于.51的tcs3200颜色辨别_第1页
基于.51的tcs3200颜色辨别_第2页
基于.51的tcs3200颜色辨别_第3页
基于.51的tcs3200颜色辨别_第4页
基于.51的tcs3200颜色辨别_第5页
资源描述:

《基于.51的tcs3200颜色辨别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WORD文档可编辑基于51的tcs3200颜色辨别,用lcd1602显示数据,并根据相对数据进行颜色辨别,先用1602查看每种颜色对应的数据,再通过这些数据设定范围,然后通过P2^2、P2^3、P2^4三盏LED灯显示对应的三种颜色,程序复制直接可用,具体调试范围在下面#include//51寄存器文件#include#defineucharunsignedchar#defineuintunsignedintvoidconversion(uinttemp_dat

2、a);voidt0_init();/**引脚定义**/sbits2=P1^0;//TCS3200S2sbits3=P1^1;//TCS3200S3sbitRled=P2^4;sbitBled=P2^3;sbitGled=P2^2;sbitE0=P1^2;//变量、常量定义ucharge,shi,bai;ucharrp=3,gp=6,bp=9,tt=0;//定义比例因子,具体环境可以修改//颜色标志位(0:红1:绿2:蓝)uinttemp;//显示数组uchardisp_R[3]={0,0,0};//红

3、uchardisp_G[3]={0,0,0};//绿uchardisp_B[3]={0,0,0};//蓝intsumR,sumB,sumG,count=0;typedefunsignedcharBYTE;//用BYTE代替unsignedchartypedefbitBOOL;//用BOOL代替bitsbitLCD_RS=P2^7;//复位端sbitLCD_RW=P2^6;//写数据端sbitLCD_EP=P2^5;//使能端技术资料专业分享WORD文档可编辑/****************延时函数*

4、***********************/voiddelay(intms){//延时子程序inti;while(ms--){for(i=0;i<100;i++){_nop_();//空执行_nop_();_nop_();_nop_();}}}/****************侧忙函数************************/BOOLlcdcm(){BOOLresult;LCD_RS=0;LCD_RW=1;LCD_EP=1;_nop_();_nop_();_nop_();_nop_();r

5、esult=(BOOL)(P0&0x80);//检测P0最高位是否为1LCD_EP=0;returnresult;//返回侧忙结果}/****************写命令函数************************/voidlcdcom8(intcmd){//写入指令数据到LCDwhile(lcdcm());LCD_RS=0;LCD_RW=0;LCD_EP=0;_nop_();_nop_();P0=cmd;//将高4位位指令通过P0口传给1602_nop_();技术资料专业分享WORD文档可

6、编辑_nop_();//用于产生一个脉冲宽度_nop_();_nop_();LCD_EP=1;_nop_();_nop_();_nop_();_nop_();LCD_EP=0;}voidlcdcom(intcmd){//写入指令数据到LCDwhile(lcdcm());LCD_RS=0;LCD_RW=0;LCD_EP=0;_nop_();_nop_();P0=cmd;//将高4位位指令通过P0口传给1602_nop_();_nop_();//用于产生一个脉冲宽度_nop_();_nop_();LCD_

7、EP=1;_nop_();_nop_();_nop_();_nop_();LCD_EP=0;P0=(cmd&0x0f)<<4;//将低4位指令通过P0口传给1602_nop_();_nop_();//用于产生一个脉冲宽度_nop_();_nop_();LCD_EP=1;_nop_();_nop_();_nop_();_nop_();LCD_EP=0;}//voidlcd_pos(BYTEpos)技术资料专业分享WORD文档可编辑//{//设定显示位置//lcdcom(pos

8、0x80);//}/***

9、*************写数据函数************************/voidlcddat(BYTEdat){//写入字符显示数据到LCDwhile(lcdcm());LCD_RS=1;LCD_RW=0;LCD_EP=0;P0=dat;//将高4位数据通过P0口传给1602_nop_();_nop_();//用于产生一个脉冲宽度_nop_();_nop_();LCD_EP=1;_nop_();_nop_();_nop_();_nop_()

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。