欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    智能小车系统设计.docx

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

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

    智能小车系统设计.docx

    1、智能小车系统设计任务书 年 季学期学 生 姓 名学 号专 业 方 向班 级题 目 名 称智能小车系统设计2一、设计内容与技术要求:(一)、任务描述利用智能小车系统设计2所提供部件(综合训练目前共有3种智能小车模型),组装小车模型,编写检测、控制程序,实现以单片机为控制系统核心的智能小车系统设计。(二)、控制任务和要求 基本任务:1.完成小车的组装工作2.小车可完成前进、后退、左转、右转等动作,并且可以正确显示当前的速度与行进位移3.小车具有循迹(自己设计跑道)与避障功能4.三周设计任务完成后,不必拆分小车,将小车归还老师并如实汇报功能部件运转情况,便于老师与时维护,为下一组同学的设计做好准备进

    2、阶任务:1.实现舵机转动下的超声波壁障功能,并且可以正确显示前方物体的距离2.与按键功能配合,正确有序显示小车位移、速度与与前方障碍物距离3.小车具有无线遥控功能4.与其它组的小车模型配合可以完成交替领跑任务二、课程设计总结报告要求:1.完整的设计任务书:封面(设计题目、指导教师、专业班级、姓名、学号、时间); 摘要与关键词(35):设计总体概述(采用何种硬件,利用何种方法,设计何种东西,实现了何种功能) 目录(按目录格式书写,页码要标清) 第一章 绪言 (本设计的内容与实现的基本原理,设计的特点与可以最终可以实现的功能,可以达到的性能指标) 第二章 方案论证(对所提供的硬件理解并画出系统结构

    3、图,为实现该任务所采取软件设计思路与核心算法) 第三章 硬件设计(按照结构框图对各功能部分进行分别介绍,如系统CPU部分、数据采集部分、程序控制部分、人机接口部分等) 第四章 软件设计(整体设计思路,各独立程序功能、原理介绍包括流程图,如主程序、各子程序与中断服务程序) 第五章 设计总结(对整个设计过程的总结、体会,还包括设计中遇到的问题与解决的办法,以与想要实现却未能完成的功能) 参考文献:著作格式:作者.书名.版次.出版地:出版者,出版年; 期刊格式:作者.文章名.期刊名,年,卷(期):起止页 注:字数10000字左右,不得抄袭和雷同,使用学生作业纸(16开) 2.手绘硬件连接2图一张、手

    4、绘软件流程2图一张。三、设计进度:第一周:熟悉掌握系统要求,完成硬件设计、调试。第二周:完成软件设计,用仿真器完成软、硬件联调,最终实现单片机在目标系统中的 合理运行第三周:完善设计,完成说明书编写,答辩。指导教师签字:附录:电信学院课程设计报告要求1、设计题目;2、目录;3、本设计的基本原理;4、简要说明本设计内容、用途与特点;5、本设计达到的性能指标;6、设计方案的选择;7、写出各部分设计过程、工作原理、元器件选择;8、绘制图纸(手绘2号图纸);9、设计参考文献;10、附录;11、设计总结体会;12、设计说明书不得少于10000字。智能小车运行图显示速度,距离,超声波探测距离经过调试,小车

    5、完美实现了如下功能1小车具有无线遥控功能,小车可完成前进、后退、左转、右转等动作,并且可以正确显示当前的速度与行进位移。2.小车具有循迹与避障功能,实现了舵机转动下的超声波壁障功能,并且可以正确有序显示小车位移、速度与与前方障碍物距离。3.与其它组的小车模型配合可以完成交替领跑任务。4小车所有模式切换均由遥控器控制。流程图硬件原理图附件一:智能小车系统程序#include #include sbit AA=P30; sbit DD=P31;sbit BB=P32;sbit CC=P22;sbit LCM_RW=P24; /定义LCD引脚sbit LCM_RS=P23;#define RX P2

    6、_0#define TX P2_1#define LCM_E P2_5#define Sevro_moto_pwm P2_7 /接舵机信号端输入PWM信号调节速度#define LCM_Data P0#define Busy 0x80 /用于检测LCM状态字中的Busy标识#define Left_1_led P3_7 /P3_7接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1#define XUNJI_left_led P3_6 /P3_6接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2 #define XUNJI_right_led P3_5 /P3_5接四路寻迹模块接

    7、口第三路输出信号即中控板上面标记为OUT3#define Right_2_led P3_4 /P3_4接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4#define Left_moto_go P1_4=1,P1_5=0,P1_6=1,P1_7=0; /左边两个电机向前走#define Left_moto_back P1_4=0,P1_5=1,P1_6=0,P1_7=1; /左边两个电机向后转#define Left_moto_Stop P1_4=0,P1_5=0,P1_6=0,P1_7=0; /左边两个电机停转 #define Right_moto_go P1_0=1,P1_1=0,

    8、P1_2=1,P1_3=0; /右边两个电机向前走#define Right_moto_back P1_0=0,P1_1=1,P1_2=0,P1_3=1; /右边两个电机向后走#define Right_moto_Stop P1_0=0,P1_1=0,P1_2=0,P1_3=0; /右边两个电机停转 void LCMInit(void); /LCD初始化函数void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); /LCD显示一个字符函数void DisplayListChar(unsigned ch

    9、ar X, unsigned char Y, unsigned char code *DData);/LCD显示一个字符串函数void Delay5Ms(void); /延时5毫秒函数void Delay400Ms(void); /延时400毫秒函数void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM); /LCD1602写数据函数void WriteCommandLCM(unsigned char WCLCM,BuysC);/LCD写命令函数unsigned char ReadStatusLCM(v

    10、oid);unsigned char code Range =V= cm/s S= . m; /LCD1602显示格式unsigned char code welcome = Welcome = ;unsigned char code key=Press any key.;unsigned char code ASCII13 = 0123456789.-M;unsigned char code table=Distance:000.0cm;unsigned char code table1=YAO KONG MO SHI ; unsigned char code table2=XUN JI M

    11、O SHI= ; unsigned char pwm_val_left = 0;/变量定义unsigned char push_val_left =14;/舵机归中,产生约,1.5MS 信号unsigned int CH0=0; /循迹模式标志unsigned int CH1=0; /超声波模式标志unsigned int t=0; /速度基准变量unsigned int timer=0; /延时基准变量unsigned int time=0;unsigned int pwm=250;unsigned int count1=0; /计左电机码盘脉冲值unsigned char timer1=0

    12、; /扫描时间变量 unsigned long S1=0;unsigned long S2=0;unsigned long S3=0;unsigned long S4=0; unsigned long S=0;unsigned long V=0; /定义其速度unsigned long SS=0;unsigned char disbuff4= 0,0,0,0,;unsigned char disbuff14= 0,0,0,0,;void WriteDataLCM(unsigned char WDLCM) /写数据 ReadStatusLCM(); /检测忙 LCM_Data = WDLCM;

    13、LCM_RS = 1; LCM_RW = 0; LCM_E = 0; /若晶振速度太高可以在这后加小的延时 LCM_E = 0; /延时 LCM_E = 1;void WriteCommandLCM(unsigned char WCLCM,BuysC) /写指令,BuysC为0时忽略忙检测 if (BuysC) ReadStatusLCM(); /根据需要检测忙 LCM_Data = WCLCM; LCM_RS = 0; LCM_RW = 0; LCM_E = 0; LCM_E = 0; LCM_E = 1; unsigned char ReadStatusLCM(void) /读状态 LCM

    14、_Data = 0xFF; LCM_RS = 0; LCM_RW = 1; LCM_E = 0; LCM_E = 0; LCM_E = 1; while (LCM_Data & Busy); /检测忙信号 return(LCM_Data);void LCMInit(void) /LCM初始化 LCM_Data = 0; WriteCommandLCM(0x38,0); /三次显示模式设置,不检测忙信号 Delay5Ms(); WriteCommandLCM(0x38,0); Delay5Ms(); WriteCommandLCM(0x38,0); Delay5Ms(); WriteComman

    15、dLCM(0x38,1); /显示模式设置,开始要求每次检测忙信号 WriteCommandLCM(0x08,1); /关闭显示 WriteCommandLCM(0x01,1); /显示清屏 WriteCommandLCM(0x06,1); / 显示光标移动设置 WriteCommandLCM(0x0c,1); / 显示开与光标设置/按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1 if (Y) X

    16、 |= 0x40; /当要显示第二行时地址码+0x40; X |= 0x80; /算出指令码 WriteCommandLCM(X, 1); /发命令字 WriteDataLCM(DData); /发数据/按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) unsigned char ListLength; ListLength = 0; Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1while (DDataListLength0x19

    17、) /若到达字串尾则退出 if (X = 0xF) /X坐标应小于0xF DisplayOneChar(X, Y, DDataListLength); /显示单个字符 ListLength+; X+; /5ms延时void Delay5Ms(void) unsigned int TempCyc = 5552; while(TempCyc-);/400ms延时void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; while(TempCycB-

    18、); ;/*/ void Conut(void) /超声波距离计算函数 while(!RX); /当RX为零时等待 TR0=1; /开启计数 while(RX); /当RX为零时等待 TR0=0; time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/10+10; disbuff10=V%10; disbuff11=V/10; DisplayListChar(0, 0, Range); DisplayOneChar(2, 0, ASCIIdisbuff11); DisplayOneChar(3, 0, ASCIIdisbuff10); disbuff10=S

    19、S/10%10; disbuff11=SS/100%10; disbuff12=SS/1000; DisplayOneChar(11, 0, ASCIIdisbuff12); DisplayOneChar(12, 0, ASCIIdisbuff11); DisplayOneChar(13, 1, ASCII10); DisplayOneChar(14, 0, ASCIIdisbuff10); disbuff0=S%10; disbuff1=S/10%10; disbuff2=S/100%10; disbuff3=S/1000; DisplayListChar(0, 1, table); Dis

    20、playOneChar(9, 1, ASCIIdisbuff3); DisplayOneChar(10, 1, ASCIIdisbuff2); DisplayOneChar(11, 1, ASCIIdisbuff1); DisplayOneChar(12, 1, ASCII10); DisplayOneChar(13, 1, ASCIIdisbuff0); /*/void Conut0(void) /循迹模式显示 disbuff10=V%10; disbuff11=V/10; DisplayListChar(0, 0, Range); DisplayOneChar(2, 0, ASCIIdis

    21、buff11); DisplayOneChar(3, 0, ASCIIdisbuff10); disbuff10=SS/10%10; disbuff11=SS/100%10; disbuff12=SS/1000; DisplayOneChar(11, 0, ASCIIdisbuff12); DisplayOneChar(12, 0, ASCIIdisbuff11); DisplayOneChar(13, 0, ASCII10); DisplayOneChar(14, 0, ASCIIdisbuff10); DisplayListChar(0, 1, table2); /*/ void Star

    22、tModule() /启动模块 TX=1; /启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; /*/ /*void delayms(unsigned int ms) unsigned char i=100,j; for(;ms;ms-) whi

    23、le(-i) j=10; while(-j); */void Timer_Count(void) /超声波高电平脉冲宽度计算函数 TR0=1; /开启计数 while(RX); /当RX为1计数并等待 TR0=0; /关闭计数 Conut(); /计算/*/前速前进 void run(void) Left_moto_go ; /左电机往前走 Right_moto_go ; /右电机往前走/*/前速后退 void backrun(void) Left_moto_back ; /左电机往前走 Right_moto_back ; /右电机往前走/*/左转 void leftrun(void) Lef

    24、t_moto_back ; /左电机往前走 Right_moto_go ; /右电机往前走/*/右转 void rightrun(void) Left_moto_go ; /左电机往前走 Right_moto_back ; /右电机往前走/*/STOP void stoprun(void) Left_moto_Stop ; /左电机停走 Right_moto_Stop ; /右电机停走/*/ void COMM( void ) V=0; push_val_left=5; /舵机向左转90度 timer=0; while(timer=4000); /延时400MS让舵机转到其位置 4000 St

    25、artModule(); /启动超声波测距 Conut(); /计算距离 S2=S; push_val_left=23; /舵机向右转90度 timer=0; while(timer=4000); /延时400MS让舵机转到其位置 StartModule(); /启动超声波测距 Conut(); /计算距离 S4=S; push_val_left=14; /舵机归中 timer=0; while(timer=4000); /延时400MS让舵机转到其位置 StartModule(); /启动超声波测距 Conut(); /计算距离 S1=S; if(S2300)|(S4300) /只要左右各有距离小于,30CM小车后退 backrun(); /后退 timer=0; while(timerS4) rightrun(); /车的左边比车的右边距离小 右转 timer=0; while(timer=800); else leftrun(); /车的左边比车的右边距离大 左转 timer=0; while(timer=800); /*/void pwm_Servomoto(void) if(pwm_val_left=100) pwm_val_left=0; /*


    注意事项

    本文(智能小车系统设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开