|
品由 220V 交流電直接供電。通過POWER 鍵可以開啟/關閉臺燈,通過“AUTO/MENU”鍵切換,在 MENU 狀態時,可通過“+ ”鍵及“- ”鍵調整臺燈的亮度,并利用超聲波傳感器測量用戶與臺燈的距離,當距離小于30cm 時,通過控制燈光閃爍( 閃爍頻率為每秒鐘 3次左右) 提醒用戶注意保持與臺燈的距離; 在 AUTO狀態時,除具備有 MENU 狀態相同功能外,還具備檢測室內是否有人的功能,當室內沒有人時,自動關閉臺燈( 檢測時間定為 5 秒,可以在軟件中設置) ,即檢測到沒有人的時間超過 5 秒時,關閉臺燈; 當有人進入房間時( 檢測距離為 4m) ,自動開燈。
其部分程序如下:
#include<reg52.h>
#define uint unsignedint
#define uchar unsigned char
sbit key = P2^2;
sbit key1 = P2^3;
sbit led = P1^0;
uint pwm = 0x7f;
void delayms( uint xms) ;
void delay( uint t) ;
void main( )
{
TMOD = 0x21;
TH0 = 0xfc;
TL0 = 0x66;
TH1 = pwm;
TL1 = 0;
EA = 1;
ET0 = 1;
ET1 = 1;
TR0 = 1;
while( 1)
{
do
if( pwm! = 0xff)
{pwm + + ; delayms( 10) ;}
while( key = = 0) ;
doif( pwm! = 0x02){pwm - - ; delay( 10) ;}while( key1 = = 0) ;
}
}
void time0( ) interrupt 1
{TR0 = 0;TH0 = 0xfc;TL0 = 0x66;TH1 = pwm;TR1 = 1;led = 1;}
void time1( ) interrupt 3{TR1 = 0;led = 0;}
void delayms( uint xms) / / 延時 x ms
{uint i,j;
for( i = xms; i > 0; i - - )
for( j = 123; j > 0; j - - ) ;
}
void delay( uchar t)
{while( t - - ) ;}
|
評分
-
查看全部評分
|