基于51单片机控制的自动停泊小车的设计与实现毕业设计论文(编辑修改稿)内容摘要:
IG 触发测距,给最少 10us 的高电平信号; 模块自动发送 8 个 40KHz 的方波,自动检测是否有信号返回; 有信号返回,通过 I/O 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。 测试距离 =(高电平时间 *声速 (340M/S))/2。 基本参数: 工作电压: DC 5V; 工作电流: 15mA; 工作频率: 40KHz; 探测距离范围: 2cm~ 4m; 测量温度范围: 0℃至 +100℃(精度: 1℃); 测量角度: 15 度; 数据输出方式: iic 和 uart( 57600bps)两种方式,用户任选;其中 UART 方式,是以 7 个字节为一组,以 0x55 开头的 3 个数据是距离数值;以 0x66 开头的 2 个数据是温度数据以 0x77 开头的 2个数据是光照度数据。 0x55\0x66\0x77 是为区分 3 个数据而增加的数据头; 时间限制:支持如下 2 种探测方式;( 1)持续探测;( 2)受控间歇探测; 距离数据格式:以毫米为最小数 据单位,双字节 16 进制传输,前高后低; 温度数据格式:以摄氏度为最小数据单位,单字节 16 进制传输; 光照数据格式:单字节 16 进制传输;光线暗时数值大,光线亮时青岛理工大学琴岛学院毕业设计(论文) 12 数值小; 工作温度范围: 0℃至 +100℃; 存放温度: 40℃至 +120℃; 外形尺寸: 48mm*39mm*22mm( H)。 传播限制: 超声波探测时,被测物的表面如果为布料、毛料等会出现很大的误差,因为布料或者是毛料对超声波的反射率很小。 测距时,被测物体的面积不少于 平方米且平面要保持平整,否则会出现误差,影响测 量的结果。 红外避障模块 在本次设计中红外避障模块安装于小车的车尾左右两侧,其主要作用是检测后方是否有障碍物存在,并控制蜂鸣器报警,对危险距离进行提示,并提醒驾驶者后方有障碍物。 红外避障模块原理如下图 37 所示: 图 37 红外避障模块 上图的红外避障模块展示了其基本的工作原理:红外二极管发射红外线波,遇到障碍后,红外线波返回被模块上的红外接收装置接收到,并将信息传递给单片机,然后做出相应的处理。 模块描述: 红外模块由光电传感器组成,光电传感器一般用于光的测量、光的控制和青岛理工大学琴岛学院毕业设计(论文) 13 光电转换(将光的变化转 换为电的变化)。 光敏 电阻 器是利用 半导体 的 光电导效应 制成的一种电阻值随入射光的强弱而改变的 电阻器 ,入射光强,电阻减小,入射光弱,电阻增大。 还有另一种入射光弱,电阻减小,入射光强,电阻增大。 只要人眼可感受的光,都会引起它的阻值变化。 该传感器模块对环境光线适应能力强,由红外发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围 2~ 80cm,工作电压为 — 5V。 该传感器的探测距离的优点是可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。 模块参数说明: 当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时 OUT 端口持续输出低电平信号 ,该模块检测距离 2~ 80cm,检测角度 35176。 ,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少; 传感器主动红外线反射探测 ,因此目标的反射率和形状是探测距离的关键。 其中黑色探测距 离最小,白色最大;小面积物体距离小,大面积距离大; 传感器模块输出端口 OUT 可直接与单片机 I/O 口连接即可,也可以直接驱动一个 5V 继电器。 连接方式: VCCVCC; GNDGND;OUTI/O; 比较器采用 LM393,工作稳定; 可采用 35V 直流电源对模块进行供电。 当电源接通时,红色电源指示灯点亮; 具有 3mm的螺丝孔,便于固定、安装; 电路板尺寸: *; 模块接口说明( 3 线制): VCC 外接 3V5V 电压(可以直接与 5V 单片机和 3V 单片机相连); GND 外接 GND; OUT 小板数字量输出接口( 0 和 1)。 青岛理工大学琴岛学院毕业设计(论文) 14 LCD1602 液晶显示 本设计采用 LCD1602,即工业字符型液晶,能够同时显示 16x02 即 32 个字符( 16 列 2 行)。 LCD1602 液晶屏原理图如下图 38 所示: 图 38 LCD1602 封装图及相关引脚图 接口定义如下: 1 脚: Vss 为地电源 ; 2 脚: VDD 为电源正极; 3 脚: VEE 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生 “鬼影 ”,使用时可以通过一个 10K 的电位器调整对比度 ; 4 脚: RS 为 数据命令选择端 寄存器 选择,高电平时选择数据寄存器、低电平时选择指令寄存器 ; 5 脚: R/W 读写选择端 ,高电平 为 读操作,低电平 为 写操作。 当 RS 和 RW共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平 RW 为低电平时可以写入数据 ; 6 脚: E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令 ; 7~ 14 脚: D0~ D7 为 8 位双向数据线 ; 15 脚: BLA 背光电源正极 ; 16 脚: BLK 背光电源负极。 基本操作时序: 读状态:输入: RS=L, RW=H, E=H 输出: D0~D7=状态 字; 写命令:输入: RS=L, RW=L, D0~D7=指令码, E=高脉冲 输出:无; 读数据:输入: RS=H, RW=H, E=H 输出: D0~D7=数据; 写数据:输入: RS=H, RW=L, D0~D7=数据, E=高脉冲 输出:无。 复位说明(初始化): 延时 15ms; 写命令 38H(不检测忙信号); 青岛理工大学琴岛学院毕业设计(论文) 15 延时 5ms; 写命令 38H(不检测忙信号); 延时 5ms; 写命令 38H(不检测忙信号); 以后每次命令、读 /写数据操作之前均需要检测忙信号; 写命令 38H:显示模式设置; 写命令 08H:显示关闭; 写命令 01H:显示清屏; 写命令 06H:显示光标移动设置; 写命令 0CH:显示开及光标设置。 青岛理工大学琴岛学院毕业设计(论文) 16 第四章 自动泊车系统的软件设计 开发软件 本次自动停泊小车的设计主要使用了 Keil C51 编程软件进行程序的编写,以及 STC_ISP 程序烧制软件对单片机进行程序烧录。 Keil 软件的介绍 C51 开发系统基本知识 Keil C51 是 美国 Keil Software 公司出品的 51 系列兼容 单片机 C 语言软件开发系统 ,包括 C 语言编译器、宏汇编 、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。 Keil C51 是在 ANSI C 基础上针对 51 单片机的硬件特点进行的拓展,并向 51 单片机上移植,经过多年努力, C 语言已经成为公认的高效、简介而又贴近 51 单片机硬件的实用高级编程语言。 目前大多数的 51 单片机用户都在使用 C 语言进行程序设计。 用 C51 进行单片机软件开发,具有如下优点: ( 1) 功能十分强大; ( 2) 可读性好; ( 3) 可移植性好; ( 4) 可维护性得到加强; ( 5) 易学易用。 Keil C51 单片机软件开发系统的整体结构 C51 工具包的整体结构, uVision与 Ishell分别是 C51 for Windows 和 for Dos的集成开发环境( IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。 开发人员可以 IDE 本身或其他编辑器编辑 C 或汇编源文件。 然后分别由C51 及 C51 编译器编译生成目标文件( .OBJ)。 目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件( .ABS)。 ABS文件由 OH51 转换成标准的 .Hex 文件,以供调试器 Dscope51 或 Tscope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直 接写入程序存贮器如 EPROM 中。 使用独立的 Keil仿真器时,注意事项 : ( 1)仿真器标配 的晶振,但用户可以在仿真器上的晶振插孔中换其他频率的晶振; 青岛理工大学琴岛学院毕业设计(论文) 17 ( 2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统; ( 3)仿真芯片的 31 脚( /EA)已接至高电平,所以仿真是只能使用片内ROM,不能使用片外 ROM;但仿真器外引插针中的 31 脚并不与仿真芯片的 31脚相连,故该仿真器仍可插入到扩展有外部 ROM(其 CPU 的 /EA 引脚接至低电平)的目标系统中使用。 优点: ( 1) KEIL C51 生成的目标代 码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势; ( 2)与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 用过汇编语言后再使用 C 语言来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。 STC_ISP 软件介绍 STC_ISP 是一款单片机下载编程烧录软件,是针对 STC 系列单片机而设计的,可下载 STC89 系列、 12C2052 系列和 12C5410 等系列的 STC 单片机 ,使用简便,现已被广泛使用。 自动泊车系统主程序 本次设计的主程序主要是对超声波模块及 LCD 液晶屏等模块进行初始化并调用定时器。 并使小车进行功能的实现。 是主程序中的部分代码如下所示( while 循环体中的部分省略): 主程序部分代码: void main(void) { uint a。 uchar flag_c。 Sound = 1。 LCMInit()。 DisplayListChar(0, 1, Cls)。 TMOD=0x01。 TH0=0。 青岛理工大学琴岛学院毕业设计(论文) 18 TL0=0。 ET0=1。 EA=1。 BZ_L=1。 BZ_R=1。 flag_c = 0。 while(1) { … . } } 自动停泊小车系统的主程序主要是对各个模块进行初始化以及调用定时器。 以上为主程序的主要代码( while 循环体中的部分省略)此代码为设计的主程序 main()部分,首先此段代码对程序中的变量、超声波模块、 LCD 进行初始化。 并开始对小车 的功能进行实现。 主程序流程图如图 41 所示: 图 41 主程序流程图 青岛理工大学琴岛学院毕业设计(论文) 19 以上为该系统的流程图,此流程图表现了主程序的作用与运行主程序的运行过程,如果在运行次程序时满足所有条件 ,程序将完成自动泊车的全过程。 L298N 电机驱动程序 L298N 电机驱动模块可以实现小车的 5 个运动状态 ,包括小车的停止、前进、后退、左转、右转。 当 4 个状态引脚 IN1, IN2, IN3, IN4 为逻辑输入端,当接收到高、低电平信号时,执行对应的小车运动 状态。 L298N 电机驱动模块程序如下所示: void Go() { IN1=1。 IN2=0。 IN3=1。 IN4=0 } … .. void Left() { IN1=0。 IN2=1。 IN3=1。 N4=0。 } 以上程序部分即展示了小车 5 种运动状态下的状态引脚的电平信号值。 本次设计采用的是 IN1 和 IN2 引脚控制左端电机, IN3 和 IN4 控制右端电机的 2轮小车,通过控制不同的电平对引脚的输入从而控制小车当前的状态。 超声波测距程序 超声波测距模。基于51单片机控制的自动停泊小车的设计与实现毕业设计论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。