部分程序:

#include "reg51.h"

#include "intrins.H"

//8步式步进电机脉冲序列

//unsigned char steps[8] = {0x77,0x33,0xbb,0x99,0xdd,0xcc,0xee,0x66};

unsigned char steps[8] = {0x2,0x6,0x4,0xc,0x8,0x9,0x1,0x3};

//当前各电机在上述序列中的位置

unsigned char cur_step[8] = {0,0,0,0,0,0,0,0};

//这个文件用于记录舞步信息序列

char speed_tickers[8] = {0,0,0,0,0,0,0,0};

//从上述文件中读出的当前舞步信息

unsigned char speeds[8] = {0,0,0,0,0,0,0,0};

unsigned char data_pointer = 0;//指向舞步数据的指针

unsigned char time_t = 0;//指定重新读取一次 speeds 值的计时周期

code char dancedata[] = {54,15,12,12,87,95,65,45,-89,-88,-54,-54,54,68,-45,-65,-65,-48,101,121,115,117,19,

-98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,109,104,-30,-102,-104,-106,110,100,

54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,102,102,

100,130,30,10,-90,-120,87,102,102,100,130,30,10,-90,-120,87,102,103,105,54,15,12,12,87,95,65,45,-89,-88,-54,

-98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54,

-98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,109,104,-30,-102,-104,-106,110,

100,130,30,10,-90,-120,87,102,102,100,130,30,10,-90,-120,87,-120,87,102,103,105,109,104,-30,-102,-104,-106,110,

54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,102,102,

54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,102,102,

54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,102,102,

54,15,12,12,87,95,65,45,-89,-88,-54,-54,-98,95,102,102,100,130,30,10,-90,-120,87,102-114,-101,-24,-98,95,102,102,

-98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54,

-98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54,

-98,-100,-21,-114,-101,-24,-98,95,102,102,100,130,30,10,-90,-120,87,102,103,105,12,87,95,65,45,-89,-88,-54,

};

code char pin[8] = {1,2,4,8,16,32,64,128};

char MAX_SPEED_TICKER = 120;

unsigned char i; //电机序号

void SetAllSpeeds(void)  //设置各电机的速度,并让它运动起来

{

char delta;  //旋转方向 1:正 -1:反  0:停

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

{

P2=pin[i]; //发送锁存信号

speed_tickers[i] += speeds[i]; //计数值增加 speed[i]越高,增加得越多

if(speed_tickers[i] >= MAX_SPEED_TICKER) //如果计数值超过预定最大值,就发送脉冲

{

speed_tickers[i] = 0;

delta = 1;

}

{

speed_tickers[i] = 0;

delta = -1;

}

else delta = 0;

cur_step[i] += delta;

cur_step[i] &= 0x07; //计算当前应发脉冲

P0 = steps[cur_step[i]];

P2 = 0;

}

}

void main()  //程序的入口

{

InitTimer();  //初始化后等中断

while(1);

}

基于51单片机的舞蹈机器人步进机仿真设计相关推荐

  1. 基于51单片机PT100热电偶AD转换protues仿真设计

    基于51单片机PT100热电偶AD转换protues仿真设计 (源码+仿真) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0023 这里写 ...

  2. 基于51单片机的LCD1602电子钟闹钟proteus仿真设计

    本设计是基于51单片机的LCD1602电子钟闹钟proteus仿真设计 源码+仿真+原理图+器件清单 仿真软件版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编 ...

  3. 【004】基于51单片机的音乐播放器proteus仿真设计

    一.压缩包资料内容(私信获取) (1).基于51单片机的音乐播放器proteus仿真设计一份: (2).基于51单片机的音乐播放器proteus仿真设计keli源代码一份: (3).基于51单片机的音 ...

  4. 【006】基于51单片机的简易电子计算器Proteus仿真设计

    一.压缩包资料内容(私信获取) (1).基于51单片机的简易电子计算器proteus仿真设计一份: (2).基于51单片机的简易电子计算器proteus仿真设计keli源代码一份: (3).基于51单 ...

  5. 基于51单片机的舞蹈机器人四路步进电机控制仿真

    资料编号:091  下面是相关功能视频演示: 91-基于51单片机的舞蹈机器人四路步进电机控制仿真(源码+仿真+全套资料) 功能介绍:通过51单片机控制4个步进电机旋转,模拟出机器人的四肢动作,全套资 ...

  6. 基于51单片机的舞蹈机器人四路步进电机控制仿真(源码+仿真+全套资料)

    资料编号:091 通过51单片机控制4个步进电机旋转,模拟出机器人的四肢动作,全套资料齐全:具体功能请下方看演示视频 91-基于51单片机的舞蹈机器人四路步进电机控制仿真(源码+仿真+全套资料) 单片 ...

  7. 基于51单片机的脉搏测量仪protues仿真设计

    目录 一.设计背景 二.实现功能 三.仿真演示 四.源程序 一.设计背景 在中医四诊(望﹑闻﹑问﹑切)中,脉诊占有非常重要的位置.脉诊是我国传统医学中最具特色的一项诊断方法,其历史悠久,内容丰富,是中 ...

  8. 基于51单片机的搬运机器人系统protues仿真

    硬件设计 (末尾附文件) 代码设计 #include<reg52.h> #include"config.h" #include"key.h" #in ...

  9. 基于51单片机的两路数字电压表Protues仿真设计

    目录 一.设计背景 1.1.数字电压表的发展历程 1.2.课题的意义和目的 二.实现功能 三.仿真演示 四.部分程序展示 一.设计背景 1.1.数字电压表的发展历程  数字电压表简称DVM,它是采用数 ...

最新文章

  1. 牛年快乐~新一年从甜蜜的烘焙里学AI
  2. matplotlib安装错误依赖问题解决
  3. python如何实现通知_ExASIC: 用python实现一个通知机器人
  4. unity的vr场景怎么做_营销技巧逐渐失效,如何通过场景化营销重新赢回市场?...
  5. JS获取当前时间的前n天/后n天
  6. 被乔布斯遗忘的VR:纽约大学教授解密苹果与虚拟现实的尘封往事
  7. java学习(150):文本缓冲流
  8. mysql 安全删除_mysql的binlog安全删除的一种方法
  9. Handler原理分析
  10. Stateflow_报错记录
  11. leetcode955. Delete Columns to Make Sorted II
  12. 【编程珠玑】第十章 节省空间
  13. 建立本地rhel5.3的yum源
  14. 【转】VBScript-RegExp对象的详细用法
  15. PAIP VCF通讯录的乱码以及导入导出
  16. 【好玩的应用】QQ连连看辅助工具
  17. 数学分析教程(科大)——4.2笔记+习题
  18. 李嘉诚80个人生经典语录
  19. 走进C 语言:你知道C语言程序是如何执行的吗?
  20. linux设备驱动,tty串口编程 如何查看linux下串口是否可用?串口名称等

热门文章

  1. 亿万级赛道谁主沉浮,国潮品牌直播电商如何破局增长?
  2. python鸢尾花分类svm测试集_使用SVM对鸢尾花分类
  3. C#窗体程序编写 • 【五子棋】
  4. 谁发明了计算机科学bug,为什么计算机故障被称为“bug”
  5. centos php8 gd库不支持jpeg
  6. 如何通过经纬度坐标获取附近的地址信息?
  7. Linux重装时保留分区
  8. 【伺服电机/舵机与Arduino使用教程】
  9. 02_控制系统的数学模型拉普拉斯变换概念及常用定理(有简单证明过程)
  10. 机器学习之路——KNN+交叉验证