• 大小: 23KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: 智能台灯  

资源简介

智能台灯(内含原理图及代码),通过光敏电阻ADC自动调节灯光亮暗,通过红外模块检测人体是否离开来控制灯光开、关。通过定时器、数码管、蜂鸣器来定时提醒。

资源截图

代码片段和文件信息

#include“reg51.h“
#define uint unsigned int
void Delayms(uint);
void PWM_Init();
void Key();
void Clock();
void  Init_Timer0();
//void ADC0809();

sbit LED=P3^4;
sbit HW=P3^5;
sbit Ind=P3^6;
sbit Beep=P3^7;
sbit sub=P2^0;
sbit add=P2^1;
sbit set=P2^2;
sbit change=P2^3;
sbit w1=P2^4;
sbit w2=P2^5;
sbit w3=P2^6;
sbit w4=P2^7;
//------ADC0809--------------
/*sbit clk=P3^0;
sbit st=P3^1;
sbit eoc=P3^2;
sbit oe=P3^3;*/
#define Data P0

unsigned char timer0_cntr1;
unsigned char i;
unsigned char s1;s2;s3;s4;
unsigned char se;
unsigned char c_set;
uint pwm=100aa=600;
uint pwm_cnt=0;
bit flag0;
bit flag_set;
bit flag_beep;

unsigned char code SHUZI[]={
0x3f0x060x5b0x4f0x660x6d0x7d0x07
0x7f0x6f0x770x7c0x390x5e0x790x71};
unsigned char code SHUDIAN[]={0xbf0x860xdb0xcf0xe60xed0xfd0x87
0xff0xef};
void Delay(uint t)
{
 while(--t);
}
void Delayms(uint t)  //3ms
{
int j;
for(;t>0;t--)
for(j=0;j<=300;j++);
}
/*void ADC0809()
{
st=0;
st=1;
st=0;
eoc=1;
while(eoc==0)
{
eoc=1;
Beep=0;
}
oe=1;
Data=0xFF;
Delayms(1);
oe=0;
}*/
void main()
{
w1=1;
w2=1;
w3=1;
w4=1;
s1=0;
s2=0;
s3=0;
s4=0;
i=0;
se=0;
flag0=0;
flag_set=0;
flag_beep=0;
Beep=1; //1不响
LED=0;  //0点亮
timer0_cnt=0;
r1=0;
Init_Timer0();
while(1)
{
if(HW==1) //HW接近为0,离开为1
Beep=1;
else   //接近
Beep=0;
Key();
if(flag_set==0)
{
Clock(); 
}
if((s1==0)&&(s2==0)&&(s3==0)&&(s4==0)&&(flag_beep==1))
{
Beep=0;
Delayms(5000);
flag_beep=0;
Beep=1;

}
if(Ind==1)

 PWM_Init();
             }
else
LED=1;   
// if(r1=80)
// ADC0809();
// pwm=Data/255;
}
}
void PWM_Init()
{
if(add==0)pwm++;//add是按键开关
if(sub==0)pwm--;//sub也是
if(pwm==600)pwm=599;
if(pwm==50)pwm=51;
    LED=0;  //灯亮
    Delay(pwm);
    LED=1; //灭
       Delay(aa-pwm);
}
void Key()
{
if(set==0)
{
Delayms(5); //  5ms
if(set==0)
{
Delayms(333); //延时1s
flag_set=~flag_set;
w1=0;w2=1;w3=1;w4=1;
c_set=0;
flag0=0;
}
}
if(flag_set==1)
{
if(add==0)   //加
{
Delayms(5);
if(add==0)
{
Delayms(333); //延时1s
if(w1==0)
{
if(s1<9)
s1++;
else
s1=0;
}  
else if(w2==0)
{
if(s2<5)
s2++;
else
s2=0;
}
else if(w3==0)
{
if(s3<9)
s3++;
else
s3=0;
}
else if(w4==0)
{
if(s4<5)
s4++;
else
s4=0;
}
}
}    
if(sub==0)    //减
{
Delayms(5);
if(sub==0)
{
Delayms(333); //延时1s
if(w1==0)
{
if(s1>0)
s1--;
else
s1=9;
}
if(w2==0)
{
if(s2>0)
s2--;
else
s2=5;
}
if(w3==0)
{
if(s3>0)
s3--;
else
s3=9;
}
if(w4==0)
{
if(s4>0)
s4-

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4699  2017-11-17 09:54  智能台灯\led.c

     文件     264704  2017-11-17 09:54  智能台灯\智能台灯原理图.SchDoc

     目录          0  2017-11-17 10:00  智能台灯

----------- ---------  ---------- -----  ----

               269403                    3


评论

共有 条评论