1、 智能小车的设计 1 / 29 单片机课程设计 设计名称: 智能小车及温度显示 所在学院: 电气与控制工程学院 专业班级: 测控技术与仪器 0902 学生姓名: 学生学号: 0906070211 0906070225 0906070227 指导老师: 完成时间: 2012/07/06 智能小车的设计 2 / 29 目 录 1方案论证与比较 . 4 1.1 课程实现 . 4 1.2 电机驱动模块 . 4 1.3 温度测量模块 . 5 1.4 显示模块 . 5 1.5 遥控 . 6 2单片机最小应用系统 . 6 2.1 时钟电路 . 7 2.2 复位电路 . 8 3.控制部分 . 9 3.1 电机
2、驱动 . 9 3.2.温度检测及显示模块 . 9 3.3.遥控 . 10 4.流程图 . 10 4.1 主程序流程图 . 10 4.2 遥控器解码程序流程图 . 11 4.3 温度显示流程图 . 11 5.参考文献 . 11 6. 设计心得体会 . 12 6.1 设计心得体会(魏璐) . 12 6.2 设计心得体会(雷军) . 12 6.3 设计心得体会(陈志伟) . 13 7.附录 . 14 7.1 元件清单: . 14 7.2 程序清单 : . 14 智能小车的设计 3 / 29 智能小车的设计 摘要 : 智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运
3、作,不需要人为的管理,可应用于科学勘探等等的用途。智能小车就是其中的一个体现。 本设计采用 STC89C52 单片机为主要控制核心, STC89C52 是一款高速低功耗的新一代 8051 单片机,我们利用红外接收遥控器对小车的控制信号,对小车实现无线遥控,利用 DS18B20 检测小车所在环境的温度,并利用 12864 液晶显示模块将其显示出来。 关键词: STC89C52 单片机 DS18B20 检测温度 液晶显示 Abstract: Smart as a modern invention, the direction of development in the future, he can
4、 in an environment where automatic operation in accordance with the pre-set pattern, no human management can be applied to the use of scientific exploration. The smart car is one of expression. This design uses STC89C52 microcontroller core as the main control STC89C52 is a new generation of high-sp
5、eed low-power 8051, we use the infrared receiver remote control signals of the car, wireless remote control car using the DS18B20 test car where the temperature of the environment and use 12864 LCD module will be displayed. Keyword: STC89C52 single-chip DS18B20 detection temperature LCD 智能小车的设计 4 /
6、29 1 方案论证与比较 1.1 课程实现 方案 1:采用各类数字电路来组成小车的控制系统,对外围避障信号,各路趋光信号进行处理,车库拦栅上升下降控制,温度显示等。本方案电路复杂,灵活性高,效率低,不利于小车智能化的扩展,对各路信号处理比较困难。 方案 2:采用 STC89C52 单片机来作为整机的控制核心单元。红外线探头采用 市面上通用的发射管与及接收头,经过单片机调制后发射。车库拦栅控制部分用步进机来驱动再将采集到的各类信号送往单片机进行综合分析处理,实现准确有效的动作,此系统比较灵活,采用软件方法来解决复杂的硬件电路部分使系统硬件简洁化,各类功能易于实现 ,能很好地满足题目的要求,并容易
7、扩展功能。 比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,能达到题目要求。 1.2 电机驱动模块 方案 1:使用晶体三级管 8550 搭成桥电路控制两路继电器控制小车的转向,原理简单,方便使用,但是需要用到两个继电器,既占用空间又不经济。 2:使用芯片 L298N 驱动电机并控制电机的转向, L298N 是 SGS 公司的产品,比较常见的是 15 脚 Multiwatt 封装的 L298N,内部同样包含 4 通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。 方案 3: 使用步进电机控制小车的速度。由于步电机的特性,它能够更加准确的控制小车的转速,更好的定位,但是它的
8、价格比较昂贵并且体积较大重量也较大,不利于本次比赛的实现。这里我们使用红外对车轮转数的计数,可以充当小车定位的功能。 L298N 可接受标准 TTL 逻辑电平信号 VSS, VSS 可接 4 5 7 V 电压。 4 脚 VS 接电源电压, VS 电压范围 VIH 为 2 5 46 V。输出电流可达 2 5 A,可驱动电感性负载 。1 脚和 15 脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。 L298可驱动 2 个电动机, OUT1, OUT2 和 OUT3, OUT4 之间可分别接电动机,本实验装置我们选用驱动一台电动机。 5, 7, 10, 12 脚接输入控制电平,控制
9、电机的正反转。 6 和 11口接 控制使能端 EnA, EnB,控制电机的停转。 图 1 是 L298N 原理 图 : 图 ( 1) L298N 工作原理图 智能小车的设计 5 / 29 In3, In4 的逻辑图与 图 1 相同。由 图 1 可知 EnA 为低电平时,输入电平对电机控制起作用,当 EnA 为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。 该方案选择其控制两路直流电机的转向。 结合三种方案的优缺点,最终选择方案 2 1.3 温度测量模块 方案一:使用热敏电阻,热敏电阻价格便宜对温度感应敏感,但是精确度不高。 方案二使用热电偶。热电偶经过全桥电
10、路处理之后能够测量比较高的温度,而且精度也比较高,但是电路要求高,元件价格比较贵。 方案三:使用 DS18B20 温度传感器。 DS18B20 采用一种单线总线系统,可以用一根线连接主从件, DS18B20 为从器件,经过单片机简单处理之后能够得到高精度的温度,并且其测量范围也比较大,精度高,性价比高,使用方便。 所以最终选择方案三 。 DS18B20 温度传感器实物图见图( 2) 图( 2) DS18B20 温度传感器实物图 1.4 显示模块 方案 1:使用 LED 数码管进行显示。数码管价格便宜,显示亮度好,能耗低,但是显示的内容少。 方案 2:使用 LCD 液晶进行显示。液晶显示相对价格
11、比较贵,驱动比较麻烦,但是其显示内容多,能耗小,连接电路简单,体积较小。 考虑到本设计的具体要求,选择方案 2 ,选用 12864LCD 液晶显示器。 图( 3) 12864 液晶显示实物图 智能小车的设计 6 / 29 1.5 遥控 方案一:此方案中,使用专用遥控器作为控制信号发出装置,当按下遥控器的设置键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是不是设置信号,当确认是设置信号后,启动设置子程序,那么以后接收到的红外信号就是 设置的时间信号了,红外接收头接收到红外信号后再通过放大器将信号传到
12、解码器中,解码器解完码后送到单片机,单片机再通过查表确定这些数值并进行设置,然后按下确认键,红外接收头接收到这个信号并通过放大送到解码器中,解码后再 送到单片机中,单片机通过查表确定这是确认操作后,可以通过可控硅控制 。 方案二:此方案中,我们采用普通的家用电器遥控器作为控制信号发出装置,当按下遥控器的设置键后,红外接收装置接收到遥控器发出的红外线控制信号,然后把这个信号转换成电信号,传到单片机中,利用单片机对这个信号进行解码, 解码完成后查表确定是不是设置信号,当这个信号是设置信号后,启动设置子程序,那么以后接收到的红外信号就是设置的时间信号了,单片机再对这些信号进行解码,查表判断出数值是多
13、少,然后设置,设置完时间后要进行确认,当遥控器发出确认信号后,单片机收到这个信号并查表判断这是确认信号后 ,执行确认指令,使设置生效 。 方案一为硬件解码方案,硬件解码需要使用与遥控器相配套的专用的解码器芯片,而解码芯片一般不易得到,价格也较贵,或者自行开发解码电路(但电路太复杂,性能欠佳)。 方案二为软件解码方案,软件解码可以不考虑遥控器的芯片是什么型号的,因为我们只需检测到它的发射编码,然后用软件方式来对它进行处理,从而得到所要的信息。软件解码具有灵活、硬件精简(仅需集成红外接收头和一片单片机)、可靠性高,成本低等特点。 经以上的论证,可以采用软件解码方案, 其中接受用 HX1838,成本
14、低,方便实现,并且系 统整体性能和可靠性高。 图( 4) HX1838 红外接收器实物图 2 单片机最小应用系统 STC89C52 是一种带 8K 字节闪烁可编程可檫除只读存储器( FPEROM-Flash Programable and Erasable Read Only Memory )低电压,高性能 COMOS8 的微处理器, 具有片内ROM/EPROM,因此这种芯片构成的最小系统简单、可靠。用 STC89C52 单片机构成最小智能小车的设计 7 / 29 应用系统时,只要将单片机接上时钟电路和复位电路即可,如下图示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点
15、: ( 1)有可供用户使用的大量 I/O 线。 ( 2)内部存储器容量有限。 ( 3)应用系统开发具有特殊性。 图 ( 5) 单片机的最小应用系统 2.1 时钟电路 STC89C52 内部有一个用于构成振荡器的高增益反相放大器,引脚 RXD 和 TXD 分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图 (a) 所示,在 RXD 和 TXD 引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在 1.2 12MHz之间选择,电容值在 5 30pF 之间选择,电容值的大小可对频率起微调的作用。
16、外部方式的时钟电路如图 ( b) 所示, RXD 接地, TXD 接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于 12MHz 的方波信号。片内时钟发生器把振荡频率两分频, 产生一个两相时钟 P1 和 P2,供单片机使用。 ( a)内部方式时钟电路 ( b)外部方式时钟电路 图 ( 6) 12Y?XTAL100pFC?Cap Semi100pFC?Cap Semi100pFC?Cap Pol3S?SW-PBGND1KR?Res21KR?Res2GNDVCCEA/VPP31XTAL119XTAL218RST/VPD9P3.7/RD17P3.6/WR16P3.2/INT
17、012P3.3/INT113P3.4/T014P3.5/T115P1.0/T1P1.1/T2P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30P3.1/TXD11P3.0/RXD10Vcc40Gnd20AT89S5XAT89S5X智能小车的设计 8 / 29 2.2 复位电路 ( 1)复位操作 复位是单片机的初始化操作。其主要功能是把 PC 初始化为 0000H,
18、使单片机从 0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。 ( 2)复位信号及其产生 RST 引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续 24 个振荡周期 (即二个机器周期 )以上。若使用颇率为 6MHz 的晶振,则复位信号持续时间应超过 4us才能完成复位操作。 产生复位信号的电路逻辑如图 所示: 图 ( 7) 复位信号的电路逻辑图 整个复位电路包括芯片内、外两部分。外部电路产生的复位信号 (RST)送至施密特触发器,再由片内复位电路在每个机器周期的 S5P2 时刻对施密特触发
19、器的输出进行采样,然后才得到内部复位操作所需要的信号。 复位操作有上电自动复位相按键手动复位两种方式。 上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图 1.2.2 (2)( a) 所示。这佯,只要电源 Vcc 的上升时间不超过 1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。 按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与 Vcc 电源接通而实现的,其电路如图 1.2.2 (2)( b) 所示;而按键脉冲复位则是利用RC 微分电路产生的正脉冲来实现的,其电路如 图 1.2.2 (2)( c)所示: ( a)上电复位 ( b)按键电
20、平复位 ( c)按键脉冲复位 图 ( 8) 复位电路 智能小车的设计 9 / 29 上述电路图中的电阻、电容参数适用于 6MHz 晶振,能保证复位信号高电平持续时间大于 2 个机器周期。 本系统的复位电路采用图 ( b)上电复位方式。 3.控制部分 3.1 电机驱动 一个电动小车整体的运行性能,首先取决于它的电源模块和电机驱动模块,电机驱动模块的主要功能:驱动小车轮子转动,使小车行进。 电动小车的驱动系统一般由控制器、功率变换器及电动机三个主要部分组成。 电动小车的驱动不但要求电机驱动系统具有高转矩重量比、宽调速范围、高可靠性,而且电机的转矩 -转速特性受电源功率的影响,这就要求驱动具有尽可能
21、宽的高效率区。 图 ( 9) 电机驱动 硬件接线 图 3.2.温度检测及显示模块 温度检测模块使用 DS18B20,它的主要特点有:独特的单线接口仅需一个端口引脚进行通讯、简单的多点分布应用、无需外部器件、可通过数据线供电、零待机功耗、测温范围主要在 -55C +125C、数字温度计以 9 位数字量的形式反映器件的温度值。 智能小车的设计 10 / 29 DS18B20 通过一个单线接口发送或接收信息,因此在中央微处理器和 DS18B20 之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。因为每个 DS18B20 都有一个独特的片序列号,所以多只 DS
22、18B20 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。 图 ( 10) 温度显示接线图 3.3.遥控 红外接收探头用 HX1838,接收红外信号频率为 38Hz,周期约 26us, 同时能对信号进行放大、检波、整形,得到 TTL 电平的编码信号。 红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的 TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方 便使用。在本系统中我们采用红外一体化接收头 HX1838。 HX1838 黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达 35m。当手拿遥控器对着接收头按任意键时,发光二极管会闪烁,说明红外接收头和遥控器工作都正常;如果发光二极管不闪烁发光,说明红外接收头和遥控器至少有一个损坏。只要确保遥控器工作正常,很容易判断红外接收头的优劣 。 4.流程图 4.1 主程序流程图 VDD3I/O2GND15vDS18B20VCCGND