这是一个群里朋友发给我的步进电机实现正转反转和加速减速的单片机c语言源程序,这里给大家共享下,有需要的朋友直接复制到keil里编译就可以了,程序已测试成功。

/*****************************************

单4拍正转 zheng[]={0x01,0x08,0x04,0x02}

单4拍反转 fang[]={0x01,0x02,0x04,0x08}

双4拍正转 zheng[]={0x09,0x0c,0x06,0x03}

双4拍反转 fang[]={0x03,0x06,0x0c,0x09}

单双8拍正转 zheng[]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03}

单双8拍反转 fang[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}

*****************************************/

#include"reg51.h"

#include"intrins.h"

#define uchar unsigned char

#define uint unsigned int

bit front_move,back_move;

uchar jzaj(void); //单4拍正转 zheng[]={0x01,0x08,0x04,0x02}; 单4拍反转 fang[]={0x01,0x02,0x04,0x08};

void ajcl(uchar jz);

void delay(uchar del);

uchar code zheng[]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03};

uchar code fang[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};

void timer0() interrupt 1

{

static uchar jz;

TH0=0xfc;

TL0=0x18;

jz=jzaj();

if(jz)

ajcl(jz);

}

//步进电机正反转和加速减速程序

//实用于51系列单片机 http://www.51hei.com首发,程序运行有问题请联系本站。

void main()

{

uchar count=0;

TMOD=0x01;

TH0=0xFC;

TL0=0x18;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(front_move)

{

P2=zheng[count];

delay(100);

count++;

if(count==8) count=0;

}

if(back_move)

{

P2=fang[count];

delay(100);

count++;

if(count==8) count=0;

}

}

}

uchar jzaj(void)

{

uchar hz,lz;

P1=0xf0; //置所有行为低电平,行扫描,列线输入(此时)

if((P1&0xf0)!=0xf0) //判断是否有有键按下(读取列的真实状态,若第4列有键按下则P1的值会变成0111 0000),有往下执行

{

delay(10); //延时去抖动(10ms)

if((P1&0xf0)!=0xf0) //再次判断列中是否是干扰信号,不是则向下执行

{

hz=0xfe; //逐行扫描初值(即先扫描第1行)

while((hz&0x10)!=0) //行扫描完成时(即4行已经全部扫描完成)sccode为1110 1111 停止while程序

{

P1=hz; //输出行扫描码

if ((P1&hz)!=hz) //***(P2&0xf0)!=0xf0***也可这样 本行有键按下(即P1(真实的状态)的高四位不全为1)

{

lz=(P1&0xf0)|0x0f; //列

while((P1&0xf0)!=0xf0);

return((~hz)|(~lz)); //返回行和列

break; //有按键返回 提前退出循环

}

else //所扫描的行没有键按下,则扫描下一行,直到4行都扫描,此时sccode值为1110 1111 退出while程序

hz=_crol_(hz,1);//行扫描码左移一位

}

}

}

else

return 0; //无键按下,返回0

}

void ajcl(uchar jz)

{

if(jz==0x11)

{

back_move=0;

front_move=1;

}

if(jz==0x21)

{

front_move=0;

back_move=1;

}

if(jz==0x41)

{

P2=0x00;

front_move=0;

back_move=0;

}

}

void delay(uchar del)

{

uchar i;

for(;del>0;del--)

for(i=0;i<125;i++)

{;}

}

