单片机 智能家居英文参考文献有哪些,关于智能小车设计的?

单片机控制智能小车的设计_省心范文网
当前位置: >>
河南农业大学本科生毕业论文题 学目 院单片机控制智能小车的设计 理 学 院 电子信息科学与技术 1 班专业班级 学生姓名 指导教师撰写日期:2013 年 5 月 16 日 单片机控制智能小车的设计摘要面对诸多恶劣的工作环境如灭火、救援等,为了有效的避免人员伤亡,就需要采用智能小车去 现场来完成相应的任务。因此研究和开发智能小车引导控制系统具有十分重要的意义。本设计中, 采用 STC89C52 单片机为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动 避障,利用红外对管 TCRT5000 检测黑线,并以 STC89C52 单片机为控制芯片控制电动小汽车的速 度及转向,从而实现自动循迹避障的功能。其中小车驱动由 L298N 驱动电路完成,速度由单片机输 出的 PWM 波控制。采用 1602LCD 实时显示小车行进方向与环境温度。整个系统的电路结构简单, 可靠性能高。关键词:智能小车;单片机;超声波模块;液晶显示模块;电机驱动模块 Single chip microcomputer control intelligent carsAbstractFacing a lot of harsh working environment such as extinguishing a fire or rescuing。We need to use a smart car go to the scene to complete some tasks in order to effectively avoid casualties. So it is has very important significance to research and develop smart car to lead control system. This design adopted a SCM of ASTC89C52 as the core of control part, ultrasonic sensor detecting the obstacles on the road and controlling the smart car automatic avoid the obstacles, infrared tube of TCRT5000 detecting the black lines .Meanwhile , STC89C52 as the control SCM which controls the smart car’s velocity and changing the directions for achieving the function of automatic avoiding obstacle by traces. At the same time, drive circuit of L298N controls the drive and the wave which output by SCM controls the velocity. 1602LCD completes displaying smart car’s running time and travel direction .The whole system is very simple in the circuit part and very high reliability. Key words :SCM ; LED;motor drive 河南农业大学理学院本科毕业论文目录1. 引言 ............................................................................................................................................. 3 2. 整体方案设计 ............................................................................................................................. 4 2.1 整体方案设计的思路 ............................................................................................................ 4 2.2 总体设计框图 ........................................................................................................................ 4 3 方案论证 ....................................................................................................................................... 5 3.1 单片机选择 ............................................................................................................................ 5 3.2 电机的选择 ............................................................................................................................ 5 3.3 检测黑线模块 ........................................................................................................................ 5 3.4 障碍物检测模块 .................................................................................................................... 6 3.5 显示模块 ................................................................................................................................ 6 3.6 温度测量 ................................................................................................................................ 6 4 系统硬件电路设计....................................................................................................................... 8 4.1 电源模块的设计 .................................................................................................................... 8 4.2 单片机最小系统的设计 ........................................................................................................ 8 4.3 电机驱动模块 ........................................................................................................................ 9 4.3.1 H 桥驱动电路的内部原理解析 ...................................................................................... 9 4.3.2 使能控制和方向逻辑 ................................................................................................... 11 4.3.3 恒压恒流桥式 2A 驱动芯片 L298N............................................................................ 12 4.3.4 直流电机 PWM 调速控制 ............................................................................................ 13 4.4 循迹模块 .............................................................................................................................. 15 4.5 避障模块 .............................................................................................................................. 16 4.5.1 超声波发射电路设计 ................................................................................................. 16 4.5.2 超声波接收电路设计 ................................................................................................. 17 4.6 测温模块 .............................................................................................................................. 19 4.7 显示模块 .............................................................................................................................. 21 4.7 总体设计与原理图 .............................................................................................................. 231 河南农业大学理学院本科毕业论文5 系统软件设计 ............................................................................................................................. 24 5.1 总程序流程图 ...................................................................................................................... 24 5.2 显示模块的流程图 .............................................................................................................. 25 5.3 直流电机驱动模块的流程图 .............................................................................................. 28 6. 结论与展望 ............................................................................................................................... 30 致 谢 ............................................................................................................................................ 49 参考文献 ........................................................................................................................................ 31 附录 A:总体仿真图..................................................................................................................... 32 附录 B:源程序 ............................................................................................................................. 352 河南农业大学理学院本科毕业论文1. 引言当今世界,随科学技术的进步,智能化和自动化技术越来越普及,也广泛应用于机器人 玩具制造领域,使智能机器人越来越多样化。智能机器人是一个多种高新技术的集成体,它 融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉及到当今 许多前沿领域的技术。 传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家, 自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在 国外的自动控制和传感器技术已经达到了很高的水平, 特别是日本, 比如日本本田制作的机 器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到 6 岁儿童的水平。 作为机械行业的代表产品—汽车, 其与电子信息产业的融合速度也显著提高, 呈现出两 个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由 以机械产品为主向高级的机电一体化方向发展, 汽车电子产业也很有可能成为依托整车制造 业和用车提升配置而快速成为新的增长点; 二是汽车开始向电子化、 多媒体化和智能化方向 发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。面对 诸多恶劣的工作环境如灭火、救援等,为了有效的避免人员伤亡,就需要采用智能小车去现 场来完成相应的任务。因此研究和开发智能小车引导控制系统具有十分重要的意义。 本设计采用 STC89C52 单片机。 以 STC89C52 为控制核心, 利用超声波传感器检测道路 上的障碍,控制电动小汽车的自动避障,快慢速行驶。并可以通过红外光电对管 TCRT5000 实现自动寻迹。本文基于 STC89C52 单片机根据实际设计制作智能小车,实现智能控制,达 到设计目标。3 河南农业大学理学院本科毕业论文2. 整体方案设计2.1 整体方案设计的思路利用红外检测模块和超声波模块控制检测到的信号来控制单片机,从而让小车进行前 进、后退、左转和右转几个动作,进而实现小车的循迹避障功能,并用温度传感器 DS18B20 检测的温度,另外单片机控制 LCD1602 显示温度与小车行进方向。2.2 总体设计框图显示模块避障模块 STC89C52 单片机电机驱动模块电源模块循迹模块按键测温模块图 2.1 整体方案的方框图4 河南农业大学理学院本科毕业论文3 方案论证3.1 单片机选择采用 STC89C52 单片机, 该单片机是一种低功耗、 高性能 CMOS8 位微控制器, 具有 8K 在系统可编程 Flash 存储器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash, 使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、有效的解决方案。 具有以下标准 功能: 8k 字节 Flash, 512 字节 RAM, 32 位 I/O 口线, 看门狗定时器, 内置 4KB EEPROM, MAX810 复位电路, 三个 16 位 定时器/计数器, 一个 6 向量 2 级中断结构, 全双工串行口 。 其完全可以满足本设计对小车功能的要求,并且价格便宜;所以本设计最终选用 AT89C52 单片机作为其控制芯片。3.2 电机的选择方案一:步进电机驱动 步进电机具有快速启动能力,如果负荷不超过步进电机所能提供的动态转矩值,就 能使电机立即启动或反转。另外步进电机转换精度高,且正反转控制灵活。 方案二:直流电机驱动 直流电机调速范围广,且易于平滑调节。过载、启动、制动转矩大。易于控制,可 靠 性高。调速时的能量损耗较小。过载能力强能承受频繁的冲击负载,可实现频繁地无极快速 启动、制动和反转。 由于普通电机更易于购买,价格便宜,且电路相对简单,所以采用直流电机驱动。3.3 检测黑线模块方案一:采用光敏传感器 地面的黑色和白色反射程度不同, 由此判断传感器是否在黑线上方。 但由于其他光源影 响(特别是白天) ,效果不会很好 方案二:采用红外一体式发射接收器 红外一体式发射接收器由于感应的是红外光,常见光对它的干扰较小,是在小车、机器 人等制作中广泛采用的一种方式。 红外一体式发射接收器检测黑线的原理为, 由于黑色吸光, 当红外发射管发出的光照射在上面后反射的部分就较小,接收管接收到的红外线也就较少, 表现为电阻比较大, 通过外接的电路就可以读出检测的状态, 同理当照射在白色表面时发射 的红外线就比较多,表现为接收管的电阻就比较小。5 河南农业大学理学院本科毕业论文相比之下方案二检测时要更准确可靠,所以本设计采用红外一体式发射接收器。3.4 障碍物检测模块采用超声波探测,因为超声波频率高、波长短、定向性好,而且振幅小能量集中,能适 应在不同的被测介质界面上,大部分能量反射,因而,超声波特别适合与测量距离。对于本 设计而言,采用超声波测出障碍物的位置,通过适当的调整很容易使小车绕过障碍物。超声 波车辆检测器是根据声波的传播和反射原理, 通过对发射波和反射波的时差测量实现位移测 量的设备。超声波车辆检测器的工作原理是:由超声波发生器(探头)发射一束超声波,然 后接收从车辆或墙壁的反射波,根据反射波返回时间的差别,来判断有无车辆通过。由于探 头与地面的距离是一定的, 所以探头发出超声波并接收反射波的时间也是固定的。 当有车辆 通过时, 由于车辆本身的高度, 使探头接收到反射波的时间缩短, 就表明有车辆通过或存在。 如图 2 所示:图 3.1若超声波探头距地面高度为 H,车辆高度为 h,声速为 v,发自探头超声波脉冲的反射 波从路面和车辆返回时间分别为 t 和 t',则: t=2H/v t'=2(H-h)/v (3.1) (3.2)可见时间 t'与车辆高度 h 存在函数关系。根据这个特点,超声波车辆检测器即可以检测车辆 的存在和通过。3.5 显示模块本设计主要显示环境温度与小车行进方向,LCD1602 足以满足要求。3.6 温度测量方案1:采用热敏电阻 用热敏电阻等测温元件测出电压,再转换成对应的温度。需要比较多的外部元件(A/D6 河南农业大学理学院本科毕业论文转换)支持,且硬件电路复杂,制作成本相对较高。 方案2:用DS18B20 直接测温。 DS18B20 温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智能温度传 感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12 位的数字值 读数方式。而且其应用电路非常简单。 经比较,我们选择方案2。7 河南农业大学理学院本科毕业论文4 系统硬件电路设计4.1 电源模块的设计电源是整个系统稳定工作的前提, 因此必须有一个合理的电源设计, 单片机必须与大电 流器件分开供电,避免大电流器件对单片机造成干扰,影响单片机的稳定运行。本设计中在 J1处接入9V电池, 经两个L7805稳压芯片后为产生两路稳定的5V电压,其中一路为单片机供 电,另一路为功率较大的模块如电机模块、循迹模块、避障模块等供电。图 4.1 电源模块原理图4.2 单片机最小系统的设计单片机是控制中心, 单片机最小系统的合理设计是本设计平稳运行的前提, 所谓最小系 统,就是能够保证单片机运行的最精简的硬件设计。单片机最小系统电路如图4.2:8 河南农业大学理学院本科毕业论文图4.2 单片机最小系统原理图图4.2中的51 单片机最小系统由以下几个部分组成: 1. 晶振电路,单片机要想工作必须有一个外部的时钟源,这个时钟源由外部晶振产生,具 体电路为图中的Y1、C2、C3。 2. 复位电路,在复位脚加高电平2个机器周期(即24个振荡周期)可使单片机复位。单片 机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工 作。本系统采用的手动复位:按钮按下,复位脚得到VCC的高电平,单片机复位,按钮 松开后,单片机开始工作。4.3 电机驱动模块驱动方式为两电机四驱,差速转向,其优点是转向性能好,能实现原地 360° 转向,且 在循迹行走的时候能比较稳定的行驶。 由于单片机的驱动能力不足, 无法驱动像电机这样的 大功率外部器件,因此必须外加驱动电路。电机常用的驱动芯片很多,为了电路设计简单, 采用电机专用驱动芯片 L298, 其驱动电流大, 瞬时电流最高可达 2A, 为电机驱动专门设计。 驱动模块的核心实际上是 H 桥驱动电路组成的 L298 芯片。 4.3.1 H 桥驱动电路的内部原理解析 图 4.3 中所示为一个典型的直流电机控制电路。电路得名于“H 桥驱动电路”是因为它的9 河南农业大学理学院本科毕业论文形状酷似字母 H。4 个三极管组成 H 的 4 条垂直腿,而电机就是 H 中的横杠(注意:图 4.3 及随后的两个图都只是示意图, 而不是完整的电路图, 其中三极管的驱动电路没有画出来) 。 如图所示,H 桥式电机驱动电路包括 4 个三极管和一个电机。要使电机运转,必须导通 对角线上的一对三极管。 根据不同三极管对的导通情况, 电流可能会从左至右或从右至左流 过电机,从而控制电机的转向。图 4.3 H 桥驱动电路要使电机运转,必须使对角线上的一对三极管导通。例如,如图 4.4 所示,当 Q1 管和 Q4 管导通时,电流就从电源正极经 Q1 从左至右穿过电机,然后再经 Q4 回到电源负极。 按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管 Q1 和 Q4 导通时, 电流将从左至右流过电机,从而驱动电机按特定方向 转动(电机周围的箭头指示为顺时针 方向) 。图 4.4 H 桥电路驱动电机顺时针转动图 4.5 所示为另一对三极管 Q2 和 Q3 导通的情况,电流将从右至左流过电机。当三极 管 Q2 和 Q3 导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围 的箭头表示为逆时针方向) 。10 河南农业大学理学院本科毕业论文图 4.5 H 桥驱动电机逆时针转动4.3.2 使能控制和方向逻辑 驱动电机时,保证 H 桥上两个同侧的三极管不会同时导通非常重要。如果三极管 Q1 和 Q2 同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三 极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限 制) ,甚至烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三 极管的开关。 图 4.6 所示就是基于这种考虑的改进电路,它在基本 H 桥电路的基础上增加了 4 个与 门和 2 个非门。4 个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电 路的开关。而 2 个非门通过提供一种方向输入,可以保证任何时候在 H 桥的同侧腿上都只 有一个三极管能导通。 (与本节前面的示意图一样,图 4.5 所示也不是一个完整的电路图, 特别是图中与门和三极管直接连接是不能正常工作的。 )图 4.6 具有使能控制和方向逻辑的 H 桥电路采用以上方法,电机的运转就只需要用三个信号控制:两个方向信号和一个使能信号。 如果 DIR-L 信号为 0,DIR-R 信号为 1,并且使能信号是 1,那么三极管 Q1 和 Q4 导通, 电流从左至右流经电机(如图 4.7 所示) ;如果 DIR-L 信号变为 1,而 DIR-R 信号变为 0, 那么 Q2 和 Q3 将导通,电流则反向流过电机。11 河南农业大学理学院本科毕业论文图 4.7 使能信号与方向信号的使用实际使用的时候,用分立元件制作 H 桥是很麻烦的,好在现在市面上有很多封装好的 H 桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常 方便可靠。比如常用的 L293D、L298N、TA7257P、SN754410 等。 4.3.3 恒压恒流桥式 2A 驱动芯片 L298N L298 是 SGS 公司的产品,比较常见的是 15 脚 Multiwatt 封装的 L298N,内部同样包含 4 通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N 芯片可 以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达 50V,可以直接通过电 源来调节输出电压;可以直接用单片机的 IO 口提供信号;而且电路简单,使用比较方便。 L298N 可接受标准 TTL 逻辑电平信号 VSS,VSS 可接 4.5~7 V 电压。4 脚 VS 接电 源电压,VS 电压范围 VIH 为+2.5~46 V。输出电流可达 2.5A,可驱动电感性负载。1 脚和 15 脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298 可 驱动 2 个电动机,OUT1,OUT2 和 OUT3,OUT4 之间可分别接电动机,本实验装置我们选 用驱动一台电动机。5,7,10,12 脚接输入控制电平,控制电机的正反转。EnA,EnB 连 接控制使能端, 控制电机的停转。 当 EnA 为低电平时, 输入电平对电机控制起作用, 当 EnA 为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹 停。12 河南农业大学理学院本科毕业论文控制逻辑见表 4.1表 4.1 L298N 控制逻辑表 电机 旋转方式 控制端 IN1 控制端 IN2 控制端 IN3 控制端 IN4 输入 PWM 信号改 变脉宽可调速 调速端 A M1 正转 反转 停止 M2 正转 反转 停止 1 0 0 / / 0 0 1 0 / / 0 / / / 1 0 / / / / 0 1 / 1 1 1 / / / 调速端 B / / / 1 1 1图 4.8 单片机利用 L298 控制电机的原理图15 脚是输出电流反馈引脚,其它与 L298 相同。在通常使用中这两个引脚也可以直接接 地。上图是其与 51 单片机连接的电路图 4.3.4 直流电机 PWM 调速控制 直流电动机转速 n=(U-IR)/Kφ 其中 U 为电枢端电压,I 为电枢电流,R 为电枢电路总电阻,φ 为每极磁通量,K 为电 动机结构参数。 直流电机转速控制可分为励磁控制法与电枢电压控制法。 励磁控制法是控制磁通, 其控13 河南农业大学理学院本科毕业论文制功率小,低速时受到磁饱和限制,高速时受到换向火花和换向器结构强度的限制,而且由 于励磁线圈电感较大动态响应较差, 所以这种控制方法用得很少。 大多数应用场合都使用电 枢电压控制法。 随着电力电子技术的进步, 改变电枢电压可通过多种途径实现, 其中 PWM(脉 宽调制)便是常用的改变电枢电压的一种调速方法。 PWM 调速控制的基本原理是按一个固定频率来接通和断开电源,并根据需要改变一个 周期内接通和断开的时间比(占空比)来改变直流电机电枢上电压的&占空比&,从而改变平均 电压,控制电机的转速。在脉宽调速系统中,当电机通电时其速度增加,电机断电时其速度 减低。只要按照一定的规律改变通、断电的时间,即可控制电机转速。而且采用 PWM 技术 构成的无级调速系统.启停时对直流系统无冲击,并且具有启动功耗小、运行稳定的特点。 设电机始终接通电源时,电机转速最大为 Vmax,且设占空比为 D = t/T,则电机的平均 速度 Vd 为: Vd=VmaxD 由公式可知,当改变占空比 D = t/T 时,就可以得到不同的电机平均速度 Vd,从而达 到调速的目的。严格地讲,平均速度与占空比 D 并不是严格的线性关系,在一般的应用中, 可将其近似地看成线性关系。 在直流电机驱动控制电路中,PWM 信号由外部控制电路提 供,并经高速光电隔离电路、电机驱动逻辑与放大电路后,驱动 H 桥下臂 MOSFET 的开关 来改变直流电机电枢上平均电压,从而控制电机的转速,实现直流电机 PWM 调速。 当用单片机 I/O 口输出 PWM 信号时,可采用以下三种方法: 利用软件延时。当高电平延时时间到时,对 I/O 口电平取反变成低电平,然后再延时; 当低电平延时到时,再对 I/O 口电平取反,如此循环就可得到 PWM 信号。14 河南农业大学理学院本科毕业论文图 4.9 电机驱动模块原理图4.4 循迹模块小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射 系数不同, 可根据接收到的反射光的强弱来判断“道路”—黑线。 笔者在该模块中利用了简单、 应用也比较普遍的检测方法——红外探测法。 红外探测法, 即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。 在小车 行驶过程中不断地向地面发射红外光, 当红外光遇到白色地面时发生漫发射, 反射光被装在 小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再 通过 LM339 作比较器来采集高低电平,从而实现信号的检测。 市面上有很多红外传感器,在这里我选用 TCRT5000 型光电对管。15 河南农业大学理学院本科毕业论文图 4.10TCRT5000 实物图图 4.11 循迹模块原理图4.5 避障模块通过超声波模块测得小车与前方的障碍物的距离 S,当 S 小于等于 20cm 时,小车左转 避开障碍物。在设计中直接选用超声波测距模块 HC-SR04。 4.5.1 超声波发射电路设计 超声波发射电路是由超声波探头和超声波放大器组成。 超声波探头将电信号转换为机械 波发射出去,而单片机所产生的 40 kHz 的方波脉冲需要进行放大才能将超声波探头驱动将 超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计选用 74LS04 芯片 进行信号放大,超声波发射电路如图 4.12 所示。16 河南农业大学理学院本科毕业论文图 4.12 超声波发射电路工作时,由单片机产生 40 kHz 的脉冲从 P0.1 口向超声波的发射电路部分发出信号,再 经 74LS04 放大电路放大后,驱动超声波探头将超声波发射出去。 4.5.2 超声波接收电路设计 由于超声波在空气中的传播过程中是有衰减的, 如果距离较远, 那么超声波接收电路所 接收到的超声波信号就会比较微弱, 因此需要对接收到的信号进行放大而且放大的倍数也要 比较大。 超声波接收电路主要是由集成电路 CX20106A 芯片电路构成的, CX20106A 芯片电 路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之 后超声波接收电路会输出一个低电平到单片机去请求中断, 当即单片机停止计时, 并开始去 进行数据的处理。 CX20106A 芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大 器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效 果。CX20106A 芯片的 5 脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接 其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。 CX20106A 芯片电路本身就具有很高的抗干扰的能力,而且灵敏度也比较高,所以,能满足 本设计的要求。超声波接收电路如图 4.13 所示。17 河南农业大学理学院本科毕业论文图 4.13超声波接收电路4.5.3 HR-SR04 超声波集成模块 HR-SR04 超声波集成模块是将超声波发射探头,超声波接收探头,CX20106A 芯片电 路,74LS04 芯片放大电路集成到的一起的一个超声波集成模块。HR-SR04 超声波集成模块 正面外观如图 16 所示,HR-SR04 超声波集成模块的背面外观如图 4.14 所示。图 4.14HR-SR04 超声波集成模块正面外观图18 河南农业大学理学院本科毕业论文图 4.15 HR-SR04 超声波集成模块背面外观图HR-SR04 型超声波集成模块的工作电压为 5 V, 而且此模块的静态工作电流是小于 2 mA 的,工作时候可以比较稳定。而且,它的感应的角度不大于 15° ,可以减少了很大部分可能 存在的角度干扰问题。此模块的测距范围为 2 cm~5 m,能基本满足测距要求,而且其精度 可以达到 0.3 cm,盲区仅仅为 2 cm,完全可以能够满足本设计的测距要求,而且测距也比 较稳定。HR-SR04 超声波集成模块采用的是 I/O 触发测距,给至少 10 us 的高电平信号。另 外,此模块可以自动发送 8 个 40 kHz 的方波脉冲,并能够自动检测是否有信号返回,如果 检测到有信号返回则通过 I/O 口输出高电平, 高电平的持续时间就是超声波从发射到返回所 用的时间,则,所测量的距离=(高电平时间× 声速)/2。 一个控制口发出一个 10 us 以上的高电平,就可以在接收口等待高电平输出。一有输出 就可以开定时器计时, 当此口变为低电平时就可以读定时器的值, 此时就为此次测距的时间, 就能够算出距离。这样不断的循环周期测,就可以在不停地移动的过程中测量距离值了。但 是, 为防止发射信号对回收信号的影响, 本超声波集成模块的测量周期最好定在 60 ms 以上, 所以本设计将测量周期定在 80 ms。4.6 测温模块Dallas 半导体公司的数字化温度传感器 DS18B20 是世界上第一片支持 &一线总线&接口 的温度传感器,在其内部使用了在板(ON-BOARD)专利技术。全部传感元件及转换电路 集成在形如一只三极管的集成电路内。DS18B20 具有微型化、低功耗、高性能、抗干扰能 力强、可组网等优点,测温分辨率较高,为 9~12 位,精度为 0.5℃ 。DS18B20 可直接将温 度转化成串行数字信号,因此特别适合与单片机配合使用,直接读取温度数据。目前 DS18B20 数字温度传感器已经广泛应用于恒温室、粮库、计算机机房温度监控及其他各种 温度测控系统中。DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非19 河南农业大学理学院本科毕业论文易失性的温度报警触发器 TH 和 TL 和配置寄存器。图 4.16DS18B20 的外部结构图DS18B20 的引脚介绍 (1)DQ 为数字信号输入/输出端; (2)GND 为电源地; (3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地) 。 DS18B20 的主要特性 (1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电。 (2)测温范围-55℃ ~+125℃ ,在-10℃ ~+85℃ 时精度为± 0.5℃ 。 (3)可编程的分辨率为 9~12 位,可在至多在 750ms 内将温度转换成为 12 位的数字, 测温可分辨率为 0.0625℃ 。 (4)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条线即可实现微处 理器与 DS18B20 的双向通讯。 (5)DS18B20 支持多点的组网功能,多个 DS18B20 可以并联在唯一的单线结构上, 实现组网多点测温。 数字温度传感器 DS18B20 与单片机的连接电路非常简单,引脚1(GND)接地,引脚 3(VCC)接电源+5V, 引脚 2 (DQ) 接单片机输入/输出一个端口, 电源+5V 和信号线 (DQ) 间接有一个 4.7K 上拉电阻。20 河南农业大学理学院本科毕业论文图 4.17 单片机与温度传感器 DS18B20 的连接电路图4.7 显示模块本设计采用 LCD1602 实时显示小车行驶的时间,小车停止行驶后,轮流显示小车行驶 时间、 行驶距离。 LCD1602 可以显示 2 行 16 个字符, 有 8 位数据总线 D0-D7, 和 RS、 R/W、 EN 三个控制端口,工作电压为 5V,并且带有字符对比度调节和背光。该模块也可以只用 D4-D7 作为四位数据分两次传送。这样的话可以节省 MCU 的 I/O 口资源。 1602B 引脚说明如下:表 4.2 LCD 液晶显示器各引脚功能及结构 编号 1 2 3 4 5 6 7 8 符号 VSS VDD VL RS R/W E D0 D1 引脚说明 电源地 电源正极 对比度调节 数据/命令选择 读/写选择 模块使能端 双向数据口 双向数据口 编号 9 10 11 12 13 14 15 16 符号 D2 D3 D4 D5 D6 D7 BLK BLA 引脚说明 双向数据口 双向数据口 双向数据口 双向数据口 双向数据口 双向数据口 背光源地 背光源正极21 河南农业大学理学院本科毕业论文注意事项:从该模块的正面看,引脚排列从右向左为:15 脚、16 脚,然后才是 1-14 脚(线路板上已经标明): VDD:电源正极,4.5-5.5V,通常使用 5V 电压; VL:LCD 对比度调节端,电压调节范围为 0-5V。接电源的正极时对比度最弱,接地 电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个 10K 的电位器来调 整对比度,或者直接串接一个电阻到地; RS:MCU 写入数据或者指令选择端。MCU 要写入指令时,使 RS 为低电平;MCU 要 写入数据时,使 RS 为高电平; R/W:读写控制端。R/W 为高电平时,读取数据;R/W 为低电平时,写入数据; E:LCD 模块使能信号控制端。写数据时,需要下降沿触发模块。 D0-D7:8 位数据总线,三态双向。如果 MCU 的 I/O 口资源紧张的话,该模块也可以 只使用 4 位数据线 D4-D7 接口传送数据。本充电器就是采用 4 位数据传送方式; BLA:LED 背光正极。需要背光时,BLA 串接一个限流电阻接 VDD,BLK 接地,实 测该模块的背光电流为 50mA 左右; BLK:LED 背光地端。22 河南农业大学理学院本科毕业论文图 4.18显示模块原理图4.7 总体设计与原理图图 4.19 总体设计原理图23 河南农业大学理学院本科毕业论文5 系统软件设计5.1 总程序流程图启动初始化液晶与 18B20设置 T0T1 初值采集传感器温度 信息显示温度值处理各个传感器的 信息检测到的信息控制电机转动图 5.1 总程序的流程图主程序如下: void main() { TMOD=0x11; TH0=0; TL0=0; TH1=0xf8; //2MS 定时 //设 T0 为方式 1,GATE=1;24 河南农业大学理学院本科毕业论文TL1=0x30; ET0=1; ET1=1; TR1=1; EA=1; stop(); while(1) { if(key1) stop(); else { if(key2) pwm(1,20); else pwm(1,2); //允许 T0 中断 //允许 T1 中断 //开启定时器 //开启总中断if(RX) { TR0=1; while(RX); TR0=0; Conut(); } infrared(); } } }//当 RX 为 1 时//开启计数 //当 RX 为 1 计数并等待 //关闭计数 //计算5.2 显示模块的流程图单片机把小车前进方向与温度信息传递给 LCD1602,具体的流程图如下:25 河南农业大学理学院本科毕业论文初始化液晶采集温度信息显示温度接受单片机传来的 小车运行状态显示小车状态与 报警信息图 5.2 显示模块的流程图当小车处于不同状态是显示器显示相应的内容和环境温度,相应程序如下: void display(uchar n) { write_com(0x80+3); if(n==1) { for(num=0;num&10;num++) { write_date(disp1[num]); delay(5); } } if(n==2) {26 河南农业大学理学院本科毕业论文for(num=0;num&10;num++) { write_date(disp2[num]); delay(5); } } if(n==3) { for(num=0;num&10;num++) { write_date(disp3[num]); delay(5); } } if(n==4) { for(num=0;num&10;num++) { write_date(disp4[num]); delay(5); } } if(n==5) { for(num=0;num&10;num++) { write_date(disp5[num]); delay(5); } }27 河南农业大学理学院本科毕业论文if(n==6) { write_com(0x80+0x40+8); for(num=0;num&8;num++) { write_date(disp6[num]); delay(5); } } if(n==7) { write_com(0x80+0x40+10); for(num=0;num&4;num++) { write_date(disp7[num]); delay(5); } } }5.3 直流电机驱动模块的流程图电机驱动模块的核心是电机的驱动芯片及电机, 电机选择了直流电机, 这样可以方便控 制,而电机的驱动芯片 L298 可以同时控制两个直流电机,其中芯片中连接单片机的 5 引脚 和 7 引脚用于控制直流电机 1,而芯片中的 10 引脚和 12 引脚用于控制直流电机 2.电机 1 接 的是小车的左轮,电机 2 接的是小车的右轮,当两个电机一起正向转动时,小车前进;当两 个电机一起反向转动时,小车后退;当电机 1 正转,电机 2 反转时,小车右转;当电机 1 反转,电机 2 正转时,小车左转。由于无线模块只能控制锁存的 4 条线路,不能将功能都进 行有效控制,只能控制前进和后退,所以额外采用按键来控制左转和右转。28 河南农业大学理学院本科毕业论文红外检测信号 超声波检测信号传递给单片机单片机发出指令N电机 1 不转动 L298 的 5,7 引 脚接收指令 L298 的 10,12 引脚接收指令N电机 2 不转动YY电机 1 转动电机 1 转动图 5.3 直流电机驱动模块的流程图产生 PWM 波子程序: void pwm(uchar gao,uchar di) { for(m=0;m&m++) { en=0; delay(30); } for(m=0;m&m++) { en=1; delay(10); } }29 河南农业大学理学院本科毕业论文6. 结论与展望本文以 STC89C52 单片机为控制核心, 设计制作了一款智能小车, 由于采用模块化设计, 本系统具有良好的可升级性和扩展性, 再造价上也有一定的优势。 采用单片机进行控制处理, 它具有编程灵活自由、易于控制,稳定性能好、扩展容易等优点,作品作为大学生学习嵌入 式控制的强有力的应用实例,对移动式机器人的设计制作提供了一定的参考价值。 本设计基本完成了题目要求的各项功能,包括利用循迹实现智能小车的前进、后退、左 转和右转的基本功能。 由于时间不足以及客观多方面的困难, 系统中也还存在一些问题有待于解决, 在设计中, 有几个问题需要改良:如小车的驱动力不够可以通过使用驱力强的电机和摩擦力较小的车 轮,小车的重量需要进一步减轻等造成了设计的不完美,这些都还需要进一步的去完善,让 自己更上一个台阶。 本次毕业设计虽然不是特别完美, 但它凝聚了多方的心血, 作为一个本科生的毕业设计, 由于经验的匮乏,难免有许多考虑不周全的地方,由于设计和论文撰写的时间仓促,所以文 中难免会有疏漏和不妥之处,在此表示歉意。30 河南农业大学理学院本科毕业论文参考文献[1] 康华光.电子技术基础模拟部分[M].(第四版).北京:高等教育出版社,1999. [2] 康华光.电子技术基础数字部分[M].(第四版).北京:高等教育出版社,2000. [3] 陈大钦.电子技术基础实验[M].(第二版).北京:高等教育出版社,2000. [4] 谢自美.电子线路设计?实验?测试[M].(第三版).武汉:华中科技大学出版社,2006. [5] 胡乾斌 李光斌 李玲等.单片微型计算机原理与应用[M].(第二版).武汉:华中科技大学 出版社,2006. [6] 天祥.新概念 51 单片机 C 语言教程[M].电子工业出版社,2009. [7] 谭浩强.C 语言设计[M].(第三版).清华大学出版社,2005. [8] 崔炳哲.电子控制入门[M].北京:科学出版社,2003. [9] 樊昌信 曹丽娜.通信原理[M].(第六版).北京:国防工业出版社,2009. [10] 全国大学生电子设计竞赛组委会编 . 全国大学生电子设计竞赛 [M]. 北京理工大学出版 社,1999. [11] 郭强.液晶显示应用技术[M].北京:电子工业出版社,2003. [12] 郁有文 常健 程继红.传感器原理及工程应用[M].(第二版).武汉:西安电子科技大学出 版社,2006. [13] 许纪倩.机械工人速成识图[M].(第二版).北京:机械工业出版社,2009. [14] 高军.电动智能小车[D].http://www./ [15] 刘迪. 基于 AT89S52 芯片的简易智能小车的设计与实现.山西: 海军航空工程学院.2011. [16] 高云华.基于 AT89S52 的多功能智能小车设计. 南京:江苏经贸职业技术学院.2012. [17] 顾群. 基于单片机的智能小车避障循迹系统设计. 无锡:无锡科技职业学院.2012. [18] 李保全. 智能小车的设计与制作. 吉林:吉林工业职业技术学院.2011. [19] 宋戈,黄鹤松,员玉良,蒋海峰.51 单片机应用开发范例大全.北京:人民邮电出版社, 2010.31 河南农业大学理学院本科毕业论文附录 A:总体仿真图图 A1 小车直走仿真图图 A2 小车左转仿真图32 河南农业大学理学院本科毕业论文图 A3 小车右转仿真图图 A4 遇障报警仿真图33 河南农业大学理学院本科毕业论文图 A5 遇障倒车仿真图34 河南农业大学理学院本科毕业论文附录 B:源程序#include &reg51.h& #include &intrins.h& #define uchar unsigned char #define uint unsigned int unsigned int time=0,timer=0; unsigned long S=0; sbit RX=P1^4; sbit TX=P1^5; sbit z1=P2^2; sbit f1=P2^3; sbit z2=P2^4; sbit f2=P2^5; sbit en=P2^7; sbit d1=P1^0; sbit d2=P1^1; sbit d3=P1^2; sbit d4=P1^3; sbit key1=P1^6; sbit key2=P1^7; sbit rs=P3^5; sbit lcden=P3^4; sbit DQ = P2^0; bit flag1=0; uchar TempBuffer[5]; uchar temp_ //温度值 //温度传送数据IO口unsigned char code disp1[]={&turn left&};35 河南农业大学理学院本科毕业论文unsigned char code disp2[]={&turn right&}; unsigned char code disp3[]={& straight &}; unsigned char code disp4[]={& stop &};unsigned char code disp5[]={&turn back&}; unsigned char code disp6[]={&warning&}; unsigned char code disp7[]={&safe&}; void delay(unsigned int i) { for(i;i&0;i--) for(j=110;j&0;j--); } void write_com(uchar com) { rs=0; lcden=0; P0= delay(5); lcden=1; delay(5); lcden=0; } //延时函数,延时i毫秒void write_date(uchar date) { rs=1; lcden=0; P0= delay(5); lcden=1;36 河南农业大学理学院本科毕业论文delay(5); lcden=0; }/********************************/ /***********ds18b20子程序*************************/ /***********ds18b20延迟子函数(晶振12MHz )*******/ void delay_18B20(unsigned int i) { while(i--); } /**********ds18b20初始化函数**********************/ void Init_DS18B20(void) { unsigned char x=0; DQ = 1; //DQ复位delay_18B20(8); //稍做延时 DQ = 0; //单片机将DQ拉低delay_18B20(80); //精确延时 大于 480us DQ = 1; delay_18B20(14); x=DQ; delay_18B20(20); } /***********ds18b20读一个字节**************/ unsigned char ReadOneChar(void) { uchar i=0; uchar dat = 0; for (i=8;i&0;i--)37//拉高总线//稍做延时后 如果x=0则初始化成功 x=1则初始化失败 河南农业大学理学院本科毕业论文{DQ = 0; // 给脉冲信号 dat&&=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4);} return(dat); } /*************ds18b20写一个字节****************/ void WriteOneChar(uchar dat) { unsigned char i=0; for (i=8; i&0; i--) { DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat&&=1; } } /**************读取ds18b20当前温度************/ void ReadTemp(void) { unsigned char a=0; unsigned char b=0; unsigned char t=0; Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0x44); delay_18B20(100); Init_DS18B20();38// 跳过读序号列号的操作 // 启动温度转换 // this message is wery important 河南农业大学理学院本科毕业论文WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 delay_18B20(100); a=ReadOneChar(); b=ReadOneChar(); temp_value=b&&4; temp_value+=(a&0xf0)&&4; } void temp_to_str() //温度数据转换成液晶字符显示 //读取温度值低位 //读取温度值高位{ TempBuffer[0]=temp_value/10+'0'; //十位 TempBuffer[1]=temp_value%10+'0'; //个位 TempBuffer[2]=0 TempBuffer[3]='C'; TempBuffer[4]='\0'; } //温度符号void init() { lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);} void display(uchar n) { write_com(0x80+3);39 河南农业大学理学院本科毕业论文if(n==1) { for(num=0;num&10;num++) { write_date(disp1[num]); delay(5); } } if(n==2) { for(num=0;num&10;num++) { write_date(disp2[num]); delay(5); } } if(n==3) { for(num=0;num&10;num++) { write_date(disp3[num]); delay(5); } } if(n==4) { for(num=0;num&10;num++) { write_date(disp4[num]); delay(5);40 河南农业大学理学院本科毕业论文} } if(n==5) { for(num=0;num&10;num++) { write_date(disp5[num]); delay(5); } } if(n==6) { write_com(0x80+0x40+8); for(num=0;num&8;num++) { write_date(disp6[num]); delay(5); } } if(n==7) { write_com(0x80+0x40+10); for(num=0;num&4;num++) { write_date(disp7[num]); delay(5); } } } void pwm(uchar gao,uchar di)41 河南农业大学理学院本科毕业论文{ for(m=0;m&m++) { en=0; delay(30); } for(m=0;m&m++) { en=1; // } } delay(10);void stop() { z1=0; f1=0; z2=0; f2=0; display(4); } void straight() { z1=1; f1=0; z2=1; f2=0; display(3); }42 河南农业大学理学院本科毕业论文void turn_right() { z1=1; f1=0; z2=0; f2=0; display(2); } void turn_left() { z1=0; f1=0; z2=1; f2=0; display(1); } void turn_back() { z1=0; f1=1; z2=0; f2=1; display(5); }void infrared() { if((d1&d2)&(d1&d2)) {flag=3;}43 河南农业大学理学院本科毕业论文if((d1==0)||(d2==0))//左边检测到黑线 {flag=1;}if((d3==0)||(d4==0)) {flag=2;} // else {flag=3;} switch (flag) { case 0:straight(); case 1:turn_left(); delay(1000); case 2:turn_right(); delay(1000); case 3:straight(); delay(1000); case 4:turn_back(); delay(1000); default: } }//右边检测到黑线/********************************************************/ void Conut(void) { time=TH0*256+TL0; TH0=0;44 河南农业大学理学院本科毕业论文TL0=0; S=(time*1.7)/100; //算出来是CMif((S&=300)||flag1==1) //超出测量范围显示“-” { flag1=0; }if(S&=20) //距离小于20cm { if(S&=15) {flag=4;} else flag=1; display(6); } else display(7);} /*******************************************************/void zd0() interrupt 1 { flag1=1; }//T0中断用来计数器溢出,超过测距范围//中断溢出标志/********************************************************/ void zd3() interrupt 3 { TH1=0xf8; TL1=0x30; timer++;45//T1中断用来扫描数码管和计800MS启动模块 河南农业大学理学院本科毕业论文if(timer&=400) { timer=0; 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; } } //800MS 启动一次模块/*********************************************************/46 河南农业大学理学院本科毕业论文void main() { init(); Init_DS18B20() ; TMOD=0x11; TH0=0; TL0=0; TH1=0xf8; TL1=0x30; ET0=1; ET1=1; TR1=1; EA=1; stop(); while(1) { ReadTemp(); temp_to_str(); write_com(0x80+0x40+1); //开启温度采集程序 //温度数据转换成液晶字符 //允许T0中断 //允许T1中断 //开启定时器 //开启总中断 //2MS定时 //设T0为方式1,GATE=1;for(num=0;num&5;num++) { write_date(TempBuffer[num]); delay(5); } if(key1) stop();47 河南农业大学理学院本科毕业论文else { if(key2) pwm(1,20); else pwm(1,2);if(RX)//当RX1为1时 { TR0=1; while(RX); TR0=0; Conut(); //计算 } infrared(); } //开启计数 //当RX为1计数并等待 //关闭计数} }48 河南农业大学理学院本科毕业论文致 谢本设计能够顺利完成, 还承蒙潘教授以及身边的很多同学的指导和帮助。 如果没有导师 的督促指导,同学们的支持合作,想要完成这个设计是难以想象的。在设计过程中,衷心感 谢我的导师潘建斌教授! 感谢他对我的论文给予的悉心指导并为我指点迷津, 最重要的是帮 助我开拓研究思路, 寻找方法。 潘教授一丝不苟的作风, 严谨求实的态度, 踏踏实实的精神, 不仅教给了我解决问题的思路和方法,而且教我做人,让我终生受益无穷。 感谢电科系里给予我帮助的所有老师! 感谢指导、关心和帮助我的同学和朋友们,是你们让我在学习中不断的进步、成长,谢 谢你们曾经给予我的帮助和支持! 感谢评阅老师百忙之中抽出时间对本论文进行了评阅!49 河南农业大学理学院本科毕业论文指导教师评语(主要评价论文的工作量、试验数据的可靠性、论文的主要内 容与特点、写作水平等) :论文的工作量:论文选题符合专业培养目标,能够达到综合训练目标,题目有较高难度,工作量大。试验数据的可靠性:实验数据完整,可靠性高。论文的主要内容与特点、写作水平:文章篇幅完全符合学院规定,内容完整,层次结构安排科学,语言表达流畅,格式 完全符合规范要求;参考了丰富的文献资料,其时效性较强。本人认为,该论文达到了 学士学位论文水平,同意论文答辩。签名:2013 年 5 月 18 日 答辩委员会评语及论文成绩(主要评价论文的性质、难度、质量、综合训练、 答辩情况、不足等。评定论文成绩) : 论文的性质、难度、质量:学生的综合训练、答辩情况、不足等:论文成绩:主任委员签名: 2013 年 5 月 25 日50

我要回帖

更多关于 单片机智能ic卡设计 的文章

 

随机推荐