10-基于51单片机的多功能步进电机控制系统(LCD1602 正反转,加减速,启停,运行波形,proteus,keil,AD)
功能描述:使用51单片机作为主控制器
1、实现步进电机正转、反转
2、实现步进电机的加速、减速
3、实现步进电机的启动和停止
4、用LCD显示电机工作状态
5、通过示波器看到步进电机的运行波形和状态
有哪些资料:
1、原理图工程文件
2、源代码工程文件
3、仿真工程文件
4、流程图
5、元器件清单BOM
#include "reg51.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit AA=P2^4;//步进电机
sbit BB=P2^5;
sbit CC=P2^6;
sbit DD=P2^7;
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
uchar flag=0,fang=0;//方向控制
uchar speed=0,time=0;//速度控制0-9
uchar start=0;//启动
uchar sec=0;
uchar disp1[]="sudu:0 ";//速度
//主函数
void main()
{
init_1602();
TMOD|=0X01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
//按键检测
if(!k1)//启动
{
start=1;
}
if(!k2)//停止
{
start=0;
}
if(!k3)//正转
{
fang=0;
}
if(!k4)//反转
{
fang=1;
}
if(!k5)//加速
{
if(speed<9)
speed++;
while(!k5);
}
if(!k6)//减速
{
if(speed>0)
speed--;
while(!k6);
}
}
}