【Proteus仿真】51单片机+直流电机正反转控制
【Proteus仿真】51单片机+直流电机正反转控制
- 🎬Proteus仿真演示:

📝程序代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| #include<reg52.h> sbit Key_UP=P1^2; //正转按键 sbit Key_DOWN=P1^3;//反转按键 sbit Key_STOP=P1^4;//停止键 sbit ZZ=P1^0;//控制端 sbit FZ=P1^1;//控制端 sbit BEEP = P1^6; //蜂鸣器控制端口P36 unsigned char KeyV,TempKeyV; void Delay(unsigned int ii) { unsigned int jj; for(;ii>0;ii--) for(jj=0;jj<125;jj++) {;} } /\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/ void beep() //蜂鸣器响一声函数 { unsigned char i; for (i=0;i<100;i++) { Delay(1); BEEP=!BEEP; //BEEP取反 } BEEP=1; //关闭蜂鸣器 Delay(250); //延时 } void main() { FZ=1; ZZ=1; while(1){ if (!Key_UP) KeyV = 1; if (!Key_DOWN) KeyV = 2; if (!Key_STOP) KeyV = 3; if (KeyV!= 0) { Delay(10); if (!Key_UP) TempKeyV = 1; if (!Key_DOWN) TempKeyV = 2; if (!Key_STOP) TempKeyV = 3; if (KeyV == TempKeyV) { if (KeyV == 1){ beep(); ZZ=1; FZ=0; } if(KeyV==2){ beep(); ZZ=0; FZ=1; } if(KeyV==3){ beep(); ZZ=0; FZ=0; } } } KeyV=0; TempKeyV=0; } }
|
📚程序源码和仿真资源
1 2 3
| 链接:https://pan.baidu.com/s/1zNZ-5PSAwxZ3TgZblC8fUA 提取码:l4xf
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!