找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7269|回復: 5
打印 上一主題 下一主題
收起左側(cè)

鍵控LED臺燈制作和程序設(shè)計

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70941 發(fā)表于 2015-1-23 15:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
         去年留下的一個LED燈,閑來無事,晚上用筆記本沒有光看不清鍵盤,所以,想制作一個LED臺燈,按鍵控制加亮度和減亮度,本想加紅外線遙控的,本人比較懶,暫時只能鍵控,紅外線以后再加。
            LED臺燈電路圖,
        

程序設(shè)計流程圖:






LED燈工作頻率為400HZ, 20級調(diào)節(jié)亮度,使用的是STC15F104W單片機,4K程序存儲,128B數(shù)據(jù)存儲,
由于這個單片機沒有PWM,只能用定時器模擬PWM,
程序代碼如下:
/*******************************************************************************************************
名稱:臺燈
MCU:STC15F104W        12MHZ
日期:2014 /9/1
==荊棘鳥=======
*****************************************************
****************************************************/
#include <REG52.H>
#include "intrins.h"
#define Uint unsigned int//宏定義
#define Uchar unsigned char

sfr INT_CLKO = 0x8f;//外部中斷與時鐘輸出控制寄存器
sfr AUXR = 0x8e;
sfr P3M1=0xb1;
sfr P3M0=0xb2;


sbit KEY1=P3^0;//亮度減
sbit KEY2=P3^1;//開機/關(guān)機/待機
sbit KEY3=P3^2;//亮度加
sbit NPN=P3^3;//控制端
sbit IR=P3^5;//紅外線
sbit LED=P3^4;//指示燈


Uchar Gears;//20級檔位
Uchar PWM;

void KEY();
void Delay(Uchar a);
/****************************************************
********主函數(shù):調(diào)用子函數(shù)**************************/
void main()
{

AUXR &= 0x7f;//定時器0為12T模式
//AUXR |= 0x80;                      //定時器0為1T模式
TMOD=0x02;//定時器0 模式2
TH0=TL0=131;//定時器0賦初值
ET0=1;//打開定時器0中斷
EA=1;//打開總中斷
TR0=1;//定時器0啟動
P3M1=0x00;
P3M0=0x08;

while(1)
{
KEY();   
Delay(200);
LED=~LED;

}

}
/*****************************************************
********子函數(shù):按鍵函數(shù)****************************/
void KEY()
{


//======================
if(KEY1==0)
{
Delay(20);
if(KEY1==0)
{

if(Gears==0)
{
Gears=0;
}
else
{
Gears--;
}
while(!KEY1);
}
}
else
if(KEY2==0)
{
Delay(20);
if(KEY2==0)
{


}
}
else
if(KEY3==0)
{
Delay(20);
if(KEY3==0)
{
Gears++;
if(Gears>20)
{
Gears=20;
}
while(!KEY3);
}
}


}
/****************************************************
********子函數(shù):延時函數(shù)***************************/
void Delay(Uchar a)
{
Uint b,c;
for(b=a;b>0;b--)
for(c=1000;c>0;c--);

}
/****************************************************
********子函數(shù):定時器中斷函數(shù)*********************/
void T0_time() interrupt 1
{


PWM++;
if(PWM>Gears)
{
NPN=1;
}
else
{

NPN=0;
}
if(PWM>20)
{
PWM=0;

}
}
視頻:




此日記為實驗,屬于半成品,作品有點難看,勿笑。。。

評分

參與人數(shù) 1黑幣 +8 收起 理由
aifengdian + 8 贊一個!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:72960 發(fā)表于 2015-1-30 10:13 | 只看該作者
可以表示一下單片機引腳嗎
回復

使用道具 舉報

板凳
ID:257938 發(fā)表于 2017-12-5 22:13 | 只看該作者
問一下能在這個調(diào)光功能的基礎(chǔ)上,加上定時功能嗎?比如我想讓燈亮3分鐘自動關(guān)閉,然后再3分鐘有自動亮起。反復亮滅。可以實現(xiàn)嗎
回復

使用道具 舉報

地板
ID:257938 發(fā)表于 2017-12-5 22:14 | 只看該作者
能加入循環(huán)亮滅功能嗎?
回復

使用道具 舉報

5#
ID:249545 發(fā)表于 2018-4-16 11:21 | 只看該作者
東西真不錯,就喜歡這種小規(guī)模作品來玩.
回復

使用道具 舉報

6#
ID:162514 發(fā)表于 2018-4-16 15:15 | 只看該作者
這也太暗了吧?臺燈?
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表