《智能寻迹机器人实验指导书.docx》由会员分享,可在线阅读,更多相关《智能寻迹机器人实验指导书.docx(40页珍藏版)》请在第一文库网上搜索。
1、智能寻迹机器人实验指导书单片机益智系列一一智能寻迹机器人是由益芯科技有限公司为科教方便而研发设计。根据现代学校对嵌入式系统开发的需求。根据提高学生实际动手操作能力与思考能力,以加强学生对现实生活中嵌入式系统的应用为参照。智能寻迹机器人全新的设计模式,良好的电路设计,一体化的机电组合,智趣的系统开发,更是成为加强学生学习兴趣的总动源。智能寻迹机器人使用现在较为流行的8位单片机作为系统大脑。以8051系列家族中的AT89S51/AT89S52为主芯片。40脚的D1P封装使它拥有32个完全K)(GP1o-通用输入输出)端口,通过对这些端口加以信号输入电路,操纵电路,执行电路共同完成寻迹机器人。P0.
2、0,P0.1,P0.2,P0.3分别通过1G9110电机驱动来驱动电机1与电机2。由电机的正转与反转来完成机器人的前进,后退,左转,右转,遇障碍物绕行,避悬崖等基本动作。在机器人前进时假如前方有障碍物,由红外发射管发射的红外信号被反射给红外接收管,红外接管将此信号通过P3.7传送入AT89S52,主芯片通过内部的代码进行机器人的绕障碍物操作,同时主芯片将P3.7的信号状态通过P2.5的1ED指示灯显示出来。机器人行走时会通过P3.5与P3.6的红外接收探头来进行检测。当走到悬崖处时,P3.5或者P3.6将收到一个电平信号,此电平信号将通过相应端口传送入主芯片中,主芯片通过内部代码完成机器人的避
3、悬崖操作。同时P3.5与P3.6的信号状态将通过P2.6/P2.7显示出来。在机器人的左转,右转,后退的过程,能够通过观看以P2.0/P0.7为指示灯的运行状态。P0.4为机器人的声控检测端口,在运行为前进状态时,能够能过声控(如拍手声)来操纵它的运行与停止。P0.6为机器人的声音输出端。在机器人遇到障碍物时。进行绕障碍物与避悬崖时能够通过此端口操纵蜂鸣器发出报警声。当为白天或者黑夜时能够通过P0.5端口中的光敏电阻来进行推断,以方便完成机器人夜间自动照明等功能。两个按键以查询/中断两种不一致的方式来展现按键操作。你能够按下S1键来进行机器的停止。再按下S2键来进行机器人的运行。这个按键的信息
4、分别被P3.2,P3.4接收到。IR1为红外遥控接收器,这就为机器人进行远程遥操纵造了可能。这个红外遥控接收头接收到红外信号时将信号通过P3.3送入到主芯片,主芯片对其进行解密后以不一致的方式对机器人进行操纵。同时将用户的按键信息通过P2端口上1ED数码管显示出来。P3.0、P3.1中COM端口的加入,让你完全能够用电脑对其进行操纵。你能够通过对串口发送数据,数据会被显示到1ED数码管中,并让机器人执行相应的功能。电脑的串口软件要求波特率为9600。8位数据位,这时你就能够快乐的用电脑来对它进行你的完全操纵了。EXKJ-ZN02功能的组合多样,使得学生能够充分发挥自主能力,制作出不一致的机器人
5、。它为学校进行机器人竞赛与毕业项目设计建立了实物平台,是学校教师授课变得更轻松有趣。同时也能改变学生学习模式与激发学习兴趣。更是作为验证学生学习效果的有力工具。良好的电路板设计,让学生制作变得方便容易,其大大提高了学生的制作成功率。提高了学生对电子电路的兴趣,更是教学过程中不可或者缺的教具。实验一程序状态指示灯演示一、实验简介:本程序重点演示了一个最简程序的基本结构,它从顺序、推断、循环的形式表现程序的基木结构,此程序通过闪灯不断的闪动,及闪灯闪动的快慢来表示程序不不一致工作状态。它也是常数字设备中进行状态表示的方法之一(例:网卡)。二、实验原理图:IC1P0.0AD0P0.1AD1-P0.2
6、D2-P0.3D3-P0.4/AD4-P0.5D5P0.6AD6-P0.7AD7C830pFZeso;1ZC610FR1510KC110F一亚1WMXrA11IXTA12RST EAJWPIPSEN A1EJyK P3.0xD P31xD P3.27nT0 P331F1P3.4/T0 P3.5/T1,P3.6WR P3.7TOVSSP1.02P1.12EXP1.2CI-P1.3JCEX0-P1.4CEX1P1.5CEX2-P1.6CEX3-P1.7CEX4-P20A8P2.1A9P22A10P2311P2.412P2513-P2.6ZM-P2.7A139一35一34灯一32一13_4(乒_8一
7、21_22_2324_25雷2728_3335Yf333s3333,3HHHW口留8口就口衮口舞口鼠0/口就口髭D1D2D3D4D5D6D7DBT,AT89S51AT89S52A89C51/AI89C52三、实现代码:/=/实验名称:程序状态指示灯演示程序/开发日期:2009/01/19/修改日期:/开发商:益芯科技有限公司一一技术部/程序备注:此程序仅为表现本机功能而演示用,当用作实际工程时请慎用./特别声明:此程序可作研究之用,但引用,转载,使用请注明出处./=/#inc1ude包含头文件#define1EDP1宏定义显示端口号voidDe1ay(unsignedintDe1ayTime)
8、定义可变延时函数whi1e(De1ayTime-);延时函数进入倒计时1voidmain()程序主函数码unsignedintCountData=O;whi1e(1)定义一个整形变量用于闪动次数+if(CountData30)(DeIay(6(X)00);Ie1seif(CountData60)(DeIay(30000);Ie1seif(CountData90)(De1ay(I(X)OO);Ie1seif(CountData120)(CountData=O;ICountData=CountData+1;1ED=-1ED;11四、运行效果:推断闪动次数是否位于0-30之间用60000作为基数开始
9、延时函数推断闪动次数是否位于30-60之间用30000作为基数开始延时函数推断闪动次数是否位于60-90之间用IOooo作为基数开始延时函数推断闪动次数是否位于90-120之间仅进行一次操作即可退出.闪动次数基数+将显示端口进行取反操作主程序循环体开始程序运行效果为:开机后程序以慢速闪动,一段时间后速度开始加快,再等待时间,闪灯的速度达到最快,之后一段时间后,闪动将回到开始状态。实验二流水灯演示一、实验简介:本程序全面的表现了子程序的用法,它从对几个子程序的操作,显示不一致的流灯技术,流水灯的不一致需要不一致的表现的形式,而这里要紧介绍了移位操作与内部数据存储及读入操作。延时函数使用可重入标志
10、,可进行函数的递归调用。二、实验原理图:IcC730pFT1C830pFXTA11XTA12C610FRSTEA/VPPPSENA1ETO5P3.0xDP31xDP32tP331Nt1P340P351P3.6WRP37)RbVCCP0.0AD0P0.1AD1P0.2AD2-P0.3D3-P0.4D4-P0.5D5-PO.6406P0.7D7P1.02-P1.12EX-P1.2CI-P1.3CEX0-P1.4CEX1-P1.5CEX2-P1.6QEX3P1.7CEX4-P2.0A8-P219-P2.2A10-P2311-P2412-P2513PZ6A14-AT89S51AT89S52AT89C5
11、VAT89C524039翁:爰33:,23一4一,56二8一21篷在25翁28一脾脾眠圈口黑腺骐腺D1D4D5D6D7z三、实现代码:/=/开发日期:2009/01/20/修改日期:/开发商:益芯科技有限公司一一技术部/程序备注:此程序仅为表现本机功能而演示用,当用作实际工程时请慎用./特别声明:此程序可作研究之用,但引用,转载,使用请注明出处./=:#inc1ude#define1edP1unsignedintcodeBToM11=0x7E,0x3C,0x18,0x00;unsignedintcodeMToB=0xE7,0xC3,0x81,0x00;voidDe1ay()reentrantu
12、nsignedintDe1ayTime=IOOOO;whi1e(De1ayTime-);1void1eftToRightOunsignedcharTempCount=O;1ed=OxFE;for(TempCount=0;TempCount8;TempCoun1+)(De1ay();1ed=1ed1;=/包含头文件定义显示端口号定义由两边到中间显示数据定义由中间到两边显示数据定义可重入的延时函数定义延时时间基数程序开始延时开始定义从左边到右边显示函数/定义显示次数变量定义初步显示数据通过循环进行数据显示延时,用在每次移动数据开始处由右边向左边移动数据return;空返回语句,说明此子程序的结束.
13、voidRightTo1eftO定义从右边到左边显示函数unsignedcharTempCount=O;定义显示次数变量1ed=0x7F;定义初步显示数据for(TempCount=0;TempCount1;由左边向右移动数据Jreturn;空返语句,说明此子程序的结束IvoidBoth1bMidO定义由两边到中间显示子程序unsignedcharTempCount=O;1ed=OxFF;定义临时次数变量Ibr(TempCoUn1=0;TemPCOUnIV5;TemPCOUm+)f通过循环依次进行次数运行IDe1ay();/延时,在每次运行前.1ed=BToMITempCount;1读入当次显示数据.Jreturn;空返回,说明此子程序的结束.IvoidMidToBothO定义由中间到两边子程序unsignedcharTempCount=O;1ed=OxFF;定义临时次数变量for(TempCount=0;TempCount5;TempCoun1+)通过循环进行数据显示iDe1ay();