资源简介
步进电机调速原理.c
代码片段和文件信息
/*-----------------------------------------------
名称:步进电机
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:本程序用于测试4相步进电机常规驱动 2个按键 调节速度
使用1-2相励磁
数码管显示 1-5速度等级,数字越大,速度越小
------------------------------------------------*/
#include
#define KeyPort P3
#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1=P2^2;//定义锁存使能端口 段锁存
sbit LATCH2=P2^3;// 位锁存
unsigned char code dofly_DuanMa[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};// 显示段码值0~9
unsigned char code dofly_WeiMa[]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};//分别对应相应的数码管点亮即位码
unsigned char TempData[8]; //存储显示值的全局变量
sbit A1=P1^0; //定义步进电机连接端口
sbit B1=P1^1;
sbit C1=P1^2;
sbit D1=P1^3;
#define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通电,其他相断电
#define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通电,其他相断电
#define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通电,其他相断电
#define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;}//D相通电,其他相断电
#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电
unsigned char Speed=1;
bit StopFlag;
void Display(unsigned char FirstBitunsigned char Num);
void Init_Timer0(void);
unsigned char KeyScan(void);
/*------------------------------------------------
uS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编大致延时
长度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned int i=512;//旋转一周时间
unsigned char num;
Init_Timer0();
Coil_OFF
while(1) //正向
{
num=KeyScan(); //循环调用按键扫描
if(num==1)//第一个按键速度等级增加
{
if(Speed<5)
Speed++;
}
else if(num==2)//第二个按键,速度等级减小
{
if(Speed>1)
Speed--;
相关资源
- 步进电机控制(源码+文档)
- STM32 BLDC 无刷电机
- pid控制电机
- 51驱动步进电机
- 电机控制例程
- 基于51单片机的c语言程序 电机转速测
- 变频器源码 DSPIC30F5015电机控制专用芯
- 永磁电机设计软件
- 步进电机控制程序175063
- STM32F030无刷电机驱动程序
- ethercat电机mfc简单连接程序
- 台达ASDA2伺服电机简单控制C++程序
- PID调节电机转速 配合MPU6050
- SMT32电机驱动(舵机和电机)
- 后轮双电机差速小车控制原理.pdf
- 单片机控制直流电机正反转程序c语言
- 如何用C语言编写步进电机驱动程序
- 步进电机的控制程序,用C语言编写!
- C语言实现PID控制直流电机调速含pro
- DSPF2812双闭环控制电机
- 键盘控制步进电机正反转和调速c语言
- 51单片机产生PWM的程序和怎样控制直流
- 单片机旋钮电位器控制电机速度
- 步进电机上位机界面设计
- 51单片机直流电机控制C语言代码.rar
- 步进伺服电机加减速控制C语言
- 51单片机驱动步进电机(含电路图和
- 51单片机DIY制作:旋转LED数字显示电子
- 最简单的PI算法(C语言)-用于控制电
- DSP带速度传感器的电机矢量控制程序
评论
共有 条评论