设为首页
收藏本站
家园
博客
课程平台
教材专区
主站
开启辅助访问
切换到窄版
登录
|
加入因仑
请
登录
后使用快捷导航
没有帐号?
加入因仑
搜索
搜索
热搜:
活动
交友
discuz
本版
用户
论坛
BBS
全部帖子汇总
全部技术帖
非技术帖汇总
大赛专区
因仑云商城
产品服务
因仑项目小组
快捷导航
因仑“3+1”工程特种兵精英论坛
»
论坛
›
单片机
›
其它MCU
›
调试程序
返回列表
查看:
1467
|
回复:
0
调试程序
[复制链接]
张衍波
张衍波
当前离线
积分
8235
电梯直达
沙发
发表于 2015-5-13 08:48:53
|
只看该作者
|
倒序浏览
|
阅读模式
/********************************************************************
汇诚科技
实现功能:STK672-040四相步进电机驱动测试程序
使用芯片:AT89S52 或者 STC89C52
晶振:11.0592MHZ
编译环境:Keil
作者:zhangxinchunleo
网站:
www.ourhc.cn
淘宝店:汇诚科技
http://shop36330473.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
/********************************************************************
程序说明:
当单片机P2.0口得到一个低电平信号时,步进电机正转;
当单片机P2.1口得到一个低电平信号时,步进电机反转;
当单片机P2.2口得到一个低电平信号时,步进电机加速运转;
当单片机P2.3口得到一个低电平信号时,步进电机减速运转;
*********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar Y=10; //初始化速度
/********************************************************
控制位定义
********************************************************/
sbit shi_neng=P1^0; // 使能控制位
sbit fang_xiang=P1^1;// 旋转方向控制位
sbit mai_chong=P1^2; // 脉冲控制位
sbit zheng_zhuan=P2^0; // 正转
sbit fan_zhuan=P2^1; // 反转
sbit jia_su=P2^2; // 加速
sbit jian_su=P2^3; // 减速
/********************************************************
延时函数
********************************************************/
void delay(uchar i)//延时函数
{
uchar j,k;
for(j=0;j<i;j++)
for(k=0;k<180;k++);
}
/********************************************************
加速函数
********************************************************/
void jia()
{
Y=Y-1;
if(Y<=1){Y=1;}//如果速度值小于等于1,值保持不变
}
/********************************************************
减速函数
********************************************************/
void jian()
{
Y=Y+1;
if(Y>=100){Y=100;}
}
/********************************************************
主函数
********************************************************/
main()
{
shi_neng=0; // 使能控制位
fang_xiang=1;// 旋转方向控制位
mai_chong=1; // 脉冲控制位
while(1)
{
if(zheng_zhuan==0){shi_neng=1;fang_xiang=1;}
if(fan_zhuan==0){shi_neng=1;fang_xiang=0;}
if(jia_su==0){delay(10);while(!jia_su);jia();}
if(jian_su==0){delay(10);while(!jian_su);jian();}
mai_chong=~mai_chong; //输出时钟脉冲
delay(Y); //延时(括号内数值越小,电机转动速度越快)
}
}
/********************************************************
结束
********************************************************/
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
加入因仑
x
收藏
0
分享
支持
0
反对
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入因仑
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表