单片机智能灯控制系统源程序仿真原理图与论文全套资料

目录

1、设计描述

2、仿真图

3、程序

4、资料内容

资料下载地址:单片机智能灯控制系统源程序仿真原理图与论文全套资料下载

1、设计描述

设计了一款智能控制系统。
AT89C51+LCD1602+DS1302+按键+LED组成了这样一个完整的设计。
P2.0-P2.3  4个LED等代表庭院内的4盏灯
P1.3-P1.7  5个开关,第一个代表光敏电阻传感器,后四个都是热释电红外传感器
P3.2、P3.4、P3.5、P3.6为四个按键开关,可设置万年历时间。
人性化地加入了时间和温度的LCD显示,并可以通过按键去设置时间日期等。
智能灯控制分为自动和手动控制。
逻辑功能:
当P3.0为0,也就是按下的时候为手动控制,反之则为自动控制。
手动:
按下开关P3.1,所有的灯都打开,按下开关P3.2,所有的灯都关闭。
自动:
一个光敏电阻传感器和四个红外热释电传感器,实现逻辑为:
当时间为晚上18点-早上6点之间或者光敏电阻传感器为0时,一旦有人,则点亮灯,一个灯附近安装一个红外热释电传感器,
当走进灯时,灯亮。

2、仿真图

 3、程序

//主程序
void main()
{
Init_LCD();//液晶初始化
IE=0X87;//允许INT0,T0中断
IP=0X05;
IT0=0X01;
IT1=0X01;
TMOD=0X01;
TH0=-50000/256;
TL0=-50000%256;
TR0=1;
while(1)
{  R_LED=Y_LED=G_LED=B_LED=1;if(key_1==0)	//手动模式{key_LED();	 //按键控制灯函数}else{if(DateTime[2]>18||DateTime[2]<6||guangmin==0){if(ren1==0){R_LED=0;Y_LED=1;G_LED=1;B_LED=1;}if(ren2==0){R_LED=0;Y_LED=0;G_LED=1;B_LED=1; }if(ren3==0){R_LED=0;Y_LED=0;G_LED=0;B_LED=1;}if(ren4==0){R_LED=0;Y_LED=0;G_LED=0;B_LED=0;	 }}}
switch(Adjust_flag)
{
case 0:GetTime(); break;
case 1:
if(K3==0&&DateTime[6]<99)
{
while(K3==0);
DateTime[6]++;}if(K4==0&&DateTime[6]>0) 
{
while(K4==0);
DateTime[6]--;
}
MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28;
//如果年份变化后当前月份的天数大于上限则设为上限
if(DateTime[3]>MonthsDays[DateTime[4]])
DateTime[3]=MonthsDays[DateTime[4]];
RefreshWeekDay();//刷新星期break;case 2:
if(K3==0&&DateTime[4]<12)
{
while(K3==0);
DateTime[4]++;}if(K4==0&&DateTime[4]>1)
{
while(K4==0);
DateTime[4]--;
}
//获取2月份天数
MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28;
//如果变化后当前月份的天数大于上限则设为上限
if(DateTime[3]>MonthsDays[DateTime[4]])
DateTime[3]=MonthsDays[DateTime[4]];
RefreshWeekDay();//刷新星期break;case 3://日00-28/29/30/31,调节之前首先根据年份得出该年中2月的天数
MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28;
//根据当前的月份决定调节日期的上限
if(K3==0&&DateTime[3]<MonthsDays[DateTime[4]])
{
while(K3==0);DateTime[3]++;}
if(K4==0&&DateTime[3]>0) 
{
while(K4==0);
DateTime[3]--;
}
break;case 4://时
if(K3==0&&DateTime[2]<23) 
{
while(K3==0);
DateTime[2]++;}
if(K4==0&&DateTime[2]>0)
{
while(K4==0);DateTime[2]--; }
break;
case 5://分
if(K3==0&&DateTime[1]<59)
{ while(K3==0);
DateTime[1]++;   }
if(K4==0&&DateTime[1]>0) 
{while(K4==0);
DateTime[1]--;	}
break;
}
}}

