历史上的今天
返回首页

历史上的今天

今天是:2025年01月03日(星期五)

正在发生

2020年01月03日 | A4988步进电机单片机驱动程序

2020-01-03 来源:51hei

这是自己用4988步进电机驱动芯片做的,4988芯片一般用在3D打印机上,具有体积小等优点。下面有我的测试程序,希望可以给需要的人提供参考。

单片机源程序如下:

/***************************************************************

* 实 验 名 :步进电机实验

* 实验说明 :电机启动、停止、正转、反转

* 实验平台 :51单片机开发板

* 连接方式 :pulse接P10  DIR接P11 KYE1接P20 KYE2接P21 KYE3接P22 KYE4接P23 ENABLE接P12 MS1-3接P13-P14

* 注    意 :本例程使用了中断定时器,中断介绍会在下一实验中说明

****************************************************************************/


#include

#include


#define FOSC 11059200L //晶振设置,默认使用11.0592M Hz

//#define FOSC 12000000L //晶振设置,使用12M Hz

//#define FOSC 24000000L //晶振设置,使用24M Hz


#define TIME_MS 1 //设定定时时间 ms ,在11.0592M晶振下,不易超过60ms


//IO接口定义

sbit pulse = P1^0;//脉冲信号

sbit Dir   = P1^1; //正反转


sbit EN    = P1^2;

sbit MS1   = P1^3; 

sbit MS2   = P1^4; 

sbit MS3   = P1^5; 




sbit KEY1 = P2^0;  //启动

sbit KEY2 = P2^1;  //停止

sbit KEY3 = P2^2;  //正转

sbit KEY4 = P2^3;  //反转



//全局变量定义

unsigned char count=0;


/*******************************************************************************

* 函 数 名 :Delayms

* 函数功能 :实现 ms级的延时

* 输    入 :ms

* 输    出 :无

*******************************************************************************/

void Delayms(unsigned int ms)

