L298N控制直流电机
时间:10-02
整理:3721RD
点击:
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit ENA=P1^2;
- sbit IN1=P1^3;
- sbit IN2=P1^4;
- sbit ENB=P1^5;
- sbit IN3=P1^6;
- sbit IN4=P1^7;
- uint MA=0;
- uint speedA=50;
- int flag=0;
- void timeinit()
- {
- TMOD=0x01;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void Ques1()
- {
- switch(flag/10)
- {
- case 0: TR0=0;
- if(MA<speedA)
- {
- ENA=1;ENB=1;
- IN1=1;IN2=0;
- IN3=0;IN4=1;
- }
- else
- {
- if(speedA<=MA<100)
- {
- ENA=0;
- ENB=0;
- }
- else
- {
- MA=0;
- flag++;
- }
- }
- TR0=1;
- break;
- case 1: TR0=0;
- if(MA<speedA)
- {
- ENA=1;ENB=1;
- IN1=0;IN2=1;
- IN3=1;IN4=0;
- }
- else
- {
- if(speedA<=MA<100)
- {
- ENA=0;
- ENB=0;
- }
- else
- {
- MA=0;
- flag++;
- }
- }
- TR0=1;
- break;
- default : flag=0;
- break;
- }
- }
- void time0() interrupt 1
- {
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- MA++;
- }
- void main()
- {
- timeinit();
- while(1)
- {
- Ques1();
- }
- }