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

標(biāo)題: 該課程設(shè)計以兩人組隊的形式,制作尋線型電腦鼠。 [打印本頁]

作者: devil8051    時間: 2018-5-31 20:56
標(biāo)題: 該課程設(shè)計以兩人組隊的形式,制作尋線型電腦鼠。
總體設(shè)計思路和步驟  尋線型電腦鼠不同于以前的走迷宮,是利用紅外傳感器進行路線探測并選擇前進方向的小型智能機器人。其設(shè)計步驟包括:系統(tǒng)設(shè)計、利用Altium   Designer軟件繪制原理圖和PCB圖,電腦鼠硬件焊接組裝、軟件代碼書寫調(diào)試和總體調(diào)試。硬件部分主要由傳感器,單片機,電機驅(qū)動組成。傳感器采用紅外傳感器,由發(fā)射管和接收管組成,可探測黑線迷宮。單片機采用IAP15W413AS芯片,用于編寫和實現(xiàn)程序。電機驅(qū)動由單片機產(chǎn)生的PWM以及L9110芯片進行驅(qū)動。軟件部分主要由產(chǎn)生PWM函數(shù),搜尋路徑法則,記錄信息,測速盤組成。此課程設(shè)計中電腦鼠按照左手法則進行路線搜索,根據(jù)測速盤的計數(shù)得到迷宮坐標(biāo)并儲存。第一次排除迷宮中的死路,第二次便可沿迷宮中最短路徑走出迷宮。
C51單片機的初始化及底層驅(qū)動
  1. 三、車體轉(zhuǎn)彎控制(左手法則)
  2. *functionname :void leftMethod (void)
  3. *parament    :none *return value  :none  
  4. *description   :左手法則  優(yōu)先級為: 右 -> 前 ->  左   并且存儲即將行走的下一個格子的坐標(biāo)
  5. voidLeftMethod4()
  6. {   
  7. if(Left_Detector==0)         
  8. {     
  9. TurnLeft();   
  10. }   
  11. elseif(Front_Detector==0)
  12. {   
  13. Go();   
  14. }   
  15. else
  16. if(Right_Detector==1&&Left_Front_Detector==1)        
  17. {TurnRight();}   
  18. elseif(Left_Detector==1&&Front_Detector==1&&Right_Detector==0)
  19. {
  20. TurnBack();
  21. }
  22. }
  23. 四、調(diào)整函數(shù)
  24.     void adjust2()  
  25. {
  26. if(Front_Detector==0)  
  27. {     
  28. if(Left_Front_Detector==0)     
  29. {         
  30. speed(1,0,0,1);     
  31. }   
  32. elseif(Right_Front_Detector==0)      
  33. {            
  34. speed(0,1,1,0);                                            }   
  35. else      
  36. {
  37. speed(0,1,0,1);
  38. }      
  39. }
  40. else
  41. {      
  42. if(Left_Front_Detector==0)     
  43. {         
  44. speed(1,0,0,1);     
  45. }   
  46. elseif(Right_Front_Detector==0)      
  47. {            
  48. speed(0,1,1,0);
  49. }
  50. }
  51. }
  52. void Go()
  53. {
  54. speed(0,1,0,1);
  55. }
  56. //------------------小車右轉(zhuǎn)函數(shù)-------------------//
  57. void TurnRight()
  58. {
  59. //u8 flg=1;speed2(0,1,1,0); //左輪前轉(zhuǎn),右輪后轉(zhuǎn)
  60. //left_count=right_count=0;
  61. /* while(flg==1)
  62. {
  63. if(left_count==12|right_count==12)
  64. {
  65. speed(0,0,0,0); //兩輪停轉(zhuǎn)
  66. left_count=0;
  67. right_count=0;
  68. flg=0;
  69. }
  70. }  
  71. for(flg=0;flg<100;flg++)
  72. {
  73. Delay(6000);
  74. }*/
  75. }
  76. //------------------小車左轉(zhuǎn)函數(shù)-------------------//
  77. void TurnLeft()
  78. {
  79. //u8 flg=1;
  80. speed2(1,0,0,1); //左輪后轉(zhuǎn),右輪前轉(zhuǎn)
  81. //left_count=right_count=0;
  82. }
  83. //------------------小車后轉(zhuǎn)函數(shù)-------------------//
  84. void TurnBack()
  85. {
  86. u8 flg=1;
  87. //left_count=right_count=0;
  88. while(Front_Detector==1)
  89. {speed2(0,1,1,0);}
  90. //左輪前轉(zhuǎn),右輪后轉(zhuǎn)
  91. }
  92. //------------------小車停止函數(shù)-------------------//
  93. void Stop()
  94. {
  95. // u8 flg=1;
  96. // left_count=right_count=0;
  97. speed(0,0,0,0);
  98. //左輪后轉(zhuǎn),右輪后轉(zhuǎn)
  99. }
  100. 五、速度PWM 設(shè)置
  101. //------調(diào)整函數(shù)----f_pwm=PCA_clk/256-------//
  102. void speed(bit a,bit b,bit c,bit d)
  103. {
  104. I1=a;
  105. I2=b;  
  106. I3=c;
  107. I4=d;
  108. PCA_PWM0 = 0X00;
  109. CCAP0H = CCAP0L =39;
  110. //修改此處數(shù)值[0~255]可以調(diào)節(jié)CCP2_0占空比
  111. CCAPM0 = 0x42;
  112. PCA_PWM1 = 0X00;
  113. CCAP1H = CCAP1L =40;
  114. //修改此處數(shù)值[0~255]可以調(diào)節(jié)CCP2_1占空比
  115. CCAPM1 = 0x42;
  116. }
  117. void speed2(bit a,bit b,bit c,bit d)
  118. {
  119. I1=a;
  120. I2=b;
  121. I3=c;
  122. I4=d;
  123. PCA_PWM0 = 0X00;  
  124. CCAP0H = CCAP0L =90;
  125. //修改此處數(shù)值[0~255]可以調(diào)節(jié)CCP2_0占空比
  126. CCAPM0 = 0x42;
  127. PCA_PWM1 = 0X00;  
  128. CCAP1H = CCAP1L =90;
  129. //修改此處數(shù)值[0~255]可以調(diào)節(jié)CCP2_1占空比
  130. CCAPM1 = 0x42;
  131. }
  132. void speed3(bit a,bit b,bit c,bit d)
  133. {
  134. I1=a;
  135. I2=b;
  136. I3=c;
  137. I4=d;
  138. PCA_PWM0 = 0X00;
  139. CCAP0H = CCAP0L =255;
  140. //修改此處數(shù)值[0~255]可以調(diào)節(jié)CCP2_0占空比
  141. CCAPM0 = 0x42;
  142. PCA_PWM1 = 0X00;
  143. CCAP1H = CCAP1L =255;
  144. //修改此處數(shù)值[0~255]可以調(diào)節(jié)CCP2_1占空比
  145. CCAPM1 = 0x42;
  146. }
  147. //-------------------PWM模式使能函數(shù)----------------//
  148. void PWM_Cmd(bit cmd)
  149. {
  150. if(cmd==ENABLE)
  151. CR=1;
  152. else if(cmd==DISABLE)
  153. CR=0;

  154. }
