您的位置 首页 汽车

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

#includereg51.h>#defineucharunsignedchar#defineuintunsignedintsbitINPUT1=P1^0;//控制口sbitINPUT2=P1^

  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. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/275276.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部