|
下面是仿真原理图:
给51黑电子论坛的朋友们分享一个单片机控制直流电机的proteus仿真,如上图所有3个控制按钮,正转 反转和停止。本人测试成功。
下面是源程序:- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit K1=P3^0;
- sbit K2=P3^1;
- sbit K3=P3^2;
- sbit P1_0=P1^0;
- sbit P1_1=P1^1;
- void motor_start();
- void motor_turn();
- void motor_pause();
- void delay(uint x)
- {
- uchar i;
- while(x--)
- { for(i=0;i<120;i++); }
- }
- void main()
- {
- while(1)
- {
- motor_start();
- motor_turn();
- motor_pause();
- }
- }
- void motor_start()//正转
- {
- if(K1==0)
- {
- delay(10);
- if(K1==0)
- {
- P1_0=0;
- P1_1=1;
- }
- }
- }
- void motor_turn()//反转
- {
- if(K2==0)
- {
- delay(10);
- if(K2==0)
- {
- P1_0=1;
- P1_1=0;
- }
- // while(K2==0);
- }
- }
- void motor_pause()//暂停 或者 停止
- {
- if(K3==0)
- {
- delay(10);
- if(K3==0)
- {
- P1_0=0;
- P1_1=0;
- }
- }
- }
复制代码
|
|