復(fù)制代碼







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 新91 | 永久看片| 久久69精品久久久久久久电影好 | 久久久久久久久久久丰满 | 国产一区h | 在线观看精品视频网站 | 国产精品久久久久久久久久久久久 | 国产精品亚洲一区二区三区在线观看 | 噜久寡妇噜噜久久寡妇 | 男女视频在线免费观看 | 99riav3国产精品视频 | 欧美日韩视频在线播放 | 欧美日韩黄 | 色偷偷噜噜噜亚洲男人 | 中文字幕亚洲一区二区三区 | 欧美成人精品一区二区男人看 | 欧美精品一区二区三区在线 | 日韩一二三区视频 | 九九九视频在线观看 | 久久久蜜桃| 国产免费一级一级 | 亚洲视频免费 | 亚洲欧美中文字幕 | 亚洲精品国产第一综合99久久 | 综合中文字幕 | 久久精品亚洲精品国产欧美 | 国产成人在线一区二区 | 国产精品高潮呻吟久久 | 国产精品黄视频 | 911网站大全在线观看 | 日韩欧美中文字幕在线观看 | 日韩欧美亚洲 | 成人精品久久 | 久久33| 久久久久久久一区二区三区 | 欧美日韩中文在线 | 男人视频网站 | 成人免费淫片aa视频免费 | 天堂一区二区三区 | 日本三级全黄三级a | 久久久国产精品一区 |