智能循迹小车实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训报告课程名称:单片机实训
完成日期: 2014 年 7 月 10 日
任务书
实训(习)题目:
智能小车的功能设计与实现
实训(习)目的:
(1)、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;
(2)培养针对课程需要。锻炼学生查阅有关手册、图标及文献资料的自学能力,提高组成系统、编程、调试的动手能力;
(3)对课程的方案分析、选择、比较、熟悉单片机系统开发、研制的过程,软硬件设计的方法、容及步骤。
实训(习)容:
安装智能小车及相关功能设计、调试
实训(习)要求:
1. 本实训要求由一个团队完成,团队人员不超过8个人。
2. 通过所学知识并利用智能小车、计算机、 keil软件、烧写软件等完成实训项目,并拟定实训报告。
3. 能正确组装和调试智能小车。
4. 实训完成后,根据实训容撰写实训报告书一份。
实训报告应包括的主要容(参考)
1 系统硬件组成与工作原理
1.1 控制器与最小系统
1.2 显示模块与按键模块
1.3 报警模块
1.4 电机与驱动模块的工作原理与接口
1.5循迹模块的工作原理与接口
1.6 避障模块的工作原理与接口
2 功能方案及软件设计
2.1 功能设计
2.2 软件设计
(结合某一赛道、障碍设置说明程序设计思路,给出流程图、程序代码)
3功能调试与总结
3.1 功能调试
排版要求:正文小4宋体;段首缩进2字,行间距固定值18磅。容展开可以按
3级标题形式,如:按1 ……、1.1 ……、1.1.1 形式(如果需要)。每个1级标题另起一页,1级标题三号黑体居中,题序和标题之间空两个空格,不加标点,段前、段后均为1行,固定值22磅。2级标题:四号黑体左起,四号黑体,段前、段后均为12磅。三级标题:小四号黑体左起,段前、段后均为6磅。
图名、表名五号黑体,英文、数字字体为Times New Roman
页边距:上、下、左3厘米,右2厘米,A4纸打印。
1系统硬件组成与工作原理
1.1.1控制器与最小系统
最小系统:要使一块单片机芯片工作起来最简陋的接线方式就是单片机的
最小系统。下面STC89C52单片机的最小系统(注意:不同封装的单片机引脚位置不同,下图是DIP40封装)。
将一块单片机芯片接成这样就能工作了。下面分析一下电路中各个部分的作用:
1.供电电路:40脚接电源+5V,20脚接地,这样便完成了单片机的供电。
2.选择使用部ROM:我们下载程序的时候是将程序下载的单片机部的ROM里面
存放的,将EA/VPP端接到高电平(+5V),就告诉单片机系统我们选择的是部的ROM,这样单片机工作的时候就会执行部ROM里面的代码了。如果将EA/VPP 接地,单片机就会执行扩展的外部ROM,我们没有扩展ROM呀,以后在没有扩展ROM的时候我们都将它接高电平就OK。
3.复位电路:复位电路由电阻R1和电容C1组成。复位电路是用以完成单片机
的复位初始化操作的(复位单片机RAM和各个寄存器的值的)。也就是说,在单片机还没工作之前,我们先把寄存器的值全部复位成初始的默认值然后再开始工作,避免执行程序的时候发生错乱。那复位电路的工作原理是怎样的呢?在单片机没上电的时候,电容C1两个极板没有电荷,在单片机上电的瞬间,电容C1两端获得电压开始充电,既然C1要充电那么就必定有电流通过R1,所以在R1两端产生了瞬时电压,这个电压被加到了单片机的RST端,单片机的RST端得到了一个高电平便复位了。随着时间的推移,C1充满电了,再也没电流通过R1了,R1两端便没有了电压,单片机的RST引脚又由高电平变成了低电平,这时,单片机便开始工作了。值得注意的是,要引起单片
机的复位,加在RST端的高电平必须保持在一定的时间以上(连续2个机器周期以上高电平)。
4.时钟电路:时钟电路由C2、C3和晶振Y1组成。时钟电路的作用是给单片机
提供时钟脉冲,只有给单片机提供时钟脉冲单片机才会执行程序。
1.2 显示模块与按键模块
1.2.1 显示模块学习目标
认识数码管是什么东西?用HJ-1G 点亮第一个数码管,认识一个新的芯片HJ573 集成电路的应用。
1.2.4 单个数码管原理图
如果需要显示“3”字符,则“E”“F”“DP”段都不显示,其
他段点亮
可以根据上图算出需要的8 位段码值:
共阴16 进制:0x4F
共阳16 进制:0xB0
本开发板使用共阴数码管
1.2.5开发板数码管模块原理图
1.3 源码编写
开始写程序之前认识一下锁存器(74HC573):顾名思义,就是把输入端的数据锁存(或送)到输出端,请看下图中的U3 元件,第11 角(锁存端)为高电平的时候,右边D0-D7 的输入与左边Q0-Q7 的输出是直通的,就是说,输入端是什么电平,输出端就是什么电平,可以把它当作不存在。当第11 角为低电平的时候,左右两端就被断开了,无论输入端怎么变化,输出端都不会变化,当第11 角由低电平变为高电平的一瞬间,输入端的数据立刻被传送到输出端,并且在11 角保持为高电平期间,输出端数据始终与输入端数据相同,如果此时我们再次把第11 角设置为低电平,那么以后当输入端无论再怎么变化,输出端都不会变化而是保持刚才第11 角在下降沿(由高电平到低电平跳变)之间时输入端的值,这样就达到了锁存数据的目的,这也就是所谓的总线设计思路,一个8 位的数据线加一个锁存器后就可以扩接多个元件,当选通哪个元件的片选信号,就送数据给那个元件。先说这个元件,以后用到别的元件我们再解释。
74HC573 11 脚接高电平,锁存不起作用,相当于直通。相应的段赋值“1”有效。74HC138 A、B、C 赋值0~7,则输出端分别是Y0~Y7 置“0”,如P2=0,
则Y0=0;P2=6;则Y6=0;即选通第七个数码管。
程序如下
/*-----------------------------------------------
容:数码管使用动态扫描显示,所以可以同时看到数码管同时显示数字或者
字符,扫描原理可以参
#include
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;