注册 登录
编程论坛 单片机编程

麻烦各位进来看下,谢谢了

zhang6728030 发布于 2010-12-22 19:16, 799 次点击
测试开关K0,当K0开关开置ON时,6个数码管同时亮“8“,当开关拨置OFF时,6个数码管同时灭,同时亮地交替进行。
我自己写的代码如下,请问有问题么??谢谢啦!!
#include<reg51.h>
void melay(unsigned int t)
{
    unsigned int i;
    for(i = 0; i < t; i++);
}

sbit P_1 = P1^0;
sbit P_2 = P1^1;
sbit P_3 = P1^2;
sbit P_4 = P1^3;
sbit P_5 = P1^4;
sbit P_6 = P1^5;

void main()
{
    while(1)
    {
        if(P_1 = 1)
        {
            P_1;
            melay(20000);
               P_2;
            melay(20000);
               P_3;
            melay(20000);
               P_4;
            melay(20000);
               P_5;
            melay(20000);
               P_6;
            melay(20000);
        }
        if(P_1 = 0)
        {
            P_1 = 1;
            for( ; ; )
             {
              P_1 != P_1;
              melay(20000);
                 P_2 != P_2;
              melay(20000);
                 P_3 != P_3;
              melay(20000);
                 P_4 != P_4;
              melay(20000);
                 P_5 != P_5;
              melay(20000);
                 P_6 != P_6;
              melay(20000);
            }
        }
    }
            
3 回复
#2
C帅2011-01-08 00:25
首先,主函数少了个“}”,其次 if(P_1 = 1)应该是 if(P_1 == 1)
不是很明白你要实现的功能
 melay(20000);
               P_2;
            melay(20000);
               P_3;
            melay(20000);
               P_4;
            melay(20000);
               P_5;
            melay(20000);
               P_6;
上述语句中,虽然上电后引脚都是高电平,但最好给P_2几个口都赋下值,之后P_*!=P_*就不明白你要实现啥功能了。
#3
hongwenfa2011-01-09 21:38
楼上的说没错。
==是判断,=是赋值。
我是新手,请多指教
#4
笑笑的花红了2012-01-20 14:40
P_1;
            melay(20000);
               P_2;
            melay(20000);
               P_3;
            melay(20000);
               P_4;
            melay(20000);
               P_5;
            melay(20000);
               P_6;
            melay(20000);
求解
1