单片机
返回首页

用proteus8.0仿真51单片机控制步进电机实验报告与源码

2019-10-23 来源:51hei

用proteus8.0仿真51单片机控制步进电机,实现简单的正反转、加减速控制。
ps. 该贴仅为获取黑币而法,如有雷同,多多保函
实验内容

  • 掌握KeilC51软件与Protues软件联合仿真调试的方法;

  • 掌握步进电机的工作原理及控制方法;

  • 掌握步进电机控制的不同编程方法。

电路图


实验心得

    这次实验让我学到了通过改变延时函数的参数可以实现步进电机的增减速,改变驱动电机的数模可以实现电机的正反转,中途遇到的困难不少,但在老师的指导下总算是完成任务。这两次实验使我能更熟练地运用微机来控制其他器件,获益良多。


单片机源程序如下:

#include

sbit KEY0=P0^0;

sbit KEY1=P0^1;

sbit KEY2=P0^2;

sbit KEY3=P0^3;

sbit KEY4=P0^4;

unsigned char a[]={0x01,0x02,0x04,0x08};

unsigned char b[]={0x08,0x04,0x02,0x01};

unsigned char c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};


unsigned char i,s=0,f=0;

unsigned char k=200;

unsigned char l=4;

void delay(unsigned int t)

{

        unsigned char j,b;

b=t;

        while(b--)

        {

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

        }

}

void key()

{P0=0x1f;

        if(P0!=0x1f)

        {delay(30);

                if(P0!=0x1f)

                {delay(30);

        if(KEY0==0)

        {s=1;}

        if(KEY1==0)

        {f=1;}

        if(KEY4==0)

        {s=0;

                f=0;}

        if(KEY2==0)

                {if(l>1)

                 l--;}

        if(KEY3==0)

          {if(l<7)

     l++;}

         }}

         }

void speed()

         {switch(l)

                        {case 7:k=50;P1=c[l];break;

                                case 6:k=100;P1=c[l];break;

                                case 5:k=150;P1=c[l];break;

                                case 4:k=200;P1=c[l];break;

                                case 3:k=250;P1=c[l];break;

                                case 2:k=300;P1=c[l];break;

                                case 1:k=350;P1=c[l];break;}

                        }

void main()

{

        while(1)

        {key();

        while(s>0)

        {speed();

                        for(i=0;i<4;i++)

                                {

                                        P2=b[i];

                                        delay(k);

                                        key();

                                }

                                delay(100);

                                key();

                }

        

        while(f>0)

        {speed();

                        for(i=0;i<4;i++)

                                {

                                        P2=a[i];

                                        delay(k);

                                        key();

                                }

                                delay(100);

                                key();

                }

        }

        }


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章