51单片机之光敏传感器,比较器原理芯片
(一)光敏传感器说明:
(二)电压比较器功能:
(二)输出模式:
由于比较器的输出电压在0~36V,所以要是把Vout接在比较器的VCC上的话,Vout的电压便也输出 0~ 36V,导致比较器无法和芯片沟通传递数据,所以要在Vout上加一个开漏输出的上拉电阻,使其输出5V电压,方便和其他电器和芯片沟通。
(2).强推挽输出:(当输出为高(低)电平时,还有驱动能力,因为驱动电流比较大)
既可以输出高电平也可以输出低电平,当输入为1时,下方晶体管(当三极管来看待),导通右边Vout输出为低电平,此时有灌电流。
当输如=入为0时,下方晶体管不导通,上方导通VDD电压下来,使Vout输出为高电平。
(3).难点:参数
共模输入电压:
就是限制比较器的V+和V-的电压范围,以此来使Vout的输出在一个正常范围内。
我们单片机上是VCC-1.5V或者2V。
所以我们输入的两个电压必须在0~3.5V(VCC-1.5V=3.5V)。
(3).输入失调电压:(输入失调电流是由输入失调电压导致的)
计算:(放大倍数)
(4).电路分析:(手写是电路原理)
GM-OUT就是Vout,U14就是LM393,J15就是电路板上的排针,只要把5和6连起来就可以将光敏电阻接到P1.7上,此时将KS-OUT,ZS-OUT,GM-out接到指示灯上,即可完成光敏控制电路。
(5)家用安全电压知识:
(6)代码:
光控电路代码:继电器控制光控电路:
#include"reg52.h"
typedef signed char int8;
typedef signed int int16;
typedef signed long int32;
typedef unsigned char uint8; //字符型
typedef unsigned int uint16;
typedef unsigned long uint32;
sbit GK =P1^7;
sbit JDQ = P2 ^ 0;
sbit SHIFT_CLOCK_595 = P1 ^ 4; //74HC595
sbit data_A_595 = P1 ^ 0;
sbit LATCH_CLOCK_595 = P2 ^ 3;
void delay(uint16 x_ms) //延时毫秒
{
uint16 i,j;
for(i=x_ms;i>0;i--)
for(j=114;j>0;j--);
}
void xp74HC595(uint16 dat)
{
uint16 i;
for (i = 0; i < 8; i++)
{
data_A_595 = (dat << i) & 0X80;
SHIFT_CLOCK_595 = 0; //时钟上升沿
SHIFT_CLOCK_595 = 1;
}
LATCH_CLOCK_595 = 0; //给锁存器脉冲,上升沿
LATCH_CLOCK_595 = 1;
}
int16 i;
void main(void)
{
P1