智能尋跡機器人實驗指導書_第1頁
智能尋跡機器人實驗指導書_第2頁
智能尋跡機器人實驗指導書_第3頁
智能尋跡機器人實驗指導書_第4頁
智能尋跡機器人實驗指導書_第5頁
已閱讀5頁,還剩51頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

簡介

單片機益智系列一一智能尋跡機器人是由益芯科技有限企業為科教以便而研發設計。根據現代學校

對嵌入式系統開發的需求。根據提高學生實際動手操作能力和思索能力,以加強學生對現實生活中嵌入

式系統的應用為參照。智能尋跡機器人全新的設計模式,應好的電路設計,一體化的機電組合,智趣的系

統開發,更是成為加強學生學習愛好的總動源。

智能尋跡機器人采用目前較為流行的8位單片機作為系統大腦。以8051

系列家族中口勺AT89S51/AT89S52為主芯片。40腳口勺DIP封裝使它擁有32個完

全IO(GPIO—通用輸入輸出)端口,通過對這些端口加以信號輸入電路,控制電

路,執行電路共同完畢鋁跡機器人。P0.0,P0.1,P02Po.3分別通過LG9U0電

機驅動來驅動電機1和電機2。由電機時正轉與反轉來完畢機器人日勺前進,后

退,左轉,右轉,遇障礙物繞行,避懸崖等基本動作。在機器人前進時假如前方

有障礙物,由紅外發射管發射H勺紅外信號被反射給紅外接受管,紅外接管將此

信號通過P3.7傳送入AT89S52中,主芯片通過內部的代碼進行機器人的繞障

礙物操作,同步主芯片將P3.7口勺信號狀態通過P2.5的LED指示燈顯示出來。

機器人行走時會通過P3.5與P3.6的紅外接受探頭來進行檢測。當走到懸崖處

時,P3.5或P3.6將收到一種電平信號,此電平信號將通過對應端口傳送入主芯

片中,主芯片通過內部代碼完畢機器人日勺避懸崖操作。同步P3.5與P3.6日勺信

號狀態將通過P2.6/P2.7顯示出來。在機器人的左轉,右轉,后退的過程,可以

通過觀看以P2.0/P0.7為指示燈的運行狀態。P0.4為機器人日勺聲控檢測端口,在

運行為前進狀態時,可以能過聲控(如拍手聲)來控制它的運行與停止。P0.6為

機器人的聲音輸出端。在機器人碰到障礙物時。進行繞障礙物與避懸崖時可以

通過此端口控制蜂鳴器發出報警聲。當為白天或黑夜時可以通過P0.5端口中

H勺光敏電阻來進行判斷,以以便完畢機器人夜間自動照明等功能。兩個按鍵以

查詢/中斷兩種不一樣的方式來展現按鍵操作。你可以按下S1鍵來進行機器日勺

停止。再按下S2鍵來進行機器人的運行。這個按鍵日勺信息分別被P3.2,P3.4

接受到。IR1為紅外遙控接受器,這就為機器人進行遠程遙控發明了也許。這

個紅外遙控接受頭接受到紅外信號時將信號通過P3.3送入到主芯片、主芯片

對其進行解密后以不一樣口勺方式對機器人進行控制。同步將顧客的按鍵信息通

過P2端口上LED數碼管顯示出來。P3.0、P3.1中COM端口H勺加入,讓你完全

可以用電腦對其進行控制。你可以通過對串口發送數據,數據會被顯示到LED

數碼管中,并讓機器人執行對應的功能。電腦的串口軟件規定波特率為9600。

8位數據位,這時你就可以快樂時用電腦來對它進行你日勺完全控制了。

EXKJ-ZN02功能的組合多樣,使得學生可以充足發揮自主能力,制作出不一

樣的機器人。它為學校進行機器人競賽和畢業項目設計建立了實物平令,是學

校教師講課變得更輕松有趣。同步也能變化學生學習模式和激發學習愛好。更

是作為驗證學生學習效果的有力工具。良好H勺電路板設計,讓學生制作變得以

便輕易,其大大提高了學生日勺制作成功率。提高了學生對電子電路的愛好,更

