练手小项目:51单片机控制的智能台灯设计(自动感应调光) 电路图,测试图,源代码全技术资料

2023-10-26

功能及概述
本系统组成如图一所示,主要由三部分组成:

  1. 传感器及信号处理部分:检测人体辐射红外信号及光强信号经过处理后变成可处理的数字信号
  2. 以80C51组成的中央处理单元:处理信号并发出控制命令
  3. 提醒电路及灯光控制电路 :给出提醒信号并根据80C51给出的命令控制灯光
    整个系统是以80C51控制下工作的。其工作过程为:当环境光比较强时,光敏电阻阻值比较小,信号处理电路检测到低电平信号,禁止热释电红外传感器工作,省去了80C51处理过程。当环境光比较弱时,光敏电阻阻值变大,信号处理电路接收到高电平,从而启动热释电红外传感器工作。热释电红外传感器1探测比较远的距离,当人体进入到传感器1的控测范围内且光强较弱时,信号检测电路处理信号,并向单片机发送一个中断,80C51启动灯光控制电路,使灯慢慢变亮。当环境光比校弱时,且人体过于靠近桌面,热释电红外传感器2检测到信号,同时了在热释电红外传感器1的控测范围内,信号处理电路同时向80C51发送信号,80C51处理信号根据优先级顺序,屏蔽掉热释电红外传感器1的信号,启动延时电路,发出警报使人离开,若在设定的时间内未离开桌面,则启动灯光控制电路,使灯慢慢熄灭。当人体离开热释电红外传感器2的控测范围且在热释电红外传感器1的控测范围内时,灯光又慢慢变亮。

设计资料
在这里插入图片描述
在这里插入图片描述
电路原理图
在这里插入图片描述
三、测试结果:
本系统的主要设计思想来源于生活。台灯是一般家庭的生活必需品,但由于经常忘记关灯而造成巨大的能源浪费。全球这么多台灯,估算一下,消耗能源可观。另一个是作为一个必需品,当然要使生活变得更方便,省去了黑暗中开灯的麻烦,并且可以纠正坐姿。本系统在实验室进行了实物实验。热释电红外探测器1的距离是4m左右(距离可调),主要是因为般来说是门离书桌的距离;以便黑暗中时人一到门口则启动,省去了开灯的麻烦,用户可以根据自己的实际情况进行距离调节。热释电红外探测器1的距离是10cm左右(距离可调),主要考虑是当学习时,有时坐姿不正,引起身体离桌面太近,容易引起近视,此时台灯发出警告,提醒注意,若在设定的时间内未离开,则强制熄灭。有时人学习累了,趴在桌子上睡觉,而忘了关灯,这时系统就会检测到,从而启动延时程序,一段时间过后,台灯就会自动熄灭。
本系统的主要技术难点在于对人体红外信号的采集及处理。由于采用的是热释电红外传感器,当人体进入其感应范围时,传感器就会产生几mV信号,然后通过以BISS0001为中心的信号处理电路,对信号进行二次放大,并滤波,以防止外界的信号产生干扰。信号经过BISS0001后从而转化为数字信号输出,便于用单片机进处理。
本系统制作的主要设计源泉来源于生活,因此创新之处也在于处理生活中一些比较常见的问题。以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的。当房间亮度不够时,且有人在附近时,台灯便会自动点亮,省去了黑暗中摸开关的麻烦;当学习时由于靠桌面太近,造成坐姿不正,系统就会提示,以纠正坐姿,防止近视;当学习太累了时,趴在桌子上睡会儿时,台灯就会自动熄灭;当无人在时,系统也会使台灯自动熄灭,以达到节省能源的目的。除了硬件部分采用防干扰技术外,在软件中也采用了防干扰技术,当中断0产生时,并不立即执行,而是对其进行延时,防止由于不小心而进入到探测器2的范围内,以免产生误判。
虽然本系统以达到了使生活方便的目的,但是电路还是不够简单。因为当有多个热释电红外传感器时,就需要相应的信号检测电路。改进之处在于用一个信号处理电路同时控制多个传感器。还有一个不足之处在台灯开启时,产生的光强容易干扰光敏电阻对环境光强的判别,引起误判,现在的处理方法是传感器部分与控制部分单独分开放置。

