版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、/* 機(jī)器人擂臺賽51 程序 */* 使用芯片: AT89S52 或者STC89C52 或 AT89S51 STC89C51*/* 晶振: 11.0592MHZ*/* 編譯環(huán)境: Keil*/* 作者: wangzhian yuhao*/* 時間: 20120526*/* 機(jī)器人底座四個角下面各有一個灰度傳感器,正前面對稱安裝兩個紅外傳感器,后面,左面右面?zhèn)€一個傳感器*/* 電機(jī)電壓為12V 直流減速電機(jī),驅(qū)動為L298N 模塊 */* 程序應(yīng)盡量避免電機(jī)轉(zhuǎn)向的突然變化,電機(jī)為高速蝸桿減速電機(jī),轉(zhuǎn)速高,電壓高,突然轉(zhuǎn)向容易閃火花,燒壞電機(jī) */#include <reg52.h>#
2、define uchar unsigned char#define uintunsigned int#define con P0uchar sj,sec,count;uchar sj1,sec1,count1;uchar sj2,sec2,count2;uchar sj3,sec3,count3;uchar sj4,sec4,count4;uchar sj5,sec5,count5;uint a,b,m;/*=機(jī)器人電路接線圖=*/* 四個灰度傳感器,從左到右,序號從0 到 3,為 P2 口的低四位 ,遇到遮擋物返回為低電平*/sbit f0=P27;sbit f1=P26;sbit f2=P
3、25;sbit f3=P24;/* 五個紅外傳感器,從左到右,序號從0 到 3,為 P2 口的高四位,檢測到目標(biāo)后返回是低電平 */sbit f4=P23;sbit f5=P22;sbit f6=P21;sbit f7=P20;sbit f8=P13;int z=0xaa,0x55,0x5a,0xa5,0xe5,0xb5,0xad,0xa7,0xda,0x7a,0x5e,0x5b;/z0 前進(jìn) 0xaa,二進(jìn)制為10101010/z1 后退 0x55,二進(jìn)制為01010101/z2 左轉(zhuǎn) 0x5a,二進(jìn)制為01011010/z3 右轉(zhuǎn) 0xa5,二進(jìn)制為10100101/z4 沿左后輪順時針轉(zhuǎn)
4、0xe5,二進(jìn)制為11100101/z5 沿左前輪順時針轉(zhuǎn)0xb5,二進(jìn)制為10110101/z6 沿右前輪順時針轉(zhuǎn)0xad,二進(jìn)制為10101101/z7 沿右后輪順時針轉(zhuǎn)0xa7,二進(jìn)制為10100111/z8 沿左后輪逆時針轉(zhuǎn)0xda,二進(jìn)制為11011010/z9 沿左前輪逆時針轉(zhuǎn)0x7a,二進(jìn)制為01111010/z10 沿右前輪逆時針轉(zhuǎn)0x5e,二進(jìn)制為01011110/z11 沿右前輪逆時針轉(zhuǎn)0x5b,二進(jìn)制為01011011int hdjc();/ 灰度檢測int hwjc();/ 紅外檢測void zttz();/ 姿態(tài)調(diào)整void xzsm();/ 掃描void xzsm1
5、();/ 旋轉(zhuǎn)掃描void jingong();/ 進(jìn)攻void delay(uint i);void main()m=0;sec1=2;/一秒count1=0;/1 代表 10 微秒,sj1=20*sec1+count1;/ 左轉(zhuǎn)時間sec2=2;count2=0;sj2=20*sec2+count2;/ 前進(jìn)時間sec3=2;count3=0;sj3=20*sec3+count3;/ 掃描前進(jìn)時間sec4=3;count4=0;sj4=20*sec4+count4;/ 掃描旋轉(zhuǎn)時間sec5=1;count5=10;sj5=20*sec5+count5;/ 掃描旋轉(zhuǎn)時間TMOD=0x01;I
6、E=0x82;TH0=(65536-50000)/256;TL0=(65536-50000)%256;/左轉(zhuǎn) 45 度/*con=z2;count=0;sec=0;/秒置 0TR0=1;/ 定時器 1 開始工作doa=hdjc();/ 灰度檢測b=hwjc();/ 紅外檢測sj=sec*20+count;while(a=0)&&(b=0)|(b=4)&&(sj<=sj1);TR0=0;/ 定時器 1 停止工作 */前進(jìn)到擂臺中間con=z0;count=0;sec=0;/秒置 0TR0=1;/ 定時器 1 開始工作doa=hdjc();/ 灰度檢測b=hw
7、jc();/ 紅外檢測sj=sec*20+count;while(a=0)&&(b=0)&&(sj<=sj2);TR0=0;/ 定時器 1 停止工作a=hdjc();b=hwjc();while(1)if(a=0)|(a=5)|(a=8)if(b=0)xzsm();/ 未遇到邊沿,未遇到敵人,旋轉(zhuǎn)掃描elseif(b=1)|(b=2)xzsm1();elseif(b=3)|(b=4)jingong();/ 遇到敵人,進(jìn)攻elsezttz();/ 遇到邊沿,但沒發(fā)現(xiàn)敵人,調(diào)整姿態(tài)void delay(uint i)uint x,y;for(x=i;x>
8、0;x-)for(y=110;y>0;y-);/灰度檢測int hdjc()int i=0;if(f3=0)&&(f2=0)&&(f1=0)&&(f0=1) i=1;/0001,if(f3=0)&&(f2=0)&&(f1=1)&&(f0=0) i=2;/0010,if(f3=0)&&(f2=0)&&(f1=1)&&(f0=1) i=6;/0011,if(f3=0)&&(f2=1)&&(f1=0)&&
9、(f0=0) i=3;/0100,if(f3=0)&&(f2=1)&&(f1=1)&&(f0=1) i=8;/0110,if(f3=1)&&(f2=0)&&(f1=0)&&(f0=0) i=4;/1000,if(f3=1)&&(f2=0)&&(f1=0)&&(f0=1) i=5;/1001,if(f3=1)&&(f2=1)&&(f1=0)&&(f0=0) i=7;/1100,return(i);左后遇到邊
10、沿左前遇到邊沿左邊兩個都遇到邊沿右前遇到邊沿前面兩個都遇到邊沿右后遇到邊沿后面兩個都遇到邊沿右邊都兩個遇到邊沿/紅外檢測int hwjc()int i=0;if(f5=0)&&(f6=0) i=3;elseif(f4=0)|(f5=0) i=1,m=1;if(f6=0)|(f7=0) i=2,m=2;if(f8=0) i=4;return(i);/旋轉(zhuǎn)掃描函數(shù)void xzsm()intj,k;j=0;k=0;do/前進(jìn)掃描if(j>=1)if(a=0)con=z0;if(a=5)con=z0;elseif(a=8)con=z1;elsej+;/*con=z1;j+;el
11、secon=z0;*/count=0;sec=0;/秒置 0TR0=1;/ 定時器 1 開始工作doa=hdjc();/ 灰度檢測b=hwjc();/ 紅外檢測sj=sec*20+count;/ 計(jì)時while(a=0)&&(b=0)&&(sj<=sj3);/發(fā)現(xiàn)邊沿,敵人,到達(dá)定時,則跳出TR0=0;/ 定時器 1 停止工作if(a=0)&&(b=0)con=z3;count=0;/100 毫秒置 0sec=0;/秒置 0TR0=1;doa=hdjc();/ 灰度檢測b=hwjc();/ 紅外檢測sj=sec*20+count;/ 計(jì)時w
12、hile(a=0)&&(b=0)&&(sj<=sj4);/發(fā)現(xiàn)邊沿,敵人,到達(dá)定時,則跳出TR0=0;/ 定時器 1 停止工作while(a=0)|(a=5)|(a=8)&&(b=0);/發(fā)現(xiàn)邊沿,敵人,則跳出void xzsm1()if(m=1)con=z2;elseif(m=2)con=z3;count=0;/100 毫秒置 0sec=0;/秒置 0TR0=1;doa=hdjc();/ 灰度檢測b=hwjc();/ 紅外檢測sj=sec*20+count;/ 計(jì)時while(a=0)&&(b!=0)&&(
13、b!=3)&&(b!=4)&&(sj<=sj5);/發(fā)現(xiàn)邊沿,敵人,到達(dá)定時,則跳出TR0=0;/ 定時器 1 停止工作if(sj>sj5)docon=0x00;while(!(f4=1)&&(f7=1);/姿態(tài)調(diào)整函數(shù)void zttz()doswitch(a)case 1:con=z0;delay(400);con=z3;delay(400);con=z0;break;/前進(jìn),右轉(zhuǎn),后退case 2:con=z1;delay(400);con=z2;delay(400);con=z1;break;/后退,左轉(zhuǎn),前進(jìn)case 3:con=z1;delay(400);con=z3;delay(400);con=z1;break;/后退,右轉(zhuǎn),前進(jìn)case 4:con=z0;delay(400);con=z2;delay(400);con=z0;break;/前進(jìn),左轉(zhuǎn),后退case 6:con=z3;delay(900);con=z1;break;case 7:con=z2;delay(900);con=z1;break;a=hdjc();b=hwjc();while(a!=0)&&(a!=5)&&(a!=8);/ 調(diào)整姿態(tài),正對邊沿跳出/進(jìn)攻函數(shù)void jingong()doswi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何高效準(zhǔn)備家庭教育的月度匯報(bào)
- 二零二五年度新型建筑材料研發(fā)與采購合同示范文本3篇
- 2025年蘇教新版選修1化學(xué)下冊月考試卷
- 2024智能城市信息安全防護(hù)平臺合同
- 小學(xué)漢字教育創(chuàng)新教學(xué)方法探討
- 2025年度網(wǎng)絡(luò)文學(xué)約稿合同-網(wǎng)絡(luò)原創(chuàng)小說專屬3篇
- 2024版?zhèn)l(fā)行履約擔(dān)保服務(wù)合同
- 2025年度智能機(jī)器人銷售團(tuán)隊(duì)服務(wù)合同規(guī)范
- 2024招投標(biāo)活動廉政監(jiān)督與服務(wù)合同3篇
- 室外景觀設(shè)計(jì)在醫(yī)療建筑中的應(yīng)用
- 男方報(bào)銷生育險(xiǎn)未就業(yè)承諾書
- DB63-T 1789-2021地方標(biāo)準(zhǔn)制定工作規(guī)范
- 口腔病歷書寫課件
- 初中數(shù)學(xué)學(xué)法指導(dǎo)課件
- 2022年林芝化學(xué)九上期中考試模擬試題含解析
- 北洋政府的黑暗統(tǒng)治優(yōu)秀教學(xué)課件
- 酒店組織架構(gòu)圖以及各崗位職責(zé)(完整版)
- Western blot 技術(shù)-詳細(xì)版
- 環(huán)氧樹脂固化
- 渝建竣表格新表(共253頁)
- 意外脫管魚骨圖分析(共1頁)
評論
0/150
提交評論