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  =0XFF;  //关闭流水灯xp74HC595(0X40);   //打开流水灯573锁存器的使能端xp74HC595(0X00);   //锁存关掉流水灯的数据GK=1;  //打开光敏控制孔,使其处于变暗状态while(1){if(GK==0)    //因为光线偏暗就输出低电平{delay(10);if(GK==0){xp74HC595(0X08);    //控制打开继电器}}else{xp74HC595(0X00);    //光线偏亮,控制关闭继电器}}}

(7).作业:

作业代码:

#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 key1 = P3 ^ 7;       //独立按键接口
sbit key2 = P3 ^ 6;
sbit key3 = P3 ^ 5;
sbit key4 = P3 ^ 4;sbit JDQ = P2 ^ 0;
sbit SHIFT_CLOCK_595 = P1 ^ 4;    //74HC595
sbit data_A_595 = P1 ^ 0;
sbit LATCH_CLOCK_595 = P2 ^ 3;sbit duanxuan = P2 ^ 5;    //段选控制数字显示
sbit weixuan = P2 ^ 6;     //位选控制有几个或者第几个显示数字//自加变量,用来测试编码表
uint8 code zifu[19] = { 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X89,0X7F,0XBF };
uint8  code wei_test[8] = { 0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80 };//位选数组void delay(uint16 x_ms)               //延时毫秒{uint16 i,j;for(i=x_ms;i>0;i--)for(j=114;j>0;j--);}void Disp()   //数码管显示OFF{duanxuan=0;   //首先归零weixuan=0;P0= zifu[0];   //控制输入 , 自加变量,测试编码表duanxuan=1;duanxuan=0;  //以上是我们锁存器芯片段选的控制duanxuan=0;   //再次归零weixuan=0;P0=   0X20;   //位选输入weixuan=1;    //位选控制weixuan=0;    //位选锁存delay(1);     //通过计算得出,视觉暂留的时间为5.2毫秒   、/*****************************************************/duanxuan=0;   //首先归零weixuan=0;P0= zifu[15];   //控制输入 , 自加变量,测试编码表duanxuan=1;duanxuan=0;  //以上是我们锁存器芯片段选的控制duanxuan=0;   //再次归零weixuan=0;P0=   0X40;   //位选输入weixuan=1;    //位选控制weixuan=0;    //位选锁存delay(1);     //通过计算得出,视觉暂留的时间为5.2毫秒   、/*****************************************************/duanxuan=0;   //首先归零weixuan=0;P0= zifu[15];   //控制输入 , 自加变量,测试编码表duanxuan=1;duanxuan=0;  //以上是我们锁存器芯片段选的控制duanxuan=0;   //再次归零weixuan=0;P0=   0X80;   //位选输入weixuan=1;    //位选控制weixuan=0;    //位选锁存delay(1);     //通过计算得出,视觉暂留的时间为5.2毫秒   、/*****************************************************/}void Disp2()     //控制数码管显示ON{duanxuan=0;   //首先归零weixuan=0;P0= zifu[0];   //控制输入 , 自加变量,测试编码表duanxuan=1;duanxuan=0;  //以上是我们锁存器芯片段选的控制duanxuan=0;   //再次归零weixuan=0;P0=   0X40;   //位选输入weixuan=1;    //位选控制weixuan=0;    //位选锁存delay(1);     //通过计算得出,视觉暂留的时间为5.2毫秒   、/*****************************************************/duanxuan=0;   //首先归零weixuan=0;P0= zifu[16];   //控制输入 , 自加变量,测试编码表duanxuan=1;duanxuan=0;  //以上是我们锁存器芯片段选的控制duanxuan=0;   //再次归零weixuan=0;P0=   0X80;   //位选输入weixuan=1;    //位选控制weixuan=0;    //位选锁存delay(1);     //通过计算得出,视觉暂留的时间为5.2毫秒   、/*****************************************************/}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 sunshine()    //光控电路{if(GK==0)    //因为光线偏暗就输出低电平{delay(10);if(GK==0){xp74HC595(0X08);    //控制打开继电器Disp2();       //显示OFF}}else{xp74HC595(0X00);    //光线偏亮,控制关闭继电器Disp();}}void mos1(){sunshine();   //调用sunshine函数写出光控电路}uint16 num;void mos2()      //人工控制电路{num=0;        //初始化key2按键按下次数if(num%2==0)    //按下key2键次数为偶数{if(key2==0)   //检测到按键按下{xp74HC595(0X04);  //继电器闭合GK ==1;     //灯亮Disp();    //显示ONdelay(10);   //按键消抖while(key2==0)  //松手检测{//空:因为保持原状即可,无需再进行操作num++;}}           }else{if(key2==0){xp74HC595(0X00);  //继电器断开GK  ==0;    //灯灭Disp2();    //显示OFFdelay(10);while(key2==0)   //松手检测{//空:因为保持原状即可,无需再进行操作num++;}}}}        void main(void){P1  =0XFF;  //关闭流水灯xp74HC595(0X40);   //打开流水灯573锁存器的使能端xp74HC595(0X00);   //锁存关掉流水灯的数据key1  =1;   //初始化按键key2  =1;i=0;     //用i来控制按下key1的次数,用来判断模式1or2   GK=1;  //打开光敏控制孔,使其处于变暗状态while(1){if(i%2==0){i++;mos2();    //如果为偶数,则是模式2}else{i++;mos1();    //为奇数,则是模式1}  }}