是教學過程中不可或缺的教具。

試驗一程序狀態指示燈演示

試驗簡介:

本程序重點演示了一種最簡程序的基本構造,它從次序、判斷、循環H勺形式體現程序的基本構造,此程

序通過閃燈不停的閃動,及閃燈閃動的快慢來表達程序不不一樣工作狀態。它也是常數字設冬中進行狀

態表達日勺措施之一(例:網卡)。

試驗原理圖:

IC1

C730pF

7

—II6PO.OADO-

6

。XTAL1P0.1AD1-

.

二XTAL2P0.2AD2-

C830pFP0.3以D3-

P0.4/AD4-

P0.5ZAD5-

-(=!-P0.6AD6-

R1510KP0.7AD7-

北1

RSI.

2

EAJ'JPPP1.0/T2-.

筮3

PSENP1.1/T2EX-.

4

P1.2£CI-.

1C1P1.3CEX0-

部5

.

P1.4CEX1-6

.

P3.0)RxDP1.5/CEX2-7

P3.1/TxDP1.6/CEX3-.3

一P3.2ANTOP1.7CEX4-

卷P3.3TO1

P3X/TOP20^8-

即BT-

P3.5/T1P21ZA9-

工P3.6西P2.2XM0-

P3.7?DP23做11-

P24XM2-

P2.5AM3-

P2.6ZA14-

20

VSSP2.7ZA15-

AT89S51/AT89S52/AT89C51/ATB9C52

實現代碼:

elseif(CountDaia<60)〃判斷閃動次數與否位于30-60之間

(

Delay(30000);〃用30000作為基數開始延時函數

I

elseif(CountData<90)〃判斷閃動次數與否位于60-90之間

(

Delay。0000);〃用10000作為基數開始延時函數

)

elseif(CountData<120)〃判斷閃動次數與否位于90-120之間

