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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 19131|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

飛思卡爾智能車最終完整程序 具有很高的參考價(jià)值

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:140725 發(fā)表于 2016-10-18 16:22 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

這個(gè)是一個(gè)2等獎(jiǎng)的作品,毫無(wú)保留飛思卡爾智能車全部源碼下載:
飛思卡爾智能車最終完整程序 具有很高的參考價(jià)值.rar (14.08 KB, 下載次數(shù): 224)


主程序:
  1. #include <hidef.h>      /* common defines and

  2. macros */
  3. #include <mc9s12dg128.h>     /* derivative

  4. information */
  5. //#include "PWM.h"
  6. //#include "AD.h"
  7. #include "control.h"

  8. #pragma LINK_INFO DERIVATIVE "mc9s12dg128b"


  9. word AD_wData[9];  //全局變量存放 AD0,AD1,AD2的結(jié)果
  10. word sum[9]; //初始化時(shí)為求平均值,全白中,各個(gè)燈的FF次的電壓和
  11. word avrg0[9]; //全白時(shí)各個(gè)燈的平均電壓
  12. word summ[9];//初始化時(shí)為求平均值,全黑中,各個(gè)燈的FF次的電壓和
  13. word avrg1[9]; //全黑時(shí)各個(gè)燈的平均電壓
  14. word ss[9]; //實(shí)際采集來(lái)的各個(gè)燈的電壓
  15. word s[9];  // 實(shí)際采集來(lái)的各個(gè)燈的電壓
  16. word sum2[8];//用于存放兩兩燈電壓之和
  17. word k;         //用于存放比較出的最大值
  18. uint h=1500;//轉(zhuǎn)角大小
  19. int flag = 0;//標(biāo)志中間燈是否第一次在黑道附近
  20. int flagg=0;//標(biāo)志0燈從哪邊感應(yīng)到黑道
  21. int flagg1=0;//標(biāo)志8燈從哪邊感應(yīng)到黑道
  22. int flagg0=0;//標(biāo)志是左邊還是右邊出道
  23. int j=0;
  24. dword i;
  25. dword m;
  26. dword s0;
  27. dword s1;
  28. dword p11=0;//以下四個(gè)變量用于記錄黑道處于同一側(cè)的時(shí)間
  29. dword p12=0;
  30. dword p21=0;
  31. dword p22=0;
  32. word max0[9]=0;//初始化時(shí)采集來(lái)的黑道的值
  33. int g=0;//為過濾算法使用
  34. word cha[9];//用來(lái)存放黑白電壓差

  35. int ffgg0=0;//標(biāo)志是否用中間板采的數(shù)據(jù)
  36. int ffgg1=0;//標(biāo)志是否用中間板采的數(shù)據(jù)     
  37. word sum0=0;  //初始化時(shí)采集來(lái)9個(gè)燈的全白電壓和
  38. //word sum1=0;  //實(shí)際采集來(lái)的左4個(gè)燈的電壓和
  39. //word sum22=0; //實(shí)際采集來(lái)的右4個(gè)燈的電壓和
  40. int fla=0;//標(biāo)志是出道還是入道
  41. void AD_Init();
  42. void PWM_Init();
  43. void PWM_Init1();
  44. //void PID();
  45. void AD_Init(void)        //AD初始化
  46. {
  47.      //控制寄存器2:    上電,標(biāo)志位快速清零,開中斷
  48.       ATD0CTL2  = (ATD0CTL2_ADPU_MASK|ATD0CTL2_AFFC_MASK|ATD0CTL2_ASCIE_MASK);
  49.      ATD1CTL2  = (ATD1CTL2_ADPU_MASK|ATD1CTL2_AFFC_MASK|ATD1CTL2_ASCIE_MASK);
  50.      //控制寄存器3:轉(zhuǎn)換序列長(zhǎng)度為3
  51.      
  52.      ATD0CTL3  =0x78;// (ATD0CTL3_S2C_MASK|ATD0CTL3_S1C_MASK);
  53.             ATD1CTL3 =0x78;// (ATD1CTL3_S2C_MASK|ATD1CTL3_S1C_MASK);
  54.          //控制寄存器4:
  55.      ATD0CTL4  = (ATD0CTL4_SRES8_MASK|ATD0CTL4_PRS1_MASK|ATD0CTL4_PRS0_MASK);
  56.            ATD1CTL4  = (ATD1CTL4_SRES8_MASK|ATD1CTL4_PRS1_MASK|ATD1CTL4_PRS0_MASK);
  57.          //控制寄存器5:
  58.      ATD0CTL5  = (ATD0CTL5_DJM_MASK|ATD0CTL5_SCAN_MASK|ATD0CTL5_MULT_MASK);
  59.             ATD1CTL5  = (ATD1CTL5_DJM_MASK|ATD1CTL5_SCAN_MASK|ATD1CTL5_MULT_MASK);
  60.      ATD0DIEN=0x00;   // 禁止數(shù)字輸入緩沖
  61.       ATD1DIEN=0x00;   // 禁止數(shù)字輸入緩沖
  62. }

  63. #pragma CODE_SEG NON_BANKED  //中斷服務(wù)程序
  64. #pragma TRAP_PROC
  65. void interrupt 22 Int_AD0(void)
  66. {
  67.     AD_wData[0] = ATD0DR0;   //將結(jié)果寄存器中的值存放到數(shù)組中
  68.     AD_wData[1] = ATD0DR1;   //將結(jié)果寄存器中的值存放到數(shù)組中
  69.     AD_wData[2] = ATD0DR2;   //將結(jié)果寄存器中的值存放到數(shù)組中
  70.     AD_wData[3] = ATD0DR3;
  71.     AD_wData[4] = ATD0DR4;
  72.     AD_wData[5] = ATD0DR5;
  73.     AD_wData[6] = ATD0DR6;
  74.     AD_wData[7] = ATD0DR7;
  75.     AD_wData[8] = ATD1DR0;
  76.    
  77.    
  78. }

  79. #pragma CODE_SEG DEFAULT               
  80. word max(word a,word b,word c,word d,word e,word

  81. f,word r,word w) {
  82.      word maxx=0;
  83.      if(a>maxx)maxx=a;
  84.      if(b>maxx)maxx=b;
  85.      if(c>maxx)maxx=c;
  86.      if(d>maxx)maxx=d;
  87.      if(e>maxx)maxx=e;
  88.      if(f>maxx)maxx=f;
  89.      if(r>maxx)maxx=r;
  90.      if(w>maxx)maxx=w;
  91.      return maxx;
  92. }
  93. void delay0(){
  94.   for(i=0;i<0xFFFF;i++)
  95.     for(m=0;m<0x05;m++);
  96. }
  97. void delay1(){
  98.   for(i=0;i<0xFFFF;i++);
  99. // for(i=0;i<0xFFFF;i++);
  100. }
  101. void main(void)
  102. {
  103.      
  104.      AD_Init();   //AD 初始化
  105.      DDRB = 0xFF;
  106.      DDRA_BIT6=0; //A_BIT6口作為第二塊板左邊傳感器的輸入口
  107.      DDRA_BIT7=0;         //A_BIT7口作為第二塊板右邊傳感器的輸入口
  108.      PORTB  = 0xFF;
  109.      p=0;
  110.      for(j=0;j<9;j++)      
  111.      {
  112.           AD_wData[j] = 0; //全局變量初始化
  113.                             sum[j]=0;
  114.                        
  115.                  avrg0[j]=0;
  116.                  avrg1[j]=0;
  117.                        summ[j]=0;
  118.      }
  119.      for(j=0;j<9;j++) {
  120.       max0[j]=0;ss[j]=0;  
  121.      }
  122.       for(j=0;j<8;j++)
  123.         sum2[j]=0;
  124.      EnableInterrupts;          //開AD中斷
  125.      for(i=0;i<0xFFFF;i++);
  126.      for(i=0;i<0xFF;i++)                //只能是FF,防止下面sum溢出
  127.      {
  128.          for(j=0;j<9;j++)                                 

  129. //采集白道路信息
  130.          {
  131.              sum[j]=sum[j]+AD_wData[j];
  132.          }
  133.      }
  134.      for(i=0;i<9;i++) {
  135.      sum0=sum0+sum[i]/0xFF;
  136.      avrg0[i]=sum[i]/0xFF;
  137.      }
  138.       
  139.      PORTB=sum[0]/0xFF;                //顯示0通道采集到的值
  140.      delay0();
  141.      
  142.      PORTB=0x00;//顯示馬上得進(jìn)行黑道信息采集了
  143.      delay1();
  144.      
  145.      for(j=0;j<9;j++){
  146.       for(m=0;m<0xFF;m++){
  147.         summ[j]=summ[j]+AD_wData[j];
  148.        }
  149.         avrg1[j]=summ[j]/0xFF;
  150.         PORTB=avrg1[j]; //顯示采來(lái)的黑道信息
  151.         cha[j]=avrg1[j]-avrg0[j];
  152.         delay0();
  153.         PORTB=0x00; //顯示馬上得進(jìn)行下一次黑道信息采集了
  154.         delay1();
  155.      }
  156.      PORTB=0x00;                                       

  157.   //燈全亮,提示車馬上就可以跑了
  158.      delay1();
  159.    
  160.      PWM_Init() ;
  161.      PWM_Init1(1500,1,200);
  162.       for(i=0;i<0xFFF;i++);
  163. //       delay1();
  164.      for(;;)
  165.      {               
  166.          
  167.                        int f=0;
  168.                              u3=100;
  169.                      if(flagk1==1){
  170.                                p21=0;
  171.                                flagk2=0;
  172.                                p11++;
  173.                                if(p11==0xFFF)flagkk1=1;
  174.                              }else if(flagk2==1){
  175.                                p11=0;
  176.                                flagk1=0;
  177.                                p21++;
  178.                                if(p21==0xFFF)flagkk2=1;
  179.                              }
  180.                      for(f=0;f<9;f++){
  181.                        s[f]=AD_wData[f];
  182.                  ss[f]=s[f]-(avrg0[f]-0x50); //當(dāng)前值減去初始白道值,以便比較
  183.                      }                                   
  184.                          for(f=0;f<8;f++)sum2[f]=ss[f]+ss[f+1]; //兩兩燈電壓之和
  185. //減去1.6V防止溢出*******************
  186.       if(AD_wData[0]<0xC0&& AD_wData[1]<0xC0&& AD_wData[2]<0xC0&&AD_wData[3]<0xC0&&
  187.     AD_wData[4]<0xC0&&AD_wData[5]<0xC0&&AD_wData[6]<0xC0&&AD_wData[7]<0xC0&&
  188.     AD_wData[8]<0xC0){
  189.     if(sum2[0]<0xC0&&sum2[1]<0xC0&&sum2[2]<0xC0&&sum2[3]<0xC0&&
  190.       sum2[4]<0xC0&&sum2[5]<0xC0&&sum2[6]<0xC0&&sum2[7]<0xD0){
  191.          fla=1;
  192.          if(flagg0==1)
  193.           {
  194.          for(i=0;i<0xFF;i++);
  195.           PWM_Init1(1140,u1,200);
  196.          flagk1=1;
  197.          flagkk2=0;
  198.           for(;;){
  199.             if(AD_wData[4]>0xB0||AD_wData[5]>0xB0||AD_wData[6]>0xB0||
  200.             AD_wData[7]>0xB0||AD_wData[8]>0xB0){
  201.               flagg0=0;
  202.               break;               
  203.             }
  204.           }
  205.          }
  206.          else if(flagg0==2){
  207.          for(i=0;i<0xFF;i++);
  208.           PWM_Init1(1860,u1,200);
  209.          flagk1=0;
  210.             flagkk2=1;
  211.           for(;;)if(AD_wData[0]>0xB0||AD_wData[1]>0xB0||
  212.           AD_wData[2]>0xB0||AD_wData[3]>0xB0||AD_wData[4]>0xB0){
  213.             flagg0=0;
  214.             break;  
  215.           }
  216.          }
  217.       }else{
  218.              }
  219.     }else{
  220.      
  221.      if(s[0]-(avrg0[0]-0x13)<0x40 && s[1]-(avrg0[1]-0x13)<0x40 &&
  222.      s[2]-(avrg0[2]-0x13)<0x40 && s[3]-(avrg0[3]-0x13)<0x40 &&
  223.      s[4]-(avrg0[4]-0x13)<0x40 && s[5]-(avrg0[5]-0x13)<0x40 &&
  224.      s[6]-(avrg0[6]-0x13)<0x40 && s[7]-(avrg0[7]-0x13)<0x40 &&
  225.      s[8]-(avrg0[8]-0x13)<0x40)              

  226. ///////////注意調(diào)整該值36***************      
  227.      {
  228.      
  229.       /* if(PORTA_BIT6!=0||PORTA_BIT7!=0){
  230.                            
  231.                          if(PORTA_BIT6!

  232. =0&&PORTA_BIT7==0)PWM_Init1(1900,200,1);
  233.             else if(PORTA_BIT7!=0&&PORTA_BIT6==0)

  234. PWM_Init1(1100,200,1);
  235.                        }
  236.                                 */
  237.                                                                   

  238.                                        
  239.      }else{               
  240.       
  241.             
  242.                           k=max(sum2[0],sum2[1],sum2[2],sum2[3],sum2[4],sum2[5],sum2[6],sum2[7]);
  243.                            //誰(shuí)兩和最大,黑道就在誰(shuí)兩之間
  244.                            if(k==sum2[0]){
  245.                              p=0;
  246.                              flagg0=2;
  247.                              if(fla==1)
  248.                              control_11();
  249.                              else if(fla==0) control_1();
  250.                            }
  251.                            else{
  252.                                 if(k==sum2[1]){
  253.                                 p=0;
  254.                                 p1=0;
  255.                                  fla=0;
  256.                                  control_2(s[1],s[2],ss[1],ss[2],cha[1],cha[2],avrg0[1],avrg0[2]);
  257.                                 }
  258.                     else{if(k==sum2[2]){
  259.                     p=0;
  260.                     p1=0;
  261.                       fla=0;
  262.                       control_3(s[2],s[3],ss[2],ss[3],cha[2],cha[3],avrg0[2],avrg0[3]);
  263.                     }
  264.                          else{if(k==sum2[3]){
  265.                          p=0;
  266.                          p1=0;
  267.                           fla=0;
  268.                           control_4(s[3],s[4],ss[3],ss[4],cha[3],cha[4],avrg0[3],avrg0[4]);
  269.                          }
  270.                               else{if(k==sum2[4]){
  271.                                 fla=0;
  272.                                 p1=0;
  273.                                 control_5(s[4],s[5],ss[4],ss[5],cha[4],cha[5],avrg0[4],avrg0[5]);         
  274.                               }
  275.                                    else{if(k==sum2[5]){
  276.                                     fla=0;
  277.                                     p1=0;
  278.                                     control_6(s[5],s[6],ss[5],ss[6],cha[5],cha[6],avrg0[5],avrg0[6]);
  279.                                    }
  280.                                         else{if(k==sum2[6]){
  281.                                         p=0;
  282.                                         p1=0;
  283.                                           fla=0;
  284.                                           control_7(s[6],s[7],ss[6],ss[7],cha[6],cha[7],avrg0[6],avrg0[7]);
  285.                                         }
  286.                                              else{if(k==sum2[7]){
  287.                                              p=0;
  288.                                               flagg0=1;
  289.                                               if(fla==0)
  290.                                               control_8();
  291.                                               else if(fla==1)
  292.                                               control_88();
  293.                                              } else{
  294.                                              }
  295.                                              }
  296.                                         }
  297.                                    }
  298.                               }
  299.                          }
  300.                     }
  301.                            }
  302.      }                                                
  303.     }
  304.      }
  305. }
