为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

TCS230颜色识别传感器的AVRmega128驱动程序

2017-12-27 8页 doc 22KB 13阅读

用户头像

is_721103

暂无简介

举报
TCS230颜色识别传感器的AVRmega128驱动程序TCS230颜色识别传感器的AVRmega128驱动程序 /* TCS230颜色识别传感器程序 接口定义:S0接PE0 S1接PE1 S2接PE2 S3接PE3 OUT接PD0(INT0) OE接PE4 */ #include #include #define uchar unsigned char #define uint unsigned int /*引脚定义*/ #define S0_OUT DDRE|=BIT(0) #define S0_1 PORTE|=BIT(0) #define S0_0 PORT...
TCS230颜色识别传感器的AVRmega128驱动程序
TCS230颜色识别传感器的AVRmega128驱动程序 /* TCS230颜色识别传感器程序 接口定义:S0接PE0 S1接PE1 S2接PE2 S3接PE3 OUT接PD0(INT0) OE接PE4 */ #include #include #define uchar unsigned char #define uint unsigned int /*引脚定义*/ #define S0_OUT DDRE|=BIT(0) #define S0_1 PORTE|=BIT(0) #define S0_0 PORTE&=~BIT(0) #define S1_OUT DDRE|=BIT(1) #define S1_1 PORTE|=BIT(1) #define S1_0 PORTE&=~BIT(1) #define S2_OUT DDRE|=BIT(2) #define S2_1 PORTE|=BIT(2) #define S2_0 PORTE&=~BIT(2) #define S3_OUT DDRE|=BIT(3) #define S3_1 PORTE|=BIT(3) #define S3_0 PORTE&=~BIT(3) #define E_OUT DDRE|=BIT(4) #define E_1 PORTE|=BIT(4) #define E_0 PORTE&=~BIT(4) #define OUT_OUT DDRD|=BIT(0) #define OUT_IN DDRD&=~BIT(0) #define OUT_1 PORTD|=BIT(0) #define OUT_0 PORTD&=~BIT(0) void delay(uint ms); void delay_us(uint us); void init(void); void init_1602(void); void init_TCS230(void); void display(uint a); void RGB(void); void write_com_1602(uchar command); void write_data_1602(uchar data); void display1602(void); #pragma interrupt_handler int0:2 #pragma interrupt_handler timer1_ovf:15 const uchar table_duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; const uchar table_wei[]={0x01,0X02,0X04,0X08}; uchar ge=0,shi=0,bai=0,qian=0; uint blue_temp=0,red_temp=0,green_temp=0,red=0,blue=0,green=0; void main(void) { init(); init_1602(); init_TCS230(); S0_1; S1_1; //输出比例因子为100% S2_0; S3_0; //选择红色滤波器 while(1) { display(red/10); } } void init(void) { DDRA=0XFF; DDRB=0XFF; DDRC=0XFF; DDRD=0XFF; DDRE=0XFF; } void init_TCS230(void) { S0_OUT; S1_OUT; S2_OUT; S3_OUT; E_OUT; OUT_IN; OUT_1; E_0; //TCS230使能 S0_1; S1_1; //输出比例因子为100% S2_0; S3_0; //选择红色滤波器 TCCR1B|=BIT(2); //256分频 TCNT1=0X85EE; TIMSK|=BIT(2); EICRA|=BIT(1); EIMSK|=BIT(0); SREG|=BIT(7); } void display1602(void) { } /******************************************************************** * 名称 : RGB() * 功能 : 检测颜色的三原色 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void RGB(void) { } #pragma interrupt_handler int0:2 void int0(void) { red_temp++; } #pragma interrupt_handler timer1_ovf:15 void timer1_ovf(void) { TCNT1=0X85EE; red=red_temp; red_temp=0; } /******************************************************************** * 名称 : 1602液晶的初始化和发送数据、指令函数 * 功能 : 配置1602液晶 * 输入 : 显示数据、指令 * 输出 : 无 ***********************************************************************/ void write_com_1602(uchar command) { PORTF&=~BIT(3);// RS PORTF&=~BIT(0);// R/W PORTC=command; delay(1); PORTF|=BIT(2);// E delay(1); PORTF&=~BIT(2); delay(5); } void write_data_1602(uchar data) { PORTF|=BIT(3);// RS PORTF&=~BIT(0);// R/W PORTC=data; delay(1); PORTF|=BIT(2);// E delay(1); PORTF&=~BIT(2); delay(5); } void init_1602(void) { DDRC=0xFF; DDRF|=BIT(0)|BIT(2)|BIT(3); PORTF&=~BIT(2); write_com_1602(0x38); write_com_1602(0x01); write_com_1602(0x0c); write_com_1602(0x06); write_com_1602(0x80); } /******************************************************************** * 名称 : display() * 功能 : 4位数码管的显示函数 * 输入 : 显示值,最大值为9999 * 输出 : 无 ***********************************************************************/ void display(uint a) { ge=a%10; shi=(a/10)%10; bai=(a/100)%10; qian=(a/1000)%10; PORTA=~table_duan[qian]; PORTB=table_wei[0]; delay(1); PORTA=~table_duan[bai]; PORTB=table_wei[1]; delay(1); PORTA=~table_duan[shi]; PORTB=table_wei[2]; delay(1); PORTA=~table_duan[ge]; PORTB=table_wei[3]; delay(1); } /******************************************************************** * 名称 : delay() * 功能 : 8M晶振时延时1ms * 输入 : 时间值 * 输出 : 无 ***********************************************************************/ void delay(uint ms) { uint x,y; for(x=0;x
/
本文档为【TCS230颜色识别传感器的AVRmega128驱动程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索