毕业设计流水线系统控制器

2019-07-18 15:39发布

要求控制8个电机可完成启动,停止,故障处理,启动为从前往后间隔5s依次启动,停止相反,故障处理为故障的那颗从最后一个依次停止  问过老师故障可以直接用按键代替  毕竟我选的小电机  没那么小的电流感应装置。

现在我选的芯片为at89c52,l9110s推挽桥式做驱动,其中我在p1.0-p1.1接了两个开关,接地,做启动,和停止,p0.0-p0.7接l9110s(网上买的接口全引出模块)其中ia口全部接入,ib口全部接入p3.0-p3.7,输出直接接直流电机。并且把控制直流电机的正极直接拉下来接一个常闭开关一端接地,一端接p2.0-p2.7.{{{这里我有疑问,电机正极电流进过放大,接入at89c51会有问题吗?如果有问题的话我就直接p2.0口假装电机坏了。}}}老师后面说要给电机状态加上led状态灯,我试过5v给电机串联led供电时电机不会转动,对了电机为3-6v一个直流小电机。请问这个led怎么加。


以下是程序  编译有一个错误  我找不到有点难过。能帮我看一下这个程序能不能实现我的功能。O(∩_∩)O谢谢,只可惜前三年没好好学。
#include <reg51.h>

sbit   k1=p1^0;
sbit   k2=p1^1;
unsigned char time,temp1,Sign1;

void InitTimer1()//50ms定时器初始化
{
    TMOD = 0x10;
    TH1 = 0x3C;
    TL1 = 0x0B0;
    EA = 1;
    ET1 = 1;
    TR1 = 1;
}
void delay()
{
          unsigned char i,j,k;
        for(i=25;i>0;i--)
          for(j=13;j>0;j--)
            for(k=147;k>0;k--)
}
main()
{
    InitTimer1();
        temp1=0xff;
    while(1)
    {
        if(k1==0)Sign1=1;  //k1按下
            if(Sign1)P0=temp1;
               
        if(k2==0)
                {
                        Sign1=0;
                        P0=temp1;
                }

    }
}

void Timer1Interrupt() interrupt 3
{
    TH1 = 0x3C;
    TL1 = 0x0B0;
    if(Time<250)Time++;//中断250次=5s
    else
    {
        Time=0;
        if(Sign1==1&&temp1>0)temp1=temp1>>1;//低电平右移
                if(Sign1==0&&temp1!=0xff)P0=P0<<1;
                       
    }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。