4、资料内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/326093.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端动态旋转地球背景

效果图 贴下源码 <template><div class"map-bg"><div class"canvas" id"canvs"></div><canvas class"canvasxk" id"canv"></canvas></div> </template><script setup …

Java RMI SERVER命令执行漏洞

Java RMI SERVER命令执行漏洞 一、介绍二、原理三、复现准备四、漏洞复现 一、介绍 RMI全称是Remote Method Invocation&#xff08;远程方法调用&#xff09;&#xff0c;是专为Java环境设计的远程方法调用机制&#xff0c;远程服务器提供API&#xff0c;客户端根据API提供相…

华为eNSP中型企业局域网网络规划设计(上)

敲半天一个闪退全™给我干没了呜呜呜&#xff0c;eNSP&#xff0c;wcnm&#xff01;wcnm&#xff01;wcnm&#xff01; →b站传送门&#xff0c;感谢大佬← →华为eNSP中型企业局域网网络规划设计&#xff08;下&#xff09;← →拓扑图传送门&#xff0c;可以自己配置着玩←…

linux的信号量的使用

1.信号量 在多线程情况下&#xff0c;线程要进入关键代码就得获取信号量&#xff08;钥匙&#xff09;{sem_init(&sem, 0, 0);}&#xff0c;没有信号量的情况下就一直等待sem_wait(&sem)&#xff0c;只到别人把钥匙&#xff08;sem_post(&sem)&#xff09;给你。 …

Hadoop3:HDFS的Shell操作(常用命令汇总)

一、简介 什么是HDFS的Shell操作&#xff1f; 很简单&#xff0c;就是在Linux的终端&#xff0c;通过命令来操作HDFS。 如果&#xff0c;你们学习过git、docker、k8s&#xff0c;应该会发现&#xff0c;这些命令的特点和shell命令非常相似 二、常用命令 1、准备工作相关命令…

Deckset for Mac:让演示文稿制作更轻松

还在为繁琐的演示文稿制作而烦恼吗&#xff1f;Deckset for Mac来帮您解决&#xff01;它支持Markdown语言&#xff0c;让您只需专注于内容的创作&#xff0c;无需在排版和设计上耗费过多精力。丰富的主题和布局选项&#xff0c;让您能够轻松打造出专业级的演示文稿。快来体验D…

Django项目规范化(虚拟环境、目录结构、数据库权限、建表、Media、日志)

Django项目规范化&#xff08;虚拟环境、目录结构、数据库权限、建表、Media、日志&#xff09; 目录 Django项目规范化&#xff08;虚拟环境、目录结构、数据库权限、建表、Media、日志&#xff09;前言虚拟环境pycharm创建虚拟环境 创建Django项目调整目录结构数据库规范创建…

树莓派python开发

树莓派自带thonny 点亮LED灯 import RPi.GPIO as GPIO import time# 设置GPIO模式为BCM GPIO.setmode(GPIO.BCM)# 设置LED引脚 led_pin 18# 设置LED引脚为输出 GPIO.setup(led_pin, GPIO.OUT)# 点亮LED GPIO.output(led_pin, GPIO.HIGH)# 延时2秒 time.sleep(2)# 关闭LED GPI…

经纬恒润亮相AutoSec中国汽车网络安全及数据安全合规峰会

近日&#xff0c;由谈思实验室、谈思汽车、上海市车联网协会联合举办的AutoSec 8周年年会暨中国汽车网络安全及数据安全合规峰会在上海举办。本次大会主要聚焦数据合规、汽车网络与数据安全趋势与挑战、软件供应链安全、车辆网络安全、网络安全管理等话题。经纬恒润作为智能网联…

海外盲盒小程序:探索世界,发现无限可能

在数字时代&#xff0c;我们渴望突破地域的界限&#xff0c;体验不同文化&#xff0c;感受世界的多彩。为了满足这一需求&#xff0c;我们隆重推出“海外盲盒小程序”——一个让你足不出户&#xff0c;就能探索世界、发现无限可能的神奇平台。 一、独特的盲盒体验 打开“海外盲…

