电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 1237|回复: 6

2相4线电机驱动

[复制链接]
发表于 2022-9-27 08:00:17 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

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

x
2相4线电机驱动
2.JPG
 楼主| 发表于 2022-9-27 08:01:16 | 显示全部楼层
//8脚 STC15F104W 2相4线电机//P3.0--P3.3  这4个脚设为推挽,12MHZ,烧录后才焊接4个电阻。

      //要求:上电后正转10秒,反转10秒
                                                        
         #include<reg52.h>   //代入头文件//

         #include <intrins.h>  // 用空操作  _nop_   时要加这句//


     #define ulong unsigned long //宏定义变量类型    0----4294967295/

         #define uint unsigned int //宏定义变量类型    0----65535/

         #define uchar unsigned char//        宏定义变量类型          0-255/

         uchar jlu;  //几率-----------------=======

      uint  t1;

       

     
   


sfr P3M1=0xB1;  

sfr P3M0=0xB2;  //P3口特殊寄存器声明  

     
  sbit A1=P3^3;   //
  sbit A2=P3^2;   //
  sbit B1=P3^1; //
  sbit B2=P3^0; //        4个输出口  
     

  
#define Coil_1 {A1=1;A2=0;B1=0;B2=0;}//A+流向A-,B断电
#define Coil_2 {A1=1;A2=0;B1=1;B2=0;}//A+流向A-,B+流向B-
#define Coil_3 {A1=0;A2=0;B1=1;B2=0;}//A断电,B+流向B-
#define Coil_4 {A1=0;A2=1;B1=1;B2=0;}//A-流向A+,B+流向B-
#define Coil_5 {A1=0;A2=1;B1=0;B2=0;}//A-流向A+,B断电
#define Coil_6 {A1=0;A2=1;B1=0;B2=1;}//A-流向A+,B-流向B+
#define Coil_7 {A1=0;A2=0;B1=0;B2=1;}///A断电,B-流向B+
#define Coil_8 {A1=1;A2=0;B1=0;B2=1;}//A+流向A-,B-流向B+
#define Coil_OFF {A1=0;A2=0;B1=0;B2=0;}//全部断电
   

   




void  main( )//主程序
{
       TMOD=0x01; //  TMOD=0x11;//设置定时器0为工作方式1//  
            TH0=(65536-1000)/256;  //12MHZ,1MS一次中断,商//
            TL0=(65536-1000)%256;  //低四位装数=余数//
                              
        EA=1;       //开总中断//

            ET0=1;      //开定时器0中断

                TR0=1;//启动定时器0//397//
                                                            
        Coil_OFF;  //把4个输出设为低电平,全部断电
         



    P3M1=0x0;// 高8位为0000 0000
    P3M0=0xF;  //低8位为0000 1111   3.0--3.3脚为推挽输出,各脚串联1K电阻到地,有4毫安电流。其他是准双向口串联1K电阻到地只有13微安



  while(1)//大循环
       {

                        jlu=0;//几率------

                                //以下是你的编程区=========================================                               
                          
                          


                      //以下你不要编程=========================================

                   while(jlu<1)          //几率-------
                       
                          {_nop_();  _nop_();         _nop_(); }
                                    
                                               
                }

}

                                         
void exter0() interrupt 1         //定时器0的中断程序//定时器1的中断程序 void exter1() interrupt 3//
{  static unsigned char i2,i;         
        TH0=(65536-1000)/256;         //重装数12MHz 1000=1ms,如果不重装,默认数是65536,不是想要的10000//
        TL0=(65536-1000)%256;
                
                 
  t1++;
   
  if(t1<10000){            //正转10秒

  switch(i)
       {
         
    //正转
            case 0: Coil_1;i++;break;         
                case 1: Coil_2;i++;break;   
                case 2: Coil_3;i++;break;
                case 3:Coil_4;i++;break;
                case 4:Coil_5;i++;break;
                case 5:Coil_6;i++;break;
                case 6:Coil_7;i++;break;
                case 7:Coil_8;i++;break;
                case 8:i=0;break;
         //default:break;
           }

                 }
         
          if(t1>=10000) {     //反转10秒
         
          switch(i2)

          {
          //反转
            case 0:Coil_8;i2++;break;
                case 1:Coil_7;i2++;break;
                case 2:Coil_6;i2++;break;
                case 3:Coil_5;i2++;break;
                case 4:Coil_4;i2++;break;
                case 5:Coil_3;i2++;break;
                case 6:Coil_2;i2++;break;
                case 7:Coil_1;i2++;break;
                case 8:i2=0;break;   
            //default:break;
           }
                }

  if(t1==20000){t1=0;}    //轮回  


   //以下你不要编程=========================================

            jlu=1;//几率---------

  }





 楼主| 发表于 2022-9-27 08:02:38 | 显示全部楼层
lhxtzlhxtz 发表于 2022-9-27 08:01
//8脚 STC15F104W 2相4线电机//P3.0--P3.3  这4个脚设为推挽,12MHZ,烧录后才焊接4个电阻。

      //要求 ...

为自己留个保存资料的地方罢了。
发表于 2022-9-27 08:53:06 | 显示全部楼层
加个电机控制器可以做精细分频
发表于 2022-9-27 11:06:31 | 显示全部楼层
还需要步数大小的细分设定控制。
发表于 2022-9-27 11:25:17 | 显示全部楼层
理论太复杂.....
发表于 2022-9-27 15:24:52 | 显示全部楼层

理论不复杂,大概是没学编程。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2024-5-12 14:53 , Processed in 0.069071 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

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