(

CountData=0;〃僅進行一次操作即可退出.

I

CountData=CountData+1;〃閃動次數基數++

LED二?LED;〃將顯示端口進行取反操作

運行效果:

程序運行效果為:開機后程序以慢速閃動,一段時間后速度開始加緊,再等待時間,閃燈的I速度到達最快,

之后一段時間后,閃動將回到開始狀態。

試驗二流水燈演示

試驗簡介:

本程序全面的體現了子程序的使用方法,它從對兒種子程序的操作,顯示不一樣的流燈技術,流水燈的

不一樣需要不一樣的體現的形式,而這里重要簡介了移位操作和內部數據存儲及讀入操作。延時函數采

用可重入標志,可進行函數曰勺遞歸調用。

試驗原理圖:

IC1

C730/VCCH

Hi-

Z

8P0.0AD0-

L5

Z9XTAL1P0.1AD1-

二XTAL2P0.2W2-

es30PFP03ZAD3?

P0.44D4-

P0.54D5-

-{=3-P0.6阪D6-

R1510KP0.74D7卜

RS-

EA/VPPP1.0/T2-

PSENP1.1/T2EX-

ALEPR3&P1.2£Clka

±C1P1.3CEX0-

-10iFP1.4CEX1-

P3.0?xDP1.5CEX2-

P3.1/TxDP1.6CEX3-J

P3.2TOT0P1.7CEX4-J

P3.37MT1

P3.4/T0P2.0偽8-

P3.5ZT1P2.1A9k

P3.6師P2.2自10卜

P3J收DP2.3A1lk

P2.4A12k

P2.5A13k

P2.6AM4-

VSSP2.7做15b

AT89S51/AT89S52/AT89C5VATB9C52

實現代碼:

//====================================================================//

//開發日期:/01/20//

//修改日期:〃

//程序作者:guojun郵箱:〃

//開發商:益芯科技有限企業----技術部〃

//程序備注:此程序僅為體現本機功能而演示用,當用作實際工程時請慎用.〃

//尤其申明:此程序可作研究之用,但引用,轉載,使用請注明出處.〃

#include<AT89x51.h>〃包括頭文獻

#defineLedPI〃定義顯示端口號

unsignedintcodeBToM[]={0x7E,0x3C,0x18,0x00};〃定義由兩邊到中間顯示數據

unsignedintcodeMToB[]={0xE7.0xC3,0x81,0x0());〃定義由中間到兩邊顯示數據

voidDclayOreentrant〃定義可重入口勺延時函數

{unsignedintDeIayTime=10000;〃定義延時時間基數

while(DelayTime-);〃程序開始延時開始

I

voidLeftToRight()〃定義從左邊到右邊顯示函數

{unsignedcharTempCount=0;〃定義顯示次數變量

Led=0xFE;〃定義初步顯示數據

for(TempCount=0;TempCoun(<8:TempCount++)〃通過循環進行數據顯示

{

DelayO;〃延時,用在每次移動數據開始處

Led=Led?I;〃由右邊向左邊移動數據

}

return;〃空返回語句,表明此子程序內結束.

I

voidRightToLeft()〃定義從右邊到左邊顯示函數

{unsignedcharTempCount=0;〃定義顯示次數變量

Lcd=0x7F;〃定義初步顯示數據

for(TempCount=0;TempCount<8;TempCount++)〃通過循環進行數據顯示

(

DelayO;〃延時川在每次移動數據開始處

Led=Led'?I;〃由左邊向右移動數據

)

return;〃空返語句,表明此子程序的結束.

)

voidBothlbMidO〃定義由兩邊到中間顯示子程序

{unsignedcharTempCount=0;〃定義臨時次數變量

Led=0xFF;

for(TempCount=0;TcmpCoui//通過循環依次進行次數運行

(

Delay。;〃延時,在每次運行前.

Lcd=BToM[TcmpCount];〃讀入行次顯示數據.

I

return;〃空返回,表明此子程序日勺結束.

}

voidMidToBoth()〃定義由中間到兩邊子程序

{unsignedcharTcinpCount=0;〃定義臨時次數變量

Led=0xFF;

for(TempCount=0;TcnipCount〃通過循環進行數據顯示

{

DelayO;〃延時,在每次數據顯示前.

Lcd=MToB[TempCoiint];〃讀入當次顯示數據.

return;〃空返回,表明本次子程序的結束.

voidmain()〃主程序入口處.

while(l)〃無窮循環開始.

{LeflToRighK);〃從左到右進行顯示

RightToLcft();〃從右到左進行顯示

BothToMidO;〃由兩邊到中間進行顯示

MidToBoth();〃由中間到兩邊進行顯示

}

運行效果:

程序運行效果為:開機后,指示燈向從左向右依次點亮,從右向左依次點亮,由兩邊向中間依次點亮,由

中間向兩邊依次點亮。

試驗三數碼管演示

試驗簡介:

本程序通過對端口的置數操作,展示了數碼管的應用技術,數碼管是將發光二極管通過一定的

形式封裝在一種數字的外殼中,可以通過不一樣H勺點亮方式來顯不一樣的數字符號。

試驗原理圖:

C730pFvcc40-

工2

6PO.OMX)-39

了5

。XTAL1PO.1AD1-38

二XTA12P0.2ZAD2?37

C830pFP0.3ZAD3-36

PO.4ZAD4-35

34

P0.5ZAD5燈

-CZhP0.6AD6?

R1510KP0.7ZAD7-32

RST1

EA/VPPP1.0/T2-至

PSCNP1.1/T2CX-

ALEPROGP1.2£CI-濟

_L*C1P1.3CEX0-

廣S3

~T~10iFP1.4CEX1-

P3.0?xDP1.5CEX2-忙

P3.1/TxDP1.6CEX3-

P3.27NT0P1.7CEX4-

P3.3砌1SM1

7

P3.4/T0P2.0/A8BT1

P3.5/T1P2.1A9

P3.6WRP2.2A10

P3.7TOP2.34M1

P2.4儻12

8

P2.54M3

6

P2.64M4訶

VSSP2.7A15

AT89S51/AT89S52/AT89C5VA7B9C52

實現代碼:

〃==========================================================//

//開發日期:/0L26//

//修改日期://

//程序作者:guojun郵箱://

//開發商:益芯科技有限企業一一技術部〃

//程序備注:此程序僅為體現本機功能而演示用,當用作實際工程時請慎用.〃

//尤其申明:此程序可作研究之用,但引用,轉載,使用請注明出處.〃

//==============================================================//

include<AT89x51.h>〃包括頭義獻

typedefunsignedintuint;〃重命名整數類型關鍵字

typcdcfunsignedcharuchar;〃重命名字符類型關鍵字

ucharcodeLedShowDala[l={0x9E0x25,0x0D.0x99,0x49,〃定義固定存儲顯示字符

0x41,0x1F,0x01,Ox19,0x03};23,4,5,6,7,8,9,0

voidDelay()〃定義延時函數

(

uintTempTime=O;〃定義延時時間變量

while(TempTime-);//通過循環進行延時

)

voidmain()〃主程序開始main()

{ucharCountData=0;//定義計數變量

whiie(l)〃主程序無限循環開始

{

P2=LedShowData[CountDala];//P2端口讀入顯示數據

CountData++;〃計數變量++(加加)

if(CountData>=l0)〃判斷與否超過計數范圍

CountData=0;〃重新置零

}

DelayO;〃延時函數被調用

運行效果:

程序運行效果為:程序下載后,數碼管.將從19依次顯示,最終將顯示數字0.

試驗四數碼管及跑馬燈演示

試驗簡介:

本程序重要是將數碼管及跑馬燈放在一起顯示,它重要闡明了,怎樣將在單系中運行多種看似并行運行

的子系統.本程序在此將跑馬燈子程序放入到一種頭文獻中,對于一種大的工程這樣將有益于程序文獻

的管理。

試驗原理圖:

IC1

C730pFvcc40

Tl39

Z38

6POOnDO-n^n^n

LS37

。?XTAL1P0.1AD1■

Z36

二XTAL2PO.24D2-

C830pFPO.3ZAD3-35

P0.4ZAD4-34燈

C6W1FP0.5AD5-一

-C=)-P0.6AD6-32一

R1510KP0.7AD7-

?RSI2

-函VPPP1.0/T2-3

PSENP1.1/T2EX-4

,ALEARGS

P1.2CCI-廠

P1.3JCEX0-6

P1.4CEX1-7

-P3.C?xDP1.5CEX2-8

?P3.1/TxDP1.6CEX3-一

?P3.2地0P1.7CEX4-

?P3.GlNtl

21狂

■P3.4/T0P2.0iA8-分■DP

BT-

?P3.5/T1P2.1A9-一

?P3E跡P2.2AMO-24LN

?P3.7?DP2.3A11-

25點

P2.4A12-d

P2.5ZM3-1c&\

27A|

P2.6A14-28b

vssP2.7A15-?aA■

實現代碼:

n-------------------------------------------------------------------------------------n

//開發日期:/Ol/26//

//修改日期:〃

//程序作者:guojun郵箱:〃

//開發商:益芯科技有限企業一一技術部〃

//程序備注:此程序僅為體現本機功能而演示用,當用作實際工程時請慎用。//

//尤其申明:此程序可作研究之用,但引用、轉載、使用請注明出處。//

//=============================================================//

#includc<AT89x5Lh>〃包括端口定義頭文獻

unsignedcharcodeLedShowData[]={0x9F.0x25,0x0D,0x99,0x49,〃定義數碼管顯示字符

0x4l,()xIF,0x()l,0x19,0x03};//1,2,3,4,5,67,8,9,0

#dcfincLedPl〃定義顯示端口

unsignedcharCountData=0;〃定義數碼管計數器

unsignedintcodeBToM[]={0x7E,0x3C.0x18,0x00};〃定義由兩邊到中間顯本數據

unsignedintcodeMToB[]={0xE7,0xC3,0x81,0x00};//定義由中間到兩邊顯示數據

voidDelayOreentrant〃定義可重入延時函數

{unsignedintDelayTime=1()000;//定義延時時間變量

whilc(DclayTimc-);〃通過循環進行延時

P2=LedShowData[CountDatal;〃置數碼管顯示數據到P2端口

CountDa(a++;〃數碼管地址計數器++(加I)

if(CountData>=10)〃判斷計數器合計數值

(

CountData=0;〃計數器清零

)

)

#include<跑馬燈.h>〃包括顯示方式頭文獻

voidmain()〃主程序入口

(

while(l)〃無窮循環開始.

{LeftToRight();//從左到右進行顯示

RightToLcftO;//從右到左進行顯示

BothToMidO;〃由兩邊到中間進行顯示

MidToBoth();〃由中間到兩邊進行顯示

〃〃/〃〃/〃/〃〃/〃/〃〃〃///〃/〃〃/〃/〃〃/〃跑馬燈.h〃〃〃/〃〃〃/〃〃/〃〃/〃//〃〃〃/〃〃/〃/〃〃/〃/〃

voidLeftToRight()〃定義從左邊到右邊顯示函數

{unsignedcharTempCount=0;〃定義顯示次數變量

Led=OxFE;〃定義初步顯示數據

for(TempCount=0;TempCount<8;TempCount++)〃通過循環進行數據顯示

(

DclayO;〃延時,用在每次移動數據開始處

Led=Led?1;〃由右邊向左邊移動數據

)

return;〃空返回語句,表明此子程序H勺結束.

)

voidRigh(ToLeft()〃定義從右邊到左邊顯示函數

{unsignedcharTempCount=0:〃定義顯示次數變量

Led=0x7F;〃定義初步顯示數據

for(TcmpCount=0;TempCount<8;TcmpCount++)〃通過循環進行數據顯示

(

DclayO;〃延時用在每次移動數據開始處

Led=Led?1;〃由左邊向右移動數據

)

return;〃空返語句,表明此子程序的結束.

)

voidBothToMid()〃定義由兩邊到中間顯示子程序

{unsignedcharTempCount=0:〃定義臨時次數變量

Led=OxFF;

for(TempCount=9;TempCount<5;TempCount++)〃通過循環依次進行次數運行

DelayO;〃延時,在每次運行前.

Led=BToM[TempCount];〃讀入當次顯示數據.

return;//空返I可,表明此子程序口勺結束.

voidMidToBoth()〃定義由中間到兩邊子程序

{unsignedcharTempCount=0;〃定義臨時次數變量

Led=0xFF;

for(TempCount=0;TempCount<5;TempCount++)〃通過循環進行數據顯示

Delay();〃延時,在每次數據顯示前.

Led=MToB[TempCount];〃讀入當次顯示數據.

return;〃空返回,表明本次子程序的結束.

運行效果:

本程序運行效果:本程序運行后,可以看到跑馬燈按,從左到右,從右到左,從兩邊到中間,

從中間到兩邊將依次運行。并且在運行過程中,可以看到數碼管依次從1-9-0H勺次序顯示數字符

號。

試驗五按鍵中斷查詢演示

試驗簡介:

一、本程序通過兩個按鍵對數碼管進行操作,分別向顧客演示了查詢與中斷的操作方式,中斷中應用

了對按鍵進行查詢H勺措施來判斷按健的鍵值,查詢按鍵措施中則采用了鍵盤延遲的措施來消除

按鍵反復輸入。

試驗原理圖:

C730pF

HF

739

6P0.0AD0-38

LGP0.1AD1k療

Z.oXTAL1

二XTAL2P0.2AD2-36

C830pF一

P0.3AD3-35

Tl一

P0.4供D4-34

C6101rP0.5/AD5-一

-□—P0.6像D6-32

R1510KP0.7/AD77

9RST1

-

-EA/VPPP1.0/T2-2

-

31PSENP1.1/F2EX-3

-

29ALEPROGP1.2€Clk4

J0,-

P1.3/CEX0-5

10-

IiP1.4/CEX1-6

-

1zi,P3.0?xDP1.5/CEX2-7

-

13-i-P3.1/TxDP1.6/CEX3-8

-

14,P3.27MT0P1.7/CEX4-

,R24

P3.37NTI21

P3.4/T0P2.0/A8-一R8

22

P3.5/T1P2.1ZA9-R7

232

P3.6WRP2.2公10-24R

13

P3.7^DP2.3公11-25R

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論