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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機智能小車程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:466780 發表于 2019-1-12 00:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<stc12c5a.h>
  2. #include <intrins.h>
  3. #include <math.h>
  4. #include <stdio.h>                              
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. sbit S1=P2^4;
  8. sbit S2=P2^5;
  9. sbit S3=P2^6;
  10. sbit S4=P2^7;
  11.          //電機pwm輸入接口為P1^3和P1^4  可通過控制2和5控制電機停轉
  12. //sbit P13=P1^3;
  13. //sbit P14=P1^4;
  14. //sbit IN1=P1^2;
  15. //sbit IN2=P1^5;
  16. sbit pwm=P3^5;
  17. #define k10 0xe5
  18. #define k20 0xcc
  19. #define k30 0xb3
  20. #define k35 0xa6
  21. #define k40 0x99
  22. #define k45 0x8c
  23. #define k50 0x80
  24. #define k55 0x73
  25. #define k60 0x66
  26. #define k65 0x59
  27. #define k70 0x4d
  28. #define k75 0x40
  29. #define k80 0x33
  30. #define k85 0x26
  31. #define k90 0x1a
  32. #define k95 0x0d
  33. #define k00 0x00  //控制電機轉速的幾個中斷pwm波的占空比
  34.                                    //控制電機轉速的幾個中斷pwm波的占空比
  35.                   
  36. #define mh00 0xf8      //中間角度初值 //打直第一次出現吧
  37. #define ml00 0xee      //  1810*1.09=1.9729   10
  38.          

  39. #define zh01 0xf8 //高位
  40. #define zl20 0x26 //低位               //2010*1.09=2.1708   9
  41. #define zl19 0x30   //低位              //2000*1.09=2.18         9
  42. #define zl18 0x3a //低位    //1990*1.09=2.1691      9  
  43. #define zl17 0x44 //低位    //1980*1.09=2.1582      9   
  44. #define zl16 0x4e //低位    //1970*1.09=2.1473   9   
  45. #define zl15 0x58 //低位    //1960*1.09=2.1364       9  
  46. #define zl14 0x62 //低位    //1950*1.09=2.1255      9         
  47. #define zl13 0x6c //低位    //1940*1.09=2.1146   9   
  48. #define zl12 0x76 //低位      // 1930*1.09=2.1037   9
  49. #define zl11 0x80 //低位         // 1920*1.09=2.0928   10
  50. #define zl10 0x8a //低位     // 1910*1.09=2.0819    10
  51. #define zl09 0x94 //低位     // 1900*1.09=2.071  10
  52. #define zl08 0x9e //低位     //  1890*1.09=2.0601   10  
  53. #define zl07 0xa8 //低位     //  1880*1.09=2.0492   10   
  54. #define zl06 0xb2 //低位     //  1870*1.09=2.0383   10
  55. #define zl05 0xbc //低位     //  1860*1.09=2.0274   10   
  56. #define zl04 0xc6 //低位     //  1850*1.09=2.0165   10   
  57. #define zl03 0xd0 //低位     //1840*1.09=2.0056    10   
  58. #define zl02 0xda   //低位            //  1820*1.09=1.9838   10  //左轉角度

  59. #define yh00 0xf8    //高位
  60.               
  61. #define yl01 0xf8  //低位       // 1800*1.09=1.962   10

  62. #define yh01 0xf9    //高位   
  63. #define yl02 0x02 //低位              // 1790*1.09=1.9511         10
  64. #define yl03 0x0c //低位        // 1780*1.09=1.9402   10
  65. #define yl04 0x16 //低位       // 1770*1.09=1.9293   10
  66. #define yl05 0x20 //低位      // 1760*1.09=1.9184    10
  67. #define yl06 0x2a //低位        // 1750*1.09=1.9075    10
  68. #define yl07 0x34 //低位       // 1740*1.09= 1.8966    10
  69. #define yl08 0x3e //低位      // 1730*1.09=1.8857      10
  70. #define yl09 0x48 //低位      // 1720*1.09= 1.8748              10
  71. #define yl10 0x52 //低位      // 1710*1.09=1.8639               10
  72. #define yl11 0x5c //低位        // 1700*1.09=1.853     10
  73. #define yl12 0x66 //低位         // 1690*1.09=1.8421     10
  74. #define yl13 0x70 //低位      //1680*1.09=1.8321     10
  75. #define yl14 0x7a //低位      // 1670*1.09=1.8203     11
  76. #define yl15 0x84 //低位      // 1660*1.09=1.8094     11
  77. #define yl16 0x8e //低位      // 1650*1.09=1.7985     11
  78. #define yl17 0x98 //低位      // 1640*1.09=1.7876     11
  79. #define yl18 0xa2 //低位      // 1630*1.09=1.7767     11
  80. #define yl19 0xac //低位      // 1620*1.09=1.7658     11
  81. #define yl20 0xb6 //低位      // 1610*1.09=1.7549     11
  82. #define yl21 0xc0 //低位           // 1600*1.09= 1.7440                11   //右轉角度
  83.      

  84. uchar h, l;
  85. uchar count2=14, count=0;
  86. uchar loadz,loady, dz,dy,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9;
  87. void pwm_init();
  88. void Time_Init();
  89. void motor();
  90. void delay(uint z);

  91. //*********主函數*****************/
  92. void main ()  
  93. {
  94.   
  95.      d2=k45;d3=k50;d5=k60;d7=k70;

  96.   P14=0;
  97.   delay(10000);
  98.      delay(10000);
  99.   delay(10000);
  100. Time_Init();
  101. pwm_init() ;
  102.                //延時發車
  103.   P0=0xff;
  104.   P2=0xfa;
  105.   h=0xfa;                  
  106.      l=0xe7;

  107. dz=dy=d7;  // dz<dy  左轉               
  108. while(1)                         //dy大表示右邊輪子轉的快
  109.    {                              //左邊輪子接P0^3                           //右邊輪子接P0^4
  110.           if(P0==0x80) {h=0xfa;l=0x1F; count2=13;dz=d2;dy=d5; }
  111.       //if(P0==0xc0) {h=0xfa;l=0x4d;count2=13;dy=d5;dz=d8;}
  112.           if(P0==0x40) {h=0xfa;l=0x7D;count2=13;dy=d3;dz=d5;}
  113.      //if(P0==0x60) {h=0xfa;l=0x7f;count2=13;dy=d5;dz=d7;}
  114.       if(P0==0x20) {h=0xfa;l=0xBD;count2=14;dy=d3;dz=d5;}
  115.        //if(P0==0x30) {h=0xfa;l=0xb1a;count2=14;dy=d6;dz=d7;}
  116.         if(P0==0x10) {h=0xfa;l=0xD2;count2=14;dy=d7;dz=d7;}
  117.                        // if(P0==0x00||0xff) {h=0xfa;l=0xfc;count2=14;dz=d8;dy=d8;}      //4度 l改變19
  118.            if(P0==0x08) {h=0xfA;l=0xFC;count2=15;dy=d7;dz=d7;}
  119.           //if(P0==0x0c) {h=0xfb;l=0x47;count2=15;dy=d7;dz=d6;}  //15
  120.          if(P0==0x04) {h=0xfb;l=0x11;count2=15;dy=d5;dz=d3;}
  121.         //if(P0==0x06) {h=0xfb;l=0x79;count2=15;dy=d7;dz=d5;} //50    左轉
  122.           if(P0==0x02) {h=0xfb;l=0x51;count2=16;dy=d5;dz=d3;}
  123.             //if(P0==0x03) {h=0xfb;l=0xab;count2=16;dy=d8;dz=d5;}   /39
  124.         if(P0==0x01) {h=0xfb;l=0xAF;count2=16;dy=d5;dz=d2;}
  125.     motor();
  126.    }         
  127. }   
  128. /**************定時器初始化數據**********************/
  129. void Time_Init()
  130. {
  131. TMOD = 0x01 ; //定時器0工作方式1,16位定時器
  132. TH0 = h;
  133. TL0 = l;
  134. EA=1;
  135. ET0=1;
  136. TR0 = 1;
  137. }
  138.                
  139. /***************pwm初始化***********************************
  140.   

  141. /************************************************************/
  142. void pwm_init()                        
  143. {
  144. CCON=0;                        // CR=0;開始不計時,可以省略
  145. CMOD=0X00;                    //頻率選擇,選系統時鐘/12為PWM輸出頻率
  146.     CH=0;         //
  147. CL=0;                        //PCA計數器的計數值
  148. CCAP0H=k00;                      //初始PWM占空比100%
  149. CCAP0L=k00;                      //初始PWM占空比100%
  150. CCAP1H=k00;                      //初始PWM占空比100%
  151. CCAP1L=k00;                      //初始PWM占空比100%
  152.     PCA_PWM0=0X00;       //控制占空比的第九位為0
  153. PCA_PWM1=0X00;                                                
  154. CCAPM0=0X42;                   //工作方式選擇,選擇為PWM輸出工作方式
  155. CCAPM1=0X42;                   //工作方式選擇,選擇為PWM輸出工作方式
  156. CR=1;         //啟動PCA定時器
  157. }

  158. void motor()
  159. {
  160. CCAP0H=dz;     //CCAP0L CCAP0H是捕捉/ 比較寄存器, 代表的是調節占空比,CCAP0L= CCAP0H=0x80,占空比輸出為50% 。
  161. CCAP0L=dz;     //PWM設置占空比
  162. CCAP1H=dy;
  163. CCAP1L=dy;     //PWM設置占空比
  164. }

  165. void delay(uint z)    //延時 Z 毫秒
  166. {
  167. uint x,y;
  168. for(x=z;x>0;x--)
  169.   for(y=110;y>0;y--);
  170. }


  171. /*************************定時中斷1輸出pwm波****************************/
  172. void Time0_Int() interrupt 1
  173. {
  174. TH0=h;
  175. TL0=l;
  176. if(count < 1)
  177.   pwm = 1;
  178. else
  179.   pwm = 0;
  180. count++;
  181. if(count >= count2)
  182.   count = 0;
  183. }


