资源简介
单片机控制多个步进电机程序,可以同时控制两个步进电机
代码片段和文件信息
//*************************************************************************************************************
//实验名称:单片机控制多个电机
//程序说明:烧好程序,连接好控制线(步进电机1的控制线I1-I4连接到P2.0-P2.3,步进电机2的控制线I1-I4连接
// 到P2.4-P2.7。按S19可控制步进电机1的转动停止、加减速和正反转,按S20可控制步进电机2的转动停
// 止、加减速和正反转。
//实验平台:YZ200 V2.2开发箱,STC89C52单片机。
//作者:徐锐锋
//日期:2010-12-20
//广州研展电子科技有限公司 www.52yanfa.com (我爱研发网) 版权所有
//****************************************************************************************************************
#include
//#include
sbit A1=P2^0; //步进电机1输出脚定义
sbit B1=P2^1;
sbit C1=P2^2;
sbit D1=P2^3;
sbit A2=P2^4; //步进电机2输出脚定义
sbit B2=P2^5;
sbit C2=P2^6;
sbit D2=P2^7;
//步进电机1工作定义------------------------------------------------------------------------------------------------------
#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_OFF1 {A1=0;B1=0;C1=0;D1=0;}//全部断电
//步进电机2工作定义
#define Coil_A2 {A2=1;B2=0;C2=0;D2=0;}//A相通电,其他相断电
#define Coil_B2 {A2=0;B2=1;C2=0;D2=0;}//B相通电,其他相断电
#define Coil_C2 {A2=0;B2=0;C2=1;D2=0;}//C相通电,其他相断电
#define Coil_D2 {A2=0;B2=0;C2=0;D2=1;}//D相通电,其他相断电
#define Coil_OFF2 {A2=0;B2=0;C2=0;D2=0;}//全部断电
unsigned char x1y1i1s1;
unsigned char x2y2i2s2;
//unsigned char y1;
//unsigned char i1;
//unsigned char S1;
//------------------------------------------------------------------------------------------------------
// 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);
}
}
//---------------------------------------------------------------------------------------------------
// 定时器初始化子程序
//---------------------------------------------------------------------------------------------------
void Init_Timer(void)
{
TMO
- 上一篇:信息安全考试及答案
- 下一篇:一步步教你移植FatFS文件系统
相关资源
- 单片机音乐倒数定时器的设计
- STC15F
- 51单片机通信采样proteus仿真方波转化
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
评论
共有 条评论