有关P2口和P3口流水灯的求助!!!

2020-02-01 16:25发布

叙述:单片机P2口接了8个led,P3^2---P3^5接了4个led,它们依次命名为d1---d12
要求:实现d1到d12的流水灯效果
我的程序:
#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int  uint16;
main()
{        uint8 j,k;
        uint16 n;

        P0=0xff;
        P2=0xff;
        P3=0xff;
        P2=0x00;
        P3=0xc3;
        for(n=0;n<20000;n++);
        P2=0xff;
        P3=0xff;
        for(n=0;n<20000;n++);
        P2=0x00;
        P3=0xc3;
        for(n=0;n<20000;n++);
        P2=0xff;
        P3=0xff;
        for(n=0;n<20000;n++);                 
        P2=0x00;
        P3=0xc3;
        for(n=0;n<20000;n++);
        P2=0xff;
        P3=0xff;
        for(n=0;n<20000;n++);
        while(1)
        {
                if(8==j)
                {j=0;}
                P2=~(1<<j++);
                for(n=0;n<50000;n++);
                if(6==k)
                {k=2;}
                P3=~(1<<k++);
                for(n=0;n<50000;n++);
        }                        
}
恳请指出我的错误在哪里?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
jswd0810
1楼-- · 2020-02-01 17:36
你应该是先把P2循环完了后再去执行P3口吧,你程序里是顺序执行的
武洋洋
2楼-- · 2020-02-01 17:42
jswd0810 发表于 2012-12-30 11:58
你应该是先把P2循环完了后再去执行P3口吧,你程序里是顺序执行的

单片机课设核心板原理图.pdf (29.13 KB, 下载次数: 10) 2012-12-30 12:50 上传 点击文件名下载附件

应该是这样的;
可是我试了好几次都不行;
能给个MODEL吗?
opoop130
3楼-- · 2020-02-01 19:50
j k没有赋初值吧
pengxin213
4楼-- · 2020-02-01 23:46
while(1)
        {
                if(8==j) j=0;
                else{

                P2=~(1<<j++);
                for(n=0;n<50000;n++); }

                if(6==k) k=2;
                else{
                P3=~(1<<k++);
                for(n=0;n<50000;n++); }
        }

楼主C语言功底要加强啊
武洋洋
5楼-- · 2020-02-02 03:04
 精彩回答 2  元偷偷看……
jswd0810
6楼-- · 2020-02-02 05:58
while(1)
{
    unsigned char i;
   P3=0xff;
   if(i=0;i<8;i++)
  {
               P2=~(1<<i);
                for(n=0;n<50000;n++);
}
      P2=0xff;
    if(i=0;i<4;i++)
   {
               P3=~(1<<i);
                for(n=0;n<50000;n++);
}
}

一周热门 更多>