{

        unsigned int i,j;

        for(i=0;i        #if FOSC == 11059200L

                for(j=0;j<114;j++);

        #elif FOSC == 12000000L

          for(j=0;j<123;j++);

        #elif FOSC == 24000000L

                for(j=0;j<249;j++);

        #else

                for(j=0;j<114;j++);

        #endif

}


/*******************************************************************************

* 函 数 名 :Timer0Init

* 函数功能 :定时器0初始化

* 输    入 :无

* 输    出 :无

*******************************************************************************/

void Timer0Init()

{

        TMOD=0x01; //设置定时器0工作方式为1

        TH0=(65536-FOSC/12/1000*TIME_MS)/256;

        TL0=(65536-FOSC/12/1000*TIME_MS)%256;

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

//        TR0=1;        //开启定时器        

        EA=1;  //打开总中断

}



/*******************************************************************************

* 函 数 名 :main

* 函数功能 :主函数

* 输    入 :无

* 输    出 :无

*******************************************************************************/

void main()

{

        Timer0Init();

        EN=0;

        MS1=0;

        MS2=0;

        MS3=0;

        while(1)

        { 

  if(KEY1==0)  //判断是否按下键盘

        {

                Delayms(10); //延时,软件去干扰

                if(KEY1==0)   //确认按键按下

                {

      TR0=1;

                }

                while(KEY1==0);//按键锁定,每按一次count只加1.

        }

        if(KEY2==0)  //判断是否按下键盘

        {

                Delayms(10); //延时,软件去干扰

                if(KEY2==0)   //确认按键按下

                {

      TR0=0;

                }

                while(KEY2==0);//按键锁定,每按一次count只加1.

        }        

        

        if(KEY3==0)  //判断是否按下键盘

        {

                Delayms(10); //延时,软件去干扰

                if(KEY3==0)   //确认按键按下

                {

      Dir=0;

                }

                while(KEY3==0);//按键锁定,每按一次count只加1.

        }        

        

                if(KEY4==0)  //判断是否按下键盘

        {

                Delayms(10); //延时,软件去干扰

                if(KEY4==0)   //确认按键按下

                {

      Dir=1;

                }

                while(KEY4==0);//按键锁定,每按一次count只加1.

        }        

        

        

        }

}


/*******************************************************************************

……………………



推荐阅读

史海拾趣

Advanced Thermal Products Inc公司的发展小趣事

随着技术的不断积累,ATP公司开始加大产品创新的力度。他们推出了一系列具有竞争力的热管理产品,不仅满足了市场对于高效散热的需求,还凭借其优异的性能赢得了客户的青睐。同时,公司积极拓展市场,与多家电子设备制造商建立了长期合作关系,产品广泛应用于手机、电脑、服务器等领域。

Hitachi Chemical Co America Ltd公司的发展小趣事

为了保持技术领先,ATP公司积极与高校、科研机构等进行技术合作。他们共同研发新的热管理技术,不断推动产品升级换代。同时,公司还加大研发投入,引进先进的研发设备和人才,为公司的技术创新提供了有力支持。这些举措使得ATP公司在热管理领域的技术实力得到了显著提升。

国芯佳品公司的发展小趣事

为了保持技术领先,ATP公司积极与高校、科研机构等进行技术合作。他们共同研发新的热管理技术,不断推动产品升级换代。同时,公司还加大研发投入,引进先进的研发设备和人才,为公司的技术创新提供了有力支持。这些举措使得ATP公司在热管理领域的技术实力得到了显著提升。

Analog公司的发展小趣事

随着技术的不断积累,ATP公司开始加大产品创新的力度。他们推出了一系列具有竞争力的热管理产品,不仅满足了市场对于高效散热的需求,还凭借其优异的性能赢得了客户的青睐。同时,公司积极拓展市场,与多家电子设备制造商建立了长期合作关系,产品广泛应用于手机、电脑、服务器等领域。

Heatron LED Integration公司的发展小趣事

随着LED照明市场的不断扩大,Heatron LED Integration凭借敏锐的市场洞察力,迅速调整市场战略。公司不仅巩固了在国内市场的领先地位,还积极开拓国际市场,与多家国际知名企业建立了长期合作关系。通过参加国际展会、设立海外分支机构等方式,公司成功将产品推向全球多个国家和地区,实现了品牌的国际化。

ADPOW公司的发展小趣事

随着电源管理技术的不断成熟,ADPOW公司开始将技术应用于更多领域,推出了一系列创新产品。这些产品不仅在性能上有所提升,更在外观设计、用户体验等方面进行了优化。同时,公司积极拓展市场,与多家电子设备制造商建立合作关系,将产品广泛应用于手机、电脑、家电等领域。

问答坊 | AI 解惑

求助~什么是高压发生电路?

快要毕业了,发现毕业设计完全搞不懂(感觉更像物理专业的人做的-_-|:( )。网上又找不到资料,老师又没什么帮助,我现在着急的很。希望这方面的达人给我些帮助,或者有这方面的资料的给我发一下。非常感谢 题目:CRT彩显高压产生原理及应用--对设 ...…

查看全部问答>

LPC1114 关于GPS模块的资料!!

有做这方面的 交流!!!…

查看全部问答>

NAT源代码分析

有没有人做过NAT的功能阿,或研究过WINDNET NAT的源代码的阿?? 大家手上有没有vnvrmsth.h这个文件阿??…

查看全部问答>

贡献一个读GPS信息的串口程序!

通过这几天的摸索,我终于成功写出一个读取GPS信息的串口程序! 它基于windowsMobile5.0 ppc 程序  在多普达p800中测试通过。 在这里共享给大家! 如果大家有新的思路和方法,咱们也可以一起讨论和研究! 我的妹儿yunfeng83@163. ...…

查看全部问答>

linux与windowsCE的选择

大家好:     最近公司做个项目,需要其它公司提供手持终端,但就选择什么系统的手持终端机产生了疑惑。有的公司用的是linux系统的,有的是windowsCE。当然,设计人员各执己见了,说不同的系统有各自的弊端和优点。     所以 ...…

查看全部问答>

关于SSDT HOOK后通过事件通知应用程序问题

关于SSDT HOOK后通过事件通知应用程序问题 HOOK SSDT应该没有问题通过DbgPrint在自己的函数中显示被HOOK的信息一切正常但是通过事件通知应用程序时却有时候会蓝屏 驱动: 在列程序IRP_MJ_WRITE中 通过 RtlCopyMemory(&hEventApp,Irp->Associa ...…

查看全部问答>

病毒

为什么电脑盘符里面文件夹都出现一个内容相同的快捷方式    删了又会重复出现  谢谢…

查看全部问答>

针对Altera Stratix IV EP4SGX360 和 EP4SGX530 器件的电源参考设计

Altera® Stratix™ IV FPGA EP4SGX360及EP4SGX530参考设计展示了TI配电系统插入式电源模块…

查看全部问答>

杭州奇比电子产品有限公司诚聘

杭州奇比电子产品有限公司诚聘以下岗位:岗位名称:LED产品销售 区域经理(急)岗位职责:1、负责LED灯具和显示屏产品销售;2、制定区域市场营销计划并完成指标;3、收集和分析市场信息,进行客户分析、发展、建立良好的客户关系和客户档案;4、建 ...…

查看全部问答>

减少多核技术的繁琐事物处理

我们从德仪e2e博客http://e2e.ti.com/blogs_/default.aspx的多核产品园地博客中发现了很多关于多核应用的好文章,我们翻译、分享一些给大家。 本文重点通过支持多核协会 MCAPI 的可扩展编程模型优化多核 DSP 平台的性能与可移植性。 欲知更多多 ...…

查看全部问答>