设计感想:
本系统的设计思想来源于生活,所以所具有的功能也是为生活的方便而设置的。因此就产生了制作智能台灯的想法。首先在与老师的商讨下,对项目进行了认证,确定了项目的可行性,列出了项目的主要难点及可能出现的问题,确定了以后的制作重点。接下来进行构思,列出大体的框架图。然后根据框架图用PROTEL画出电路原理图。
在对电路原理图进行了严谨的认证后,便开始了焊接电路。由于主要对象是人,因此采用热释电红外传感器,此传感器是专门用于接收人体产生的10um左右的信号,相应的利用BISS0001处理其所产生的信号并转化为可处理的数字信号。在焊接的过程中发现若用到两个光敏电阻,则可能使单片机产生误判。因此将两个光敏电阻合到一块,不仅简化了电路,还提高了系统的稳定性。当信号检测及处理部分完成后,便开始试检,以确定电路焊接正确与否。在对电路进行调试的过程中,必须排除外界的干扰,尤其是附近热源的红外线干扰。首先将BISS0001设置成不可重复触发方式,比较长延迟时间,以便得到稳定的输出信号,并把接收光电池的引脚接成高电平,使BISS0001认为一直处于黑暗之中,便于观测。在运行时,当人远离时,BISS0001输出低电平,符合要求;但是在人靠近后信号出现不规则的变化。利用示波器对BISS0001的各个管脚进行测量,发现信来源的主要不稳定因于传感器,因此,在目前没有更好的更换下,只好采用目前的热释电传感器。
接下来做的是数字电路部分,主要80C51、74LS138、LM324、DAC0832组成。数字电路部分比较简单,焊接完成后,编写一个新程序,对各个端口进行扫描,从而显示数字电路是可行的。
在对电路部分进行了初步的检测后,解决了比较主要的问题;因此依据硬件编写相应的程序,经过KEIL软件仿真后,语法上无错误,各个端口的数据正是所需要的,最后是将软件烧到单片机中,然后运行整个系统。
通过本次实验,熟悉了电路的开发和制作及论文的编著写。在实验中也遇不少难题,但通过各种方法进行了解决。

程序参考源代码(部分)

ORG 0000H
AJMP MAIN
ORG 0003H
AJMP DET1 ;远探测器
ORG 0013H
AJMP DET0 ;近探测器

ORG 0050H
MAIN: MOV P0, #00000001B ;置初始值DET0,DET1可重复触发,灯灭
MOV TMOD, #00000010B ;方式2,8位自动重装计数器
MOV TCON, #00010000B ;开启计数器T0
MOV IE, #10000111B ;开启所有中断
SJMP $
;灯慢慢变亮
DET1: MOV P0, #00000001B
CALL TIME0 ;灯亮度延时10ms
MOV P0, #00000011B
CALL TIME0
MOV P0, #00000101B
CALL TIME0
MOV P0, #00000111B
CALL TIME0
MOV P0, #00001001B
CALL TIME0
MOV P0, #00001011B
CALL TIME0
MOV P0, #00001101B
CALL TIME0
MOV P0, #00001111B
CALL TIME1
RETI
;灯慢慢熄灭
DET0: CALL TIME1 ;延时1分钟
MOV TCON, A
ANL A, #1
JZ LOOP
MOV P0, #00001111B
CALL TIME0
MOV P0, #00001101B
CALL TIME0
MOV P0, #00001011B
CALL TIME0
MOV P0, #00001001B
CALL TIME0
MOV P0, #00000111B
CALL TIME0
MOV P0, #00000101B
CALL TIME0
MOV P0, #00000011B
CALL TIME0
MOV P0, #00000001B
RETI
LOOP: ret
;延时10ms
TIME0: SETB TR0
MOV R0, #250
MOV R1, #20
D_1: DJNZ R0, D_1
MOV R0, #250
DJNZ R1, D_1
CLR TR0
RET
;延时1分钟
TIME1: SETB TR0
MOV R0, #250
MOV R1, #200
MOV R2, #60

