|
功能:按鍵控制PWM對LED燈調(diào)光,長按調(diào)光,光的亮度接近最亮,松開開關(guān),燈滅。(按住調(diào)光,松開燈滅)。
/*** STC89C52 @ 12MHz */
/***********************************************************************/
#include<reg52.h>
typedef unsigned char U8;
typedef unsigned int U16;
/*---------------------------------------------------------------------*/
/*-- 端口定義 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_1 P1
sbit KEY1 = P3^0;
U8 j,knum,temp=15;
/*----------按鍵掃描--------------------*/
void keyscan()
{
static U16 x; //消抖延時變量
if(KEY1==0) //
{
x++; //按鍵消抖
if(x>500) //長按亮度調(diào)節(jié)
{ knum=0;
if(knum==0)
{
if(j<250)
j+=5; //接近最亮
else
temp=j;
}
x=450;
}
}
else
{
if(knum==1)
{
j=0; //關(guān)燈
}
}
}
/*---------------------------------------------------------------------*/
/*-- 主程序 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
PORT_1=0;
while(1)
{
keyscan();
}
}
/*---------------------------------------------------------------------*/
/*-- 程序結(jié)束 ---------------------------------------*/
/*---------------------------------------------------------------------*/
|
|