微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > L298N直流步进电机驱动直流电机程序

L298N直流步进电机驱动直流电机程序

时间:11-11 来源:互联网 点击:
  1. #include
  2. #defineucharunsignedchar
  3. #defineuintunsignedint
  4. sbit INPUT1=P1^0;//控制口
  5. sbit INPUT2=P1^1;
  6. sbit INPUT3=P1^2;
  7. sbit INPUT4=P1^3;
  8. sbit ENA=P1^4;//产生PWM波
  9. sbit ENB=P1^5;
  10. uint MA=0,MB=0;
  11. uint SpeedA=20;//50%占空比
  12. uint SpeedB=20;
  13. voiddelay(uint z){
  14. uint x,y;
  15. for(x=z;x>0;x--)
  16. for(y=125;y>0;y--);
  17. }
  18. voidmain(void)
  19. {
  20. L298N_init();
  21. while(1){}
  22. }
  23. voidL298N_init(void)
  24. {
  25. delay(1000);
  26. delay(1000);
  27. INPUT1=1;INPUT2=0;
  28. INPUT3=1;INPUT4=0;//电机停此
  29. TH0=0xF4;
  30. TL0=0x48;
  31. TH1=0xF4;
  32. TL1=0x48;
  33. TMOD=0x11;
  34. TR0=1;
  35. TR1=1;
  36. ET0=1;
  37. ET1=1;
  38. EA=1;
  39. }
  40. voidtime0_int()interrupt 1using1
  41. {
  42. TR0=0;
  43. TH0=0xF4;
  44. TL0=0x48;
  45. MA++;
  46. if(MA
  47. ENA=1;
  48. }
  49. elseENA=0;
  50. if(MA==40){
  51. MA=0;
  52. }
  53. TR0=1;
  54. }
  55. voidtime1_int()interrupt 3using1
  56. {
  57. TR1=0;
  58. TH1=0xF4;
  59. TL1=0x48;
  60. MB=MB+1;
  61. if(MB
  62. ENB=1;
  63. }
  64. elseENB=0;
  65. if(MB==40){
  66. MB=0;
  67. }
  68. TR1=1;
  69. }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top