打印

大神帮我看看这个流水灯的程序好吗?莫名其妙的问题

[复制链接]
1094|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beyouer|  楼主 | 2014-8-13 01:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main()
{
        unsigned char i, temp;
    P2 = 0xfe;
        temp = 0xfe;
        hc595(0xfe);
        while(1)
    {
                for(i = 0; i < 7; i++)
                {
                        P2 = _crol_(P2, 1);
                        temp = _crol_(temp, 1);
                        hc595(temp);
                        delay(250);
                }
                for(i = 0; i < 7; i++)
                {
                        P2 = _cror_(P2, 1);
                        temp = _cror_(temp, 1);
                        hc595(temp);
                        delay(250);
                }                                  
        }
}


void main()
{
        unsigned char i, temp;
    P2 = 0xfe;
        temp = 0xfe;
        hc595(0xfe);
        while(1)
    {
                for(i = 0; i < 7; i++)
                {
                        P2 = _crol_(P2, 1);
                        temp = _crol_(temp, 1);
                        hc595(temp);
                        delay(250);
                }
                for(i = 0; i < 7; i++)
                {
                        P2 = _cror_(P2, 1);
                        temp = P2;
                        hc595(temp);
                        delay(250);
                }                                  
        }
}

第一个led是普通P2口的灯,第二个是用74h595控制的,我想问的是,为什么第一个程序走到第二个for循环后P2正常移位,但是temp就是不懂,进调试看了下,temp在第一个for中好好的,在第二个就一直等于第一个for最后的值0x7f不动了,不知道为什么,如果改成第二个程序也就是把temp直接赋值P2移位后的值就能正常滚动```好莫名其妙啊``求大神解答

相关帖子

沙发
xyz549040622| | 2014-8-13 08:19 | 只看该作者
说了半天,还是不懂说的什么。。。

使用特权

评论回复
板凳
beyouer|  楼主 | 2014-8-13 10:46 | 只看该作者
xyz549040622 发表于 2014-8-13 08:19
说了半天,还是不懂说的什么。。。

就是第二排的led只左移不右移啊```
第一排也就是P2正常移动
第二排的led是通过74h595控制的

使用特权

评论回复
地板
dirtwillfly| | 2014-8-13 11:52 | 只看该作者
估计你的hc595(temp)函数有问题吧

使用特权

评论回复
5
beyouer|  楼主 | 2014-8-14 13:55 | 只看该作者
dirtwillfly 发表于 2014-8-13 11:52
估计你的hc595(temp)函数有问题吧

如果这个函数有问题为什么第一个for中的左移正常呢?函数是没有任何问题的

使用特权

评论回复
6
NE5532| | 2014-8-14 15:44 | 只看该作者
因为你的hc595函数传入了不同的参数啊,楼主这种无厘头的问问题方法找到答案的可能性很小,还是读《程序调试黑宝书》好了,在侃单片机版面精华里找。

使用特权

评论回复
7
mmuuss586| | 2014-8-14 20:18 | 只看该作者
前面的循环和后面的循环,TEMP的处理不一样;

前面移了2次,后面移了1次;
自己好好查查程序哪里出错了;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