



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.<< 计算机控制技术综合训练>> 任务书年季学期学生姓名学号专业方向班级题 目 名 称智能小车系统设计2一、设计内容及技术要求 :(一)、任务描述利用 智能小车系统设计2所提供部件 (综合训练目前共有3 种智能小车模型),组装小车模型 ,编写检测 、控制程序 ,实现以单片机为控制系统核心的智能小车系统设计。(二)、控制任务和要求基本任务 :1.完成小车的组装工作2.小车可完成前进、后退 、左转、右转等动作 ,并且可以正确显示当前的速度及行进位移3.小车具有循迹 (自己设计跑道 )及避障功能4.三周设计任务完成后 ,不必拆分小车 ,将小车归还老师并如实汇报功能部件运转情
2、况 ,便于老师及时维护 ,为下一组同学的设计做好准备进阶任务 :1.实现舵机转动下的超声波壁障功能,并且可以正确显示前方物体的距离2.与按键功能配合,正确有序显示小车位移、速度及与前方障碍物距离3.小车具有无线遥控功能4.与其它组的小车模型配合可以完成交替领跑任务二、课程设计总结报告要求 :1.完整的设计任务书:封面 (设计题目 、指导教师 、专业班级 、姓名 、学号 、时间);摘要及关键词( 3 5 ):设计总体概述(采用何种硬件 ,利用何种方法,设计何种东西,实现了何种功能)目录(按目录格式书写,页码要标清 ). 下载可编辑 .第一章绪言(本设计的内容与实现的基本原理,设计的特点及可以最终
3、可以实现的功能,可以达到的性能指标)第二章方案论证 (对所提供的硬件理解并画出系统结构图,为实现该任务所采取软件设计思路及核心算法)第三章硬件设计 (按照结构框图对各功能部分进行分别介绍,如系统 CPU 部分 、数据采集部分 、程序控制部分 、人机接口部分等)第四章软件设计 (整体设计思路,各独立程序功能、原理介绍包括流程图,如主程序 、各子程序及中断服务程序)第五章设计总结 (对整个设计过程的总结、体会 ,还包括设计中遇到的问题及解决的办法,以及想要实现却未能完成的功能)参考文献 :著作格式 :作者 .书名 .版次 .出版地 :出版者 ,出版年 ;期刊格式 :作者 .文章名 .期刊名 ,年
4、,卷 (期 ):起止页注:字数 10000 字左右 ,不得抄袭和雷同,使用学生作业纸(16 开)2.手绘硬件连接2 图一张 、手绘软件流程2图一张 。三、设计进度 :第一周 :熟悉掌握系统要求,完成硬件设计 、调试。第二周 :完成软件设计 ,用仿真器完成软、硬件联调 ,最终实现单片机在目标系统中的合理运行第三周 :完善设计 ,完成说明书编写,答辩 。指导教师签字 :附录 :. 下载可编辑 .电信学院课程设计报告要求1、设计题目 ;2、目录;3、本设计的基本原理 ;4、简要说明本设计内容 、用途及特点 ;5、本设计达到的性能指标 ;6、设计方案的选择 ;7、写出各部分设计过程 、工作原理 、元器
5、件选择 ;8、绘制图纸 (手绘 2 号图纸 );9、设计参考文献 ;10、附录;11、设计总结体会 ;12、设计说明书不得少于10000 字。. 下载可编辑 .智能小车运行图. 下载可编辑 .显示速度 ,距离,超声波探测距离经过调试 ,小车完美实现了如下功能1小车具有无线遥控功能 ,小车可完成前进 、后退、左转、右转等动作 ,并且可以正确显示当前的速度及行进位移 。2.小车具有循迹及避障功能,实现了舵机转动下的超声波壁障功能 ,并且可以正确有序显示小车位移 、速度及与前方障碍物距离。3.与其它组的小车模型配合可以完成交替领跑任务。4小车所有模式切换均由遥控器控制。.流程图. 下载可编辑 .硬件
6、原理图附件一 :智能小车系统程序#include <AT89x51.H>#include <intrins.h>sbit AA=P30;sbit DD=P31;sbit BB=P32;sbit CC=P22;sbit LCM_RW=P24;/ 定义 LCD 引脚sbit LCM_RS=P23;. 下载可编辑 .#define RXP2_0#define TXP2_1#define LCM_EP2_5#define Sevro_moto_pwmP2_7 / 接舵机信号端输入 PWM 信号调节速度#define LCM_DataP0#define Busy0x80/ 用于检
7、测 LCM 状态字中的 Busy 标识#define Left_1_ledP3_7/P3_7接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1#define XUNJI_left_ledP3_6/P3_6接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2#define XUNJI_right_ledP3_5/P3_5接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3#define Right_2_ledP3_4/P3_4接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4#define Left_moto_goP1_4=1,P1_5=0,P1_6=1,P1_7=0
8、;/ 左边两个电机向前走#define Left_moto_backP1_4=0,P1_5=1,P1_6=0,P1_7=1;/ 左边两个电机向后转#defineLeft_moto_StopP1_4=0,P1_5=0,P1_6=0,P1_7=0;/ 左边两个电机停转. 下载可编辑 .#define Right_moto_goP1_0=1,P1_1=0,P1_2=1,P1_3=0;/ 右边两个电机向前走#define Right_moto_backP1_0=0,P1_1=1,P1_2=0,P1_3=1; / / 右 边两 个电机向后走#define Right_moto_StopP1_0=0,P1
9、_1=0,P1_2=0,P1_3=0; / 右 边两 个电机停转void LCMInit(void);/LCD 初始化函数voidDisplayOneChar(unsignedcharX, unsignedcharY, unsignedcharDData);/LCD 显示一个字符函数void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code*DData);/LCD 显示一个字符串函数void Delay5Ms(void);/ 延时 5 毫秒函数void Delay400Ms(void);/ 延时 400 毫
10、秒函数void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);/LCD1602 写数据函数void WriteCommandLCM(unsigned char WCLCM,BuysC);/LCD写命令函数unsigned char ReadStatusLCM(void);unsigned char code Range ="V=cm/s S=. m" /LCD1602显示格式unsigned char code welcome ="= Welcome = "un
11、signed 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 MO SHI= "unsigned char pwm_val_left= 0
12、;/ 变量定义unsigned char push_val_left =14;/舵机归中 ,产生约, 1.5MS 信号unsigned intCH0=0;/ 循迹模式标志unsigned intCH1=0;/ 超声波模式标志unsigned intt=0;/ 速度基准变量unsigned inttimer=0;/ 延时基准变量unsigned inttime=0;unsigned intpwm=250;unsigned intcount1=0;/ 计左电机码盘脉冲值unsigned char timer1=0;/ 扫描时间变量unsigned long S1=0;unsigned long S
13、2=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;LCM_RS = 1;LCM_RW = 0;LCM_E = 0;/ 若晶振速度
14、太高可以在这后加小的延时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_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E
15、= 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();WriteCommandLCM(0x38,1); /显示模式设置 ,开始要求每次检测忙信号WriteCom
16、mandLCM(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 不能大于 1if (Y) X |= 0x40;/ 当要显示第二行时地址码+0x40;X |= 0x8
17、0;/ 算出指令码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 (DDataListLength>0x19) /若到达字串尾则退出if (X
18、 <= 0xF)/X 坐标应小于 0xFDisplayOneChar(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-);/*/void Conu
19、t(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=SS/10%10;disbuff11=
20、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);DisplayOneChar(9, 1, ASCIIdisbuff
21、3);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, ASCIIdisbuff11);DisplayOneChar(3, 0, A
22、SCIIdisbuff10);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);/*/voidStartModule()/ 启动模块TX=1;/ 启动一次模块. 下载可编辑 ._nop_
23、();_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-)while(-i)j=10;while(-j);*/void Timer_Count(void)/ 超声波高电平
24、脉冲宽度计算函数TR0=1;/ 开启计数while(RX);/ 当 RX 为 1 计数并等待TR0=0;/ 关闭计数Conut();/ 计算/*/ 前速前进. 下载可编辑 .voidrun(void)Left_moto_go ;/ 左电机往前走Right_moto_go ;/ 右电机往前走/*/ 前速后退voidbackrun(void)Left_moto_back ;/ 左电机往前走Right_moto_back ;/ 右电机往前走/*/ 左转voidleftrun(void)Left_moto_back ;/ 左电机往前走Right_moto_go ;/ 右电机往前走/*/ 右转voidr
25、ightrun(void). 下载可编辑 .Left_moto_go ;/ 左电机往前走Right_moto_back ;/ 右电机往前走/*/STOPvoidstoprun(void)Left_moto_Stop ;/ 左电机停走Right_moto_Stop ;/ 右电机停走/*/voidCOMM( void )V=0;push_val_left=5;/ 舵机向左转 90 度timer=0;while(timer<=4000); / 延时 400MS 让舵机转到其位置4000StartModule();/ 启动超声波测距Conut();/ 计算距离S2=S;push_val_left
26、=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(S2<300)|(S4<300) /只要左右各有距离小于 , 30CM 小车后退backrun();/ 后退timer=0
27、;while(timer<=1000);if(S2>S4)rightrun();/ 车的左边比车的右边距离小右转. 下载可编辑 .timer=0;while(timer<=800);elseleftrun();/ 车的左边比车的右边距离大左转timer=0;while(timer<=800);/*/void pwm_Servomoto(void)if(pwm_val_left<=push_val_left)Sevro_moto_pwm=1;else Sevro_moto_pwm=0;if(pwm_val_left>=100)pwm_val_left=0;/*
28、/*TIMER1中断服务子函数产生PWM 信号 */void time1()interrupt 3using 2. 下载可编辑 .TH1=(65536-100)/256;/100US 定时TL1=(65536-100)%256;timer+;/ 定时器 100US 为准 。在这个基础上延时pwm_val_left+;pwm_Servomoto();t+;timer1+;if(t>=6000)V=count1;count1=0;t=0;if(timer1>=500)timer1=0;/*/void intersvr1(void) interrupt 2 using 1SS+;coun
29、t1+;/*/. 下载可编辑 .void timer0()interrupt 1 using 0/TIMER0 计数void main(void)Delay400Ms();/ 启动等待 ,等 LCM 讲入工作状态LCMInit();/LCM 初始化Delay5Ms();/ 延时片刻DisplayListChar(0, 0, welcome);DisplayListChar(0, 1, key);TMOD=0X11;TH1=(65536-100)/256;/100US 定时TL1=(65536-100)%256;TH0=0;TL0=0;TR1= 1;ET1= 1;ET0= 1;EX1=1;/ 开
30、启外部中断 0IT1=1;/ 下降沿有效IE1=0;EA=1;push_val_left=14;/ 舵机归中while(1). 下载可编辑 .if(AA=1&&BB=1)CH0=1;CH1=0;Conut0();Delay400Ms();if(AA=1&&CC=1)CH0=0;CH1=1;stoprun();Delay400Ms();if(timer>=800&&CH1=1)/80MS 检测启动检测一次800timer=0;StartModule();/ 启动检测Conut();/ 计算距离if(S<300)/ 距离小于 30CMstoprun();/ 小车停止. 下载可编辑 .COMM();/ 方向函数elseif
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 团购期房合同范本
- 2025湖南省建筑安全员B证考试题库
- 2025年贵州航空职业技术学院单招职业适应性测试题库参考答案
- 2025年福建省建筑安全员《A证》考试题库
- 突发公共卫生事件的应急处置
- 计算机(安徽中医药大学)知到智慧树章节测试课后答案2024年秋安徽中医药大学
- 农业区位因素及其变化学案 高一地理人教版(2019)必修二
- 国际合作课前导学 高二地理人教版(2019)选择性必修三
- 小学三年级美术下册教案-全册
- 民间现金借款合同范本
- 为未知而教为未来而学2
- 道德与法治五年级下册-课程纲要课件
- 软件开发项目工作量及报价模板
- 文献检索教案
- 统计用产品分类目录
- 中国铝业股份有限公司巩义市齐兴铝土矿矿产资源开采与生态修复方案
- 《教育心理学》理论、代表人物及著作指导
- 腹膜透析相关性腹膜炎的护理查房
- 病毒性心肌炎病历模板
- 《物品收纳方法多》小学劳动课
- 安全设计诊断报告样本
评论
0/150
提交评论