C语言步进电机自动加减速,步进电机正反转和加速减速c源程序相关推荐

  1. blinker控制步进电机起保停,正反转,加减速(Arduino uno+esp8266+TB6600驱动器)

    blinker控制步进电机起保停,正反转,加减速(Arduino uno+esp8266+TB6600驱动器) 本文针对上一篇的<blinker控制步进电机起保停,正反转(Arduino uno ...

  2. 【Proteus仿真】Arduino UNO+uln2003驱动步进电机+按键启保停正反转控制

    [Proteus仿真]Arduino UNO+uln2003驱动步进电机+按键启保停正反转控制 Proteus仿真演示 功能说明 正反转采用2和3 引脚外部中断,3和4引脚调节加减速. 示例程序代码 ...

  3. blinker控制步进电机起保停,正反转(Arduino uno+esp8266+TB6600驱动器)

    blinker控制步进电机起保停,正反转(Arduino uno+esp8266+TB6600驱动器) 本文针对上一篇的<外部按键中断精准控制步进电机起保停,正反转(Arduino+TB6600 ...

  4. 【51单片机】 ULN2003模块 驱动步进电机(5线)正反转 代码以及接线图(简单教学,一看就会)

    步进电机有四相(A-B-C-D) 正向转动思路为A→B→C→D 反向转动思路为D→C→B→A 通过给每一相轮流供电,实现电机轴的360度转动 ..以下代码可直接复制使用: #include <r ...

  5. c语言文件名自动加系统时间,C语言获取系统时间的函数

    在标准C编程中,我们如何写程序来获取当前系统的时间呢? 获取系统时间的函数 #include time_t  time(time_t  *t) 参数:如果参数不为空,那么返回值会存储一份到t所指向的空 ...

  6. c语言横坐标加一怎么表示,在c语言里自动加一的函数怎么写

    传统 C++ #include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #includ ...

  7. java模拟加速匀速减速_Android学习之 动画加速减速 匀速控制

    今天说一下新发现的一个类的使用: 网上很多都写了Interpolator,你们先了解一下.我主要是简单说怎么用. Android 动画之Interpolator插入器 --AccelerateInte ...

  8. 51单片机步进电机全套资料(启停+正反转+加减速+显示速度+中断)【源程序+流程图+接线图+视频+答辩报告】综合设计首选

    一.设计目标 设计程序实现按键控制步进电机启动.停机.正反转.加减速.转速及转向显示. 二.主要功能 功能1:步进电机的启动.重启.停机: 功能2:步进电机正反装: 功能3:静态数码管显示速度等级: ...

  9. 51单片机控制电动机正反转和调速

    经过不断地摸索和参考高手的设计,最终完成了单片机的步进电机控制,可以实现步进电机的实时正反转,加速,减速. 至于步进电机的工作原理,相信很多人都已经知道,本次采用的是四相步进电机,采用四相八拍的工作方 ...

最新文章

  1. IDEA ctrl+alt+L 格式化快捷键无效时解决
  2. Netty+SpringBoot+FastDFS+Html5实现聊天App
  3. 配置spring-mvc + simple-spring-memcached
  4. EXTJS布局示例(panel,Viewport,TabPanel)
  5. Insert SQL Query插入效率优化
  6. lsb_release -a 查询系统版本
  7. 黑色30s高并发IIS设置
  8. 用QEMU构建嵌入式LINUX系统
  9. linux在安全模式下如何编辑,在安全模式下修改initrd文件
  10. error: failed to launch '/private/var/mobile/Applications/** busy解决办法
  11. 使用html的a标签,无法转跳到servlet页面中的解决办法,适用于servlet的初学者,不与框架相兼容
  12. 函数式编程的兴衰(Composing Software 1)
  13. YY0709|听觉报警信号要求及测试方法
  14. android手机电池寿命,真正有效延长手机电池寿命的几点建议(iPhone+安卓)
  15. 构建线上线下一体化解决方案,旺小宝以AI赋能房企数智化营销|爱分析访谈
  16. 2022云和恩墨大讲堂·苏州站成功举办,论道数智化时代下国产数据库的技术创新与实践
  17. 显卡性能暴涨,2K高清+144hz显示器飞入寻常百姓家
  18. [MakeFile教程-09] 隐含规则
  19. hdu 2197 本原串 思维
  20. vps系统服务器,vps系统和云服务器

热门文章

  1. 像素是什么,一个像素有多大,像素和分辨率的关系
  2. Aconvert 文档格式转换-PDF转免费转其他文档网址-免费
  3. Python学习路程day12
  4. 用于PCB设计和印刷的修补匠工具
  5. 地天泰 (易經大意 韓長庚)
  6. 2023年的COSO,会有什么不一样?
  7. Idea2018激活
  8. rono在oracle的作用_Oracle 11g各种服务作用以及哪些需要开启
  9. 智慧运维解决方案-最新全套文件
  10. XMPP——Smack[2]会话、消息监听、字体表情和聊天窗口控制