《汽車單片機(jī)實(shí)訓(xùn)報(bào)告.doc》由會員分享,可在線閱讀,更多相關(guān)《汽車單片機(jī)實(shí)訓(xùn)報(bào)告.doc(6頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
河北科技大學(xué)唐山分院
《汽車單片機(jī)實(shí)訓(xùn)》
實(shí)訓(xùn)報(bào)告
班級 及 專業(yè):汽車檢測與維修11班
姓 名: 孫樹杰
學(xué) 號: 23
指 導(dǎo) 老 師: 高欣
報(bào)告完成時(shí)間: 2013年12月27日
汽車單片機(jī)實(shí)訓(xùn)報(bào)告
實(shí)訓(xùn)目的:通過近兩周的汽車單片機(jī)實(shí)訓(xùn),使我們充分掌握單片機(jī)編程的方法,了解單片機(jī)的原理和應(yīng)用,通過以兩輪智能移動(dòng)機(jī)器人工程項(xiàng)目為主線,循序漸進(jìn)的構(gòu)建智能機(jī)器人的智能控制器和傳感器電路,掌握單片機(jī)外圍接口特性、內(nèi)部結(jié)構(gòu)原理、應(yīng)用設(shè)計(jì)方法和 C 語言程序設(shè)計(jì)、匯編語言等知識。
實(shí)訓(xùn)要求:通過實(shí)訓(xùn)來熟練掌握汽車單片機(jī)的外圍接口特性;掌握單片機(jī)內(nèi)部結(jié)構(gòu)原理;了解C51 系列單片機(jī)的 C 語言編程環(huán)境和使用方法;了解單片機(jī)的輸入接口、使用方法和 C程序設(shè)計(jì)、單片機(jī)的輸出接口、使用方法和 C程序設(shè)計(jì);掌握單片機(jī)與 LCD的連接與 C 編程;了解基礎(chǔ)傳感器原理和用 C51 編程實(shí)現(xiàn)機(jī)器人基本智能的實(shí)現(xiàn)方法等。
實(shí)訓(xùn)時(shí)間:2013年12月18日—2013年12月27日
實(shí)訓(xùn)地點(diǎn):A區(qū)308
實(shí)訓(xùn)內(nèi)容:
一、 硬件連接及單片機(jī)的簡單實(shí)驗(yàn)程序
正確連接汽車單片機(jī)串口、ISP下載線、電池等。
啟用Keil uvision IDE,編輯第一個(gè)程序:HelloRoBotYourTurn.c
#include
int main(void)
{
int i;
uart_Init();
i=7*11;
printf("Whats 7 X 11?\n");
printf("The answer is :%d\n",i);
while(1);
}
接下來下載HelloRoBotYourTurn.c這個(gè)程序到汽車單片機(jī),打開串口調(diào)試工具,檢測程序是否運(yùn)行正常,完成第一項(xiàng)任務(wù)。
二、 單燈閃爍控制
為了驗(yàn)證 P1 口的輸出電平是不是編寫的程序輸出的電平,可以采用一個(gè)非常簡單有效的辦法,就是在P1的端口位接一個(gè)發(fā)光二極管。當(dāng)輸出高電平時(shí),發(fā)光二級管滅;輸出低電平時(shí),發(fā)光二極管亮。進(jìn)而實(shí)現(xiàn)對單片機(jī)的單燈控制。
電路連接及程序如下:
#include
#include
int main(void)
{
uart_Init(); //初始化串口
printf("The LED connected to P1_0 is blinking!\n");
while(1)
{
P1_0=1; // P1_0 輸出高電平
delay_nms(500); //延時(shí) 500ms
P1_0=0; // P1_0 輸出低電平
delay_nms(500); //延時(shí) 500ms
}
}
將程序編制到單片機(jī)中,觀察發(fā)光二極管是否能閃爍。
三、 伺服電機(jī)控制信號
控制伺服電機(jī)轉(zhuǎn)動(dòng)速度的信號是下圖所示的脈沖信號。控制電機(jī)運(yùn)動(dòng)轉(zhuǎn)速的是高電平持續(xù)的時(shí)間,當(dāng)高電平持續(xù)時(shí)間為 1.3ms 時(shí),電機(jī)順時(shí)針全速旋轉(zhuǎn),當(dāng)高電平持續(xù)時(shí)間1.7ms 時(shí),電機(jī)逆時(shí)針全速旋轉(zhuǎn)。
1.7ms
1.3ms
1.3ms
為讓機(jī)器人的兩個(gè)輪子全速旋轉(zhuǎn),輸入如下程序控制伺服電機(jī)的旋轉(zhuǎn):
while(1)
{
P1_0=1; //P1_0 輸出高電平
delay_nus(1300); //延時(shí) 1.3ms
P1_0=0; //P1_0 輸出低電平
delay_nus(20000); //延時(shí) 20ms
}
觀察連接到 P1_0 腳的機(jī)器人輪子是不是順時(shí)針全速旋轉(zhuǎn)?同樣輸入下面的程序觀察連接到 P1_1腳的機(jī)器人輪子是不是順時(shí)針全速旋轉(zhuǎn)?
While(1)
{
P1_0=1; //P1_0 輸出高電平
delay_nus(1700); //延時(shí) 1.7ms
P1_0=0; //P1_0 輸出低電平
delay_nus(20000); //延時(shí) 20ms
}
四、 機(jī)器人的基本巡航控制---觸覺導(dǎo)航
給機(jī)器人加裝胡須,在機(jī)器人行走過程中,如果有胡須被觸動(dòng),那就意味著碰到了什么。導(dǎo)航程序需要接受這些輸入信息,判斷它的意義,調(diào)用一系列使機(jī)器人倒退、旋轉(zhuǎn)朝不同方向行走的動(dòng)作子函數(shù)以避開障礙物。
下面的程序讓機(jī)器人向前走直到碰到障礙物。在這種情況下,機(jī)器人用它的一根或者兩根胡須探測障礙物。一旦胡須探測到障礙物,調(diào)用第三章中的導(dǎo)航程序和子程序使小車倒退或者旋轉(zhuǎn),然后再重新向前行走,直到遇到另一個(gè)障礙物。
#include
#include
int P1_4state(void)//獲取P1_4的狀態(tài),右胡須
{return (P1&0x10)?1:0;
}
int P2_3state(void)//獲取P2_3的狀態(tài),左胡須
{ return (P2&0x08)?1:0;
}
void Forward(void)
{ P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
void Left_Turn(void)
{
int i;
for(i=1;i<=26;i++)
{P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
}
void Right_Turn(void)
{ int i;
for(i=1;i<=26;i++)
{ P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
void Backward(void)
{ int i;
for(i=1;i<=65;i++)
{ P1_1=1;
delay_nus(1300);
P1_1=0;
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
int main(void)
{ uart_Init();
printf("Program Running!\n");
while(1)
{ if((P1_4state()==0)&&(P2_3state()==0))
{ Backward(); //向后
Left_Turn();//向左
Left_Turn();//向左
}
else if(P1_4state()==0)
{ Backward();//向后
Left_Turn();//向左
}
else if(P2_3state()==0)
{ Backward();//向后
Right_Turn();//向右
}
else
Forward();//向前
}
}
觀察小車是否能碰到障礙物后后退并且轉(zhuǎn)向。
五、 實(shí)訓(xùn)總結(jié)
本次實(shí)訓(xùn)以兩輪智能移動(dòng)機(jī)器人工程項(xiàng)目為主線,通過循序漸進(jìn)的構(gòu)建智能機(jī)器人的智能控制器和傳感器電路,使我們了解到單片機(jī)外圍接口特性、內(nèi)部結(jié)構(gòu)原理、應(yīng)用設(shè)計(jì)方法和c語言程序等知識。使我們真正在快樂中學(xué)會了編程,學(xué)會了汽車單片機(jī)的編程,與智能機(jī)器人的控制。在學(xué)習(xí)過程中,我們通過結(jié)合教材程序,并且自己寫程序的方法,掌握了對汽車單片機(jī)原理,并且自己設(shè)計(jì)了自己的電路。
經(jīng)過這兩周的實(shí)訓(xùn)是我們對單片機(jī)產(chǎn)生了濃厚的興趣,同時(shí)這兩周的動(dòng)手操作是我們親身體驗(yàn)了單片機(jī)的神奇。借助這次試驗(yàn)我們也更加清楚地了解了單片機(jī)的工作原理,同時(shí)對他的結(jié)構(gòu)和功能也有了初步了解。另外對程序的是我們更清晰的了解編程的流程,為我們以后獨(dú)立操作進(jìn)行編程打下了一個(gè)基礎(chǔ)。這次實(shí)訓(xùn)也大大培養(yǎng)了我們的動(dòng)手能力,為我們今后的工作給了一助力。
成績和評語:
成績
綜合評定
鏈接地址:http://www.hcyjhs8.com/p-9065997.html