欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      尋跡小車報告五篇范文

      時間:2019-05-12 12:01:26下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《尋跡小車報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《尋跡小車報告》。

      第一篇:尋跡小車報告

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      尋跡小車設計報告

      指導教師:

      2011年6月12日13:30

      小組成員:智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      C8051F單片機的智能尋跡小車

      本課題是基于C8051F單片機的智能小車的設計與應用,小車完成的主要功能是能夠自主識別黑色引導線并根據(jù)黑色引線能快速自主穩(wěn)定的尋線行駛。小車系統(tǒng)以單片機為系統(tǒng)控制處理器,對整個控制軟件進行程序的設計和程序的調試,并最終完成軟硬件的結合,完成小車的預期功能。

      一、實驗目的:

      通過設計能進一步掌握單片機的原理、以及能剛好的運用編程實現(xiàn)對小車的控制。

      使小車能自主尋找路線,并且能夠合理設計單片機的外圍電路,并使之與單片機能構成整個 系統(tǒng)。

      二、設計方案:

      本組小車以單片機為控制處理器、以298為驅動器結合程序,通過芯片發(fā)出驅動命令,控制電機的驅動以實現(xiàn)對小車的控制。

      三、技術方案概要說明

      本模塊車的電路系統(tǒng)包括電源管理模塊、單片機模塊、傳感器模塊、電機驅動模塊、人機界面。

      四、工作原理

      1、利用紅外采集塊中的紅外發(fā)射接收對關檢測路面上的軌跡

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      2、將軌跡信號傳給單片機

      3、單片機采用模糊推理求出轉向角度和行走速度,然后去控制行走部分

      4、最終完成智能小車可以按照路面上的軌跡運行

      五、報告內容安排

      第一部分為對整個報告的概括說明,第二部分為整個電路硬件的介紹和說明,第三部分為整個設計的軟件程序設計的說明。

      硬件電路的設計

      一、尋跡模塊

      尋跡共有8路,前后各4路,它通過TCRT5000是否接受到紅外反射光來改變電壓大小,從而使單片機發(fā)出指令,使小車進行前進、后退、停止、走正等一系列動作。

      1、尋跡電路圖

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      焊接時,可用一個電位器來代替四個電位器,這樣即省材料,也使電路板更加精巧。甚至還能將除TCRT5000以外的部件全部安放到車體板上面。

      TCRT5000實物圖與內部結構(與地面距離0.2mm~0.8mm之間)

      LM393引腳圖

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      2、檢測

      將5V電源連接好,萬用表與各組尋跡的GND與輸出端相連,用白紙來使紅外燈反射,當TCRT5000接收到反射紅外光時輸出低電平,未接收時輸出高電平,最后通過改變電位器阻值來調節(jié)尋跡靈敏度。

      二、驅動模塊

      驅動的核心部件是L298N,它通過單片機指令直接控制小車電機電機轉速,從而來使小車行駛。

      驅動電路圖

      5,7,10,12與P2.1,P2.2,P2.5,P2.6相連,使能1,2與P0.0,2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      P0.1相連,2,3,13,14與小車電機相連,驅動要加散熱片,防止過熱燒壞。

      L298n引腳分辨

      電機驅動的檢測:

      連接好電源,將使能1,2都與電源5V相連,5,10與7,12兩組,一組與5V相連,另一組與GND相連,用萬用表分別測量2,3與13,14兩組引腳,有12V電源輸出,則驅動正常。

      三、電源模塊

      電源主要是將12V電壓降為5V,輸給小車的各部分模塊。

      電源電路圖

      電源最好需由兩組并聯(lián)而成,以免7805過載而燒壞。J2與外電源12V

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      相連,需要兩個引腳,5V引腳與GND引腳都需要多個,以滿足對各模塊的供電需求。

      LM7805

      電源模塊的檢測:

      將12V與GND連接好,輸出端有穩(wěn)定的5V電源輸出,則電源正常。

      四、1602顯示屏(主要用于顯示小車運動時間)

      1602電路圖

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      五、語音模塊

      當小車完成所有指令動作到達終點時,蜂鳴器發(fā)出響聲。

      蜂鳴器的電路圖

      六、C8051F020單片機

      它是由Cygnal出的一種混合信號系統(tǒng)級單片機。片內含CIP-51的CPU內核,它的指令系統(tǒng)與MCS-51完全兼容。其中的C8051F020單片機含有64kB片內Flash程序存儲器,4352B的RAM、8個I/O端口共64根I/O口線、一個12位A/D轉換器和一個8位A/D轉換器以及一個雙12位D/A轉換器、2個比較器、5個16位通用定時器、5個捕捉/比較模塊的可編程計數(shù)/定時器陣列、看門狗定時器、VDD監(jiān)視器和溫度傳感器等部分。C8051F020單片機支持雙時鐘,其工作電壓范圍為2.7~3.6V(端口I/O,RST和JTAG引腳的耐壓為5V)。與以前的51系列單片機相比,C8051F020增添了許多功能,同時其可靠性和速度也有了很大提高。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      五、組裝小車

      用適當大小的單孔電路板作為小車底板,在適當位置打上小孔,將各個模塊安在上面,使小車質量分布均勻,以免小車走歪。

      六、焊接的注意事項

      1.呈圓焊接順序,元器件裝焊順序依次為:電阻器、電容器、二極管、三極管、集成電路、大功率管,其它元器件為先小后大。

      2.芯片與底座都是有方向的,焊接時,要嚴格按照PCB板上的缺口所指的方向,使芯片,底座與PCB三者的缺口都對應。

      3.焊接時,要使焊點周圍都有錫,將其牢牢焊住,防止虛焊。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      4.在焊接圓形的極性電容器時(一般電容值都是比較大的),其電容器的引腳是分長短的,以長腳對應“+”號所在的孔。

      5.芯片在安裝前最好先兩邊的針腳稍稍彎曲,使其有利于插入底座對應的插口中。

      6.電位器也是有方向的,其旋鈕要與PCB板上凸出方向相對應。7.取電阻時,找到所需電阻后,拿剪刀剪下所需數(shù)目電阻,并寫上電阻,以便查找。

      8.裝完同一種規(guī)格后再裝另一種規(guī)格,盡量使電阻器的高低一致。焊完后將露在印制電路板表面多余引腳齊根剪去。

      9.焊接集成電路時,先檢查所用型號,引腳位置是否符合要求。焊接時先焊邊沿對腳的二只引腳,以使其定位,然后再從左到右自上而下逐個焊接。

      10.對引腳過長的電器元件(如電容器,電阻等),焊接完后,要將其剪短。

      11.焊接后用放大鏡查看焊點,檢查是否有虛焊以及短路的情況的發(fā)生。

      12.當有連線接入時,要注意不要使連線深入過長,以至于將其旋在電線的橡膠皮上,出現(xiàn)斷路的情況。

      13.當電路連接完后,最好用清洗劑對電路的表面進行清洗,以防電路板表面附著的鐵屑使電路短路。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      14.在多臺儀器老化的時候,要注意電線的連接,零線對零線,火線對火線。

      15.當最后組轉時,應將連線扎起,以防線路混亂交叉。16.要進行老化工藝,可發(fā)現(xiàn)很多問題,連線要接緊,螺絲要旋緊,當反復插拔多次后,要注意連線接頭是否有破損。

      17.焊接上錫時,錫不宜過多,當焊點焊錫錐形時,即為最好。

      軟件系統(tǒng)設計

      若小車偏左的時候,左輪將向右偏轉;若小車偏右,車輪將向左偏轉;若沒有偏移,小車將繼續(xù)向前;若完全偏離黑色軌跡,小車后退以尋找黑色軌跡。

      一、程序設計方法

      1、確定程序功能。根據(jù)機電硬件中的人機界面、電力電子器件和傳感器件的物理特點和運行方式確定外圍部件軟件功能,根據(jù)控制系統(tǒng)設計方案確定控制軟件功能,根據(jù)系統(tǒng)的功能結構確定前面沒有提到的其他軟件功能。

      2、劃分任務。將各類軟件功能劃分成具體的任務。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      3、確定任務的組合方式。通過分析任務的優(yōu)先級和相互關系來確定組合方式。因為這個組合方式通常并不是唯一的,可以采取如前文所介紹的概念設計方法的方案排列和方案選擇方法。

      4、確定編程方法。根據(jù)任務劃分、任務的組合方式、軟件開發(fā)能力和軟件開發(fā)環(huán)境可以確定具體程序編制方法。在確定過程中,也可以采用如前文所介紹的概念設計方法的方案排列和方案選擇方法。

      5、編程與調試。

      二、資源分配

      P0^0----電機1用的PWM輸出信號(左輪)P0^1----電機2用的PWM輸出信號(右輪)L_DIR1A=P3^6----左輪電機方向控制 L_DIR1B=P3^7----左輪電機方向控制 R_DIR1A=P3^4----右輪電機方向控制 R_DIR1B=P3^5----右輪電機方向控制 P3^1----蜂鳴器控制

      PCA0CPM0----電機1PWM輸出,工作在8位定時器模式,允許比較器匹配中斷,每次中斷加載新的比較值,實現(xiàn)電機輸出的脈寬、周期控制。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      PCA0CPM1----電機2PWM輸出,工作在8位定時器模式,允許比較器匹配中斷,每次中斷加載新的比較值,實現(xiàn)電機輸出的脈寬、周期控制。

      P5.0-P5.7;傳感器接口 lcdrw=P3^2;----讀寫控制5 lcdcs=P3^0;----E使能6 lcdrs=P3^3;命令數(shù)據(jù)選擇控制4

      三、小車程序

      #include #include #include //包含頭文件

      typedef unsigned char uchar;typedef unsigned long ulong;typedef unsigned int uint;

      //變量定義#define L_MOTO_BREAK L_DIR1A=L_DIR1B #define L_MOTO_BACK L_DIR1A=0;L_DIR1B=1 #define L_MOTO_FORD L_DIR1A=1;L_DIR1B=0

      2011年6月12日13:30

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      #define R_MOTO_BREAK R_DIR1A=R_DIR1B #define R_MOTO_BACK R_DIR1A=0;R_DIR1B=1 #define R_MOTO_FORD R_DIR1A=1;R_DIR1B=0 //前走與后走的定義 sbit L_DIR1A=P3^6;sbit L_DIR1B=P3^7;sbit R_DIR1A=P3^4;sbit R_DIR1B=P3^5;sbit P3_1=P3^1;

      sbit lcdrw=P3^2;//5 sbit lcdcs=P3^0;//6 sbit lcdrs=P3^3;//4

      int a=0;//定時器計數(shù)用 uchar minute=0,second=0,sign=0;uchar fb=0;//控制前后方向

      //全局變量的聲明

      //1602液晶的管腳定義

      //I/O管腳的定義

      /********************************************/ /* 名稱:config

      */ /* 用途:初始化配置, 以保證單片機控制功能工作 */ /********************************************/ void config(void)

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      {

      WDTCN = 0x07;

      //看門狗禁止

      WDTCN = 0xde;

      WDTCN = 0xad;

      XBR0 = 0x50;

      XBR1 = 0x00;XBR2 = 0x40;

      //配置交叉開關,//交叉開關允許

      P0MDOUT=0x00;

      P1MDOUT=0x00;

      P2MDOUT=0x00;

      P3MDOUT=0xfd;//I/O口的推挽與漏極輸出 P74OUT=0x00;

      //p4--p6 I/O口的推挽與漏極輸出

      P5=0xff;

      OSCXCN = 0x00;

      OSCICN = 0x16;//采用內部晶振,頻率為 8MHZ }

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      /********************************************/ /* 名稱: delay1ms

      */ /* 用途: 延時

      */ /********************************************/ void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);

      }

      void delay1(uint time){ uint ii;uint jj;for(ii=0;ii

      }

      //兩個延遲子程序

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      /********************************************/ /* 名稱: PCA_Init

      */ /* 用途: PCA初始化

      */ /********************************************/ void PCA_Init(){

      PCA0MD=0x08;

      //PCA采用系統(tǒng)時鐘,且PCA溢出中斷禁止

      PCA0CN=0x40;

      //啟動PCA計數(shù)器

      } void PCA0_Init(){

      PCA0CPM0=0x42;//CEX0為8位PWM輸出模式

      PCA0CPM1=0x42;//CEX1為8bit PWM輸出模式

      }

      /********************************************/ /* 名稱: PWM_Init

      /* */ /********************************************/ void PWM0_set(uchar val){ PCA0CPH0=~val+1;

      2011年6月12日13:30

      */ 生

      PWM

      調

      用途:

      //高電平占空比為val/256 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      } void PWM1_set(uchar val){

      }

      /********************************************/ /* 名稱: L_Operation R_Operation

      /* */ /********************************************/ void L_FORD(uchar L_spe_ford){

      L_MOTO_FORD;

      PWM0_set(L_spe_ford);} void R_FORD(uchar R_spe_ford){

      R_MOTO_FORD;

      PWM1_set(R_spe_ford);} void L_BACK(uint L_spe_back){

      L_MOTO_BACK;

      PWM0_set(L_spe_back);

      }

      2011年6月12日13:30

      //高電平占空比為val/256 PCA0CPH1=~val+1;

      */ 用途:

      電機正反轉及速度的控制

      //電機速度 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      void R_BACK(uint R_spe_back){

      R_MOTO_BACK;

      PWM1_set(R_spe_back);

      } void L_BREAK(){

      L_MOTO_BREAK;

      } void R_BREAK(){

      R_MOTO_BREAK;

      }

      /********************************************/ /* 名稱: 定時器_Init

      */ /* 用途: 定時器初始化

      */ /********************************************/ void time_init()

      { CKCON=0X08;

      //12分頻與原分頻的選擇。把定時器1選為系統(tǒng)時鐘 TMOD=0X01;//定時器1的方式選擇為,把定時器1選為16位定時功能

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      TH0=0X00;TL0=0X00;//定時器1重裝初值 ET0=1;//使能定時器1 TR0=1;//開定時器1 } /********************************************/ /* 名稱:lcddisplay顯示函數(shù)

      */ /* 用途:初始化

      */ /********************************************/

      void sendc(uchar c)//給1602的lcd送命令 {

      } void sendd(uchar c)//給1602的lcd送數(shù)據(jù)

      2011年6月12日13:30 lcdrs=0;lcdrw=0;lcdcs=1;//E的高脈沖 P7=c;delay(10);lcdcs=0;//E的高脈沖

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      { lcdrs=1;lcdrw=0;lcdcs=1;P7=c;delay(10);lcdcs=0;}

      void lcd_pos(uchar pos){ sendc(pos|0x80);}

      //發(fā)送地址定位函數(shù)

      void lcd_init(void)

      //lcd初始化函數(shù) { sendc(0x38);//8位,2行,5*7字體

      sendc(0x08);//顯示開,光標關;不閃

      sendc(0x01);//清屏

      sendc(0x06);delay1(1);

      2011年6月12日13:30

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      sendc(0x0C);}

      /********************************************/ /* 名稱:lcddisplay1

      */ /* 用途:第一次顯示

      */ /********************************************/ void lcddisplay1(void)

      //顯示主函數(shù) {

      line1[5]=table[sign%10];line1[4]=table[sign/10];line1[11]=table[second%10];line1[10]=table[second/10];line1[8]=table[minute%10];line1[7]=table[minute/10];sendc(0x01);lcd_pos(0x00);

      2011年6月12日13:30 uchar table[]={“0123456789”};uchar line1[]={“time00/00:00”};uchar i=0;sign++;智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      for(i=0;i<12;i++)

      {

      sendd(line1[i]);

      delay(1);

      } }

      //時間顯示

      void display()

      //最后的顯示子函數(shù),顯示總時間,與結束標志。{ uchar table[]={“0123456789”};uchar i=0;uchar table1[]={“all_time:00:00”};uchar table2[]={“finish”};table1[13]=table[second%10];table1[12]=table[second/10];table1[10]=table[minute%10];table1[9]=table[minute/10];sendc(0x01);lcd_pos(0x00);while(table1[i]!='