使用for循环控制led流水灯为 比较基础的单片机知识掌握,由于此led灯为低电平有效,所以先置为0X01后取反可得到最低位的灯点亮二进制数为:0111 1111,则使用移位将第二此闪烁变成0X02取反后为:1011 1111,以此类推当LED=8时,令LED=0;可得到led灯循环流水。
#include<STC15F2K60S2.H>
unsigned char LED;
void Delayms(int ms);
void main(void)
{
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
while(1)
{
for(LED=0;LED<8;LED++)
{
P0=~(0X01<<LED);
Delayms(1000);
}
if(LED==8)LED=0;
}
}
void Delayms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=845;j>0;j--);
}