找回密码
 立即注册

QQ登录

只需一步,快速开始

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

机械手快换机构模块设计solidworks工程与单片机源码

[复制链接]
跳转到指定楼层
楼主



solidworks工程文件分享:


单片机源程序如下:
  1. //////////////////////////////智成工作室出品////////////////////////////////

  2. #include <STC12C5A60S2.H>
  3. #include "intrins.h"
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define XIAO 65186                  //这里定义定时器的
  7. #define DA XIAO-2000          //两个极限值的
  8. uint jd=1000;        //转到的角度可以从100到2000,100以下电机就转不到位置了,有烧电机的风险。
  9. uchar jishu=0;                  //计数

  10. sbit duoji = P1^2;          //接舵机的

  11. void Timer0Init(void)               
  12. {
  13.         uchar j=0;
  14.         AUXR &= 0x7F;                //定时器时钟12T模式
  15.         TMOD &= 0xF0;                //设置定时器模式
  16.         TMOD |= 0x01;                //设置定时器模式
  17.         j=XIAO-jd;
  18.         TL0 = j;                //设置定时初值
  19.         TH0 = j>>8;                //设置定时初值
  20.         TF0 = 0;                //清除TF0标志
  21.         TR0 = 1;                //定时器0开始计时
  22.         ET0 = 1;
  23. }



  24. void Timer0Interrupt(void) interrupt 1
  25. {
  26.     uint j=0;
  27.         j=XIAO-jd;//高电平的时间

  28.         if(duoji==0)                //低电平的时候就把他设成高,且把定时器初值设成高电平的时间
  29.         {       
  30.                 TL0 = j;                //设置定时初值
  31.                 TH0 = j>>8;                //设置定时初值
  32.                 duoji=1;       
  33.         }else
  34.         {                                        //高电平的时候就把他设成低,且把定时器初值设成低电平的时间
  35.                 j=65536-j;                //低电平的时间
  36.                 TL0 = j;                //设置定时初值
  37.                 TH0 = j>>8;                //设置定时初值
  38.                 duoji=0;
  39.         }          

  40. }
  41. void Delay100ms()                //@11.0592MHz
  42. {
  43.         unsigned char i, j, k;

  44.         i = 5;
  45.         j = 52;
  46.         k = 195;
  47.         do
  48.         {
  49.                 do
  50.                 {
  51.                         while (--k);
  52.                 } while (--j);
  53.         } while (--i);
  54. }
  55. void  Delay500ms()
  56. {
  57.         uchar i=0;
  58.         for(i=0;i<5;i++)
  59.         {
  60.                 Delay100ms();
  61.         }
  62. }
  63. void  Delay2s()
  64. {
  65.         uchar i=0;
  66.         for(i=0;i<20;i++)
  67.         {
  68.                 Delay100ms();
  69.         }
  70. }
  71. void main(void)
  72. {

  73.         while(1)
  74.         {
  75.                 jd=100;                   //在主程序中只要改变这个变量就可以控制舵机转到指定位置
  76.                 Delay2s();           //程序中尽量不要用延时,我这是为了演示
  77.             jd=1900;
  78.                 Delay2s();           //程序中尽量不要用延时,我这是为了演示
  79.         }               
  80.        

  81. }

复制代码

所有资料51hei提供下载:
机械手快换机构模块设计.zip (6.57 MB, 下载次数: 12)


评分

参与人数 1黑币 +50 收起 理由
admin + 50

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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