单片机/MCUwilliam hill官网
直播中

萧蔼晨

7年用户 975经验值
私信 关注
[问答]

求分享c语言的51单片机流水灯循环流水程序

[i][i][i][i]
  c语言 的51单片机流水灯循环流水程序   

回帖(1)

唐晓莉

2023-10-18 09:13:24
51系列是8位机,其IO都是映射到P0、P1之类上的,每个P0、P1等等都对应8个管脚,每个管脚可以作为一个开关的控制量,从而实现多个LED之类的控制。
所谓流水循环灯,就是让组成循环的IO脚相应管脚一次实现开关打开状态,即去修改对应的P0、P1的值(定时循环修改),修改值的次序也是依据一定的顺序,最简单的在比如8个LED的循环流水灯,可以假定是P0对应的管脚,就是让P0=0x01然后在定时器作用下循环左移(右移)操作而已。


如果是超过8bit的,就需要用到数组查表操作更方便,比如用到了P0、P1对应管脚的,
先初始化一个对应P0P1状态的 二维数组,共有16个状态,比如:


Arr[16][2]={ {01}{02}..{0128}{10}{20}...{1280} };
//下面是循环遍历伪语句:
i=0;

while{1}{
    P0=Arr[0];
    P1=Arr[1];
    i++;
    if(i>15) i=0;
   // 下面是延时处理调用
   delay();

}


上面的语句就是循环流水灯的逻辑关键代码啦。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分