资源简介
智能台灯是以AT89C52单片机为控制核心,主要由热释电红外传感器,光敏电阻信号处理电路,提醒电路,灯光控制电路,故障报警电路等组成。单片机可将热释电红外传感器检测到的人体辐射红外信号及光强信号的模拟量转换成数字量。
代码片段和文件信息
/*************************************************
更多51单片机资料请关注微信公众号:电子应用学习馆
**************************************************
*****************《电子应用学习馆》***************
***************************************************/
/**********************************************************************
* 名称 : 智能调光台灯
* 功能 : (1)亮度不够且有人靠近时台灯自动亮;
(2)靠的太近会提醒坐姿不正(蜂鸣器)
(3)附近无人时台灯自动熄灭(30秒) 时间可调
(4)根据环境亮度调节等亮度
(5)可手动调节台灯亮度
(6)设定学习时间
* 备注 :
***********************************************************************/
//头函数
#include
#include
//宏定义
#define uint unsigned int
#define uchar unsigned char
#define DUAN P0 //数码管段位
unsigned char code tab[]={0xa00xbb0x620x2a0x390x2c0x240xba0x200x280xff}; //0-9的显示码表 gc.debfa
unsigned char code tab_dian[]={0x800x9b0x420x0a0x190x0c0x040x9a0x000x080xdf}; //带点0-9的显示码表
uchar pdata tt[51]; //定义空数组用于AD0809取平均值
uchar scale=20rsd_sec; //定义占空比比例,热释电计时秒变量
char minsec; //定义计时分秒
//位定义
bit bdata flag_auto //自动切换标志位
ss //闪烁标志位
flag_bs //报警位标志位
flag_rsd //热释电动作标志位
flag_jiejin=1; //接近传感器标志位
uchar flag_set=0; //设置变量:0 正常 1 调分 2 调秒
uchar lum; //ad0809读出值
//函数声明
void delay(uchar i);
//管脚声明
sbit LED = P3^4; //PWM输出
sbit change= P2^3; //自动模式切换按键
sbit set = P2^2; //设置按键
sbit add = P2^1; //加按键
sbit sub = P2^0; //减按键
sbit rsd = P3^6; //热释电
sbit jiejin=P3^5; //接近开关
sbit buzz=P3^7;
sbit W0=P2^7; //数码管位端
sbit W1=P2^6;
sbit W2=P2^5;
sbit W3=P2^4;
/**********************************************************************
* 名称 : display();
* 功能 : 数码管显示
* 输入 : 无
* 输出 : 无
***********************************************************************/
void display()
{
if(flag_set==0) //正常模式下
{
DUAN=tab[min/10]; //送入段码,秒数高位
W0=0; //打开位地址
delay(1); //小延时
W0=1; //关闭位地址
DUAN=tab_dian[min%10]; //送入段码,秒数低位
W1=0;
delay(1);
W1=1;
DUAN=tab[sec/10]; //送入段码,分钟数高位
W2=0;
delay(1);
W2=1;
DUAN=tab[sec%10]; //送入段码,分钟数高位
W3=0;
delay(1);
W3=1;
}
else if(flag_set==1) //设置模式下闪烁相应位
{
if(ss==1) //闪烁标志 ss=1 正常显示
{
DUAN=~tab[min/10];
W0=0;
delay(1);
W0=1;
DUAN=~tab_dian[min%10];
W1=0;
delay(1);
W1=1;
}
else //闪烁标志 ss=0 熄灭相应位 达到闪烁效果 ss在定时器里500ms取反一次
{
DUAN=~tab[10]; //
W0=0;
delay(1);
W0=1;
DUAN=~tab_dian[10];
W1=0;
delay(1);
W1=1;
}
DUAN=~tab[sec/10];
W2=0;
delay(1);
W2=1;
DUAN=~tab[sec%10];
W3=0;
delay(1);
W3=1;
}
else
{
DUAN=~tab[min/10];
W0=0;
delay(1);
W0=1;
DUAN=~tab_dian[min%10];
W1=0;
delay(1);
W1=1;
if(ss==1)
{
DUAN=~tab[sec/10];
W2=0;
delay(1);
W2=1;
DUAN=~tab[sec%10];
W3=0;
delay(1);
W3=1;
}
else
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1212 2019-01-19 21:59 智能台灯\智能台灯源码\ADC0809.h
文件 10453 2019-01-19 21:59 智能台灯\智能台灯源码\main.c
文件 19455 2019-01-19 19:49 智能台灯\智能台灯源码\main.LST
文件 16766 2019-01-19 19:49 智能台灯\智能台灯源码\main.OBJ
文件 62 2019-01-19 19:49 智能台灯\智能台灯源码\main.__i
文件 6376 2009-05-07 14:37 智能台灯\智能台灯源码\STARTUP.A51
文件 14049 2017-03-19 22:24 智能台灯\智能台灯源码\STARTUP.LST
文件 749 2017-03-19 22:24 智能台灯\智能台灯源码\STARTUP.OBJ
文件 15179 2019-01-19 19:49 智能台灯\智能台灯源码\智能台灯设计
文件 1141 2019-01-19 19:49 智能台灯\智能台灯源码\智能台灯设计.build_log.htm
文件 4324 2019-01-19 19:49 智能台灯\智能台灯源码\智能台灯设计.hex
文件 64 2019-01-19 19:49 智能台灯\智能台灯源码\智能台灯设计.lnp
文件 22656 2019-01-19 19:49 智能台灯\智能台灯源码\智能台灯设计.M51
文件 191 2017-03-28 11:44 智能台灯\智能台灯源码\智能台灯设计.plg
文件 85766 2019-01-19 21:59 智能台灯\智能台灯源码\智能台灯设计.uvgui.Administrator
文件 5445 2019-01-19 21:59 智能台灯\智能台灯源码\智能台灯设计.uvopt
文件 14027 2019-01-19 21:59 智能台灯\智能台灯源码\智能台灯设计.uvproj
文件 56518 2017-03-19 22:29 智能台灯\智能台灯源码\智能台灯设计_uvopt.bak
文件 0 2017-03-19 20:28 智能台灯\智能台灯源码\智能台灯设计_uvproj.bak
文件 44 2018-12-07 00:00 智能台灯\智能台灯源码\更多嵌入式资料.txt
文件 113932 2019-01-19 22:02 智能台灯\智能台灯电路图\__Previews\基于单片机的智能台灯.SchDocPreview
文件 247451 2019-01-19 21:10 智能台灯\智能台灯电路图\基于单片机的智能台灯.pdf
文件 261120 2019-01-19 22:02 智能台灯\智能台灯电路图\基于单片机的智能台灯.SchDoc
文件 44 2018-12-07 00:00 智能台灯\智能台灯电路图\更多嵌入式资料.txt
文件 44 2018-12-07 00:00 智能台灯\更多嵌入式资料.txt
...D.H. 0 2019-01-19 22:02 智能台灯\智能台灯电路图\__Previews
目录 0 2019-01-19 22:03 智能台灯\智能台灯源码
目录 0 2019-01-19 22:03 智能台灯\智能台灯电路图
目录 0 2019-01-19 22:03 智能台灯
----------- --------- ---------- ----- ----
............此处省略2个文件信息
- 上一篇:编译原理实验报告,词法分析,语法分析,语义分析。
- 下一篇:基于51单片机的温度报警
评论
共有 条评论