按键开关

[复制链接]
2765|7
 楼主| qingfeng17017 发表于 2011-9-23 09:24 | 显示全部楼层 |阅读模式
帮忙改错啊。LED2个一红,一绿。还有一个K。K是接地的。通电时候绿LED一直亮。当按下K后绿的不亮红得亮

#include"reg51.h"
#define K p0^7
#define LED_BLUE p0^0
#define LED_RED p0^4
void scan_key(void);//用来控制LED_RED
void DelayMS(unsigned int x);
void main()
{
while(1)
{
if(K==0)
LED_BLUE=1;
scan_key();
else
LED_BLUE=0;
}
}
void scan_key(void)
{
unsigned int i;
for(i=0;i<10000;i++);
LED_RED=0;
DelayMS(50);
}
//延时
void DelayMS(unsigned int x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| qingfeng17017 发表于 2011-9-23 09:26 | 显示全部楼层
各位大侠帮忙看看。我新手自己写的。帮忙指导下
ayb_ice 发表于 2011-9-23 10:21 | 显示全部楼层
标准的51 P0口要加上拉电阻
ayb_ice 发表于 2011-9-23 10:27 | 显示全部楼层
#include"reg51.h"

//#define K p0^7
//#define LED_BLUE p0^0
//#define LED_RED p0^4

sbit K        = P0^7;
sbit LED_BLUE = P0^0;
sbit LED_RED  = P0^4;

#define LED_ON                0
#define LED_OFF                (!LED_ON)

void scan_key(void);//用来控制LED_RED
void DelayMS(unsigned int x);

void main()
{
        while(1)
        {
                if(!K){
                        LED_RED  = LED_ON;
                        LED_BLUE = LED_OFF;
                }else{
                        LED_RED  = LED_ON;
                        LED_BLUE = LED_ON;
                }

                DelayMS(10);
        }
}


//延时
void DelayMS(unsigned int x)
{
        uchar i;

        while(x--) for(i=0;i<120;i++);
}
 楼主| qingfeng17017 发表于 2011-9-23 20:27 | 显示全部楼层
谢谢你的回答
 楼主| qingfeng17017 发表于 2011-9-23 20:33 | 显示全部楼层
if(!K){
                        LED_RED  = LED_ON;
                        LED_BLUE = LED_OFF;
                   }else{
                        LED_RED  = LED_ON;//.....
                        LED_BLUE = LED_ON;//.....

解释下//。。。。。那2行好吗???
ayb_ice 发表于 2011-9-24 08:12 | 显示全部楼层
if(!K){
                        LED_RED  = LED_ON;
                        LED_BLUE = LED_OFF;
                   }else{
                        LED_RED  = LED_ON;//.....
                        LED_B ...
qingfeng17017 发表于 2011-9-23 20:33

根据你的要求做的
hjs1618 发表于 2011-9-24 16:38 | 显示全部楼层
ayb_ice写的可读性真是好!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部