标题:
单片机步进电机控制程序-速度,转角,方向,加了12864和按键的人机交互
[打印本页]
作者:
sri13147
时间:
2016-11-29 19:53
标题:
单片机步进电机控制程序-速度,转角,方向,加了12864和按键的人机交互
控制步进电机速度,转角,方向,加了12864和按键的人机交互
0.png
(67.62 KB, 下载次数: 54)
下载附件
2016-12-4 00:24 上传
完整代码下载:
步进电机控制.zip
(73.91 KB, 下载次数: 60)
2016-11-29 19:52 上传
点击文件名下载附件
下载积分: 黑币 -5
部分代码预览:
#include <reg51.h>
#include <stdio.h>
#include "LCD_12864.h"
#include "Menu_Key_Scan.h"
#include "Init.h"
#include "Control.h"
extern unsigned char Start_Flag; //开始启动标志
unsigned int Timer0_i=0;
unsigned char Flag_100ms=0; //100ms计时标志位
unsigned char Flag_s=0; //1s计时标志位
extern unsigned int angle_set;
extern unsigned int angle_measure;
void main()
{
Delay(100); //等待复位
LcmInit();
Init();
/***********************************初始化*******************************/
PutStr(1,0,"转向: 顺时针");
PutStr(1,0,"转向: 顺时针");
PutStr(2,0,"角度: 00°00'00'\0");
PutStr(2,0,"角度: 00°00'00'\0");
PutStr(0,0,"电机转速:00r/min\0");
/***********************************初始化*******************************/
while(1)
{
while(!Start_Flag)
{
Key_Scan (); //键盘扫描,在未开始启动电机的时候
}
EA=1; //开总中断
TR0=1; //开定时器T0
TR1=1; //开计数器T1
Motor_Control(); //1ms执行一次
if(Flag_100ms)
{
Code_Measure(); //编码器100ms读一次数
Flag_s++;
if(angle_set>=angle_measure)
{
Motor_Stop();
}
}
}
}
void Timer0(void) interrupt 1 using 3
{
Timer0_i++;
if(Timer0_i==100)
{
Flag_100ms=1;
Timer0_i=0;
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1