【数据结构】心里有 “B树“ 么?

序言 在学习数据库之前&#xff0c;博主觉得有必要学习B树系列&#xff0c;以便之后更好地了解其原理&#xff0c;既然说到这里了&#xff0c;那就再说几句&#xff0c;数据库是帮助我们管理存在硬件当中的数据&#xff0c;如果要从中读取数据&#xff0c;就要考虑到硬件的读取…

Vue Excel 文件流导出乱码快速解决方案

今日在开发一个导出功能&#xff0c;原本一个非常简单的功能&#xff0c;却没想里面藏了陷阱&#xff01; 背景 前端导出的文件流乱码&#xff0c;此时确定非后端问题&#xff08;可以在postman导出是否正常来判断&#xff09;。 前端导出&#xff1a; 后端正常数据&#xf…

Linux —— 线程

Linux —— 线程 什么是线程Linux如何实现线程Winodws如何实现线程使用一下线程pthread_create函数原型参数说明返回值 如何解决 ps -aL 查看线程线程为什么轻量 我们今天进入线程的学习&#xff1a; 什么是线程 我们先来了解一个笼统的概念&#xff1a;简单来说&#xff0c;…

【计算机网络篇】数据链路层(8)共享式以太网的退避算法和信道利用率

文章目录 &#x1f6f8;共享式以太网的退避算法&#x1f95a;截断二进制指数算法 &#x1f354;共享式以太网的信道利用率 &#x1f6f8;共享式以太网的退避算法 在使用CSMA/CD协议的共享总线以太网中&#xff0c;正在发送帧的站点一边发送帧一边检测碰撞&#xff0c;当检测到…

Mysql进阶-sql优化篇

sql优化 sql优化insert优化批量插入手动提交事务主键顺序插入大批量插入数据 主键优化数据组织方式页分裂页合并主键设计原则 order by 优化原则 group by优化limit优化count 优化count的几种用法 update优化 sql优化 insert优化 批量插入 Insert into tb_test values(1,Tom…

百信银行的喜和忧:业绩与不良规模同增,曾因踩红线被罚500万元

近日&#xff0c;有报道指出&#xff0c;陪伴中信百信银行股份有限公司&#xff08;下称“百信银行”&#xff09;走过七年光阴的首任行长李如东已离任&#xff0c;离任原因或与“7年轮岗”监管规定有关。作为替代&#xff0c;中信银行科技信息部总经理寇冠出任百信银行行长。 …

【高阶数据结构(三)】图的遍历最小生成树问题

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:高阶数据结构专栏⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Go语言知识   &#x1f51d;&#x1f51d; 高阶数据结构 1. 前言2. 图的遍…

Android Compose 一:基础控件

Flutter 与 Compose 组件辣么像&#xff0c;难道是同一个google团队整的&#xff1b;也未深究&#xff0c;只是猜测。 创建项目 需要使用新版本Android studio&#xff0c;忽略步骤… 项目目录 MainActivity说明 1 系统默认页面 Preview 修饰的方法&#xff0c;只用来供开发…

【Linux】-Linux用户和权限与权限的修改[3]

目录 一、认知root用户 1、root用户&#xff08;超级管理员&#xff09; 2、su和exit命令 3、sudo命令 二、用户、用户组管理 1、用户管理 2、getent 三、查看权限控制 1、认知权限信息 四、修改权限控制 - chmod 五、修改权限控制 - chown 一、认知root用户 1、root…

C#调用电脑摄像头拍照

1.打开VS2019&#xff0c;新建一个Form窗体&#xff0c;工具->NuGet包管理工具->管理解决方案的NuGet包&#xff0c;在浏览里搜索AForge.Controls、AForge.Video.DirectShow&#xff0c;安装AForge.Controls和AForge.Video.DirectShow 2.安装AForge组件完成后&#xff0c…