打印

帮忙看下程序怎么K2.K3没有动作

[复制链接]
1228|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
麦才洋|  楼主 | 2013-11-18 10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char counter;
  sbit K1=P2^1;        
  sbit K2=P2^2;      
  sbit K3=P2^3;        
  sbit LED1=P0^2;                
  sbit LED2=P0^1;      
  sbit LED3=P0^3;      
  sbit RELAY=P0^4;   
  sbit RELAY1=P0^5;     

/********延时********/
void DelayMS(uint ms)
{
   uchar t;
     while(ms--)
            for(t=0;t<120;t++);
    }
/********主程序********/
void main()
   {
               P0=0x100;      
             P2=0xff;               
                    LED2=K2;         
             LED3=K3;           
  while(1)
   {

   if(K1==0)                         
     {
while(K1==0);         
    counter++;         
         if(counter>=20)     
      RELAY=1;         
                LED1=~LED1;      
         if(counter>=10)   
      RELAY1=1;           
      DelayMS(10);      //延时20MS
                {
                  }
       }
     }
   }

相关帖子

沙发
ayb_ice| | 2013-11-18 11:06 | 只看该作者
你就读一次(赋值给了LED),当然不行了

使用特权

评论回复
板凳
ningling_21| | 2013-11-18 11:21 | 只看该作者
上电只运行一次,后来就不执行了...

要放在循环体当中才行...

使用特权

评论回复
地板
chenyu988| | 2013-11-18 13:48 | 只看该作者
是啊,while(1)里只处理了LED1啊

使用特权

评论回复
5
鼹鼠| | 2013-11-18 14:24 | 只看该作者
首先P0=0x00--你写成了p0= 0x100; 还有k2  k3没有动作如楼上的所说你的主函数的while循环中就没赋给k2k3操作的代码。。。

使用特权

评论回复
6
airwill| | 2013-11-19 08:55 | 只看该作者
是的, 主循环里就没有检测 K2,K3 的代码.
代码编排好乱, 是不是网页的问题, 看得眼花

使用特权

评论回复
7
tergy2012| | 2013-11-19 11:26 | 只看该作者
路过学习的。。。

使用特权

评论回复
8
hyh19890917| | 2013-11-20 21:15 | 只看该作者
写代码最重要的是细心,不然经常被自己搞死。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

25

帖子

0

粉丝