51单片机的智能台灯控制系统仿真( proteus仿真+程序+原理图+报告+讲解视频)

news/2024/10/17 15:26:46/

51单片机的红外光敏检测智能台灯控制系统仿真

  • 1.主要功能:
  • 2.仿真
  • 3. 程序代码
  • 4. 原理图
  • 5. 设计报告
  • 6. 设计资料内容清单&&下载链接

51单片机的红外光敏检测智能台灯控制系统仿真( proteus仿真+程序+原理图+报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0050

1.主要功能:

基于51单片机的红外检测光照检测智能台灯仿真设计

1、检测光照强度并显示在数码管上。

2、具备红外检测人体功能。

3、灯光控制模式分为自动模式和手动模式,自动模式下自动模式指示灯点亮。

4、自动模式下,感应到人体,LED亮度随光照强度自动变化。手动模式下,按键控制LED亮度。

5、软件PWM控制LED亮度。

需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后,数码管显示当前的光照强度32和LED灯的亮度级别6。

img

自动模式:

在自动模式下,灯光亮度等级跟随光照强度变化,光照强度越大,亮度等级越低。当光照强度最大为99时,亮度等级为0,台灯灯珠熄灭。

img

在自动模式下,灯光亮度等级跟随光照强度变化,光照强度越小,亮度等级越高。当光照强度最大为0时,亮度等级为9,台灯灯珠最亮。

img

在自动模式下,如果红外检测没检测到人体,不管光照强度大小,台灯灯珠都是熄灭状态。

img

手动模式:

手动模式下,台灯灯光亮度只受亮度切换按键影响,不受光照强度或者红外检测影响。

img

以上仿真结果均符合设计要求。

3. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

main函数

//主函数
void main()
{uchar k=0,i=0;uint j=0;adc0808_start=0;adc0808_oe=0;TMOD|=0X01;//初始化定时器TH0=0X3C;TL0=0XB0;	ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1){//显示光照P0=0XFF;smg3=1;smg2=0;smg1=0;P0=smgduan[light/10];delay(100);P0=0XFF;smg3=1;smg2=0;smg1=1;P0=smgduan[light%10];delay(100);//启停指示if(start){P0=0XFF;smg3=1;smg2=1;smg1=0;P0=0xbf;delay(100);}//显示亮度P0=0XFF;smg3=1;smg2=1;smg1=1;P0=smgduan[pwm];delay(100);if(!k1 &&(k!=1) &&(start==0))//启动{k=1;start=1;fen=set;miao=0;}if(!k2 &&(k!=2))//停止{k=2;start=0;}if(!k3 &&(k!=3))//手动,自动{k=3;mode=!mode;}if(mode==1){if(!k6 &&(k!=6))//亮度切换{k=6;if(pwm<9)pwm++;elsepwm=1;}}if(k1 && k2 && k3 && k4 && k5 && k6)k=0;//输出PWMif(mode==0)//自动模式{led=0;if((start==1)&& !ir_in){j=0;if(i<9)i++;elsei=0;if(i<pwm)out=0;elseout=1;}else{out=1;}}else//手动模式{led=1;if(start==1){if(i<9)i++;elsei=0;if(i<pwm)out=0;elseout=1;}else{out=1;}}}
}

4. 原理图

原理图使用AD绘制,可供实物参考,仿真不同于实物,经验不足不要轻易搞实物。

img

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

5. 设计报告

6174字设计报告

img

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码

3、开题报告

4、原理图

5、功能要求

6、元器件清单

7、设计报告

8、软硬件流程框图

9、讲解视频

Altium Designer 软件资料

filename.bat

KEIL软件资料

Proteus软件资料

单片机学习资料

目录清单.txt

答辩技巧

设计报告常用描述

鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

img

资料下载链接:

https://docs.qq.com/doc/DS3hUb3FHUUZQVWZp

http://www.ppmy.cn/news/1103851.html

相关文章

AI系统论文阅读:SmartMoE

提出稀疏架构是为了打破具有密集架构的DNN模型中模型大小和计算成本之间的连贯关系的——最著名的MoE。 MoE模型将传统训练模型中的layer换成了多个expert sub-networks&#xff0c;对每个输入&#xff0c;都有一层special gating network 来将其分配到最适合它的expert中&…

celery的用法--bind=True

通过将 bindTrue 设置为 app.task 装饰器的参数&#xff0c;Celery 会自动将任务实例绑定到第一个参数&#xff08;通常命名为 self&#xff09;&#xff0c;使得你可以在任务函数内部访问任务实例的属性和方法。 在 Celery 的任务函数中&#xff0c;self 参数代表任务实例本身…

Mysql树形表的两种查询方案(递归与自连接)

你有没有遇到过这样一种情况&#xff1a; 一张表就实现了一对多的关系&#xff0c;并且表中每一行数据都存在“爷爷-父亲-儿子-…”的联系&#xff0c;这也就是所谓的树形结构 对于这样的表很显然想要通过查询来实现价值绝对是不能只靠select * from table 来实现的&#xff0…

Java——》synchronized的使用

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

1分钟了解音频、语音数据和自然语言处理的关系

机器学习在日常场景中的应用 音频、语音数据和自然语言处理这三者正在不断促进人工智能技术的发展&#xff0c;人机交互也逐渐渗透进生活的每个角落。在各行各业包括零售业、银行、食品配送服务商&#xff09;的多样互动中&#xff0c;我们都能通过与某种形式的AI&#xff08;…

springboot整合log4j

1.log4j文件 <?xml version"1.0" encoding"UTF-8"?> <!--monitorInterval&#xff1a;Log4j2 自动检测修改配置文件和重新配置本身&#xff0c;设置间隔秒数--> <configuration monitorInterval"5"><!--日志级别以及优先…

CloudQuery X PolarDB:让数据库管理更简单

前言&#xff1a;8 月 15 日&#xff0c;CloudQuery 数据操作管控平台与阿里云 PolarDB 数据库管理软件&#xff0c;完成产品集成认证测试。也在以下功能上完善了用户使用 PolarDB 的体验&#xff0c;使数据库的管理更加安全高效。 支持在 CloudQuery 中创建连接&#xff0c;便…

【2023最新版】腾讯云CODING平台使用教程(Pycharm/命令:本地项目推送到CODING)

目录 一、CODING简介 网址 二、CODING使用 1. 创建项目 2. 创建代码仓库 三、PyCharm&#xff1a;本地项目推送到CODING 1. 管理远程 2. 提交 3. 推送 4. 结果 四、使用命令推送 1. 打开终端 2. 初始化 Git 仓库 3. 添加远程仓库 4. 添加文件到暂存区 5. 提交更…