找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1838|回复: 7
收起左侧

自己弄的按键控制led程序有问题请教下哈!

[复制链接]
ID:101443 发表于 2017-11-10 10:28 | 显示全部楼层 |阅读模式
#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工作,也受其他键控制,就这不会怎么想
回复

使用道具 举报

ID:248171 发表于 2017-11-10 20:47 | 显示全部楼层
这个各个板子电路图不一样,只看程序找不出来啊
回复

使用道具 举报

ID:246473 发表于 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;
                }
        }

}
回复

使用道具 举报

ID:248046 发表于 2017-11-10 13:51 | 显示全部楼层
电路图呢
回复

使用道具 举报

ID:155507 发表于 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. }

复制代码
回复

使用道具 举报

ID:111634 发表于 2017-11-10 11:52 | 显示全部楼层
电路也没有,设置也没有,别人怎么帮啊?
回复

使用道具 举报

ID:111634 发表于 2017-11-10 11:51 | 显示全部楼层
先读懂读通正确的程序,否则,在错误中不易转出来。
回复

使用道具 举报

ID:101443 发表于 2017-11-10 11:50 | 显示全部楼层
谢谢,不用了,我加个循环可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表