ImageVerifierCode 换一换
格式:DOC , 页数:97 ,大小:4MB ,
资源ID:4466151      下载积分:18 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4466151.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(智能寻迹机器人实验指导书模板.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

智能寻迹机器人实验指导书模板.doc

1、 智能寻迹机器人实验指导书 97 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 简 介 单片机益智系列——智能寻迹机器人是由益芯科技有限公司为科教方便而研发设计。根据现代学校对嵌入式系统开发的需求。依据提高学生实际动手操作能力和思考能力, 以加强学生对现实生活中嵌入式系统的应用为参照。智能寻迹机器人全新的设计模式, 良好的电路设计, 一体化的机电组合, 智趣的系统开发, 更是成为加强学生学习兴趣的总动源。 智能寻迹机器人采用现在较为流行的8位单片机作为系统大脑。以8051系列家族中的AT89S51/AT89S5

2、2为主芯片。40脚的DIP封装使它拥有32个完全IO(GPIO—通用输入输出)端口, 经过对这些端口加以信号输入电路, 控制电路, 执行电路共同完成寻迹机器人。P0.0, P0.1, P0.2, P0.3分别经过LG9110电机驱动来驱动电机1和电机2。由电机的正转与反转来完成机器人的前进, 后退, 左转, 右转, 遇障碍物绕行, 避悬崖等基本动作。在机器人前进时如果前方有障碍物, 由红外发射管发射的红外信号被反射给红外接收管, 红外接管将此信号经过P3.7传送入AT89S52中, 主芯片经过内部的代码进行机器人的绕障碍物操作, 同时主芯片将P3.7的信号状态经过P2.5的LED指示灯显示出来

3、机器人行走时会经过P3.5与P3.6的红外接收探头来进行检测。 当走到悬崖处时, P3.5或P3.6将收到一个电平信号, 此电平信号将经过相应端口传送入主芯片中, 主芯片经过内部代码完成机器人的避悬崖操作。同时P3.5与P3.6的信号状态将经过P2.6/P2.7显示出来。在机器人的左转, 右转, 后退的过程, 能够经过观看以P2.0/P0.7为指示灯的运行状态。P0.4为机器人的声控检测端口, 在运行为前进状态时, 能够能过声控(如拍手声)来控制它的运行与停止。P0.6为机器人的声音输出端。在机器人遇到障碍物时。进行绕障碍物与避悬崖时能够经过此端口控制蜂鸣器发出报警声。当为白天或黑夜时能够经

4、过P0.5端口中的光敏电阻来进行判断, 以方便完成机器人夜间自动照明等功能。两个按键以查询/中断两种不同的方式来展现按键操作。你能够按下S1键来进行机器的停止。再按下S2键来进行机器人的运行。这个按键的信息分别被P3.2, P3.4接收到。IR1为红外遥控接收器, 这就为机器人进行远程遥控创造了可能。这个红外遥控接收头接收到红外信号时将信号经过P3.3送入到主芯片, 主芯片对其进行解密后以不同的方式对机器人进行控制。同时将用户的按键信息经过P2端口上LED数码管显示出来。P3.0、 P3.l中COM端口的加入, 让你完全能够用电脑对其进行控制。你能够经过对串口发送数据, 数据会被显示到LED数

5、码管中, 并让机器人执行相应的功能。电脑的串口软件要求波特率为9600。8位数据位, 这时你就能够快乐的用电脑来对它进行你的完全控制了。 EXKJ-ZN02功能的组合多样, 使得学生能够充分发挥自主能力, 制作出不同的机器人。它为学校进行机器人竞赛和毕业项目设计建立了实物平台, 是学校教师授课变得更轻松有趣。同时也能改变学生学习模式和激发学习兴趣。更是作为验证学生学习效果的有力工具。良好的电路板设计, 让学生制作变得方便容易, 其大大提高了学生的制作成功率。提高了学生对电子电路的兴趣, 更是教学过程中不可或缺的教具。 实验一 程序状态指示灯演示 一、 实验简介:

6、本程序重点演示了一个最简程序的基本结构, 它从顺序、 判断、 循环的形式表现程序的基本结构, 此程序经过闪灯不断的闪动, 及闪灯闪动的快慢来表示程序不不同工作状态。它也是常数字设备中进行状态表示的方法之一(例: 网卡)。 二、 实验原理图: 三、 实现代码: //===================================================================== // // 实验名称: 程序状态指示灯演示程序 // // 开发日期: /01/19

7、 // // 修改日期: // // 程序作者: guojun 邮箱: // // 开发商: 益芯科技有限公司——技术部 // // 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. // // 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. // //===================

8、 // #include //包含头文件 #define LED P1 //宏定义显示端口号 void Delay(unsigned int DelayTime) //定义可变延时函数 { while(DelayTime--); //延时函数进入倒计时 } void main()

9、 //程序主函数码 { unsigned int CountData=0; //定义一个整形变量,用于闪动次数++ while(1) //主程序循环体开始 { if(CountData<30) //判断闪动次数是否位于0-30之间 { Delay(60000); //用60000作为基数开始延时函数 } else if(CountData<60) //判断闪动次数

10、是否位于30-60之间 { Delay(30000); //用30000作为基数开始延时函数 } else if(CountData<90) //判断闪动次数是否位于60-90之间 { Delay(10000); //用10000作为基数开始延时函数 } else if(CountData<120) //判断闪动次数是否位于90-120之间 { CountData=0;

11、 //仅进行一次操作即可退出. } CountData=CountData+1; //闪动次数基数++ LED=~LED; //将显示端口进行取反操作 } } 四、 运行效果: 程序运行效果为: 开机后程序以慢速闪动, 一段时间后速度开始加快, 再等待时间, 闪灯的速度达到最快, 之后一段时间后, 闪动将回到开始状态。 实验二 流水灯演示 五、 实验简介: 本程序全面的表现了子程序的用法, 它从对几个子程序的操作, 显示不同的流灯技术,

12、流水灯的不同需要不同的表现的形式, 而这里主要介绍了移位操作和内部数据存储及读入操作。延时函数采用可重入标志, 可进行函数的递归调用。 六、 实验原理图: 七、 实现代码: //===================================================================== // // 开发日期: /01/20 // // 修改日期: // /

13、/ 程序作者: guojun 邮箱: // // 开发商: 益芯科技有限公司——技术部 // // 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. // // 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. // //===================================================================== // #include

14、 //包含头文件 #define Led P1 //定义显示端口号 unsigned int code BToM[]={0x7E,0x3C,0x18,0x00}; //定义由两边到中间显示数据 unsigned int code MToB[]={0xE7,0xC3,0x81,0x00}; //定义由中间到两边显示数据 void Delay() reentrant //定义可重入的延时函数 { unsigned int Delay

15、Time=10000; //定义延时时间基数 while(DelayTime--); //程序开始延时开始 } void LeftToRight() //定义从左边到右边显示函数 {unsigned char TempCount=0; //定义显示次数变量 Led=0xFE; //定义初步显示数据 for(TempCount=

16、0;TempCount<8;TempCount++) //经过循环进行数据显示 { Delay(); //延时,用在每次移动数据开始处 Led=Led<<1; //由右边向左边移动数据 } return; //空返回语句,表明此子程序的结束. } void RightToLeft()

17、 //定义从右边到左边显示函数 { unsigned char TempCount=0; //定义显示次数变量 Led=0x7F; //定义初步显示数据 for(TempCount=0;TempCount<8;TempCount++) //经过循环进行数据显示 { Delay(); //延时,用在每次移动数据开始处 Led=Led>>1;

18、 //由左边向右移动数据 } return; //空返语句,表明此子程序的结束. } void BothToMid() //定义由两边到中间显示子程序 { unsigned char TempCount=0; //定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount++) /

19、/经过循环依次进行次数运行 { Delay(); //延时,在每次运行前. Led=BToM[TempCount]; //读入当次显示数据. } return; //空返回,表明此子程序的结束. } void MidToBoth() //定义由中间到两边子程序 {unsigned char Tem

20、pCount=0; //定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount++) //经过循环进行数据显示 { Delay(); //延时,在每次数据显示前. Led=MToB[TempCount]; //读入当次显示数据. } return;

21、 //空返回,表明此次子程序的结束. } void main() //主程序入口处. { while(1) //无穷循环开始. { LeftToRight(); //从左到右进行显示 RightToLeft(); //从右到左进行显示

22、 BothToMid(); //由两边到中间进行显示 MidToBoth(); //由中间到两边进行显示 } } 八、 运行效果: 程序运行效果为: 开机后, 指示灯向从左向右依次点亮, 从右向左依次点亮, 由两边向中间依次点亮, 由中间向两边依次点亮。 实验三 数码管演示 一、 实验简介: 本程序经过对端口的置数操作, 展示了数码管的应用技术, 数码管是将发光二极

23、管经过一定的形式封装在一个数字的外壳中, 能够经过不同的点亮方式来显不同的数字符号。 二、 实验原理图: 三、 实现代码: //============================================================= // // 开发日期: /01/26 // // 修改日期: // // 程序作者: guojun 邮箱: // // 开发商: 益

24、芯科技有限公司——技术部 // // 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. // // 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. // //============================================================== // #include //包含头文件 typedef unsigned int uint;

25、 //重命名整数类型关键字 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,0 void Delay()

26、 //定义延时函数 { uint TempTime= 0; //定义延时时间变量 while(TempTime--); //经过循环进行延时 } void main() //主程序开始main() {uchar CountData=0;

27、 //定义计数变量 while(1) //主程序无限循环开始 { P2=LedShowData[CountData]; //P2端口读入显示数据 CountData++; //计数变量++(加加) if(CountData>=10) //判断是否超出计数范围 { CountData

28、0; //重新置零 } Delay(); //延时函数被调用 } } 四、 运行效果: 程序运行效果为:程序下载后,数码管将从1-9依次显示,最后将显示数字0. 实验四 数码管及跑马灯演示 一、 实验简介: 本程序主要是将数码管及跑马灯放在一起显示, 它主要说明了, 如何将在单系中运行多个看似并行运行的子系统.本程序在此将跑马灯子程

29、序放入到一个头文件中, 对于一个大的工程这样将有益于程序文件的管理。 二、 实验原理图: 三、 实现代码: //===============================================================// // 开发日期: /01/26 // // 修改日期: // // 程序作者: guojun 邮箱: // // 开发商: 益芯科技有限公司——技术部

30、 // // 程序备注: 此程序仅为表现本机功能而演示用, 当用作实际工程时请慎用。 // // 特别声明: 此程序可作研究之用, 但引用、 转载、 使用请注明出处。 // //===============================================================// #include //包含端口定义头文件 unsigned char code LedShowData[]={0x9F

31、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

32、}; //定义由两边到中间显示数据 unsigned int code MToB[]={0xE7,0xC3,0x81,0x00}; //定义由中间到两边显示数据 void Delay() reentrant //定义可重入延时函数 { unsigned int DelayTime=10000; //定义延时时间变量 while(DelayTime--); //经过循环进行延时

33、 P2=LedShowData[CountData]; //置数码管显示数据到P2端口 CountData++; //数码管地址计数器++(加1) if(CountData>=10) //判断计数器累计数值 { CountData=0; //计数器清零 } } #include <跑马灯.h>

34、 //包含显示方式头文件 void main() //主程序入口 { while(1) //无穷循环开始. { LeftToRight(); //从左到右进行显示 RightToLeft();

35、 //从右到左进行显示 BothToMid(); //由两边到中间进行显示 MidToBoth(); //由中间到两边进行显示 } } ////////////////////////////////////////////////跑马灯.h///////////////////////////////////////////////////// void LeftToRight()

36、 //定义从左边到右边显示函数 {unsigned char TempCount=0; //定义显示次数变量 Led=0xFE; //定义初步显示数据 for(TempCount=0;TempCount<8;TempCount++) //经过循环进行数据显示 { Delay(); //延时,用在每次移动数据开始处 Led=Led<<1;

37、 //由右边向左边移动数据 } return; //空返回语句,表明此子程序的结束. } void RightToLeft() //定义从右边到左边显示函数 { unsigned char TempCount=0; //定义显示次数变量 Led=0x7F; //定义初步显示数据 for(Temp

38、Count=0;TempCount<8;TempCount++) //经过循环进行数据显示 { Delay(); //延时,用在每次移动数据开始处 Led=Led>>1; //由左边向右移动数据 } return; //空返语句,表明此子程序的结束. } void BothToMid() //定义

