标题: 自己弄的按键控制led程序有问题请教下哈! [打印本页]

作者: aa3314xxx    时间: 2017-11-10 10:28
标题: 自己弄的按键控制led程序有问题请教下哈!
#include <reg52.h>
sbit s1 = P3^5;
sbit s2 = P3^4;
sbit s3 = P3^3;


sbit led1 = P1^0;
sbit led2 = P1^1;
sbit led3 = P1^2;


sbit k1 = P1^5;
sbit k2 = P1^6;
sbit k3 = P1^7;


void main()
{
led1=0;
k1=0;


if(s1==0)
{
led1=0;
led2=1;
led3=1;
k1=0;
k2=1;
k3=1;
}

if(s2==0)
{
led1=1;
led2=0;
led3=1;
k1=1;
k2=0;
k3=1;
}

if(s3==0)
{
led1=1;
led2=1;
led3=0;
k1=1;
k2=1;
k3=0;
}

}

怎么改可以开机led1和k1亮,按下s2和s3可以控制它关了?在main和if之间加可以做到开机亮但不受2.3按键控制它关。对于单片机我不是学这个的,但玩玩有点理解自己弄了个控制程序做个小东西,但我想让他开机led1和k1工作,也受其他键控制,就这不会怎么想

作者: aa3314xxx    时间: 2017-11-10 11:50
谢谢,不用了,我加个循环可以了
作者: zl2168    时间: 2017-11-10 11:51
先读懂读通正确的程序,否则,在错误中不易转出来。
作者: zl2168    时间: 2017-11-10 11:52
电路也没有,设置也没有,别人怎么帮啊?
作者: angmall    时间: 2017-11-10 12:33

  1. #include <reg52.h>                  //此文件中定义了单片机的一些特殊功能寄存器

  2. sbit s1 = P3^5;
  3. sbit s2 = P3^4;
  4. sbit s3 = P3^3;

  5. sbit led1 = P1^0;
  6. sbit led2 = P1^1;
  7. sbit led3 = P1^2;

  8. sbit k1 = P1^5;
  9. sbit k2 = P1^6;
  10. sbit k3 = P1^7;


  11. void main()
  12. {
  13.         led1=0;
  14.         k1=0;

  15.         while(1) //加这个可以做到开机亮led1和k1亮
  16.         {
  17.                 if(s1==0)
  18.                 {
  19.                         led1=0;
  20.                         led2=1;
  21.                         led3=1;
  22.                         k1=0;
  23.                         k2=1;
  24.                         k3=1;
  25.                 }

  26.                 if(s2==0)
  27.                 {
  28.                         led1=1;
  29.                         led2=0;
  30.                         led3=1;
  31.                         k1=1;
  32.                         k2=0;
  33.                         k3=1;
  34.                 }

  35.                 if(s3==0)
  36.                 {
  37.                         led1=1;
  38.                         led2=1;
  39.                         led3=0;
  40.                         k1=1;
  41.                         k2=1;
  42.                         k3=0;
  43.                 }
  44.         }

  45. }

复制代码

作者: ktoto2011    时间: 2017-11-10 13:51
电路图呢
作者: 天0    时间: 2017-11-10 14:40
#include <reg52.h>                  //此文件中定义了单片机的一些特殊功能寄存器

sbit s1 = P3^5;
sbit s2 = P3^4;
sbit s3 = P3^3;

sbit led1 = P1^0;
sbit led2 = P1^1;
sbit led3 = P1^2;

sbit k1 = P1^5;
sbit k2 = P1^6;
sbit k3 = P1^7;


void main()
{
        led1=0;  //根据你的电路图改这里
        k1=0;   //根据你的电路图改这里

        while(1) //加这个可以做到开机亮led1和k1亮
        {
                if(s1==0)
                {
                        led1=0;
                        led2=1;
                        led3=1;
                        k1=0;
                        k2=1;
                        k3=1;
                }

                if(s2==0)
                {
                        led1=1; //根据你的电路图改这里
                        led2=0;
                        led3=1;
                        k1=1;
                        k2=0;
                        k3=1;
                }

                if(s3==0)
                {
                        led1=1;
                        led2=1;
                        led3=0;
                        k1=1;
                        k2=1;
                        k3=0;
                }
        }

}
作者: hulala302    时间: 2017-11-10 20:47
这个各个板子电路图不一样,只看程序找不出来啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1