eclipse的开发网站开发,站长之家alexa排名怎么看,旺道seo系统,营销型 手机网站任务
设计8路节日彩灯控制器#xff0c;要求在Protues中设计接口电路图#xff0c;并编程实现节日彩灯闪烁方式的控制#xff1a;
通过P1.0到P1.2来控制3个按键。3个按键分别对应3种彩灯闪烁方式。彩灯闪烁方式分别为#xff1a;从上往下的循环、从下往上以及从中间向两边…任务
设计8路节日彩灯控制器要求在Protues中设计接口电路图并编程实现节日彩灯闪烁方式的控制
通过P1.0到P1.2来控制3个按键。3个按键分别对应3种彩灯闪烁方式。彩灯闪烁方式分别为从上往下的循环、从下往上以及从中间向两边再从两边到中间三种流水方式。
代码
#includereg52.h
#includeintrins.h //包含循环左、右移位函数的头文件_crol_, _cror_
sbit S1P1^0;
sbit S2P1^1;
sbit S3P1^2;
unsigned char keyval;
void key_scan(void); //按键扫描取键值
void forward(void); //从上到下闪烁
void backward(void); //从下到上闪烁
void middleward(void); //从中间到两边再从两边到中间
void delay10ms(void); //按键扫描延时防抖动
void led_delay(void);
void main(void)
{keyval0; //键盘初始化为0while(1){key_scan(); //调用键盘扫描函数switch(keyval){case 1:forward(); //键值为1从上到下闪烁break;case 2:backward(); //键值为2从下到上闪烁break;case 3:middleward(); //键值为3从中间到两边再从两边到中间break;}}
}
void key_scan(void)
{P10xff;if((P10x0f)!0x0f) //检测到有键按下{delay10ms();if(S10)keyval1;if(S20)keyval2;if(S30)keyval3;}
}
void forward(void)
{P20xfe; //1led_delay();P20xfd; //2led_delay();P20xfb; //3led_delay();P20xf7; //4led_delay();P20xef; //5led_delay();P20xdf; //6led_delay();P20xbf; //7led_delay();P20x7f; //8led_delay();
}void backward(void)
{P20x7f; //8led_delay();P20xbf; //7led_delay();P20xdf; //6led_delay();P20xef; //5led_delay();P20xf7; //4led_delay();P20xfb; //3led_delay();P20xfd; //2led_delay();P20xfe; //1led_delay();
}void middleward(void)
{P20xe7;led_delay();P20xdb;led_delay();P20xbd;led_delay();P20x7e;led_delay();P20xbd;led_delay();P20xdb;led_delay();
}
void led_delay(void)
{unsigned char i,j;for(i0;i220;i)for(j0;j220;j);
}void delay10ms(void)
{ unsigned char i,j;for(i0;i100;i)for(j0;j100;j);
}
仿真
键值为1从上到下闪烁 键值为2从下到上闪烁 键值为3从中间到两边再从两边到中间