************************** Copyright(C) CaKe ****************************************
========================================================================================
==============**版权信息 : CaKen工作室 ==============
==============**文件名 : main.c ==============
==============**作者 : CaKen ==============
==============**版本号 : V1.0 ==============
==============**时间 : 2014.08.23 ==============
==============**功能描述 : 16键电子琴实验测试 ==============
========================================================================================
****************************************************************************************
#include"reg52.h"
#define CaKen_LED P1 //设置LED连接的I/O组
#define CaKen_PWM 501 //设置明亮的总级数(级数过大会出现闪烁)(值域:0~65535)
#define CaKen_MAX 500 //设置最大亮度(值域:小于明亮总级数)
#define CaKen_MIN 1 //设置最小亮度(值域:明亮大于等于1,小于最大亮度)
sbit CaKen_KEY_ADD = P3^0; //亮度加
sbit CaKen_KEY_DEC = P3^1; //亮度减
***************************************************************************************
函数名:延时程序
调 用:delay();
参 数:
返回值:
结 果:
备 注: 0.1ms延时程序(12MHz 10倍于51单片机速度时)
****************************************************************************************/
void delay (unsigned int a)
{
unsigned char i;
while( --a != 0)
{
for(i = 0; i < 12; i++);
}
}
***************************************************************************************
函数名:LED显示程序
调 用:Display();
参 数:CaKen
****************************************************************************************/
void Display(unsigned int CaKen) //显示程序(50ms的PWM宽度)
{
CaKen_LED=0x00; //LED小灯亮
delay(CaKen); //延时a的长度
CaKen_LED=0xff; //LED小灯灭
delay(CaKen_PWM-CaKen); //延时总PWM长度减a
}
***************************************************************************************
函数名:main
备 注:
****************************************************************************************/
void main()
{
unsigned int k=1; //初始化LED的亮度
while(1)
{
Display(k);
if(CaKen_KEY_ADD==0) //如果按键按下则继续
{
delay(20); //消抖 延时20mS
if(CaKen_KEY_ADD==0) //如果按键按下则继续
{
k++;
if(k>CaKen_MAX)
{
k=CaKen_MAX;
}
}
}
if(CaKen_KEY_DEC==0) //如果按键按下则继续
{
delay(20); //消抖 延时20mS
if(CaKen_KEY_DEC==0) //如果按键按下则继续
{
k--;
if(k
{
k=CaKen_MIN;
}
}
}
}
}