51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)相关的知识,希望对你有一定的参考价值。

51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)


  • Proteus仿真

  • AT89C52motor

  • 器件

  • 原理图搭建

实例代码

/**********************************************************
直流电机正、反转控制
***********************************************************/
#include <REGX52.H>

sbit led_n=P0^0;
sbit led_r=P0^1;
sbit led_s=P0^2;

sbit ZZ=P2^0;
sbit FZ=P2^1;
sbit TZ=P2^2;

sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;

int count=0;
void T0_isr() interrupt 1 using 1
{
    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;
    count++;
    if(count<3)
    {
        ENA=0;
    }
    else
    {
        ENA=1;
    }
    if(count>=10)
    {
        count=0;
    }

}
void delayms(unsigned char xms)
{
    unsigned char i,j;
    for(i=xms; i>0; i--)
        for(j-110; j>0; j--);
}
void keyscan()
{
    if(ZZ==0)
    {
        delayms(10);
        if(ZZ==0)
        {

            IN1=1;
            IN2=0;
            led_n=0;
            led_r=1;
            led_s=1;
        }
        while(ZZ==0);
    }
    if(FZ==0)
    {
        delayms(10);
        if(FZ==0)
        {

            IN1=0;
            IN2=1;
        }
        while(FZ==0);
    }
    if(TZ==0)
    {
        delayms(10);
        if(TZ==0)
        {

            IN1=0;
            IN2=0;
        }
        while(TZ==0);
    }
}

void main()
{
    TMOD=0x01;
    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;
    EA=1;
    ET0=1;
    TR0=1;
	            IN1=0;
            IN2=0;
    while(1)
    {
        keyscan();
    }
}



以上是关于51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)的主要内容,如果未能解决你的问题,请参考以下文章

Proteus仿真51单片机+直流电机正反转控制

基于单片机按键和串口控制步进电机正反转调速-设计资料

单片机直流电机转速控制(数码管显示独立按键控制正反转停止开始PID算法)

VSM Studio uln2003驱动步进电机+单按键启保停正反转八拍控制

VSM Studio uln2003驱动步进电机+单按键启保停正反转四拍控制

51单片机+步进电机正反转4拍控制+Proteus仿真