欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    智能寻迹机器人实验指导书.docx

    • 资源ID:44407549       资源大小:3.07MB        全文页数:38页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    智能寻迹机器人实验指导书.docx

    益芯科技让您在兴趣中学习,在运用中掌握,在掌握中应用。简 介 单片机益智系列智能寻迹机器人是由益芯科技有限公司为科教方便而研发设计。根据现代学校对嵌入式系统开发的需求。依据提高学生实际动手操作能力和思考能力,以加强学生对现实生活中嵌入式系统的应用为参照。智能寻迹机器人全新的设计模式,良好的电路设计,一体化的机电组合,智趣的系统开发,更是成为加强学生学习兴趣的总动源。 智能寻迹机器人采用现在较为流行的8位单片机作为系统大脑。以8051系列家族中的AT89S51/AT89S52为主芯片。40脚的DIP封装使它拥有32个完全IO(GPIO通用输入输出)端口,通过对这些端口加以信号输入电路,控制电路,执行电路共同完成寻迹机器人。P0.0,P0.1,P0.2,P0.3分别通过LG9110电机驱动来驱动电机1和电机2。由电机的正转与反转来完成机器人的前进,后退,左转,右转,遇障碍物绕行,避悬崖等基本动作。在机器人前进时如果前方有障碍物,由红外发射管发射的红外信号被反射给红外接收管,红外接管将此信号经过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端口中的光敏电阻来进行判断,以方便完成机器人夜间自动照明等功能。两个按键以查询/中断两种不同的方式来展现按键操作。你可以按下S1键来进行机器的停止。再按下S2键来进行机器人的运行。这个按键的信息分别被P3.2,P3.4接收到。IR1为红外遥控接收器,这就为机器人进行远程遥控创造了可能。这个红外遥控接收头接收到红外信号时将信号经过P3.3送入到主芯片,主芯片对其进行解密后以不同的方式对机器人进行控制。同时将用户的按键信息通过P2端口上LED数码管显示出来。P3.0、P3.l中COM端口的加入,让你完全可以用电脑对其进行控制。你可以通过对串口发送数据,数据会被显示到LED数码管中,并让机器人执行相应的功能。电脑的串口软件要求波特率为9600。8位数据位,这时你就可以快乐的用电脑来对它进行你的完全控制了。 EXKJ-ZN02功能的组合多样,使得学生可以充分发挥自主能力,制作出不同的机器人。它为学校进行机器人竞赛和毕业项目设计建立了实物平台,是学校教师授课变得更轻松有趣。同时也能改变学生学习模式和激发学习兴趣。更是作为验证学生学习效果的有力工具。良好的电路板设计,让学生制作变得方便容易,其大大提高了学生的制作成功率。提高了学生对电子电路的兴趣,更是教学过程中不可或缺的教具。 实验一 程序状态指示灯演示一、 实验简介:本程序重点演示了一个最简程序的基本结构,它从顺序、判断、循环的形式表现程序的基本结构,此程序通过闪灯不断的闪动,及闪灯闪动的快慢来表示程序不不同工作状态。它也是常数字设备中进行状态表示的方法之一(例:网卡)。二、 实验原理图:三、 实现代码:/=/实验名称:程序状态指示灯演示程序 / 开发日期: 2009/01/19 / 修改日期: / 程序作者: guojun 邮箱:GuoGuoExkj / 开发商:益芯科技有限公司技术部 / 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. / 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. /=/#include <AT89x51.h> /包含头文件#define LED P1 /宏定义显示端口号void Delay(unsigned int DelayTime) /定义可变延时函数 while(DelayTime-); /延时函数进入倒计时void main() /程序主函数码 unsigned int CountData=0; /定义一个整形变量,用于闪动次数+ while(1) /主程序循环体开始 if(CountData<30) /判断闪动次数是否位于0-30之间 Delay(60000); /用60000作为基数开始延时函数 else if(CountData<60) /判断闪动次数是否位于30-60之间 Delay(30000); /用30000作为基数开始延时函数 else if(CountData<90) /判断闪动次数是否位于60-90之间 Delay(10000); /用10000作为基数开始延时函数 else if(CountData<120) /判断闪动次数是否位于90-120之间 CountData=0; /仅进行一次操作即可退出. CountData=CountData+1; /闪动次数基数+ LED=LED; /将显示端口进行取反操作 四、 运行效果:程序运行效果为:开机后程序以慢速闪动,一段时间后速度开始加快,再等待时间,闪灯的速度达到最快,之后一段时间后,闪动将回到开始状态。实验二 流水灯演示一、 实验简介:本程序全面的表现了子程序的用法,它从对几个子程序的操作,显示不同的流灯技术,流水灯的不同需要不同的表现的形式,而这里主要介绍了移位操作和内部数据存储及读入操作。延时函数采用可重入标志,可进行函数的递归调用。二、 实验原理图:三、 实现代码:/=/ 开发日期: 2009/01/20 / 修改日期: / 程序作者: guojun 邮箱:GuoGuoExkj / 开发商:益芯科技有限公司技术部 / 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. / 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. /=/#include <AT89x51.h> /包含头文件#define Led P1 /定义显示端口号unsigned int code BToM=0x7E,0x3C,0x18,0x00; /定义由两边到中间显示数据unsigned int code MToB=0xE7,0xC3,0x81,0x00;/定义由中间到两边显示数据void Delay() reentrant /定义可重入的延时函数 unsigned int DelayTime=10000; /定义延时时间基数 while(DelayTime-); /程序开始延时开始void LeftToRight() /定义从左边到右边显示函数unsigned char TempCount=0; /定义显示次数变量 Led=0xFE; /定义初步显示数据 for(TempCount=0;TempCount<8;TempCount+) /通过循环进行数据显示 Delay(); /延时,用在每次移动数据开始处 Led=Led<<1; /由右边向左边移动数据 return; /空返回语句,表明此子程序的结束.void RightToLeft() /定义从右边到左边显示函数 unsigned char TempCount=0; /定义显示次数变量 Led=0x7F; /定义初步显示数据 for(TempCount=0;TempCount<8;TempCount+) /通过循环进行数据显示 Delay(); /延时,用在每次移动数据开始处 Led=Led>>1; /由左边向右移动数据 return; /空返语句,表明此子程序的结束.void BothToMid() /定义由两边到中间显示子程序 unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount+) /通过循环依次进行次数运行 Delay(); /延时,在每次运行前. Led=BToMTempCount; /读入当次显示数据. return; /空返回,表明此子程序的结束.void MidToBoth() /定义由中间到两边子程序unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount+) /通过循环进行数据显示 Delay(); /延时,在每次数据显示前. Led=MToBTempCount; /读入当次显示数据. return; /空返回,表明此次子程序的结束.void main() /主程序入口处. while(1) /无穷循环开始. LeftToRight(); /从左到右进行显示 RightToLeft(); /从右到左进行显示 BothToMid(); /由两边到中间进行显示 MidToBoth(); /由中间到两边进行显示 四、 运行效果:程序运行效果为:开机后,指示灯向从左向右依次点亮,从右向左依次点亮,由两边向中间依次点亮,由中间向两边依次点亮。实验三 数码管演示一、 实验简介:本程序通过对端口的置数操作,展示了数码管的应用技术,数码管是将发光二极管通过一定的形式封装在一个数字的外壳中,可以通过不同的点亮方式来显不同的数字符号。 二、 实验原理图:三、 实现代码:/=/ 开发日期: 2009/01/26 / 修改日期: / 程序作者: guojun 邮箱:GuoGuoExkj/ 开发商:益芯科技有限公司技术部 / 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. / 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. /=/#include <AT89x51.h> /包含头文件typedef unsigned int uint; /重命名整数类型关键字typedef unsigned char uchar; /重命名字符类型关键字uchar code LedShowData=0x9F,0x25,0x0D,0x99,0x49, /定义固定存储显示字符 0x41,0x1F,0x01,0x19,0x03;/1,2,3,4,5,6,7,8,9,0void Delay() /定义延时函数 uint TempTime=20000; /定义延时时间变量 while(TempTime-); /通过循环进行延时 void main() /主程序开始main() uchar CountData=0; /定义计数变量 while(1) /主程序无限循环开始 P2=LedShowDataCountData; /P2端口读入显示数据 CountData+; /计数变量+(加加) if(CountData>=10) /判断是否超出计数范围 CountData=0; /重新置零 Delay(); /延时函数被调用 四、 运行效果:程序运行效果为:程序下载后,数码管将从1-9依次显示,最后将显示数字0. 实验四 数码管及跑马灯演示一、 实验简介:本程序主要是将数码管及跑马灯放在一起显示,它主要说明了,如何将在单系中运行多个看似并行运行的子系统.本程序在此将跑马灯子程序放入到一个头文件中,对于一个大的工程这样将有益于程序文件的管理。二、 实验原理图:三、 实现代码:/=/ 开发日期:2009/01/26 / 修改日期: / 程序作者: guojun 邮箱:GuoGuoExkj / 开发商:益芯科技有限公司技术部 / 程序备注:此程序仅为表现本机功能而演示用,当用作实际工程时请慎用。 / 特别声明:此程序可作研究之用,但引用、转载、使用请注明出处。 /=/#include <AT89x51.h> /包含端口定义头文件unsigned char code LedShowData=0x9F,0x25,0x0D,0x99,0x49,/定义数码管显示字符 0x41,0x1F,0x01,0x19,0x03;/1,2,3,4,5,6,7,8,9,0#define Led P1 /定义显示端口unsigned char CountData=0; /定义数码管计数器unsigned int code BToM=0x7E,0x3C,0x18,0x00; /定义由两边到中间显示数据unsigned int code MToB=0xE7,0xC3,0x81,0x00; /定义由中间到两边显示数据void Delay() reentrant /定义可重入延时函数 unsigned int DelayTime=10000; /定义延时时间变量 while(DelayTime-); /通过循环进行延时 P2=LedShowDataCountData; /置数码管显示数据到P2端口 CountData+; /数码管地址计数器+(加1) if(CountData>=10) /判断计数器累计数值 CountData=0; /计数器清零 #include <跑马灯.h> /包含显示方式头文件 void main() /主程序入口 while(1) /无穷循环开始. LeftToRight(); /从左到右进行显示 RightToLeft(); /从右到左进行显示 BothToMid(); /由两边到中间进行显示 MidToBoth(); /由中间到两边进行显示 /跑马灯.h/void LeftToRight() /定义从左边到右边显示函数unsigned char TempCount=0; /定义显示次数变量 Led=0xFE; /定义初步显示数据 for(TempCount=0;TempCount<8;TempCount+) /通过循环进行数据显示 Delay(); /延时,用在每次移动数据开始处 Led=Led<<1; /由右边向左边移动数据 return; /空返回语句,表明此子程序的结束.void RightToLeft() /定义从右边到左边显示函数 unsigned char TempCount=0; /定义显示次数变量 Led=0x7F; /定义初步显示数据 for(TempCount=0;TempCount<8;TempCount+) /通过循环进行数据显示 Delay(); /延时,用在每次移动数据开始处 Led=Led>>1; /由左边向右移动数据 return; /空返语句,表明此子程序的结束.void BothToMid() /定义由两边到中间显示子程序 unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount+) /通过循环依次进行次数运行 Delay(); /延时,在每次运行前. Led=BToMTempCount; /读入当次显示数据. return; /空返回,表明此子程序的结束.void MidToBoth() /定义由中间到两边子程序unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount+) /通过循环进行数据显示 Delay(); /延时,在每次数据显示前. Led=MToBTempCount; /读入当次显示数据. return; /空返回,表明此次子程序的结束.四、 运行效果:本程序运行效果:本程序运行后,可以看到跑马灯按,从左到右,从右到左,从两边到中间,从中间到两边将依次运行。并且在运行过程中,可以看到数码管依次从1-9-0的顺序显示数字符号。 实验五 按键中断查询演示一、 实验简介:本程序通过两个按键对数码管进行操作,分别向用户演示了查询与中断的操作方式,中断中应用了对按键进行查询的方法来判断按键的键值,查询按键方法中则采用了键盘延迟的方法来消除按键重复输入。 二、 实验原理图:三、 实现代码:/=/ 开发日期: 2009/01/27 编写按键中断与查询的最初代码 / 修改日期: / 程序作者: guojun 邮箱:GuoGuoExkj/ 开发商:益芯科技有限公司技术部 / 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. / 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. /=/#include <at89x51.h> /包含S51地址头文件typedef unsigned char uchar; /重定义无符号字符型typedef unsigned int uint; /重定义无符号整型sbit S1=P32; /定义S1变量sbit S2=P34; /定义S2变量uchar DataCount=0; /定义全局计数器uchar code LedShowData=0x9F,0x25,0x0D,0x99,0x49, /定义固定存储显示字符 0x41,0x1F,0x01,0x19,0x03;/1,2,3,4,5,6,7,8,9,0void KeyDelay() /定义键盘防抖子程序 uint KeyTime=20000; /定义防抖时间变量 while(KeyTime-); /防抖延时开始 return;void S1_Break() interrupt 0 /定义S1(INT0)外部中断0while(0=S1); /判断S1按键键值DataCount-; /计数器数值减1if(DataCount>9) /判断计数器是否到最小值 DataCount=9; /显示数字0return; void main() /主程序开始 ET0=1; /设定外部中断触发方式(1->低电平触发) EX0=1; /开启外部中断0 EA=1; /开记总中断 while(1) /程序主循环 if(0=S2) /通过查询判断键值 KeyDelay(); /键盘防抖动开延时子程序开始 DataCount+; /计数器加1 if(DataCount>9) /判断当前计数器 DataCount=0; /将计数器置0 P2=LedShowDataDataCount; /通过端口显示计数器数值 四、 运行效果:程序运行效果:开机后数码管显示数字"1",当按S1不放时,数码管数字不变,,松开S1按键,数码减1;按S2键不放时,数码管数字会自动加1。并且数字遵守从0-9循环操作。 实验六话筒声音识别演示一、 实验简介:本程序主要通过话筒对声音信号进行识别,由于本电路有效的去除杂波,所以仅能对响度较大的声音进行识别(例:拍手声)。像正常的说话声对本电路虑除,不会产生信息的输入。话筒识别的加入,为我们建立了声控平台。二、 实验原理图:三、 实现代码:/=/ 开发日期: 2009/01/27 / 修改日期:

    注意事项

    本文(智能寻迹机器人实验指导书.docx)为本站会员(飞****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开