找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1000|回复: 0
打印 上一主题 下一主题
收起左侧

求补全程序的电路原理图,源码,详细说明与图片

[复制链接]
跳转到指定楼层
楼主
ID:827422 发表于 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;
                                }
                        }
                }
                }               
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表