51单片机~光敏传感器,比较器(模电,运放,放大原理)原理芯片相关推荐

  1. 模电——运放输入/输出接小电阻

    输出端接小电阻: 运放输出端加一小电阻的作用? 答:运放输出短路的保护方法很简单,只要用一个小电阻R串接于运放的输出端,如图所示,就能防止输出短路失效.如果这个电阻接到反馈环路内,如图中虚线所示,除输 ...

  2. 电压放大倍数公式运放_模电的半壁江山——运算放大器的原理和应用

    模电的半壁江山--运算放大器的原理和应用 大家学习电子都会接触运算放大器,常常听到虚短虚断一说.虚短虚断是解开负反馈运放电路的核心方法,具体就要从运放的原理开始说起了. LM741原理图 拿LM741 ...

  3. 运放放大倍数计算公式_模电的半壁江山——运算放大器的原理和应用

    模电的半壁江山--运算放大器的原理和应用 大家学习电子都会接触运算放大器,常常听到虚短虚断一说.虚短虚断是解开负反馈运放电路的核心方法,具体就要从运放的原理开始说起了. LM741原理图 拿LM741 ...

  4. 基于51单片机霍尔传感器测速(仿真+源程序)

    资料编号:196  下面是该资料仿真演示视频: 196-基于51单片机霍尔传感器测速(仿真+源程序+全套资料) 功能简介: 51单片机计数测速转速测量,在仿真中等价于测量外部脉冲频率:如果修改输入脉冲 ...

  5. 【直达本质讲运放】运放的“第一原理”式定量分析法

    数电/模电那两本书我也完整地翻过一.二遍(诶我为什么用"也"),下面就是来点不复杂的(如果是那还不如直接把书的内容粘过来呢). 对于运放的定量分析,"虚短虚断" ...

  6. (十六)【模电】(放大电路中的反馈)反馈的概念及判断

    [模电专栏] 文章目录 A 反馈的概念及判断 A.a 反馈的基本概念 A.b 反馈的判断 A.c 交流负反馈的四种阻态 本章基本要求 会判:判断电路中有无反馈及反馈的性质. 会算:估算深度负反馈条件下 ...

  7. 【单片机笔记】K型热电偶单运放放大,单片机ADC采集电路

    **********************************************************以下内容来自百科********************************** ...

  8. 童诗白模电-集成运算放大电路

    集成运放是什么 概述 半导体单晶硅为芯片,把BJT,FET,电容电阻等元件及连线组成的完整电路制作在一起,使其有特定功能,如比例,求和,求差,微分积分,相乘.是有源器件.高性能低价位,广泛用于模拟信号 ...

  9. hx711c语言程序,51单片机HX711传感器电子秤设计(原理图、程序源码、BOM等)

    #include                  //调用单片机头文件 #define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255 #def ...

最新文章

  1. 【剑指offer-Java版】18树的子结构
  2. 【javascript】数据结构-链表
  3. MQ的引言|不同MQ的特点|RabbitMQ安装
  4. 递归算法介绍及Java应用实战
  5. 图像目标分割_5 DeepLab V2 V3 V3+
  6. 年薪不到 25.2 万退学费,廖雪峰的“大数据高级开发”课程招生
  7. Ubuntu安装aira2及开机启动配置
  8. 两个数相乘积一定比每个因数都大_两个多位数相乘,积一定比每一个因数都大。[ ]...
  9. 采集post传输的数据
  10. BGP(2):BGP 的报文格式
  11. 526个儿童游戏APP应用音效游戏声音集合音效素材 Kids Game Sound Effects
  12. 微信小程序如何在手机预览调试
  13. PS纯色图标更换颜色
  14. 记一次ASP绕过WTS-WAF
  15. Automated Phrase
  16. 【人工智能】AI 公司:DeepMind 公司传
  17. 企业邮箱和个人邮箱之间有什么区别?
  18. iOS 后台运行一段时间(不是地图,音乐类型APP)
  19. Mybatis——自定义映射ResultMap
  20. linux上搭建pppoe服务器,linux(centos)上搭建pppoe服务器

热门文章

  1. 阿里妈妈展示广告粗排:面向链路一致性优化的端到端序学习模型
  2. 从一座瑞典风机的倒塌看VDI2230用于螺栓连接精确计算的重要性
  3. 六、鼎捷T100应收账款之应收帐款核销
  4. 树莓派基础实验33:TCRT5000红外循迹传感器实验
  5. 解决一个MySQL登录报ERROR 2002 (HY000)错的问题
  6. 基于python的随机森林回归实现_从零实现回归随机森林
  7. PB反编译(Powerbuilder反编译)工具的优缺点对比总结
  8. 变量(什么是变量/变量的声明/命名的规范)
  9. 计算机应用基础十分钟说课,计算机应用基础说课稿.ppt
  10. Fences4 桌面整理好帮手 让你的桌面整洁美观