用发光二极管和光敏电阻怎样组成一组光电开关啊,能在什么环境下使用啊?急求使用avr电路与程序,谢谢

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 21:31:12
用发光二极管和光敏电阻怎样组成一组光电开关啊,能在什么环境下使用啊?急求使用avr电路与程序,谢谢

用发光二极管和光敏电阻怎样组成一组光电开关啊,能在什么环境下使用啊?急求使用avr电路与程序,谢谢
用发光二极管和光敏电阻怎样组成一组光电开关啊,能在什么环境下使用啊?急求使用avr电路与程序,谢谢

用发光二极管和光敏电阻怎样组成一组光电开关啊,能在什么环境下使用啊?急求使用avr电路与程序,谢谢

常用的是将光敏电阻放在三极管基极,和另一上拉电阻分压,根据光线的强弱不同可导通和接至.如果用AVR单片机的话感觉有点点浪费,不过还是给你设计下下,用的mega8:

#include <iom8v.h>

#include <macros.h>

#define  uchar    unsigned char

#define  uint     unsigned int

//

uchar  adc_time  = 0 ;                        //定义累加时间

uchar  adc_num   = 0 ;                        //用于AD通道选择的计数

uchar  vlo_eer   = 0 ;                        //用于检测光敏电阻的电灯点

unsigned int voltage;

unsigned int voltage1;

//端口初始化

void port_init(void)

{

 PORTB = 0x00;

 DDRB  = 0xFF;

 PORTC = 0xFE;

 DDRC  = 0xFE;

 PORTD = 0x00;

 DDRD  = 0xFF;

}

// 定时器0分频: 8

// 定时初值   : 100uSec

// 真实定时值 : 100.000uSec (0.0%)

void timer0_init(void)

{

 TCCR0  = 0x00;//停止定时器

 TCNT0  = 0x9C;//初始值

 //OCR0   = 0x9B;//匹配值

 TIMSK |= 0x01;//中断允许

 TCCR0  = 0x02;//启动定时器

}

#pragma interrupt_handler timer0_ovf_isr:10

void timer0_ovf_isr(void)

   TCNT0 = 0x9C;                                  //重装100us定时初值

   adc_time++; 

   if(adc_time==10)                               //控制AD转换的速度

   {  

      adc_time=0;                                 //清零AD计数时间

  ADCSRA=0xEE;                                //打开AD使能

  ADMUX = ADC0 ;                              //选择ADC0通道

  

   else

   {

      ADCSRA= 0x00;                               //关闭AD转换,这样做的目的是防止

   }                                              //AD转换过频而导致系统堵塞

}

// ADC初始化

// 转换时间  : 52uS

void adc_init(void)

{

 //adc转换初始化

 ADCSRA= 0x00;//禁止AD转换

 SFIOR |= 0x00;

 ACSR= 0x80; //禁止模拟比较器

}

unsigned int adc_calc(void)

{

   //计算实际电压

   unsigned long value=0;

   unsigned int voltage1=0;          //电压单位为(mV)

   value=ADCL;                 //首先读低位

   value|=(int)ADCH << 8;            //然后读高位

   voltage1=(value*5000)/1023;

   return voltage1;

}    

#pragma interrupt_handler adc_isr:12

void adc_isr(void)

{

 //转换完成后中断处理,对电压值进行区间划分

voltage=adc_calc();voltage=adc_calc(); 

if(voltage<XXX){vol_eer=0;}    //欠压

if(vol_eer>XXX){vol_eer=1;}    //过压

        //其中XXX是你自己测试的电压值,什么时候亮LED就看他了.

        if(vlo_eer==1) LED1_ON;

        else  LED1_OF;

                                  

}

//初始化服务函数

void init_devices(void)

{

 CLI();                //禁止中断

 port_init();

 timer0_init();

 adc_init();

 MCUCR  = 0x00;

 MCUCSR = 0x80;//禁止JTAG

 GICR   = 0x00;

 SEI();                //开中断

}

void main(void)

{

   init_devices();

   while(1)

   {

      ;                

   }

}

用发光二极管和光敏电阻怎样组成一组光电开关啊,能在什么环境下使用啊?急求使用avr电路与程序,谢谢 光敏电阻,三极管,电阻,发光二极管怎样组成一个光控开关电路帮忙画出原理图 怎样区别光敏二级管和发光二极管? 发光二极管和光敏电阻作成的元件用高亮度的发光二极管和光敏电阻制作的元器件,在应用电路中为什么要在发光二极管的负极连接一只电阻再接GND. 光敏电阻是一种光电传感器吗 光敏电阻和光敏三极管是怎样工作的? 发光二极管能否引起光敏电阻的变化 光敏三极管,光敏二极管和光敏电阻的问题?光敏三极管,光敏二极管和光敏电阻三者可以相互替换用吗? 小柯发现许多宾馆都安装了光电烟雾探测器,他自己设计了一个“火灾报警器”.该报警器的电路由“控制电路”和“工作电路”组成,其中“控制电路”由光敏电阻R、电磁铁(线圈电阻R0=15Ω 如何用光敏电阻控制较大工作电流的LED的光强不是用LED控制LED,是通过外部光照到光敏电阻,控制发光二极管的亮和暗 光电开关元件.两种零件的实际使用意义.光敏电阻5800B 和光敏电阻5528手上有5MM 光敏电阻5800B 和光敏电阻5528 怎么我上网买时候 他说 是什么光敏电阻 光电检测元件啊? 光敏电阻 不是是电阻 光控工作原理工作原理,并且简介发光二极管,R1和光敏电阻在此中的作用.和光敏电阻和R1的改变如何影响电路工作. 怎样测量光敏电阻频率特性,光敏电阻频率特性的定义和计算公式是什么. 为什么光敏电阻的光电特性呈非线性 这样光敏电阻能否正常工作?现在市面上的光敏电阻有没有能够感应,一个用3V直流电的发光二极管的光亮 光敏电阻对发光二极管发出的光有反应吗 光敏二极管和光敏电阻的区别 光敏电阻和光敏二极管怎么区别