电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

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

冷气机4相5线步进电机驱动电路和程序(单片机用STC15F2K60S2)

[复制链接]
发表于 2017-1-5 10:03:55 | 显示全部楼层 |阅读模式

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

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

x
冷气机4相5线步进电机驱动电路
4相8拍步进电机电路图.JPG
 楼主| 发表于 2017-1-5 10:04:35 | 显示全部楼层
        /*-----------------------------------------------
  名称:4相5线步进电机驱动程序(单片机用STC15F2K60S2)
  
------------------------------------------------*/

#include <reg52.h>



sbit A1=P2^4; //定义步进电机连接端口
sbit B1=P2^5;
sbit C1=P2^6;
sbit D1=P2^7;

//sfr  P2M1=0X95;//P2口特殊寄存器

//sfr  P2M0=0X95;

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

#define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通电,其他相断电
#define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通电,其他相断电
#define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通电,其他相断电
#define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;}//D相通电,其他相断电
#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电


/*------------------------------------------------
                    主函数
------------------------------------------------*/
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 {A1=0;B1=0;C1=0;D1=0;}//全部断电
  
  while(1)  //空的大循环
   {
  
     }

}

/*------------------------------------------------
                 定时器中断子程序
------------------------------------------------*/
void exter0() interrupt 1         //定时器0的中断程序//定时器1的中断程序 void exter1() interrupt 3//
{
static unsigned char i2,i;
TH0=(65536-1000)/256;                  //重新赋值 1ms  100ma 快, 5ms--135ma慢23秒一圈。
TL0=(65536-1000)%256;

  t1++;
   
  if(t1<10000){            //正转10秒

  switch(i)
       {
          
    //正转
            case 0: Coil_DA1;i++;break;         
                case 1: Coil_D1;i++;break;   
                case 2: Coil_CD1;i++;break;
                case 3:Coil_C1;i++;break;
                case 4:Coil_BC1;i++;break;
                case 5:Coil_B1;i++;break;
                case 6:Coil_AB1;i++;break;
                case 7:Coil_A1;i++;break;
                case 8:i=0;break;
         //default:break;
           }

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

          {
          //反转
            case 0:Coil_A1;i2++;break;
                case 1:Coil_AB1;i2++;break;
                case 2:Coil_B1;i2++;break;
                case 3:Coil_BC1;i2++;break;
                case 4:Coil_C1;i2++;break;
                case 5:Coil_CD1;i2++;break;
                case 6:Coil_D1;i2++;break;
                case 7:Coil_DA1;i2++;break;
                case 8:i2=0;break;   
            //default:break;
           }
                }

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

}

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

GMT+8, 2024-11-22 07:51 , Processed in 0.046474 second(s), 4 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号

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