復(fù)制代碼



評(píng)分

參與人數(shù) 1黑幣 +4 收起 理由
yuyuyu1123 + 4 很給力!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:143842 發(fā)表于 2016-10-23 00:16 來(lái)自手機(jī) | 只看該作者
這做出來(lái)效果是只跑黑道嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:141458 發(fā)表于 2016-11-17 09:34 | 只看該作者
這個(gè)能干什么?
回復(fù)

使用道具 舉報(bào)

地板
ID:154468 發(fā)表于 2016-12-13 17:18 來(lái)自手機(jī) | 只看該作者
樓主,有聯(lián)系方式嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:166644 發(fā)表于 2017-2-25 21:20 | 只看該作者
真假?
回復(fù)

使用道具 舉報(bào)

6#
ID:166644 發(fā)表于 2017-2-25 21:22 | 只看該作者
這個(gè)文件是哪個(gè)組別的作品?光電四輪?
回復(fù)

使用道具 舉報(bào)

7#
ID:185968 發(fā)表于 2017-4-23 11:16 | 只看該作者
厲害
回復(fù)

使用道具 舉報(bào)

8#
ID:218434 發(fā)表于 2017-7-10 10:18 | 只看該作者
好棒好棒哦,謝謝
回復(fù)

使用道具 舉報(bào)