復制代碼


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

使用道具 舉報

沙發
ID:1 發表于 2019-1-12 02:24 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

板凳
ID:467951 發表于 2019-1-14 16:58 | 只看該作者
以前做的電磁賽道的

小車控制程序(2018).zip

102.52 KB, 下載次數: 7, 下載積分: 黑幣 -5

回復

使用道具 舉報

地板
ID:468046 發表于 2019-1-14 17:10 | 只看該作者
看不懂
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人短视频在线观看 | 欧美日韩国产三级 | 一区二区三区四区在线 | 网站黄色在线 | 日本高清在线一区 | 久久网一区二区三区 | 伊人春色成人网 | 91精品久久久久久久久 | 欧美一级二级在线观看 | 欧美a在线观看 | 午夜精品一区 | 久久亚洲欧美日韩精品专区 | 久久伊人影院 | 免费观看a级毛片在线播放 黄网站免费入口 | 日韩精品一区二区三区在线观看 | 黄色在线播放视频 | 91视频88av | 激情网站在线观看 | 国产成人精品久久 | 综合久久久 | 久久久91 | 久久手机在线视频 | 亚洲国产成人精品一区二区 | 亚洲欧美精品 | 粉嫩av久久一区二区三区 | 男女爱爱网站 | 超碰在线播| 免费观看一级特黄欧美大片 | 精品国产一区二区在线 | 中文精品视频 | 久久成人国产 | 在线播放一区 | 欧美日韩亚洲视频 | zzzwww在线看片免费 | 日韩中文视频 | 99久久久久久 | 国产精品久久久久久久久久三级 | 久久一级大片 | 免费视频一区二区 | 一级免费看片 | 日本三级全黄三级三级三级口周 |