找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1460|回复: 3
收起左侧

想要做一个可以接收LABVIEW发过来的数据对单片机发送给电机脉冲数进行改变的程序。

[复制链接]
ID:637351 发表于 2019-11-26 16:38 | 显示全部楼层 |阅读模式
15黑币
本帖最后由 王文杰 于 2019-11-27 16:09 编辑

我写了一个发脉冲的程序,需要用LABVIEW发送一个数据给程序中的N进行改变。
#include <reg52.h>
#define N 200
sbit PLU = P1^0;
sbit DIR = p1^1;
sbit ENA = P1^2;
void delay(int i)
{
while(i--)
}
  main()
{
  ENA=1;
  DIR=0;
  while(1)
  {
   PLU = 1;
  delay(N);
  PLU = 0;
  delay(N);
  }
  }

回复

使用道具 举报

ID:637351 发表于 2019-11-28 15:15 | 显示全部楼层
我用串口助手发数据过来,为什么产生的波形没有发生变化呢?
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit PLU = P1^0;
sbit DIR = P1^1;
sbit ENA = P1^2;
uchar  flag;
uchar N;

void Initurat()               
{
        SCON = 0X50;
        TMOD = 0X20;
        TH1 = 0Xfa;
        TL1 = 0Xfa;
        EA = 1;
        ES = 1;
        TR1 = 1;
}
void serial() interrupt 4         
{
        ES=0;
        if(RI)
        {
        N = SBUF;
        RI = 0;
        flag = 1;       
        }
        ES=1;
}
void delay(uint i)
{
while(i--);
}
main()
{
         Initurat();
         ENA=1;
         DIR=0;
         while(1)
         {
          PLU = 1;
                delay(N);
                PLU = 0;
                delay(N);
         }
}
回复

使用道具 举报

ID:246251 发表于 2019-11-28 15:44 | 显示全部楼层
改变太小了,看不出来,建议通过定时器来实现模拟PWM的值,这样根据“N”改变定时器的值来实现目的
回复

使用道具 举报

ID:637351 发表于 2019-11-28 20:02 | 显示全部楼层
new_hand 发表于 2019-11-28 15:44
改变太小了,看不出来,建议通过定时器来实现模拟PWM的值,这样根据“N”改变定时器的值来实现目的

上面的程序有什么问题吗?接收的值赋予N了吗?用示波器看一点变化都没有啊!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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