历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | 单片机控制28BYJ-48步进电机驱动源码

2020-01-28 来源:51hei

单片机控制28BYJ-48步进电机驱动
单片机源程序如下:

#include

#include



unsigned char CCW[8]={0x80,0xC0,0x40,0x60,0x20,0x30,0x10,0x90};   //逆时钟旋转相序表

unsigned char CW[8]={0x90,0x10,0x30,0x20,0x60,0x40,0xC0,0x80};    //正时钟旋转相序表

//unsigned char tab[] = {0x0f};


sbit K1 = P3^0;  //反转按键

sbit K2 = P3^1;  //正转按键

sbit K3 = P3^2;  //停止按键

sbit K4 = P3^3;  //  蜂鸣器


unsigned char K1_Flag=0,K2_Flag=0,K3_Flag=0,K4_Flag=0;


void delay_ms(unsigned int z)                //@11.0592MHz

{

        unsigned char i, j;

   do

   {

        _nop_();

        _nop_();

        _nop_();

        i = 11;

        j = 190;

        do

        {

                while (--j);

        } while (--i);

        }while (--z);

}


void delay_us(unsigned int z)                //@11.0592MHz

{

        do

        {

                _nop_();

                _nop_();

                _nop_();

        }while(--z);

}



void main(void)

{

        unsigned char i;

        while(1)

        {

                if(K1 == 0)

                {

                        delay_ms(5);

                        {

                                if(K1 == 0) 

                                {

                                        K1_Flag = ~K1_Flag;

                                        K2_Flag = 0;

                                        K3_Flag = 0;

                                        K4_Flag = 0;

                                }

                                while(K1 == 0);

                        }

                }

                else if(K2 == 0)

                {

                           delay_ms(5);

                        {

                                if(K2 == 0) 

                                {

                                        K2_Flag = ~K2_Flag;

                                        K1_Flag = 0;

                                        K3_Flag = 0;

                                        K4_Flag = 0;

                                }

                                while(K2 == 0);

                        }

                }

                else if(K3 == 0)

                {

                        delay_ms(5);

                        {

                                if(K3 == 0) 

                                {

                                        K3_Flag = ~K3_Flag; 

                                        K1_Flag = 0;

                                        K2_Flag = 0;

                                        K4_Flag = 0;

                                }

                                while(K3 == 0);

                        }

                }

                else if(K4 == 0)

                {

                           delay_ms(5);

                        {

                                if(K4 == 0) 

                                {

                                        K4_Flag = ~K4_Flag;

                                        K1_Flag = 0;

                                        K2_Flag = 0;

                                        K3_Flag = 0;

                                }

                                while(K4 == 0);

                        }

                }

                if(K1_Flag)

                {

                        for(i=0;i<8;i++)  //旋转45度

                        {

                                P2=CW[i];

                                delay_us(80);   //调节转速

                        P0 = 0XC6;

                        P2 &= 0XF0;

                        P2 |= 0X02;

                        P0 = 0XF9;

                        P2 &= 0XF0;

                        P2 |= 0X04;

                        }

                }

                else if(K2_Flag)

                {

                        for(i=0;i<8;i++)  //旋转45度

                        {

                                P2=CW[i];

                                delay_us(200);   //调节转速

                        }

                        P0 = 0XC6;

                        P2 &= 0XF0;

                        P2 |= 0X02;

推荐阅读

史海拾趣

CONTEC公司的发展小趣事

近年来,随着手持式脉搏血氧仪市场的不断扩大,CONTEC公司凭借其在医疗设备领域的技术积累和市场经验,成功切入该领域并取得了显著成绩。公司的手持式脉搏血氧仪产品凭借其高精度、稳定性和便捷性受到了市场的广泛认可。在全球手持式脉搏血氧仪市场规模持续增长的背景下,CONTEC公司凭借其技术优势和市场竞争力,不断拓展国内外市场,实现了快速发展。

请注意,以上故事仅基于公开信息整理,如需更详细和深入的了解,建议查阅相关行业报告或联系公司获取更准确的信息。同时,这些故事仅描述了CONTEC公司在不同发展阶段的一些重要事件和成就,并不代表其全部发展历程。

Aeroflex公司的发展小趣事

2008年,对于CONTEC公司来说是具有里程碑意义的一年。这一年,公司建成了康泰产业园(一期),并进一步加强了研发和生产能力。同时,公司技术中心被省发改委等部门确定为省认定企业技术中心,这标志着公司在技术研发和创新方面得到了官方认可和支持。随着产业园的投入使用,公司的生产规模和效率得到了显著提升。

Eurofarad公司的发展小趣事

Eurofarad,作为Exxelia Technologies旗下的知名品牌,自1965年成立以来,就专注于电子元件的设计和制造。在创立初期,Eurofarad凭借对电子技术的深入研究和对市场需求的敏锐洞察,迅速推出了多款高性能、高质量的电子元件产品。这些产品在市场上获得了广泛的认可,为Eurofarad的后续发展奠定了坚实的基础。

FCI connector [富加宜连接器]公司的发展小趣事

FCI Connector的前身可以追溯到1937年成立的费城绝缘体公司(Philadelphia Insulation Company)。这家公司最初专注于电子零件的制造和销售。随着时间的推移,公司在1976年被德州仪器(Texas Instruments)收购,并更名为TI Electronic Components(TIEC)。然而,TIEC在1981年做出了一个重大的战略决策:将连接器业务剥离出来,成立了FCI Connector公司。这一决策让FCI能够更专注于电子连接器的研发、生产和销售,为其后续的快速发展奠定了基础。

Base Two (2) Systems公司的发展小趣事

随着公司业务的不断发展壮大,Base Two (2) Systems开始实施国际化战略。公司积极拓展海外市场,与多个国家和地区的合作伙伴建立了合作关系。同时,公司还在海外设立了研发中心和生产基地,以便更好地服务全球客户。这一国际化战略的实施,使得公司的业务范围更加广泛,也为公司的未来发展打开了新的篇章。

这五个故事展示了Base Two (2) Systems在电子行业中的发展历程和取得的成就。通过技术创新、市场扩张、研发投入、品质管理和国际化战略的实施,公司逐渐发展成为电子行业中的佼佼者,为行业的发展做出了积极的贡献。

Geyer Electronic E K公司的发展小趣事

Base Two (2) Systems公司自创立之初,便以技术创新为核心竞争力。在创始团队的带领下,公司研发团队不断攻克技术难关,成功研发出一系列具有领先水平的电子产品。这些产品不仅性能卓越,而且具有广泛的应用前景,为公司在市场上赢得了良好的口碑。

问答坊 | AI 解惑

全面了解红外遥控

全面了解红外遥控…

查看全部问答>

电感教程

电感器的定义 电感的作用 电感的主要特性参数 常用电感线圈 电感的型号、规格及命名 常见的磁芯磁环 电感在使用过程中要注意的事项…

查看全部问答>

uCLinux 挂载NFS文件系统出错

宿主机系统配置:VMWare虚拟机,安装FC8, 目标板:LPC2478  32MSDRAM uboot通过TFTP从宿主机启动Linux,ROMfs文件系统: 启动信息如下: ********************************************** *          ...…

查看全部问答>

问一个弱问题:关于trueffs for wince

今天发现自己的WM系统的ROM是用TRUEFFS格式的,用的芯片好像是什么DISKONCHIP,没听过,自己对WM不熟悉,WINCE也才入门 问题是:此TRUEFFS格式是怎样的一种格式,相较TFAT、FAT有何优势。可否用在WINCE 的NAND上?如1208。请各位大虾在此流下脚印, ...…

查看全部问答>

请问在vxworks下如何查看pci自动分配的中断号和基地址

我有一装置,有4个com口为pci扩展口,系统自动为其分派中断号,如果硬件发生改变中断号可能发生变化,我怎么才能知道它分配的中断号呢,还有基地址会变吗?请大家指点一下。…

查看全部问答>

wince platform builder 5 定制系统时如何加入 .net compact framework 2

我开发的应用程序基于vs2005,调试时部署到开发板后能自动部署CF2及应用程序,但由于系统运行于nand flash,重新开机后上一次部署消失。只能想办法将CF2在定制时加入wince内核。各位高手帮帮忙!!…

查看全部问答>

使用EVC实现SQL Server 同SQL Server CE数据同步

看到微软使用的接口ISSCEMerge,但是没有找到包含该接口实现的ca_mergex20.lib ,当前只有SA1100的库文件。请问,当前有没有for ARM2440的库?…

查看全部问答>

帮忙请推荐,谢谢

加拿大工业设备公司招聘: Software Engineer-Shanghai Job Description: 精通Labwindows/CVI V7.0以及C 精通Windows操作系统 精通Microsoft access 精通软件系统的结构设计 拥有户界面设计,图表处理和DSP编程方面的丰富知识和实践经验 拥 ...…

查看全部问答>

STM32F103FLASH编程问题

                                 请问STM32 的FLASH 在编程时,是不是只能对数据时0XFFFF的地址进行编程,而不能对已编程的地址写数据?请高手指教 ...…

查看全部问答>

论坛被黑了???

论坛被黑了,还是怎么啊!那么多乱八七糟的信息!…

查看全部问答>