以下是基于51单片机的智能台灯代码,能够检测台灯旁边有无人并进行相应自动开关、通过红外光电能够检测他们在学习时由于身体靠桌面比较近,造成身体坐姿不正,台灯就会报警提示等功能,仅供参考:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LDR = P3^2; // 光敏电阻连接的引脚P3.2
sbit LED = P1^0; // LED灯连接的引脚P1.0
sbit PIR = P3^3; // 人体红外检测连接的引脚P3.3
sbit buzzer = P1^1; // 蜂鸣器连接的引脚P1.1
void delay_ms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
{
for(j=110;j>0;j--);
}
}
void main()
{
uchar i;
while(1)
{
i = LDR; // 读取光敏电阻的值
if(i == 0) // 昏暗状态,LED灯亮度为50%
{
if(PIR == 1) // 检测到人体近距离,开灯
{
LED = 0; // LED灯亮
}
else // 没有检测到人体近距离,关灯
{
LED = 1; // LED灯灭
}
}
else // 明亮状态,LED灯亮度为100%
{
LED = 0; // LED灯亮
}
if(PIR == 1 && LDR == 0) // 检测到人体近距离和昏暗状态,报警提示
{
buzzer = 0; // 蜂鸣器响
delay_ms(500); // 延时500ms
buzzer = 1; // 蜂鸣器停止
delay_ms(500); // 延时500ms
}
}
}
上述代码实现了通过热释电红外传感器检测旁边是否有人,并控制LED灯的开关。如果检测到旁边没有人在,则自动关闭台灯,以达到节省电能的目的。如果检测到人体在昏暗状态下靠近,则打开灯光。如果检测到人体在昏暗状态下靠近,则蜂鸣器会提示用户纠正坐姿,防止眼睛近视。如果需要更多控制功能,可以根据实际需求进行修改。
关键字:51单片机 智能台灯
引用地址:
基于51单片机的智能台灯
推荐阅读最新更新时间:2026-03-19 11:52
基于51单片机的智能台灯
以下是基于51单片机的智能台灯代码,能够检测台灯旁边有无人并进行相应自动开关、通过红外光电能够检测他们在学习时由于身体靠桌面比较近,造成身体坐姿不正,台灯就会报警提示等功能,仅供参考: #include reg51.h #define uchar unsigned char #define uint unsigned int sbit LDR = P3^2; // 光敏电阻连接的引脚P3.2 sbit LED = P1^0; // LED灯连接的引脚P1.0 sbit PIR = P3^3; // 人体红外检测连接的引脚P3.3 sbit buzzer = P1^1; // 蜂鸣器连接的引脚P1.1 void delay_m
[单片机]
基于89C51的热释电红外传感器智能台灯的设计
0引言 目前,台灯已是千家万户的生活必需用品。但在使用中却经常由于忘记关灯而造成巨大的能源浪费;夜晚使用时,又要摸黑去开灯,非常不方便。台灯的使用者大多是一些未成年的学生,长期使用台灯时,如果坐姿不对,还会影响到视力。本文给出了一种基于BISS0001和单片机89C51组成热释电红外传感器控制电路来制作一种智能台灯的设计方法。该方法的控制器可以根据台灯旁边是否有人以及光线的强弱来自行控制台灯的关和开,从而使人们使用起来比较方便,而且能起到节能的效果。 1 BISS000l及其特性 BISS0001是一款具有较高性能的传感信号处理集成电路。它配以热释电红外传感器和少量外接元器件即可构成被动式热释电红外开关
[单片机]
51单片机笔记模块篇2 -- 单路继电器
继电器在电路上是比较常见的元器件,继电器的作用也比较多,比较常用的是作为开关和放大作用。例如,有一个加热装置需要12V供电,但是还需要单片机来控制它,单片机只能输出5V的电压,这时候就要用到继电器。由于每种继电器长得都不太一样,所以这里只放原理图,如图 单路继电器原理 如图所示,单路继电器的本质就是一个单刀双掷开关,在触点未吸合时公共端与常闭端连接,当触点吸合时,公共端与常开端连接在一起。电路导通,负载开始工作。 以这种继电器为例: 黑色插针是输入端,标有VCC(VIN),GND,IN,其中IN需要和单片机的引脚相连. NO,即nomal open,常开触点,继电器线圈未通电时断开。 NC,即nomal close,常闭触
[单片机]
仿真设计|基于51单片机的温湿度及甲醛检测报警系统
具体实现功能 (1)LCD1602液晶第一行显示当前的甲醛值,第二行显示当前的温度和湿度值; (2)可以设置甲醛报警值、温湿度上下限报警值; (3)当甲醛值高于设定的报警值,蜂鸣器和指示灯发出声光报警; (4)当温湿度值低于或高于设定的范围时,相应的指示灯亮,蜂鸣器报警。 仿真演示视频: https://www.bilibili.com/video/BV1rwyfYXEoB/ 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。 本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和S
[单片机]
仿真设计|基于51单片机的商用电子计价秤设计
具体实现功能 (1)通电时电子秤进入欢迎界面,显示“欢迎使用电子秤 设计学生、班级学号、指导教师、设计日期”等信息; (2)LM4229显示模块显示当前称重台上物品重量; (3)当矩阵按键输入对应商品的代码编号,在LM4229上可以看到相应商品的名称、单价、总重、总价格等信息; (4)在称量的过程中,若物品重量超出电子秤的称重范围(0—4.99Kg),蜂鸣器警报,警示物品超重。 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。 本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第19期单片机的5位数码管显示(汇编代码)
源代码: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV 30H,#01H MOV 31H,#02H MOV 32H,#03H MOV 33H,#04H MOV 34H,#05H MOV P0,#8FH DIS1: MOV R0,#30H MOV R1,#00H MOV R2,#05H DIS2: MOV A,@R0 ANL A,#0FH MOV B,A MOV A,R1 ANL A,#0FH
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第8期基于单片机的矩阵键盘实验仿真
源代码: #include reg52.h typedef unsigned char u8; typedef unsigned int u16; sbit dula = P2^6; sbit wela = P2^7; u8 num; u8 code table = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void init(void); void delay(u16);
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第20期基于单片机的简易流水灯仿真
源代码: #include reg52.h void Delay1ms(unsigned int count) { unsigned int i,j; for(i=0;i count;i++) for(j=0;j 120;j++); } void main(void) { unsigned char LEDIndex = 0; bit LEDDirection = 1; while(1) { if(LEDDirection) P1 = ~(0x01 LEDIndex); else P1 = ~(0x80 LEDIndex); if(LEDIndex==7) LEDDirection = !
[单片机]