用c语言怎样能实现当51单片机p1.0=1,则p1.2=1,并保持,直到p1.1=1时,p1.2=0并跳出循环?

 我来答
cjj796
推荐于2018-04-19 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3467万
展开全部
基本的程序过程,你试试吧,有问题再问:
while(1)
{
    if(P1.0==1)
        P1.2=1;
    if(P1.1==1)
    {
        P1.2=0;    
        break;   //跳出循环
     }                
}
追问
我之前就是编的这个,编译的时候警告p1.2=1和p1.2=0这两个语句无效吧
追答
#include <at89x51.H>

sbit P10=P1^0;  //位定义,提前声明一下
sbit P11=P1^1;  //位定义,提前声明一下
sbit P12=P1^2;  //位定义,提前声明一下

void main()
{

  while(1)
  {
    if(P10==1)
        P12=1;

    if(P11==1)
    {
        P12=0;    
        break;   //跳出循环
     }                
  }
}
蛋倒捣蛋
2013-09-18 · TA获得超过361个赞
知道小有建树答主
回答量:142
采纳率:50%
帮助的人:48.8万
展开全部
方法有很多,最简单的
while( 1 )
{
if (p1.0 == 1)
p1.2 = 1;
else
{
p1.2 = 0;
break;
}
}
最简单,但是实时性很差。要实时性好的话用中断,我就不写了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
追四大漫的人
2013-09-18 · TA获得超过554个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:367万
展开全部
while((P1^0==1)&&(P1^!=1)) P1^2=1;
if(P1^1==1) P1^2=0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abc444873863
2013-09-18 · 超过16用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:40.4万
展开全部
没明白你的意思。你都说了当p1.0=1,则p1.2=1,并保持。后面的p1.2=0哪里来的?硬件上的么?
追问
后面的p1.2=0是当p1.1口发出高电平时,p1.2口由高电平跳为低电平
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式