目录
具体实现功能
由51单片机+蓝牙模块+人体热释红外传感器+红外对管+光敏电阻+PCF8591模块及电源等组成。
具体功能:
(1)当检测到有人且光线较暗时,人体检测状态灯亮,台灯打开,否则关闭;
(2)如果检测到人体过于靠近台灯,坐姿不正,蜂鸣器报警;若仍未调整坐姿,台灯关闭。红外对管灵敏度可通过电位器调节;
(3)灯亮时,通过蓝牙可控制开关灯及亮度。发送"*1"、"*2"灯会在"亮"、"更亮"切换;发送指令"*C",灯灭。

设计介绍

51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容
原理图和PCB(AD19)
本系统原理图和PCB设计采用Altium Designer19,具体如图。


注1:请使用Altium Designer19直接打开资料中的工程文件(资料中已说明打开方式)!
注2:此设计需按照原理图制作实物,不可直接烧录到任何开发板中运行(需要修改程序)!
程序(Keil5)
本设计利用KEIL5软件实现程序设计。
主程序如下:
////////////////
void main (void)
{
unsigned char num=0;
Init_Timer0(); //定时器0初始化
UART_Init();
DelayMs(50); //延时有助于稳定
Deng_led=1;
while(1) //主循环
{
if(HotW_key==1) //检测到红外
{
hotLed = 0;//检测到人体指示灯
num=ReadADC(0); //读取AD检测到的 光敏地值
if(num>=90) //光线交暗
{
if((juliFlag == 0))//距离需要打开led
{
openLed = 1;//打开led标志
}
}
else
{
openLed = 0; //led打开标志
}
}
else //检测不到人
{
openLed = 0; //led打开标志
hotLed = 1;//人体指示灯
}
if(JuLi1_key==0) //距离检测
{
DelayMs(10);
buzzer=0;
if(Juli_num< 200 )Juli_num++;
else
{
juliFlag =1 ; //距离过进标志
openLed = 0;//打开led标志
}
}
else
{
juliFlag = 0 ; //距离过进标志
buzzer=1; //关闭蜂鸣器
Juli_num = 0;
}
}
}
程序运行结果如图:

注:请使用KEIL C51直接打开资料中的工程文件(资料中已说明打开方式)!
全部资料
全部资料包括原理图和PCB源文件(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考)、仿真视频、开发资料、仿真视频、单片机最小系统介绍等,全网最全!资料内容如下图所示!!
