请帮助写个控制电机程序工作的程序!

2019-07-16 02:24发布

本帖最后由 田雨软件客服 于 2013-2-24 23:04 编辑

当P1.1=1 时 电机由静止开始转动10秒,然后停止
当再次P1.1=1时 电机再循环上面的步骤!

我的程序但是不行 请大侠们修改一下。
/*预处理命令*/
#include<reg52.h>    //包含单片机寄存器的头文件
#define uchar unsigned char
#define uint unsigned int
/* 函数申明 -----------------------------------------------*/
void delay_main(uint z);
/* 变量定义 -----------------------------------------------*/
sbit relay=P2^1;  //定义P0^1位为继电器relay的控制位
sbit k1=P1^1;    //定义按键1
/*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
********************************************************************************
*/
void main(void)
{
while(1)
{
if ( k1==1)
{
relay=0; //电机1 关闭
delay_main(1000);
relay=1;
k1=0;
}
}
}
/*
********************************************************************************
** 函数名称 : delay(uint z)
** 函数功能 : 延时函数
********************************************************************************
*/

void delay_main(uint z)//-----------------主延时函数1毫秒
{ uint x,y; for(x=z;x>0;x--)
   for(y=100;y>0;y--);
  }
  


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
1378107154
2019-07-16 08:23
void main(void)
{
while(1)
{
    if (k1)//如果P1.1为1
    {
         delay_main(10); //延时10mS
         if (k1)//如果P1.1还是为1,去除干扰
        {
             relay=0; //开电机
             delay_main(1000);
             relay=1;//关电机
             while(k1);//等待P1.1为0退出,
         }
      }
   }
}

一周热门 更多>