/*-----------------------------------------------
名称:步进电机
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:本程序用于测试4相步进电机常规驱动 使用1相励磁
------------------------------------------------*/
#include <reg52.h>
sbit A1=P1^0; //定义步进电机连接端口
sbit B1=P1^1;
sbit C1=P1^2;
sbit D1=P1^3;
#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;
/*------------------------------------------------
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=64*16; //转2周停止
Speed=5; //调整速度
while(1)
{
Coil_A1 //遇到Coil_A1 用{A1=1;B1=0;C1=0;D1=0;}代替
DelayMs(Speed); //改变这个参数可以调整电机转速 ,
//数字越小,转速越大,力矩越小
Coil_B1
DelayMs(Speed);
Coil_C1
DelayMs(Speed);
Coil_D1
DelayMs(Speed);
}
}
大富大贵7
- 粉丝: 389
- 资源: 8868
最新资源
- 【python毕业设计】药物管理系统源码(完整前后端+mysql+说明文档).zip
- 2024年11月网络规划设计师(案例分析)真题与解析
- (全新整理)商道融绿、润灵环球ESG评级数据(2015-2023年)
- 【python毕业设计】新生入学管理系统源码(完整前后端+mysql+说明文档+LW).zip
- 【python毕业设计】新生报到服务管理系统源码(完整前后端+mysql+说明文档+LW).zip
- C#ASP.NET药房管理系统源码数据库 SQL2008源码类型 WinForm
- 便捷应用管理工具-WPF-电脑桌面程序项目源码
- 【python毕业设计】校园用车管理系统源码(完整前后端+mysql+说明文档).zip
- 摸鱼网站模版,热点新闻聚合网站模版
- 【python毕业设计】物业信息管理系统源码(完整前后端+mysql+说明文档+LW).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