51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)
51单片机通过按键简单控制直流电机正反转程序(Proteus仿真)

- Proteus仿真
AT89C52、motor、
- 器件


- 原理图搭建

实例代码
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| /\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 直流电机正、反转控制 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/ #include <REGX52.H>
sbit led_n=P0^0; sbit led_r=P0^1; sbit led_s=P0^2;
sbit ZZ=P2^0; sbit FZ=P2^1; sbit TZ=P2^2;
sbit IN1=P1^0; sbit IN2=P1^1; sbit ENA=P1^2;
int count=0; void T0\_isr() interrupt 1 using 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; count++; if(count<3) { ENA=0; } else { ENA=1; } if(count>=10) { count=0; }
} void delayms(unsigned char xms) { unsigned char i,j; for(i=xms; i>0; i--) for(j-110; j>0; j--); } void keyscan() { if(ZZ==0) { delayms(10); if(ZZ==0) {
IN1=1; IN2=0; led_n=0; led_r=1; led_s=1; } while(ZZ==0); } if(FZ==0) { delayms(10); if(FZ==0) {
IN1=0; IN2=1; } while(FZ==0); } if(TZ==0) { delayms(10); if(TZ==0) {
IN1=0; IN2=0; } while(TZ==0); } }
void main() { TMOD=0x01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; IN1=0; IN2=0; while(1) { keyscan(); } }
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!