找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于89c52RC单片机控制的L298n的程序不受控制的问题

[复制链接]
跳转到指定楼层
楼主
我是小白一名,自己想做一台用摇杆控制的小车,车的结构就做好了,可是程序根本写不好,下面是我写的程序:
1、我把编好的程序放到Protrus里面模拟,但是模拟出来是不受控制
2、我想遥感向前,两个电机同时正转。

单片机源码:
  1. #include <reg52.h>
  2. #define uchar unsigned char //无符号字节型
  3. sbit q = P1^0;//摇杆
  4. sbit h = P1^1;
  5. sbit z = P1^2;
  6. sbit y = P1^3;
  7. sbit L1 = P1^4;//L289n模块
  8. sbit L2 = P1^5;
  9. sbit L3 = P1^6;
  10. sbit L4 = P1^7;

  11. //***延时程序***//
  12. void delay(void)
  13. {
  14.         unsigned int i;
  15.         for(i=5000;i>0;i--);
  16. }

  17. //***无限循环主程序***//
  18. void main()
  19. {

  20. while(1)//无限循环
  21.         {
  22.                 F0=1;
  23.                 {
  24.                   if(q == 1)//如果q完全为高电平
  25.                         {
  26.                       delay();//延时去抖动?
  27.                           if(q == 1)//再一次确认
  28.                                 {
  29.                                 L1 = 0;//L1就是高电平
  30.                                 L2 = 1;//L2就是低电平
  31.                                 L3 = 0;//L3就是高电平
  32.                                 L4 = 1;//L4就是低电平
  33.                                 }
  34.                         }

  35.                 if(h == 1)
  36.                         {
  37.                                 delay();//延时去抖动
  38.                                 if(h == 1)
  39.                                 {
  40.                                 L1 = 1;
  41.                                 L2 = 0;
  42.                                 L3 = 1;
  43.                                 L4 = 0;
  44.                                 }
  45.                         }

  46.                 if(z == 1)
  47.                         {
  48.                                 delay();//延时去抖动
  49.                                 if(z == 1)
  50.                                 {
  51.                                 L1 = 0;
  52.                                 L2 = 1;
  53.                                 L3 = 1;
  54.                                 L4 = 0;
  55.                       }
  56.                         }

  57.                 if(y == 1)
  58.                         {
  59.                                 delay();//延时去抖动
  60.                                 if(y == 1)
  61.                                 {
  62.                                 L1 = 1;
  63.                                 L2 = 0;
  64.                                 L3 = 0;
  65.                                 L4 = 1;
  66.                                 }
  67.                         }
  68.                 }
  69.         }
  70. }
复制代码



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

使用道具 举报

沙发
ID:222498 发表于 2019-1-29 18:03 | 只看该作者
电路模拟的时候是没有按键的可以程序不受控制,自己运行起来哦
回复

使用道具 举报

板凳
ID:164602 发表于 2019-1-30 09:32 | 只看该作者
用的什么摇杆?
从你的程序上看,是数字式的,那就是开关摇杆了,我了解的开关摇杆,输出的是低电平,你的程序都是判断高电平,会不会是这个出问题了?
再看看你的摇杆说明书吧
回复

使用道具 举报

地板
ID:222498 发表于 2019-2-5 15:47 | 只看该作者
HC6800-ES-V2.0 发表于 2019-1-30 09:32
用的什么摇杆?
从你的程序上看,是数字式的,那就是开关摇杆了,我了解的开关摇杆,输出的是低电平,你的 ...

我用的摇杆就是娃娃机的那种,周边是四个微动开关,可以理解成是四个按钮。我搞不懂为怎么是高电平输出的,还有输出段不受摇杆的控制。





回复

使用道具 举报

5#
ID:96682 发表于 2019-2-5 22:05 | 只看该作者
这是普通的游戏机摇杆和开关按键用法无异
回复

使用道具 举报

6#
ID:222498 发表于 2019-2-7 17:28 | 只看该作者
wc86110 发表于 2019-2-5 22:05
这是普通的游戏机摇杆和开关按键用法无异

可以就是这么简单的东西,我的程序就是不能控制,用IF函数是不是不适合??
回复

使用道具 举报

7#
ID:475247 发表于 2019-2-7 23:06 | 只看该作者
摇杆的工作原理是不是同四个独立按键一样,如果这通了,后面不是盘菜了

评分

参与人数 2黑币 +30 收起 理由
站着说话不腰疼 + 15
找人PK + 15

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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