找回密码
 注册
关于网站域名变更的通知
查看: 146|回复: 2
打印 上一主题 下一主题

单片机通过串口控制 42步进电机的程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-5 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
42步进电机& j4 g# l4 [6 v- h- O2 |
必须要和驱动器正确连接后才可以使用
+ M! {5 e8 Z1 k9 Q) H' K单片机源程序如下:! _+ X* b4 A6 g( o2 p% a2 u& S2 u
  • #include<reg52.h>
  • //??????
  • sbit CLK  = P1^0;
  • sbit ENA  = P1^1;
  • sbit DIR  = P1^2;
  • bit Run_Status=0;
  • bit CY_status=0;
  • unsigned int CYCLE=1,x=0,y=0;
  • unsigned int cy_count=0;
  • unsigned PWM_count=0;
  • void Init_time();
  • void Step(unsigned int );
  • void Ord(unsigned int );
  • void main()
  • {
  •         ENA=1;
  •         CLK=0;
  •         DIR=0;                   //?????
  •         TMOD=0X22;
  •         IP=0X10;
  •         Init_time();   //??????
  •         DIR=1;
  •         Step(1);
  •         DIR=0;
  •         Step(1);
  •         while(1);
  • }
  • void Init_time()                                 //??????
  • {
  •         TH0=(65536-CYCLE)/256;                  //?time0???
  •         TL0=(65536-CYCLE)%256;
  •         PCON=0X80;
  •         TH1=0XF3;
  •         TL1=0XF3;
  •   IE = 0x92;
  •         //PT1=1;                       //??time1??????time0
  •         TR0=1;                                         //??????
  •         TR1=1;
  •         REN=1;
  •         SM0=0;
  •         SM1=1;
  • }
  • void Enter_Timer0() interrupt 1                                //???????
  • {
  •         TH0=(65536-CYCLE)/256;
  •         TL0=(65536-CYCLE)%256;
  •         CLK=~CLK;
  •         PWM_count++;
  •         if(PWM_count==(2*cy_count)&&CY_status)
  •         {
  •                 PWM_count=0;
  •                 TR0=0;
  •                 ENA=0;
  •         }
  • }
  • void UART() interrupt 4
  • {
  •                          if(RI)
  •                          {
  •                                 RI = 0;
  •                                 x=SBUF;
  •                                 SBUF=x;
  •                           Ord(x);
  •                          }
  •                          if(TI)
  •                                 TI = 0;
  • }
  • /***********************??????*************************/
  • void Step(unsigned int step_count)
  • {
  •   IE = 0x92;
  •         PWM_count=0;
  •         CY_status=1;
  •         cy_count=step_count;
  •         ENA=1;
  •         TR0=1;
  • }
  • /*********************????????*************************/
  • void Ord(unsigned int order)
  • {
  •         if(order==0)
  •         {
  •         DIR=1;
  •         Step(1);
  •         DIR=0;
  •         Step(1);
  •     }
  •         if(order==3)
  •         {
  •          DIR=1;
  •          Step(60);
  •         }
  •         if(order==4)
  •         {
  •          DIR=0;
  •          Step(60);
  •         }
  •         if(order==5)
  •         {
  •          DIR=1;
  •          Step(2000);
  •         }
  •         if(order==6)
  •         {
  •          DIR=0;
  •          Step(2000);
  •         }
  • }
    : P- \* H+ q0 x: g  R% a# d

; c7 q$ i+ W2 U8 J' K, ?# h, t/ L' e
1 _8 c/ c/ |0 U4 Y
, i3 C  @3 p8 G- v; O; ?
清祥 普中 可用
+ ^0 c# b0 g* v$ [8 P& s8 ^, ]8 e/ V! j! q" l1 {

; C) F) s+ n& K

该用户从未签到

2#
发表于 2022-7-5 13:37 | 只看该作者
温故而知新,帮别人解决问题,自己也能提升Thanks♪(・ω・)ノ

该用户从未签到

3#
发表于 2022-7-5 13:51 | 只看该作者
感谢楼主的默默付出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-19 14:39 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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