39、由两边到中间显示子程序 { unsigned char TempCount=0; //定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount++) //经过循环依次进行次数运行 { Delay(); //延时,在每次运行前. Led=BToM[TempCount]; //读入当次显示数据. } return;

40、 //空返回,表明此子程序的结束. } void MidToBoth() //定义由中间到两边子程序 {unsigned char TempCount=0; //定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount<5;TempCount++) //经过循环进行数据显示 { Delay();

41、//延时,在每次数据显示前. Led=MToB[TempCount]; //读入当次显示数据. } return; //空返回,表明此次子程序的结束. } 四、 运行效果: 本程序运行效果: 本程序运行后, 能够看到跑马灯按, 从左到右, 从右到左, 从两边到中间, 从中间到两边将依次运行。而且在运行过程中, 能够看到数码管依次从1-9-0的顺序显示数字符号。 实验五

42、按键中断查询演示 一、 实验简介: 本程序经过两个按键对数码管进行操作, 分别向用户演示了查询与中断的操作方式, 中断中应用了对按键进行查询的方法来判断按键的键值, 查询按键方法中则采用了键盘延迟的方法来消除按键重复输入。 二、 实验原理图: 三、 实现代码: //=============================================================== // // 开发日期: /01/27 编写按键中断与查询的最初代码 // // 修改日期:

43、 // // 程序作者: guojun 邮箱: // // 开发商: 益芯科技有限公司——技术部 // // 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. // // 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处. // //================================================================// #include

44、h> //包含S51地址头文件 typedef unsigned char uchar; //重定义无符号字符型 typedef unsigned int uint; //重定义无符号整型 sbit S1=P3^2; //定义S1变量 sbit S2=P3^4; //

45、定义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,0 void KeyDelay() //定义键盘防抖子程序 { uint KeyTime= 0;

46、 //定义防抖时间变量 while(KeyTime--); //防抖延时开始 return; } void S1_Break() interrupt 0 //定义S1(INT0)外部中断0 { while(0==S1); //判断S1按键键值 DataCount--; //计数器数值

47、减1 if(DataCount>9) //判断计数器是否到最小值 { DataCount=9; //显示数字0 } return; } void main() //主程序开始 { ET0=1; //设定外部中断触发方式(1->低电平触发) EX0=1; //开启外

48、部中断0 EA=1; //开记总中断 while(1) //程序主循环 { if(0==S2) //经过查询判断键值 { KeyDelay(); //键盘防抖动开延时子程序开始 DataCount++; //计数器加1 } if(DataCount

49、>9) //判断当前计数器 { DataCount=0; //将计数器置0 } P2=LedShowData[DataCount]; //经过端口显示计数器数值 } } 四、 运行效果: 程序运行效果: 开机后数码管显示数字"1", 当按S1不放时, 数码管数字不变, ,松开S1按键, 数码减1; 按S2键不放时, 数码管数字会自动加1。而且数字遵守从0-9循环操作。 实验六 话筒声音识别演示 五、 实验简介:

50、 本程序主要经过话筒对声音信号进行识别, 由于本电路有效的去除杂波, 因此仅能对响度较大的声音进行识别(例: 拍手声)。像正常的说话声对本电路虑除, 不会产生信息的输入。话筒识别的加入, 为我们建立了声控平台。 六、 实验原理图: 七、 实现代码: //============================================================ === // // 开发日期: /01/27 // // 修改日期:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服