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

相关文章

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Rust 智能指针的使用详解

《Rust智能指针的使用详解》Rust智能指针是内存管理核心工具,本文就来详细的介绍一下Rust智能指针(Box、Rc、RefCell、Arc、Mutex、RwLock、Weak)的原理与使用场景,... 目录一、www.chinasem.cnRust 智能指针详解1、Box<T>:堆内存分配2、Rc<T>:

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用