鉴于篇幅限制,只有部分代码,需要完整代码请自行下载

最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,
如果需要 完整代码或设计文件,请在下方留言或者私信我,看到后会第一时间回复。

谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

练手小项目:51单片机控制的智能台灯设计(自动感应调光) 电路图,测试图,源代码全技术资料 的相关文章

  • 数据库原理期末考试题(经典题型)

    一 单选题 题数 4 共 20 0 分 1 在数据库的三级模式结构中 描述数据库中数据的全局逻辑结构和特征的是 A 外模式 B 内模式 C 存储模式 D 模式 我的答案 D 2 公司中有多个部门和多名职员 每个职员只能属于一个部门 一个部门
  • 必须收藏的python兼职网站大全

    当下python需求量还是挺大的 对于想要做兼职的程序员还是挺友好的 起码不用愁找不到 目前来看 其兼职方向大致有三 开发 爬虫 数据分析 就开发来说 目前python的轮子在Github上一抓一大把 开发成本和开发周期相比于其他语言会更低

随机推荐

  • 【Java】自动拆箱与自动装箱

    自动装箱 自动拆箱是 JDK1 5 提供的功能 自动装箱是把一个基本类型的数据直接赋值给对应的包装类型 自动拆箱是把一个包装类型的对象直接赋值给对应的基本类型 通过自动装箱 拆箱功能 可以大大简化基本类型变量和包装类对象之间的转换过程 Ja
  • MSP430F5529库函数学习——串口

    波特率计算网站 导入MSP430Ware 查看例程 原理图和中文开发手册获取 目录 GPIO setAsPeripheralModuleFunctionInputPin 和GPIO setAsPeripheralModuleFunction
  • pythonlist函数使用方法_python中的list() 函数如何用?

    如果一个地区做统计工作 汉字或者其他东西就可以用数字事先写进去 比如 01代表汉族 那么你在写民族的时候有下拉列表 你就可以打01 就会自动识别为汉族 列表的使用便于计算 查找 分析 处理数据 在python中 有内置函数list 函数用于
  • python之flask框架(一)

    python基础部分咱们基本已经掌握 前面也了解了tkinter的基本用法 这次给大家讲解一下很常见的web框架 就是这个flask框架 其实 python的web框架不仅仅是flask 还有Django Weppy Bottle等还有很多
  • shell中临时使用其他用户执行命令

    问题来源于chinaunix博客论坛 感觉比较实用 整理过来了 我在root中执行一个脚本 但是其中的一些命令或脚本必须用oracle用户来执行 bin sh oracle用户执行 su oracle bin cd xxxx xxx bin
  • 云计算基础——云服务

    目录 云服务概述 云服务简介 云服务的产生和发展 云服务产生的前提 接入云端的主要前端工具 云服务的优缺点 优点 缺点 云服务的类型 SaaS PaaS IaaS 云部署模型 云服务概述 云服务简介 云计算通过使计算分布在大量的分布式计算机
  • I18N多文件数据参数动态获取

    在我们的项目中 控制层获取信息 没有用到ResourceBundle getBundle 而是labelcode 的方式 java I18N 如果有多个配置文件 是怎么读取这些信息的 在控制层怎么读取出相对应的信息出来 参数properti
  • 从零开始学web开发之html5-h5概述

    前言 为了掌握多一门技术 于是开始了学习前端技术的脚步 虽然安卓还是没有深入地学习一些比较高端的知识 比如view绘制原理 事件分发机制 属性动画的绘制 没有深入地研究一些流行框架 最遗憾的是没有将rxjava应用到自己的工作中 更加没有学
  • 元宇宙通证-序一:“元宇宙”和“后人类社会”

    序一 元宇宙 和 后人类社会 一 1992年 尼尔 斯蒂芬森的科幻小说 雪崩 促办 好评如潮 雪崩 描述的是脱胎于现实世界的一代互联网人对两个平行世界的感知和认识 但是 不论是做作 还是书评者 都没预见到在30年之后 此书提出的 元宇宙 M
  • 【微服务部署】四、Jenkins一键打包部署NodeJS(Vue)前端项目步骤详解

    本文介绍使用Jenkins一键将NodeJS Vue 前端项目打包并上传到生产环境服务器 这里使用的是直接打包静态页面 发送到远程服务器Nginx配置目录的方式 首先确保服务器环境配置好 安装Nginx 运行目录 日志存放目录等 一 服务器
  • Flutter GetX 状态管理,路由管理,智能依赖注入

    直接上网址 GetX 关于GetX GetX 是 Flutter 上的一个轻量且强大的解决方案 高性能的状态管理 智能的依赖注入和便捷的路由管理 GetX 有3个基本原则 性能 GetX 专注于性能和最小资源消耗 GetX 打包后的apk占
  • java 工具篇(MySQL数据库工具) 数据库实体创建

    第一步 生成工具源代码 package com mysql util import java io File import java io FileWriter import java io IOException import java
  • Linux内核开发三:多进程编程

    1 什么是进程 我们可以通俗地把进程看作是正在运行着的二进制程序 占用内存空间消耗系统资源 例如使用 vim 命令编辑文件内容就会生成一个进程 进程是 OS 资源分配的基本单位 每个进程在操作系统中都执行着特定的任务 如网络服务 etc i
  • shell拷贝mongodb数据库

    拷贝mongodb数据库 mongodump h 服务器IP port 端口 u 用户名 p 密码 d 数据库 o 导出路径 h MongoDB 所在服务器地址 例如 127 0 0 1 当然也可以指定端口号 127 0 0 1 27017
  • VS2019 无法登录 许可证已过期 无法下载许可证

    许可证已过期 点击检查更新的许可证 报出错误 我们无法下载许可证 请检查你的网络连接或代理设置 解决方法 其实问题就在于嵌入式web浏览器的问题 选择账户选项 账户 登录选项 将嵌入式web浏览器改为系统web浏览器 随后就能登录了
  • Android底层驱动开发记录:01_JNI

    最近项目中需要用到了Android底层的开发 正好疫情居家所以又把韦老师的老教程第四期Android教程翻出来学习学习 手边也没有合适的板子 找了一块AIO 3288C的板子接了一块HDMI的屏来用 本来之前一直做单片机的 因此学起来还比较
  • 宝塔漏洞复现

    声明 好好学习 天天向上 漏洞描述 宝塔面板是一款服务器管理软件 支持windows和linux系统 可以通过Web端轻松管理服务器 提升运维效率 例如 创建管理网站 FTP 数据库 拥有可视化文件管理器 可视化软件管理器 可视化CPU 内
  • QT中的信号和槽函数

    一 信号和槽机制 1 概念 信号和槽是Qt中自行定义的一种通信机制 实现对象之间的交互 当某个对象发生改变时将会发送信号 该信号可以被其它对象接收 接收以后将执行一个指定的成员函数 槽函数 图解 2 定义 1 包含信号或槽的类必须是QObj
  • GET请求与POST请求的区别

    1 安全性 GET请求通过拼接url传递参数 会在url地址栏显示 相对不安全 POST请求通过body体传递参数 不会在url地址栏中显示 相对安全 2 传输数据大小 GET请求对传输的数据大小有限制 最多2K POST请求对传输的数据大
  • 练手小项目:51单片机控制的智能台灯设计(自动感应调光) 电路图,测试图,源代码全技术资料

    功能及概述 本系统组成如图一所示 主要由三部分组成 传感器及信号处理部分 检测人体辐射红外信号及光强信号经过处理后变成可处理的数字信号 以80C51组成的中央处理单元 处理信号并发出控制命令 提醒电路及灯光控制电路 给出提醒信号并根据80C