51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)相关的知识,希望对你有一定的参考价值。
51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)
-
Proteus仿真
-
AT89C52
、motor
、 -
器件
-
原理图搭建
实例代码
/**********************************************************
直流电机正、反转控制
***********************************************************/
#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仿真)的主要内容,如果未能解决你的问题,请参考以下文章
单片机直流电机转速控制(数码管显示独立按键控制正反转停止开始PID算法)
VSM Studio uln2003驱动步进电机+单按键启保停正反转八拍控制