找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机直流电机正反转程序存在的问题

[复制链接]
跳转到指定楼层
楼主
ID:1045846 发表于 2024-3-17 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这个马达正反转程序是我用论坛里的红绿灯程序改的,存在以下问题:1.开机直接就启动了,需求是按下P2^0才启动,P2^0是点动开关;
2.反转后停止,现在是直接就停止了,需求在停止需保持1秒再断开;

另外有点不理解的是
case 1:
start=1;cw=0;ccw=1;stop=1;这里启动不是关闭的吗,为什么会通呢。

各位帮忙看看是需要改动哪里。
感谢!
单片机源程序如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit start = P2^0;  //启动
  5. sbit cw = P2^1;     //马达正转
  6. sbit ccw = P2^2;    //马达反转
  7. sbit stop = P2^3;   //马达停止


  8. uchar Time_Count = 0,Flash_Count = 0,Operation_Type = 1;

  9. void T0_INT() interrupt 1
  10. {
  11.          TH0 = -50000/256;
  12.         TL0 = -50000%256;
  13.         switch(Operation_Type)
  14. {
  15.                 case 1:
  16.                         start=1;cw=0;ccw=1;stop=1;      
  17.                         if(++Time_Count != 10) return;
  18.                         Time_Count=0;
  19.                         Operation_Type = 2;
  20.                         break;
  21.                 case 2:
  22.                         start=1;cw=1;ccw=0;stop=1;
  23.                         if(++Time_Count != 100) return;
  24.                         Time_Count=0;
  25.                         Operation_Type = 3;
  26.                         break;
  27.                 case 3:
  28.                         start=1;cw=1;ccw=1;stop=0;
  29.                         if(++Time_Count != 100) return;
  30.                         Time_Count=0;
  31.                         Operation_Type = 4;
  32.                         break;        
  33.                 case 4:
  34.                         start=1;cw=1;ccw=1;stop=1;
  35.                         if(++Time_Count != 10) return;
  36.                         Time_Count=0;
  37.                         break;        
  38.         }
  39. }


  40. void main()
  41. {
  42.         TMOD = 0x01;
  43.         IE = 0x82;
  44.         TR0 = 1;
  45.         while(1);
  46. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2024-3-17 21:42 | 只看该作者
1)没有按键操作。2)Operation_Type在中断里面自动的从1增加到4然后保持4不变了,其他地方没有修改的语句。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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