智能家居-光敏传感器_第1页
智能家居-光敏传感器_第2页
智能家居-光敏传感器_第3页
智能家居-光敏传感器_第4页
智能家居-光敏传感器_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

光敏传感器邮电学院计算机系纪明明任务一光敏传感器认知认知光敏传感器

光敏传感器是利用光敏元件将光信号转换为电信号(光电效应)的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。光敏电阻

基于半导体光电效应工作的。光敏电阻为无极性电阻元件。使用时可以加直流电压,也可以加交流电压。光敏电阻的工作原理:光照时,电阻很小;无光照时,电阻很大。光照越强,电阻越小;光照停止,电阻又恢复原值。光电效应

在光的照射下,某些物质内部的电子会被光子激发出来而形成电流,即光生电。光敏传感器种类

光敏传感器的种类繁多,主要有:光电管、光电倍增管、光敏电阻、光敏三极管、光电耦合器、太阳能电池、红外线传感器、紫外线传感器、光纤式光电传感器、色彩传感器、CCD和CMOS图像传感器等。光敏传感器工作原理

光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化。

光敏元件应用范围

光敏传感器是目前产量最多、应用最广的传感器之一,它在自动控制和非电量电测技术中占有非常重要的地位。光敏传感器的种类繁多,主要有:光电管、光电倍增管、光敏电阻、光敏三极管、光电耦合器、太阳能电池、红外线传感器、紫外线传感器、光纤式光电传感器、色彩传感器、CCD和CMOS图像传感器等。使用IAR开发,利用CC2530开发板,编写程序实现光照强度的采集。任务二:光敏传感器的信息采集连接关系代码文件/*包含头文件*//********************************************************************/#include"ioCC2530.h"//引用头文件,包含对CC2530的寄存器、中断向量等的定义#include<string.h>/********************************************************************///定义led灯端口#defineLED1P1_0//P1_0定义为P1.0代码文件typedefunsignedshortuint16;typedefunsignedlonguint32;typedefunsignedintuint;unsignedintflag,counter=0;//统计溢出次数chars[6];//定义一个数组大小为6/******************************************************************/代码文件voidInitLED(){P1SEL&=~0X01;//P1.0设置为普通的IO口11111110P1DIR|=0x01;/*配置P1.0的方向为输出*/LED1=0;}/*****************************************************/voidhal_adc_Init(void){ APCFG|=1;P0SEL|=(1<<(0)); P0DIR&=~(1<<(0));

}代码文件/*******************************************************************************名称get_adc*功能读取A/D值*入口参数无*出口参数16位电压值,分辨率为10mV,如0x0102表示2.58V*****************************************************************************/代码文件uint16get_adc(void){uint32value;hal_adc_Init();//ADC初始化ADCIF=0;//清ADC中断标志//采用基准电压avdd5:3.3V,通道0,启动AD转化ADCCON3=(0x80|0x10|0x00);while(!ADCIF){;//等待AD转化结束}

代码文件value=ADCH;value=value<<8;value|=ADCL;//AD值转化成电压值//0表示0V,32768表示3.3V//电压值=(value*3.3)/32768(V)value=(value*330);value=value>>15;//除以32768//返回分辨率为0.01V的电压值return(uint16)value;}代码文件/**************串口通信初始化*************************************/voidinitUART0(void){PERCFG=0x00; //位置1P0口P0SEL=0x3c; /*UART0波特率设置*//*波特率:38400*/

代码文件U0BAUD=59;U0GCR=10;

U0CSR|=0x80;//UART模式U0UCR|=0x80;//进行USART清除UTX0IF=0;//清零UART0TX中断标志EA=1;//使能全局中断}代码文件/**********************************************************************函数名称:inittTimer1*功能:初始化定时器T1控制状态寄存器*入口参数:无*出口参数:无*返回值:无*********************定时器初始化**************************************/代码文件voidinittTimer1(){

/*配置定时器1的16位计数器的计数频率,定时0.2S,计数10次,即2S发一次数据TimerTick分频定时器1的计数频率T1CC0的值时长32MHz/128250KHz500000.2s*/

CLKCONCMD&=0x80;//时钟速度设置为32MHzT1CTL=0x0E;//配置128分频,模比较计数工作模式,并开始启动T1CCTL0|=0x04;//设定timer1通道0比较模式

代码文件T1CC0L=50000&0xFF;//把50000的低8位写入T1CC0LT1CC0H=((50000&0xFF00)>>8);//把50000的高8位写入T1CC0H

T1IF=0;//清除timer1中断标志(同IRCON&=~0x02)T1STAT&=~0x01;//清除通道0中断标志

TIMIF&=~0x40;//不产生定时器1的溢出中断//定时器1的通道0的中断使能T1CCTL0.IM默认使能IEN1|=0x02;//使能定时器1的中断EA=1;//使能全局中断}代码文件T1CC0L=50000&0xFF;//把50000的低8位写入T1CC0LT1CC0H=((50000&0xFF00)>>8);//把50000的高8位写入T1CC0H

T1IF=0;//清除timer1中断标志(同IRCON&=~0x02)T1STAT&=~0x01;//清除通道0中断标志

TIMIF&=~0x40;//不产生定时器1的溢出中断//定时器1的通道0的中断使能T1CCTL0.IM默认使能IEN1|=0x02;//使能定时器1的中断EA=1;//使能全局中断}代码文件/**********************************************************************函数名称:UART0SendByte*功能:UART0发送一个字节*入口参数:c*出口参数:无*返回值:无********************************************************************/代码文件voidUART0SendString(char*Data,intlen){uinti;for(i=0;i<len;i++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}}代码文件/**************获取电压值并处理数据*************************************/voidGet_val(){uint16sensor_val;sensor_val=get_adc();s[0]=sensor_val/100+'0';s[1]='.';s[2]=sensor_val/10%10+'0';s[3]=sensor_val%10+'0';s[4]='V';s[5]='\n';}代码文件/**********************************************************************功能:定时器T1中断服务子程序********************************************************************/#pragmavector=T1_VECTOR//中断服务子程序__interruptvoidT1_ISR(void){EA=0;//禁止全局中断counter++;if(counter>=10)//每0.2S发一次字符串{counter=0;//清标志位

代码文件LED1=!LED1;//指示灯flag=1;}T1STAT&=~0x01;//清除通道0中断标志EA=1;//使能全局中断}/**********************************************************************函数名称:main*功能:main函数入口*入口参数:无*出口参数:无*返回值:无

代码文件********************************************************************/voidmain(void){InitLED();inittTimer1();//初始化Timer1in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论