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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1180|回復: 2
打印 上一主題 下一主題
收起左側

單片機循跡車循跡程序

[復制鏈接]
跳轉到指定樓層
樓主
自己寫的循跡車循跡程序,多多指教

單片機源程序如下:
  1. #include <reg52.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. /*****************延時函數 1ms******************/
  5. void delay(unsigned int ms)
  6. {
  7.         unsigned char i;
  8.         while(ms--)
  9.                 {
  10.                         for(i=0;i<125;i++);
  11.                 }       
  12. }
  13. uchar dianji,dianjiH,dianjiL;
  14. uchar duoji,duojiH,duojiL,duojiH2,duojiL2,duojiH3,duojiL3;                  
  15. sbit  IN1=P2^6;          // 電機使能控制端
  16. sbit  ENA=P2^7;            
  17. sbit  IN2=P2^5;

  18. sbit  pwm=P2^0;      // 舵機pwm控制
  19. sbit  Ghg=P2^4;     // 干簧管                                                                         
  20.                            
  21. uint gg,gd,dg,dd,zgg,zgd,zdg,zdd;

  22. /*****中斷程序1******用于控制舵機偏轉角度******周期20ms*******/
  23. void timer1() interrupt 1 using 0       //中斷1  T0溢出中斷
  24. {
  25.         pwm=!pwm;          //輸出取反  
  26.         if(pwm==0)          //
  27.         {
  28.               pwm=0;
  29.               TH0=dg;
  30.               TL0=dd;
  31.         }
  32.         else
  33.         {
  34.               pwm=1;
  35.               TH0=gg;
  36.               TL0=gd;
  37.         }         
  38. }
  39. /*********中斷程序2****用于控制電機轉速*********/
  40. void timer2() interrupt 3 using 3       //中斷3  T1溢出中斷,使用工作組3
  41. {
  42.         IN2=!IN2;                        // 輸出取反
  43.         if(IN2==0)                        //
  44.         {
  45.               IN2=0;
  46.               TH1=zdg;
  47.               TL1=zdd;
  48.         }
  49.         else
  50.         {
  51.               IN2=1;
  52.               TH1=zgg;
  53.               TL1=zgd;
  54.         }         
  55. }

  56. /*&&&&&&&&& (一)此段子函數對舵機方向進行操作&&&&&&&&&&&&&&*/

  57. /********右轉45度*******高低電位占空比為1.675:18.325ms**********/
  58. void yz45(void)
  59. {
  60.         gg=0xf9-duojiH3-(0x74<duojiL3);
  61.                 gd=0x74-duojiL3;
  62.                 dg=0xb8+duojiH3+(0x6a+duojiL3)/256;
  63.                 dd=0x6a+duojiL3;
  64.                 TR0=1;
  65. }                                                           

  66. /******右轉25度******高低電位占空比為1.6:18.4ms*********/
  67. void yz25(void)
  68. {
  69.         gg=0xf9-duojiH2-(0xbf<duojiL2);     // 63935    65536-63935=1601
  70.                 gd=0xbf-duojiL2;
  71.                 dg=0xb8+duojiH2+(0x1f+duojiL2)/256;//  47135   65536-47135=18401
  72.                 dd=0x1f+duojiL2;
  73.         TR0=1;
  74.                
  75. }

  76. /******右轉15度******高低電位占空比為1.55:18.45ms*********/
  77. void yz15(void)
  78. {
  79.         gg=0xf9-duojiH-(0xf1<duojiL);
  80.                 gd=0xf1-duojiL;
  81.                 dg=0xb7+duojiH+(0xed+duojiL)/256;
  82.                 dd=0xed+duojiL;
  83.         TR0=1;
  84.                
  85. }

  86. /*********復位*****高低電位占空比為1.5ms:18.5ms************/
  87. void fw(void)
  88. {
  89.         gg=0xfa;
  90.                 gd=0x23;
  91.                 dg=0xb7;
  92.                 dd=0xbb;
  93.         TR0=1;               
  94. }
  95. /******左轉15度***********高低電位占空比為1.45:18.55ms***********/
  96. void zz15(void)
  97. {
  98.         gg=0xfa+duojiH+(0x55+duojiL)/256;
  99.                 gd=0x55+duojiL;
  100.                 dg=0xb7-duojiH-(0x89<duojiL);
  101.                 dd=0x89-duojiL;
  102.                 TR0=1;
  103.                
  104. }

  105. /******左轉25度***********高低電位占空比為1.4:18.6ms***********/
  106. void zz25(void)
  107. {
  108.         gg=0xfa+duojiH2+(0x87+duojiL2)/256;
  109.                 gd=0x87+duojiL2;
  110.                 dg=0xb7-duojiH2-(0x57<duojiL2);
  111.                 dd=0x57-duojiL2;
  112.                 TR0=1;
  113.                
  114. }
  115. /********左轉45度*****高低電位占空比為1.325:18.675ms*************/
  116. void zz45(void)
  117. {
  118.         gg=0xfa+duojiH3+(0xd2+duojiL3)/256;
  119.                 gd=0xd2+duojiL3;
  120.                 dg=0xb7-duojiH3-(0x0c<duojiL3);
  121.                 dd=0x0c-duojiL3;
  122.                 TR0=1;               
  123. }  

  124. /*&&&&&& (二)此段子函數對驅動電機進行操作*/
  125. void run(void)               //前進          高低電位占空比為4:16ms
  126. {      
  127.        
  128.     zgg=0xf0-dianjiH-(0x5f<dianjiL);
  129.         zgd=0x5f-dianjiL;  
  130.         zdg=0xc1+dianjiH+(0x7f+dianjiL)/256;
  131.         zdd=0x7f+dianjiL;
  132.    
  133. }
  134. void stop(void)               //停車          
  135. {      
  136.         ENA=1;
  137.         IN1=0;
  138.         IN2=0;       
  139. }

  140. /***********************主函數****************************/
  141. void main(void)                                                                          
  142. {   
  143.    
  144.     unsigned char i=0;                                                                   
  145.                                            
  146.         TMOD=0x11;                                                                                  //
  147.         ET0=1;                                                                                          //
  148.         ET1=1;                                                                                          //   中斷初始化
  149.         EA=1;                                                                                          //
  150.         TR0=0;                                                                                          //
  151.         TR1=0;

  152.     Ghg=1;
  153.     P0=0XFF;         // 單片機端口初始化
  154.         P1=0xff;

  155.         i=P1;                                                            //撥碼開關
  156.         dianji=i/16;                                            //
  157.         dianjiH=(150*dianji)/256;                    // 初始化電機速度 改電機輸出電壓最小值                                                               
  158.         dianjiL=(20*dianji)%256;                    //                                 
  159.        
  160.         duoji=i%16;                                                  // 舵機角度
  161.         duojiH=(2*duoji)/256;                          // 初始值10                                                               
  162.         duojiL=(2*duoji)%256;                          // 初始值10                                                               
  163.         duojiH2=(6*duoji)/256;                          // 初始值 20                                                  
  164.         duojiL2=(6*duoji)%256;                          // 初始值 20                                                       
  165.         duojiH3=(10*duoji)/256;                          // 初始值         33                                                  
  166.         duojiL3=(10*duoji)%256;                          // 初始值  33                                               
  167.         fw();
  168. //  ENA=1;         // L298 使能端高有效 控制端狀態不同   狀態相同時 快速停車
  169.         IN1=0;
  170. //        IN2=1;                       
  171.         run();
  172.         TR1=1;                                                                                                                                                                                                               

  173. /*************************舵機測試程序*************************************
  174. while(1)               
  175. {
  176. fw();
  177. delay(2000);
  178. yz45();
  179. delay(2000);
  180. yz25();
  181. delay(2000);
  182. yz25();
  183. delay(2000);
  184. delay(2000);
  185. zz15();
  186. delay(2000);
  187. zz25();
  188. delay(2000);
  189. zz45();  
  190. delay(2000);
  191. run();
  192. }   
  193. } */
  194. /******************循跡部分**傳感器反*****最左P0.7最右P0.0***************/
  195.         while(1)               
  196.         {
  197.             if(Ghg == 0)
  198.             {
  199.                 fw();
  200.                         stop();
  201.              }   
  202. /************************循跡處理****************************/                                       
  203. /*P0_0==0  黑道          ..........P0_6==0黑道   從低往高 P0^7到P0^0*/       
  204.                 if(P0==0xF7)           //           1111 0111
  205.                         {
  206.                                 fw();
  207.                         }
  208.                 else if(P0==0xEF)        //                1110 1111
  209.                         {
  210.                                 zz15();
  211.                         }
  212.                 else if(P0==0XDF)         
  213.                         {
  214.                                 zz25();
  215.                         }
  216.                 else if(P0==0XBF)         
  217.                         {
  218.                                 zz45();
  219.                         }
  220.                 else if(P0==0XFB)         
  221.                         {
  222.                                 yz15();
  223.                         }
  224.                 else if(P0==0XFD)          
  225.                         {
  226.                                 yz25();
  227.                         }
  228.                 else if(P0==0XFE)                   
  229.                         {
  230.                                 yz45();
  231.                         }
  232.                 else;
  233.                         delay(10);
  234.                         run();       
  235.         }
  236. }
