************************** Copyright(C) CaKe ****************************************
========================================================================================
==============**版權(quán)信息 : CaKen工作室 ==============
==============**文件名 : main.c ==============
==============**作者 : CaKen ==============
==============**版本號(hào) : V1.0 ==============
==============**時(shí)間 : 2014.08.23 ==============
==============**功能描述 : 16鍵電子琴實(shí)驗(yàn)測試 ==============
========================================================================================
****************************************************************************************
#include"reg52.h"
#define CaKen_LED P1 //設(shè)置LED連接的I/O組
#define CaKen_PWM 501 //設(shè)置明亮的總級(jí)數(shù)(級(jí)數(shù)過大會(huì)出現(xiàn)閃爍)(值域:0~65535)
#define CaKen_MAX 500 //設(shè)置最大亮度(值域:小于明亮總級(jí)數(shù))
#define CaKen_MIN 1 //設(shè)置最小亮度(值域:明亮大于等于1,小于最大亮度)
sbit CaKen_KEY_ADD = P3^0; //亮度加
sbit CaKen_KEY_DEC = P3^1; //亮度減
***************************************************************************************
函數(shù)名:延時(shí)程序
調(diào) 用:delay();
參 數(shù):
返回值:
結(jié) 果:
備 注: 0.1ms延時(shí)程序(12MHz 10倍于51單片機(jī)速度時(shí))
****************************************************************************************/
void delay (unsigned int a)
{
unsigned char i;
while( --a != 0)
{
for(i = 0; i < 12; i++);
}
}
***************************************************************************************
函數(shù)名:LED顯示程序
調(diào) 用:Display();
參 數(shù):CaKen
****************************************************************************************/
void Display(unsigned int CaKen) //顯示程序(50ms的PWM寬度)
{
CaKen_LED=0x00; //LED小燈亮
delay(CaKen); //延時(shí)a的長度
CaKen_LED=0xff; //LED小燈滅
delay(CaKen_PWM-CaKen); //延時(shí)總PWM長度減a
}
***************************************************************************************
函數(shù)名:main
備 注:
****************************************************************************************/
void main()
{
unsigned int k=1; //初始化LED的亮度
while(1)
{
Display(k);
if(CaKen_KEY_ADD==0) //如果按鍵按下則繼續(xù)
{
delay(20); //消抖 延時(shí)20mS
if(CaKen_KEY_ADD==0) //如果按鍵按下則繼續(xù)
{
k++;
if(k>CaKen_MAX)
{
k=CaKen_MAX;
}
}
}
if(CaKen_KEY_DEC==0) //如果按鍵按下則繼續(xù)
{
delay(20); //消抖 延時(shí)20mS
if(CaKen_KEY_DEC==0) //如果按鍵按下則繼續(xù)
{
k--;
if(k
{
k=CaKen_MIN;
}
}
}
}
}