找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2808|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于AT89S52 單片機(jī)控制的智能臺燈設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
品由 220V 交流電直接供電。通過POWER 鍵可以開啟/關(guān)閉臺燈,通過“AUTO/MENU”鍵切換,在 MENU 狀態(tài)時,可通過“+ ”鍵及“- ”鍵調(diào)整臺燈的亮度,并利用超聲波傳感器測量用戶與臺燈的距離,當(dāng)距離小于30cm 時,通過控制燈光閃爍( 閃爍頻率為每秒鐘 3次左右) 提醒用戶注意保持與臺燈的距離; 在 AUTO狀態(tài)時,除具備有 MENU 狀態(tài)相同功能外,還具備檢測室內(nèi)是否有人的功能,當(dāng)室內(nèi)沒有人時,自動關(guān)閉臺燈( 檢測時間定為 5 秒,可以在軟件中設(shè)置) ,即檢測到?jīng)]有人的時間超過 5 秒時,關(guān)閉臺燈; 當(dāng)有人進(jìn)入房間時( 檢測距離為 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 - - ) ;}

下載.png (15.54 KB, 下載次數(shù): 90)

下載.png

下載 (4).png (53.26 KB, 下載次數(shù): 91)

下載 (4).png

下載 (3).png (27.66 KB, 下載次數(shù): 83)

下載 (3).png

下載 (2).png (19.78 KB, 下載次數(shù): 85)

下載 (2).png

下載 (1).png (98.56 KB, 下載次數(shù): 101)

下載 (1).png

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表