復制代碼

所有資料51hei提供下載:
新建文件夾.rar (38.13 KB, 下載次數: 8)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2019-5-14 18:13 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

板凳
ID:319800 發表于 2019-5-14 18:50 | 只看該作者

Screenshot_2019-05-14-18-45-29-90.png (339.88 KB, 下載次數: 33)

電路圖

電路圖

Screenshot_2019-05-14-18-45-42-48.png (516.16 KB, 下載次數: 29)

組成

組成

Screenshot_2019-05-14-18-46-14-62.png (2.22 MB, 下載次數: 32)

焊接

焊接

Screenshot_2019-05-14-18-46-31-88.png (477.12 KB, 下載次數: 31)

降電路壓

降電路壓

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级欧美一级在线播放 | 日韩欧美成人精品 | 久久精品国产亚洲一区二区三区 | 91天堂网 | 色一级 | 男女视频免费 | 在线播放中文字幕 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 国产乱码精品一品二品 | 国产一区久久 | 伊人天堂网 | 亚洲一区在线日韩在线深爱 | 神马久久春色视频 | 国产精品夜间视频香蕉 | 中文字幕精品一区 | 欧美激情在线精品一区二区三区 | 成人在线一区二区三区 | 91精品国产一区二区三区 | 天天操天天摸天天干 | 一色桃子av一区二区 | 精品免费国产视频 | 久久精品亚洲精品国产欧美 | 91成人免费观看 | 黄色国产视频 | 日本一区二区在线视频 | 国产精品久久久久久久久久了 | 97在线观看| 成人激情视频免费观看 | 福利视频亚洲 | 337p日本欧洲亚洲大胆精蜜臀 | 国产精品综合一区二区 | 天天玩天天操天天干 | 伊人久麻豆社区 | 野狼在线社区2017入口 | 久久99视频免费观看 | 日韩欧美一区二区三区免费观看 | 日批的视频 | 久久伊人影院 | 精品美女在线观看视频在线观看 | 精品综合久久久 | 久久不卡|