9#
ID:296775 發(fā)表于 2018-3-25 15:47 | 只看該作者
謝謝樓主分享,新人注冊(cè),黑幣不足5555555555
回復(fù)

使用道具 舉報(bào)

10#
ID:295684 發(fā)表于 2018-3-27 19:21 | 只看該作者
謝謝樓主分享,新人注冊(cè),黑幣不足5555555555
回復(fù)

使用道具 舉報(bào)

11#
ID:272155 發(fā)表于 2018-4-4 21:11 來(lái)自手機(jī) | 只看該作者
謝謝共享
回復(fù)

使用道具 舉報(bào)

12#
ID:302739 發(fā)表于 2018-4-6 22:51 | 只看該作者
樓主你這樣真的好吧 祖?zhèn)鞔a并不能真正給新手帶來(lái)技術(shù)
回復(fù)

使用道具 舉報(bào)

13#
ID:421283 發(fā)表于 2018-11-20 19:42 | 只看該作者
這是尋跡小車》/?
回復(fù)

使用道具 舉報(bào)

14#
ID:324611 發(fā)表于 2018-11-23 12:14 | 只看該作者
好東西,學(xué)習(xí)下。
回復(fù)

使用道具 舉報(bào)

15#
ID:483088 發(fā)表于 2019-3-2 09:43 來(lái)自手機(jī) | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

