找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4705|回复: 4
打印 上一主题 下一主题
收起左侧

51单片机舞蹈机器人仿真+程序

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include "reg51.h"
  2. #include "intrins.H"
  3. //8步式步进电机脉冲序列
  4. //unsigned char steps[8] = {0x77,0x33,0xbb,0x99,0xdd,0xcc,0xee,0x66};
  5. unsigned char steps[8] = {0x2,0x6,0x4,0xc,0x8,0x9,0x1,0x3};
  6. //当前各电机在上述序列中的位置
  7. unsigned char cur_step[8] = {0,0,0,0,0,0,0,0};
  8. //这个文件用于记录舞步信息序列
  9. char speed_tickers[8] = {0,0,0,0,0,0,0,0};
  10. //从上述文件中读出的当前舞步信息
  11. unsigned char speeds[8] = {0,0,0,0,0,0,0,0};
  12. unsigned char data_pointer = 0;//指向舞步数据的指针
  13. unsigned char time_t = 0;//指定重新读取一次 speeds 值的计时周期
  14. 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,
  15. -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,
  16. 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,
  17. 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,
  18. -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,
  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,
  20. 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,
  21. 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,
  22. 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,
  23. 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,
  24. 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,
  25. -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,
  26. -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,
  27. -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,
  28. };
  29. code char pin[8] = {1,2,4,8,16,32,64,128};
  30. char MAX_SPEED_TICKER = 120;
  31. unsigned char i; //电机序号

  32. void InitTimer(void) //初始化计数器
  33. {
  34.   TH0 = 0xFA;  //设置触发周期:1000次
  35.   TL0 = 0x24;
  36.   TMOD = TMOD |0x01;  //select mode 1
  37.   TR0 = 1; //start timer0
  38.   ET0 = 1; //enable timer 0 interrupt
  39.   EA =1; //global interrupt enable
  40. }

  41. void SetAllSpeeds(void)  //设置各电机的速度,并让它运动起来
  42. {
  43.   char delta;  //旋转方向 1:正 -1:反  0:停
  44.   for(i=0;i<8;i++)
  45.   {
  46.     P2=pin[i]; //发送锁存信号
  47.     speed_tickers[i] += speeds[i]; //计数值增加 speed[i]越高,增加得越多
  48.     if(speed_tickers[i] >= MAX_SPEED_TICKER) //如果计数值超过预定最大值,就发送脉冲
  49.     {
  50.       speed_tickers[i] = 0;
  51.       delta = 1;
  52.     }
  53.     else if(speed_tickers[i] <= -MAX_SPEED_TICKER) //同上,反响旋转
  54.     {
  55.       speed_tickers[i] = 0;
  56.       delta = -1;
  57.     }
  58.     else delta = 0;
  59.     cur_step[i] += delta;
  60.     cur_step[i] &= 0x07; //计算当前应发脉冲
  61.     P0 = steps[cur_step[i]];
  62.     P2 = 0;
  63.   }
  64. }

  65. void OnTimer(void) interrupt 1 using 2
  66. {
  67.   unsigned char j;
  68.   SetAllSpeeds();
  69.   InitTimer();
  70.   time_t++;
  71.   if(time_t==200) //每200次触发读取一次新舞步数据
  72.   {
  73.     for(j=0;j<8;j++)
  74. ……………………

  75. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
舞蹈机器人步进机仿真,C51程序通过.rar (49.12 KB, 下载次数: 70)



评分

参与人数 3黑币 +60 收起 理由
kivengao + 5 赞一个!
sus30 + 5 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:253187 发表于 2017-11-24 19:47 | 只看该作者
正在找,多谢分享
回复

使用道具 举报

板凳
ID:253240 发表于 2017-11-24 21:43 | 只看该作者
这个有点厉害了,支持。~
回复

使用道具 举报

地板
ID:414848 发表于 2018-10-24 19:52 | 只看该作者
牛皮的操作
回复

使用道具 举报

5#
ID:397663 发表于 2018-11-5 18:44 | 只看该作者
正想试试,参考一哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表