51单片机的pwm控制的智能台灯设计【proteus仿真+程序+报告+原理图+演示视频】

本文主要是介绍51单片机的pwm控制的智能台灯设计【proteus仿真+程序+报告+原理图+演示视频】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、主要功能 

该系统由AT89C51/STC89C52单片机+LCD1602显示模块+DS1302时间模块+光敏传感器模块+人体红外模块+按键等模块构成。适用于智能台灯、PWM调节灯光亮度等相似项目。

可实现基本功能:

1、LCD1602实时显示北京时间、环境光照强度、手动/自动模式、台灯亮度等信息;
2、DS1302采集时间数据;
3、光敏传感器(电位器模拟)采集光照强度;
4、人体红外传感器(按键模拟)采集人体靠近信息;
5、按键可设置自动/手动模式,手动模式下通过按键可以自动调节台灯亮度,自动模式下如果有人接近,则根据环境亮度,自动打开台灯并调节亮度;
6、具备自动断电功能,人离开1分钟后自动关灯;
7、具备PWM调节灯光亮度功能,亮度一共分为9档。

本项目包含仿真、代码(538行代码)、原理图、课设报告(5547字)、流程图、器件清单、常见问题汇总、proteus运行视频等内容

2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

不同亮度示意:


3、程序代码

只是放上来了部分代码,仅供参考,注释非常齐全。

/* 按键扫描 */
unsigned char key_scan(void)
{uchar keyval=0;if(KEY1 == 0)			//如果按键1按下{delay(10);	//延时10ms,去除按键抖动if(KEY1 == 0)		//再判断一次按键按下{	return 1; 		//输出键值1}	}if(KEY2 == 0)			//如果按键2按下{delay(10);	//延时10ms,去除按键抖动if(KEY2 == 0)		//再判断一次按键按下{		return 2; 		//输出键值1}	}if(KEY3 == 0)			//如果按键3按下{delay(10);	//延时10ms,去除按键抖动if(KEY3 == 0)		//再判断一次按键按下{		return 3; 		//输出键值1}	}return 0;				//如果没有按键按下,则输出0
}

4、原理图

原理图采用AD21绘制(不是嘉立创哦。

5、报告

5.5k,24页,纯手打,有详细的电路分析和代码解析


6、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)

7、演示视频

48s的演示视频,将该项目的功能都展示了一遍,如果还有不清楚的地方,欢迎后台私聊!(等我努努力出个完整的讲解视频!

8、资源获取

本项目包含的所有文件都可以在某号:今天也不想打工,回复 “51智能台灯” get!
项目纯手打,不是免费的哦,一杯奶茶的💴~
希望可以帮到你哈!

这篇关于51单片机的pwm控制的智能台灯设计【proteus仿真+程序+报告+原理图+演示视频】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131803

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

Python实现视频转换为音频的方法详解

《Python实现视频转换为音频的方法详解》这篇文章主要为大家详细Python如何将视频转换为音频并将音频文件保存到特定文件夹下,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5. 注意事项

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea