标题: 求补全程序的电路原理图,源码,详细说明与图片 [打印本页]

作者: 斯文的狂野    时间: 2020-10-9 23:38
标题: 求补全程序的电路原理图,源码,详细说明与图片
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int

sbit PUL=P1^0;                 //脉冲输出
sbit DIR2=P2^1;                 //正反转控制
sbit zz=P3^0;                 //正转按键zz
sbit fz=P3^1;                 //反转按键fz
//sbit hw=P1^1;                  //红外接收
sbit k1=P3^2;                 //加速
sbit k2=P3^3;                 //减速

sbit LED1=P2^5;
sbit LED2=P2^6;
sbit LED3=P2^7;
uchar k=0;

   

        void delay(uint i)             //延时函数(P1^0口PWM输出)
{
                while(i--);
}

                                                               
        void motorsd(void)                                  //电机调速,分4档频率分别为5HZ、7HZ、12.5HZ、50HZ
{

        if(k1==0)
        {
                delay(2000);
                        if(k1==0)
                        {
                                if(k<60)
                                {
                                        k=k+20;
                                }
                                else{k=0;}
                         while(!k1);
                        }
                //while(!k1);

         }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if(k2==0)
        {
                        delay(2000);
                        if(k2==0)
                        {
                                if(k>0)
                                {
                                        k=k-20;
                                }
                                        else{k=60;}
                                              while(!k2) ;
                                }
                        //           while(!k2) ;
                        }
}  




        void main()                                          //主函数
{        


                 if(zz==0)                         //正转按下,LED1亮,电机正转
                 {
                        LED1=0;
                        LED2=1;
                        LED3=1;
                         DIR2=0;
                           while(1)
                        {
                                motorsd();
                                PUL=0;
                                delay(70-k);
                                PUL=1;
                                delay(70-k);
                                if(fz==0)                                           //正转过程按下反转跳出循环,电机反转
                                {
                                        break;
                                }
                        }
               
         }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


                 if(fz==0)                           //按下反转,LED2亮,电机反转
                 {
                        LED2=0 ;
                        LED1=1;
                        LED3=1;
                         DIR2=1;
                           while(1)
                        {
                                motorsd();
                                PUL=0;
                                delay(70-k);
                                PUL=1;
                                delay(70-k);
                                if(zz==0)                                                //反转过程中按下正转,跳出循环电机正转
                                {
                                        break;
                                }
                        }
                }
                }               
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1