标题: 单片机按键控制电机正反转 [打印本页]

作者: 陈润源home    时间: 2019-2-13 19:26
标题: 单片机按键控制电机正反转
如题所示

讲述用按键控制电机的正反转

下面请各位爷入席就坐,表演即将开始。

要求:按下S1电机正转(PNP驱动,12V继电器控制)
          按下S2电机反转
          按下S3电机停止 为了方便仿真,我用的是5V继电器以及5V直流电机
直接上仿真图


单片机源程序如下:
  1. /**************电机正反转*******************/
  2. #include<reg51.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit Fwd=P2^0;
  6. sbit Rev=P2^1;
  7. sbit s1=P1^0; //电机正转
  8. sbit s2=P1^1; //电机反转
  9. sbit s3=P1^2; //电机停止

  10. /**********延时函数**************/
  11. void delayms(uint xms)
  12. {
  13.    uint i,j;
  14.    for(i=xms;i>0;i--)
  15.    for(j=110;j>0;j--);
  16. }

  17. void key()
  18. {
  19.   /*****电机正转*******/
  20.   if(s1==0)
  21.   {
  22.    delayms(50);
  23.    if(s1==0)
  24.    {
  25.             Fwd=1;
  26.          Rev=0;
  27.    }
  28.    while(!s1);
  29.   }

  30.    /*****电机反转*******/
  31.   if(s2==0)
  32.   {
  33.    delayms(50);
  34.    if(s2==0)
  35.    {
  36.             Fwd=0;
  37.          Rev=1;

  38.    }
  39.    while(!s2);
  40.   }

  41.   /*****电机停止*******/
  42.   if(s3==0)
  43.   {
  44.    delayms(50);
  45.    if(s3==0)
  46.    {
  47.             Fwd=1;
  48.          Rev=1;
  49.    }
  50.    while(!s3);
  51.   }

  52. }

  53. /**************主函数**********/
  54. void main()
  55. {
  56.   while(1)
  57.   {
  58.           key();
  59.   }

  60. }
复制代码

所有资料51hei提供下载:
电机正反转.rar (34.9 KB, 下载次数: 67)






作者: Lv1.up    时间: 2022-12-9 16:04
好用啊
作者: fancunwu    时间: 2024-5-3 13:39
S1和S2同时按下会怎么样
作者: Mujianwu    时间: 2025-3-24 16:55





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1