打印

菜鸟求高手帮忙,第一次发帖。

[复制链接]
1363|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51小刚|  楼主 | 2011-5-20 19:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是个花样流水灯的程序,请问P2是怎么执行的?谢谢!
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar code Pattern_P0[]=
{
        0xfc,0xf9,0xf3,0xe7,0xcf,0x9f
};
uchar code Pattern_P2[]=
{
        0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6
};

void DelayMS(uint x)
{
        uchar t;
        while(x--)
        {
                 for(t=120;t>0;t--);
        }
}

void main()
{
        uchar i;
        while(1)
        {
                 for(i=136;i>0;i--)
                {
                         P0=Pattern_P0[i];
                        P2=Pattern_P2[i];
                        DelayMS(150);
                }       
        }
}

相关帖子

沙发
51小刚|  楼主 | 2011-5-20 19:33 | 只看该作者
对了,P2口是不接线的,我用的是普中的开发板!但屏蔽了P2,又实现不了了

使用特权

评论回复
板凳
liang7143| | 2011-5-20 20:30 | 只看该作者
for(i=136;i>0;i--)
                {
                         P0=Pattern_P0[i];
                        P2=Pattern_P2[i];
                        DelayMS(150);
                }

Pattern_P0[136]  这里会是一个神马值?

使用特权

评论回复
地板
51小刚|  楼主 | 2011-5-20 20:55 | 只看该作者
不知道,反正是P2没接线,但屏蔽了P2就不行了,那个应该是循环136次,轮流赋值吧!

使用特权

评论回复
5
原野之狼| | 2011-5-20 21:50 | 只看该作者
void main()
{
        uchar i;
        uchar n_p0,n_p2;

       n_p0 = sizeof(Pattern_P0) / sizeof(uchar);
       n_p2 = sizeof(Pattern_P2) / sizeof(uchar);


        while(1)
        {
                 for(i=136;i>0;i--)
                {
                         P0=Pattern_P0[i % n_p0];
                        P2=Pattern_P2[i % n_p2];

                        DelayMS(150);
                }        
        }
}

使用特权

评论回复
6
枫叶求缘| | 2011-5-21 08:18 | 只看该作者
关注

使用特权

评论回复
7
51小刚|  楼主 | 2011-5-21 21:12 | 只看该作者
这个程序是可以执行的,而且改了i的初值会出错的,花样正常,不像是错误的程序

使用特权

评论回复
8
yqp0424| | 2011-5-21 23:51 | 只看该作者
数组越界了吧。。。

使用特权

评论回复
9
yuyi21ic| | 2011-5-22 11:59 | 只看该作者
是不是故意让数组越界,得到未知的数据进而看到“花样”流水灯?:lol

使用特权

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

本版积分规则

6

主题

943

帖子

1

粉丝