基于数据分析的单片机的直流电动机正反转控制
摘要利用80C51单片机,智能控制输出一串脉冲,经放大驱动小直流电动机,改变脉冲的电平及持续时间,达到电动机正转、反转、加速、减速、停转等目的。
关键词80C51;正转;反转
1 小电流电动机转动原理
小电流电动机转动原理是[1]:转动方向是由电压来控制的,电压为正则正转,电压为负则反转。
转速大小由输出脉冲的占空比来决定的,正向占空比越大则转速越快,内向占空比越小转速越快,如图1 所示。
2 硬件电路设计
利用80C51单片机的P1口,输出一串脉冲,通过74LS244输入开关量数据,经放大驱动小直流电动机,通过改变脉冲的电平及持续时间,达到电动机正转、反转、加速、减速、停转等目的。
应用电子CAD软件绘制电路原理图,如图2所示。
3 软件设计
用汇编语言进行程序设计,单片机程序必须要考虑存储器结构,尤其是其片内数据存储器与特殊功能寄存器的使用以及按实际地址处理端口数据[2]。
而用C51语言编写单片机应用程序,则不用具体组织、分配存储器资源和处理端口数据,但对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。
3.1 程序流程圖
根据设计的硬件电路,以及设计的要求,对小直流电动机的转速进行控制,根据电动机的转动工作原理,程序流程图如图3所示。
3.2 程序设计
根据设计的程序流程图,利用单片机C51语言进行程序设计。
C51源程序如下:
#include
sfr p1=0x90;
sbit p10=p1 ;
sbit p11=p1 ;
void delay(unsigned char count);
void main(void)
{unsigned int i;// 正快转
for(i=0;i<100;i++)
{p10=1;
delay(50);}
p10=0;
delay(10);//正慢转
for (i=0;i<100;i++)
{p10=1;
delay(10);}
p10=0;
delay(50);
......}
void delay(unsigned char count)
{unsigned char j,m;
for (j=0;j<count;j++)
{ m=0;} }
4 结束语
通过单片机C51语言的实践设计,较好地实现电动机的正反转控制。
该控制过程应用于单片机C51语言的教学过程,将大大提升学生的分析常用、典型
电路的能力,熟练应用电子CAD软件绘制各类电路原理图的能力和提高C51程序设计能力。
参考文献
[1] 皮大能主编.单片机原理及应用[M].西安:西北工业大学出版社,2015:45.
[2] 郭慧,吴迅.单片机的C语言程序设计完全手册[M].北京:电子工业出版社,2008:112.。