新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > LED闪烁彩虹小夜灯带呼吸灯

LED闪烁彩虹小夜灯带呼吸灯

作者: 时间:2016-11-29 来源:网络 收藏
/*********************************************************************************************函数名:PWM0占空比设置函数调 用:PWM0_set();参 数:0x00~0xFF(亦可用0~255)返回值:无结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可/**********************************************************************************************/void PWM0_set (unsigned char a){CCAP0L= a; //设置值直接写入CCAP0LCCAP0H= a; //设置值直接写入CCAP0H}/**********************************************************************************************//*********************************************************************************************函数名:主函数调 用:无参 数:无返回值:无结 果:程序开始处,无限循环备 注:/**********************************************************************************************/void main (void){unsigned char g;PWM_init(); //PWM初始化KEY1 = 1;while(1){if(STATUS){ unsigned int i;unsigned int temp;while(1){temp=0x01;for(i=0;i<8;i++){ //8个流水灯逐个闪动DY_PORT=~temp;delay(DY_SPEED); //调用延时函数temp<<=1;}temp=0x80;for(i=0;i<8;i++){ //8个流水灯反向逐个闪动DY_PORT=~temp;delay(DY_SPEED); //调用延时函数temp>>=1;}temp=0xFE;for(i=0;i<8;i++){ //8个流水灯依次全部点亮DY_PORT=temp;delay(DY_SPEED); //调用延时函数temp<<=1;}temp=0x7F;for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮DY_PORT=temp;delay(DY_SPEED); //调用延时函数temp>>=1;}}}for(g=0x00;g<0xff;g++){PWM0_set(g); //设置PWM占空比delay(6);}for(g=0xff;g>0x00;g--){PWM0_set(g); //设置PWM占空比delay(6);}if(!KEY1 && !exted){exted=0;STATUS=!STATUS;exted=1;}else if(KEY1){exted=0;} }}/**********************************************************************************************/

上一页 1 2 下一页

评论


技术专区

关闭