找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 933|回复: 0
收起左侧

关于C语言for循环的问题,帮忙解惑

[复制链接]
ID:908996 发表于 2021-5-26 15:01 | 显示全部楼层 |阅读模式
8*16的点阵,74HC154管16列,两个74HC595各管8行。设计的是led从左向右然后从右向左来回往返点亮。
代码如下:
//第一个for循环图案向右移动
for (col=0;col<15;col++){
                P2=col;
                SendDataRed(tempred);
                RCK_5451 = 0;
                RCK_5452 = 0;
                RCK_5451 = 1;
                RCK_5452 = 1;
                Delay(300);
        }
        //CleanAll();   //清除74HC595信息
        //P2=0xff;   //清除74HC154信息
//第二个for循环图案向左移动        
        for (col=15;col>0;col--){
                P2=col;

                SendDataRedLeft(tempred);
                RCK_5451 = 0;
                RCK_5452 = 0;
                RCK_5451 = 1;
                RCK_5452 = 1;
                Delay(300);
        }


现象:
1、当两个for循环或第一for循环的col设为16时,图案向左移动到最后第16列的时候,最左边第一列会亮一次,然后开始第二个for循环,图案开始从右向左移动;

2、当第一个for循环col设为16,第二个for循环设为col=15;col<=0;col--的时候,图案从左向右移动到第16列后,图案就开始从右向左移动,并且保持不变;

3、只有当两个循环的col都设为15的时候,图案就是从左向右,从右向左往返运动。

没有搞清楚原因,各位能否给解释一下?谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表