stm32毕设 单片机教室智能照明控制系统(源码+硬件+论文)


0 前言

🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 单片机教室智能照明控制系统(源码+硬件+论文)

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

🧿 项目分享:见文末!

在这里插入图片描述

1 主要功能

  • (1)使用4个LED灯模拟教室的照明灯,在符合条件开启时,人数小于10人亮一个灯,10-20人亮二个灯,20-30人亮三个灯,大于30人则全亮四个灯。
  • (2)教室使用两个红外对管来检测是否有人进入并进行人数统计,人数可以统计到二位数99人,并实时将人数显示到液晶屏LCD上,液晶屏同时显示实时日期/时间/星期。
  • (3)利用光敏电阻检测教室的光线强弱;
  • (4)系统分自动/手动模式,可以通过按键切换模式,并有LED指示当前所在模式,在自动模式下,可以设定定时时间段,在定时时间段内,

当教室有人(人数大于0)的情况下,如果光线暗弱则自动打开照明灯,照明灯点亮个数根据人数而定,不在定时时间段或者教室无人的情况下,关闭所有照明灯,另外在手动模式下,可以通过手动开关控制照明灯的亮灭,人数统计部分仍然生效。

在这里插入图片描述

2 硬件设计(原理图)

在这里插入图片描述

在这里插入图片描述

3 核心软件设计

软件逻辑流程如下

在这里插入图片描述

在这里插入图片描述

篇幅有限,不过多复述详细设计细节,详细的设计分享在论文中。。。

关键代码

//寄存器宏定义 
#define WRITE_SECOND 0x80 
#define WRITE_MINUTE 0x82 
#define WRITE_HOUR 0x84 
#define READ_SECOND 0x81 
#define READ_MINUTE 0x83 
#define READ_HOUR 0x85 
#define WRITE_PROTECT 0x8E 
//位寻址寄存器定义 
sbit ACC_7 = ACC^7//管脚定义 
sbit SCLK = P3^5// DS1302时钟信号 7脚 
sbit DIO= P3^6// DS1302数据信号   6脚 
sbit CE = P3^7// DS1302片选 5脚 
//地址、数据发送子程序 
void Write1302 ( unsigned char addr,dat ) 
{ 
unsigned char i,temp; 
CE=0//CE引脚为低电平,数据传送中止 
SCLK=0//清零时钟总线 
CE = 1//CE引脚为高电平,逻辑控制有效 
//发送地址 
for ( i=8; i>0; i-- ) //循环8次移位 
{ 
SCLK = 0; 
temp = addr; 
DIO = (bit)(temp&0x01)//每次传输低字节 
addr >>= 1//右移一位 
SCLK = 1} 
//发送数据 
for ( i=8; i>0; i-- ) 
{ 
SCLK = 0; 
temp = dat; 
DIO = (bit)(temp&0x01); 
dat >>= 1; 
SCLK = 1} 
CE = 0} 
//数据读取子程序 
unsigned char Read1302 ( unsigned char addr ) 
{ 
unsigned char i,temp,dat1,dat2; 
CE=0; 
SCLK=0; 
CE = 1//发送地址 
for ( i=8; i>0; i-- ) //循环8次移位 
{ 
SCLK = 0; 
temp = addr; 
DIO = (bit)(temp&0x01)//每次传输低字节 
addr >>= 1//右移一位 
SCLK = 1} 
//读取数据 
for ( i=8; i>0; i-- ) 
{ 
ACC_7=DIO; 
SCLK = 1; 
ACC>>=1; 
SCLK = 0} 
CE=0; 
dat1=ACC; 
dat2=dat1/16//数据进制转换 
dat1=dat1%16//十六进制转十进制 
dat1=dat1+dat2*10return (dat1)} 
//初始化DS1302 
void Initial(void) 
{ 
Write1302 (WRITE_PROTECT,0X00)//禁止写保护 
Write1302 (WRITE_SECOND,0x56)//秒位初始化 
Write1302 (WRITE_MINUTE,0x34)//分钟初始化 
Write1302 (WRITE_HOUR,0x12)//小时初始化 
Write1302 (WRITE_PROTECT,0x80)//允许写保护 
}

4 实现效果

在这里插入图片描述

在这里插入图片描述

5 最后

包含内容

在这里插入图片描述

🧿 项目分享:见文末!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值