资源简介
单片机控制多个步进电机程序,可以同时控制两个步进电机
代码片段和文件信息
//*************************************************************************************************************
//实验名称:单片机控制多个电机
//程序说明:烧好程序,连接好控制线(步进电机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文件系统
相关资源
- 51单片机ADC0809测电压12864显示程序
- 51单片机超声波测距1602显示
- 51单片机16x16点阵程序
- 单片机数字钟+万年历数码管显示
- 基于STC89C51单片机的数字抢答器——毕
- 51单片机智能扫地机器人
- Proteus仿真AD0808
- 基于51单片机的万年历
- 51单片机频率计设计
- 51_I2C模拟通信
- 基于RS485总线的PC与单片机多机通信系
- 红外线遥控Proteus仿真电路+发射+接收
- 51单片机资料\\基于单片机的函数信号
- 单片机reg52.h
- 基于单片机的WIFI手机端显示图像控制
- 51单片机串口通信程序 含详细
- 基于Proteus的单片机RS232与RS485应用案例
- MSP430单片机I2C应用笔记
- 基于C52单片机和车流量调节红绿灯时
- 51单片机AD转换程序及仿真图
- 声控小车凌阳.rar
- MSP430单片机AD转换电压值带字库12864液
- 51单片机 矩阵键盘计算器
- STC12c5a60s2最小系统
- 单片机测量方波的频率、占空比及相
- 基于PROTEUS的单片机AD转换仿真
- 基于单片机8路电压表(汇编).
- 基于单片机的DS18B20温度采集,液晶屏
- 基于51单片机SHT11温湿度传感器检测程
- 8051单片机最小系统电路原理图
评论
共有 条评论