標(biāo)題: 求補(bǔ)全程序的電路原理圖,源碼,詳細(xì)說明與圖片 [打印本頁(yè)]

作者: 斯文的狂野    時(shí)間: 2020-10-9 23:38
標(biāo)題: 求補(bǔ)全程序的電路原理圖,源碼,詳細(xì)說明與圖片
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int

sbit PUL=P1^0;                 //脈沖輸出
sbit DIR2=P2^1;                 //正反轉(zhuǎn)控制
sbit zz=P3^0;                 //正轉(zhuǎn)按鍵zz
sbit fz=P3^1;                 //反轉(zhuǎn)按鍵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)             //延時(shí)函數(shù)(P1^0口PWM輸出)
{
                while(i--);
}

                                                               
        void motorsd(void)                                  //電機(jī)調(diào)速,分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()                                          //主函數(shù)
{        


                 if(zz==0)                         //正轉(zhuǎn)按下,LED1亮,電機(jī)正轉(zhuǎn)
                 {
                        LED1=0;
                        LED2=1;
                        LED3=1;
                         DIR2=0;
                           while(1)
                        {
                                motorsd();
                                PUL=0;
                                delay(70-k);
                                PUL=1;
                                delay(70-k);
                                if(fz==0)                                           //正轉(zhuǎn)過程按下反轉(zhuǎn)跳出循環(huán),電機(jī)反轉(zhuǎn)
                                {
                                        break;
                                }
                        }
               
         }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


                 if(fz==0)                           //按下反轉(zhuǎn),LED2亮,電機(jī)反轉(zhuǎn)
                 {
                        LED2=0 ;
                        LED1=1;
                        LED3=1;
                         DIR2=1;
                           while(1)
                        {
                                motorsd();
                                PUL=0;
                                delay(70-k);
                                PUL=1;
                                delay(70-k);
                                if(zz==0)                                                //反轉(zhuǎn)過程中按下正轉(zhuǎn),跳出循環(huán)電機(jī)正轉(zhuǎn)
                                {
                                        break;
                                }
                        }
                }
                }               
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1