************************** 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;
}
}
}
}
}
=======================================================================================
------------------- CaKen工作室 原創作品 --------------------
------------------- CaKen工作室 版權所有 --------------------
========================================================================================
分享: [分享到微米]