×
嵌入式 > 嵌入式开发 > 详情

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

发布时间:2020-07-24 发布时间:
|
  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. }


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
五大标准轻松搞定4K超高清电视选购