标题:
求补全程序的电路原理图,源码,详细说明与图片
[打印本页]
作者:
斯文的狂野
时间:
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