|
品由 220V 交流電直接供電。通過(guò)POWER 鍵可以開(kāi)啟/關(guān)閉臺(tái)燈,通過(guò)“AUTO/MENU”鍵切換,在 MENU 狀態(tài)時(shí),可通過(guò)“+ ”鍵及“- ”鍵調(diào)整臺(tái)燈的亮度,并利用超聲波傳感器測(cè)量用戶與臺(tái)燈的距離,當(dāng)距離小于30cm 時(shí),通過(guò)控制燈光閃爍( 閃爍頻率為每秒鐘 3次左右) 提醒用戶注意保持與臺(tái)燈的距離; 在 AUTO狀態(tài)時(shí),除具備有 MENU 狀態(tài)相同功能外,還具備檢測(cè)室內(nèi)是否有人的功能,當(dāng)室內(nèi)沒(méi)有人時(shí),自動(dòng)關(guān)閉臺(tái)燈( 檢測(cè)時(shí)間定為 5 秒,可以在軟件中設(shè)置) ,即檢測(cè)到?jīng)]有人的時(shí)間超過(guò) 5 秒時(shí),關(guān)閉臺(tái)燈; 當(dāng)有人進(jìn)入房間時(shí)( 檢測(cè)距離為 4m) ,自動(dòng)開(kāi)燈。
其部分程序如下:
#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) / / 延時(shí) x ms
{uint i,j;
for( i = xms; i > 0; i - - )
for( j = 123; j > 0; j - - ) ;
}
void delay( uchar t)
{while( t - - ) ;}
|
評(píng)分
-
查看全部評(píng)分
|