久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 藍牙小車可調速源程序 [打印本頁]

作者: 俁戈    時間: 2017-10-25 21:48
標題: 藍牙小車可調速源程序
單片機源程序如下:
  1. #include<reg52.h>  
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. uchar Buffer[4] = {0}; //從串口接收的數據
  5. uint i,j;
  6. sbit Z1=P2^0;  //左電機前進
  7. sbit Z2=P2^1;  //左電機后退
  8. sbit Y1=P2^2;  //右電機前進
  9. sbit Y2=P2^3;  //右電機后退
  10. sbit ENA=P0^0;
  11. sbit ENB=P0^1;

  12. bit Right_moto_stp=1;
  13. bit Left_moto_stp =1;
  14. uchar pwm_val_left=0;   //定義變量
  15. uchar push_val_left=0;  //左電機占空比為N/20
  16. uchar pwm_val_right=0;
  17. uchar push_val_right=0; //右電機占空比為N/20



  18. void Delay_1ms(uint i)//1ms延時
  19. {
  20. uchar x,j;
  21. for(j=0;j<i;j++)
  22. for(x=0;x<=148;x++);
  23. }
  24. /********************************************************************
  25. * 名稱 : Com_Int()
  26. * 功能 : 串口中斷子函數
  27. * 輸入 : 無
  28. * 輸出 : 無
  29. ***********************************************************************/
  30. void Com_Int(void) interrupt 4
  31. {

  32. EA = 0;
  33. if(RI == 1) //當硬件接收到一個數據時,RI會置位
  34. {
  35. Buffer[0] = SBUF - 48; //這里減去48是因為從電腦中發送過來的數據是ASCII碼。
  36. RI = 0;

  37. }
  38. EA = 1;
  39. }
  40. /********************************************************************
  41. * 名稱 : Com_Init()
  42. * 功能 : 串口初始化,晶振11.0592,波特率9600,使串口中斷
  43. * 輸入 : 無
  44. * 輸出 : 無
  45. ***********************************************************************/
  46. void Com_Init(void)
  47. {

  48. TMOD = 0x20;
  49. PCON = 0x00;
  50. SCON = 0x50;
  51. TH1 = 0xFd; //設置波特率 9600
  52. TL1 = 0xFd;
  53. TR1 = 1; //啟動定時器1
  54. ES = 1; //開串口中斷
  55. EA = 1; //開總中斷
  56. }

  57. void run()
  58. {
  59.                 push_val_left=20;   
  60.                 push_val_right=20;  

  61.                 Z1=0;Z2=1;
  62.                 Y1=0;Y2=1;
  63. Delay_1ms(100);
  64. }

  65. void backrun()
  66. {
  67.                 push_val_left=20;
  68.                 push_val_right=20;

  69. Z1=1;Z2=0;
  70. Y1=1;Y2=0;
  71. Delay_1ms(100);
  72. }

  73. void left()
  74. {
  75.                 push_val_left=13;
  76.                 push_val_right=13;

  77. Z1=1;Z2=1;
  78. Y1=0;Y2=1;
  79. Delay_1ms(100);
  80. }

  81. void right()
  82. {
  83.                 push_val_left=13;
  84.                 push_val_right=13;

  85. Z1=0;Z2=1;
  86. Y1=1;Y2=1;
  87. Delay_1ms(100);
  88. }

  89. void stop()
  90. {
  91. Z1=1;Z2=1;
  92. Y1=1;Y2=1;
  93. Delay_1ms(100);
  94. }

  95. void pwm_out_left_moto(void) //左電機調速,調節push_val_left的值改變電機轉速,占空比

  96. {

  97. if(Left_moto_stp)

  98. {                                                                           
  99. {if(pwm_val_left<=push_val_left)

  100. { ENB=1;}

  101. else

  102.   {ENB=0;}
  103.   }
  104. {if(pwm_val_left>=20)

  105.   {pwm_val_left=0;}
  106.   }
  107. }

  108. else

  109. {ENB=0;}

  110. }



  111. void pwm_out_right_moto(void) //右電機調速,調節push_val_left的值改變電機轉速,占空比

  112. {

  113. if(Right_moto_stp)

  114. {

  115. if(pwm_val_right<=push_val_right)

  116. {ENA=1;}

  117. else

  118. {ENA=0;}

  119. if(pwm_val_right>=20)

  120. {pwm_val_right=0;}

  121. }

  122. else

  123. {ENA=0;}

  124. }


  125. /*TIMER0中斷服務函數產生PWM信號*/
  126. void timer0 ()interrupt 1
  127. {
  128.                 TH0=0XEC;     //5ms定時   
  129.                 TL0=0X30;  
  130.                 pwm_val_left++;
  131.                 pwm_val_right++;
  132.                 pwm_out_left_moto();
  133.                 pwm_out_right_moto();
  134. }

  135. void main()
  136. {


  137. Delay_1ms(100);
  138. Com_Init();//串口初始化
  139. TMOD|=0X01;

  140. TH0= 0XFC; //2ms定時

  141. TL0= 0X30;                                                                 

  142. TR0= 1;

  143. ET0= 1;

  144. EA = 1;

  145. while(1)
  146. {
  147. switch(Buffer[0])
  148. {
  149. case 5: stop(); break;
  150. case 2: run(); break;
  151. case 8: backrun(); break;
  152. case 4: left(); break;
  153. case 6: right(); break;

  154. default:break;
  155. }

  156. }
  157. }

復制代碼






作者: 騰飛的龍    時間: 2017-11-4 14:11
這個不可以調速吧?看程序里沒有啊。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产美女网站 | 欧美freesex黑人又粗又大 | 成人国产在线视频 | 丁香婷婷在线视频 | 国产乱码精品一区二三赶尸艳谈 | www.中文字幕 | 国产精品美女久久久久aⅴ国产馆 | 成人黄页在线观看 | 婷婷开心激情综合五月天 | 亚洲人免费视频 | 日韩精品一区二 | 成人欧美一区二区三区在线观看 | 在线成人免费视频 | 亚洲精品自在在线观看 | 午夜欧美a级理论片915影院 | 日韩第一夜 | 日本三级线观看 视频 | 99成人精品 | 九九视频在线观看视频6 | 国产精品1区2区3区 一区中文字幕 | 久久精品国产99国产精品亚洲 | 色av一区二区 | 黄网免费看| 在线一区二区三区 | 久久精品亚洲成在人线av网址 | 成人超碰在线 | a免费视频 | 亚洲精品一区二区冲田杏梨 | 国产精品欧美一区二区三区不卡 | 免费观看羞羞视频网站 | 亚洲在线一区二区 | 成人日韩 | 亚洲一区 中文字幕 | 日韩a级片| 国产成人精品午夜 | 天天干天天爱天天爽 | 综合久| 91在线观看免费视频 | 精品亚洲第一 | 毛片a级毛片免费播放100 | 99精品欧美一区二区三区综合在线 |