找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2821|回复: 4
打印 上一主题 下一主题
收起左侧

哪位大师能帮小弟看一下程序问题吗

[复制链接]
跳转到指定楼层
楼主
ID:51735 发表于 2013-7-11 18:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1. 启动键   低电平输入启动运行程序
2.  P2.0  输出低电平  3秒内要求P1.1收到低电平,如果3S计时到后没有收到低电平
P2.1 输出低电平2秒高电平2秒闪动,P2.2输出低电平
停止下一步程序操作直到按停止键停止
如果P1.13S内收到低电平, 则延时1SP2.0输出高电平  
3.   P2.0输出高电平时,如果P1.1 3S计时后没有收到高电平
P2.1 输出低电平2秒高电平2秒闪动, P2.2输出低电平   
停止下一步操作
如果P1.13S内收到高电平,延时1S  再运行23步循环处理。
4.   P1.2 为停止键  所有端口输出高电平。
每一步按停止键都有效。
  STC89C52RC 芯片 40PIN   


#include<at89x52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

void delay(uint z)//1MS 延时
{
   uint a,b;
   for(a=z;a>0;a--)
     for(b=120;b>0;b--);
}

bit biaozhi;
bit biaozhi1;
main()
{
uint  i;
while(1)
{
if(P1_0==0) //开始按键按下
{
  delay(10);
  if(P1_0==0)
  {
   biaozhi=1;
  }
}
if(biaozhi)//按了按键开始运行
{
   P2_0=0;
   biaozhi1=0;
while(P1_1==0);
  for(i=0;i<300;i++)//检测3秒内是否收到低电平
  {
   delay(10);
   if(P1_1==0)
   {
    biaozhi1=1;
    break;
   }
    if(P1_2==0)
   {
     delay(10);
     if(P1_2==0)
     {
      P1_0=1;
      P1_1=1;
      P1_2=1;
      P2_0=1;
      P2_1=1;
      P2_1=1;
      biaozhi=0;
      break;
     }
   }
  }
if(biaozhi1==0)//3秒没有低电平P21输出低电平并停止
{
  P2_1=0;
  while(1)
  {
   if(P1_2==0)
   {
     delay(10);
     if(P1_2==0)
     {
      P1_0=1;
      P1_1=1;
      P1_2=1;
      P2_0=1;
      P2_1=1;
      P2_1=1;
      biaozhi=0;
      break;
     }
   }
  
  }
}
if(biaozhi1==1) //3秒有低电平延时1秒后P20高电平 再延时1秒 然后回到2循环
{
   for(i=0;i<100;i++)// 延时1秒
  {
     delay(10);
     if(P1_2==0)
    {
     delay(10);
     if(P1_2==0)
     {
      P1_0=1;
      P1_1=1;
      P1_2=1;
      P2_0=1;
      P2_1=1;
      P2_1=1;
      biaozhi=0;
      break;
     }
   }
}
{
   P2_0=1;
   biaozhi1=0;
while(P1_1==1);
  for(i=0;i<300;i++)//检测3秒内是否收到低电平
  {
   delay(10);
   if(P1_1==1)
   {
    biaozhi1=1;
    break;
   }
    if(P1_2==0)
   {
     delay(10);
     if(P1_2==0)
     {
      P1_0=1;
      P1_1=1;
      P1_2=1;
      P2_0=1;
      P2_1=1;
      P2_1=1;
      biaozhi=0;
      break;
     }
   }
  }
if(biaozhi1==1)//3秒没有低电平P21输出低电平并停止
{
  P2_1=0;
  while(1)
  {
   if(P1_2==0)
   {
     delay(10);
     if(P1_2==0)
     {
      P1_0=1;
      P1_1=1;
      P1_2=1;
      P2_0=1;
      P2_1=1;
      P2_1=1;
      biaozhi=0;
      break;
     }
   }
  
  }
}
if(biaozhi1==0) //3秒有低电平延时1秒后P20高电平 再延时1秒 然后回到2循环
{
   for(i=0;i<100;i++)// 延时1秒
  {
     delay(10);
     if(P1_2==1)
    {
     delay(10);
     if(P1_2==1)
     {
      P1_0=1;
      P1_1=1;
      P1_2=1;
      P2_0=1;
      P2_1=1;
      P2_1=1;
      biaozhi=0;
      break;
     }
   }
}
   P2_0=1;
  for(i=0;i<100;i++)
  {
    delay(10);
     if(P1_2==0)
    {
     delay(10);
     if(P1_2==0)
     {
      P1_0=1;
      P1_1=1;
      P1_2=1;
      P2_0=1;
      P2_1=1;
      P2_1=1;
      biaozhi=0;
      break;
     }
   }
}
}
  
}

}
}
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:7485 发表于 2013-7-11 20:36 | 只看该作者
看什么?有问题吗。
回复

使用道具 举报

板凳
ID:49478 发表于 2013-7-14 22:58 | 只看该作者
额,,,,,,,,,,,
回复

使用道具 举报

地板
ID:52066 发表于 2013-7-27 00:38 | 只看该作者
先加个:P0_1=P0^1,看还木有错
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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