16#
ID:538379 發(fā)表于 2019-6-20 22:47 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

17#
ID:538014 發(fā)表于 2019-7-4 18:49 | 只看該作者
垃圾啥都沒有
回復(fù)

使用道具 舉報(bào)

18#
ID:649429 發(fā)表于 2019-11-25 21:22 | 只看該作者
剛注冊(cè),新人報(bào)道,不過樓主好厲害
回復(fù)

使用道具 舉報(bào)

19#
ID:649429 發(fā)表于 2019-11-25 21:24 | 只看該作者
剛注冊(cè),新人報(bào)道,不過樓主好厲害
回復(fù)

使用道具 舉報(bào)

20#
ID:636435 發(fā)表于 2019-12-6 09:57 | 只看該作者
謝謝大佬
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区影院 | 欧美精品久久久 | 国产资源一区二区三区 | 国产亚洲一区二区三区 | 国产精品久久久久久久久久久免费看 | 久久99国产精品久久99果冻传媒 | 天天干天天玩天天操 | 色综合中文| 日韩一区二区三区视频 | av片在线观看网站 | 青青草在线视频免费观看 | 国产精品久久久久无码av | av黄色片| 中文字幕男人的天堂 | 99re视频 | 日韩电影免费观看中文字幕 | 欧美v日韩 | 日韩精品一区二区三区久久 | 久久人人爽人人爽人人片av免费 | 亚洲第一福利网 | 日韩一区精品 | 国产视频第一页 | 欧美日韩国产一区二区 | 欧美极品在线 | 久草视频在 | 毛片毛片毛片毛片毛片 | 日本中文字幕在线观看 | 成人免费福利视频 | 日韩视频一区二区在线 | 综合久久99 | 日韩av免费在线观看 | 91精品国产91久久久久游泳池 | h视频免费观看 | 欧美13videosex性极品 | 午夜久草| 亚洲免费高清 | 亚洲三级在线观看 | 久久精品国产一区老色匹 | 亚洲夜夜爽 | 美国一级黄色片 | 色婷婷综合成人av |