基于51单片机的车辆自动换挡控制系统
- 格式:doc
- 大小:193.50 KB
- 文档页数:6
基于51单片机的车辆自动换挡控制系统
车辆自动换挡控制系统仿真
前面的4个传感器输入全部用0-5v电压实现
其中油门传感器将0-5v电压转换为0-0.99
离合传感器将0-5v转换为0-2.5v为0可以换挡,2.5-5为1不能换挡
档位传感器将0-5v转换为0-0.5v为1档、0.5-1v为2档、1-1.5v为3档、1.5-2v为4档、2.5-3v为5档、3-3.5v为6档,其他为0档
发动机传感器将0-5v转换为0-24
换挡规则为:
发动机传感器如下且离合为0 挡位
4.62 6.78 1-2 6.78 9.67 2-3
9.67 14.73 3-4
14.73 21.07 4-5
21.07 23.11 5-6
10.62 21.07 6-5
10.02 10.62 5-4
5.82 10.02 4-3
4.15 5.82 3-2
0 4.15 2-1
液晶显示部分第一行中“YM”“LH”“DW”“ZS”“SDW”分别表示油门、离合、档位、发动机转速和当前真实档位的提示符号,对应的下面为其状态,其中LH下面的两个数字中,第一个代表原始状态,第二个代表换挡后状态,DW下面的两个数字,第一个为原始档位,第二个为转换后档位,SDW先忙对应的数字为换挡时的转换过程。
上图中dac0832为模数转换芯片
DAC0832芯片:
DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832的主要特性参数如下:
* 分辨率为8位;
* 电流稳定时间1us;
* 可单缓冲、双缓冲或直接数字输入;
* 只需在满量程下调整其线性度;
* 单一电源供电(+5V~+15V);
* 低功耗,20mW。
DAC0832结构:
* D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
* ILE:数据锁存允许控制信号输入线,高电平有效;
* CS:片选信号输入线(选通数据锁存器),低电平有效;
* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
* IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;
* IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
* Vcc:电源输入端,Vcc的范围为+5V~+15V;
* VREF:基准电压输入线,VREF的范围为-10V~+10V;
* AGND:模拟信号地 * DGND:数字信号地
DAC0832的工作方式:
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料,D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。 dac0832应用电路图 dac0832应用电路图: DAC0832引脚功能说明: DI0~DI7:数据输入线,TLL电平。 ILE:数据锁存允许控制信号输入线,高电平有效。 CS:片选信号输入线,低电平有效。 WR1:为输入寄存器的写选通信号。 XFER:数据传送控制信号输入线,低电平有效。 WR2:为DAC寄存器写选通输入线。 Iout1:电流输出线。当输入全为1时Iout1最大。 Iout2: 电流输出线。其值与Iout1之和为一常数。 Rfb:反馈信号输入线,芯片内部有反馈电阻.
Vcc:电源输入线 (+5v~+15v) Vref:基准电压输入线 (-10v~+10v) AGND:模拟地,摸拟信号和基准电源的参考地. DGND:数字地,两种地线在基准电源处共地比较好.
采用ADC0809实现A/D转换。 (一) D/A转换器DAC0832DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟量V0为:
由上式可见,输出的模拟量 与输入的数字量( ) 成正比,这就实现了从数字量到模拟量的转换。 一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。图4-83是DAC0832的逻辑框图和引脚排列。 D0~D7:数字信号输入端。 ILE:输入寄存器允许,高电平有效。
CS:片选信号,低电平有效。 WR1:写信号1,低电平有效。 XFER:传送控制信号,低电平有效。 WR2:写信号2,低电平有效。 IOUT1、IOUT2:DAC电流输出端。 Rfb:是集成在片内的外接运放的反馈电阻。 Vref:基准电压(-10~10V)。
Vcc:是源电压(+5~+15V)。 AGND:模拟地 NGND:数字地,可与AGND接在一起使用。 DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。实验线路如图4-84所示。 IN0~IN7:8路模拟信号输入端。
A1、A2、A0 :地址输入端。ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。 START:启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。 EOC:转换结束输出信号(转换接受标志),高电平有效。 OE:输入允许信号,高电平有效。 CLOCK(CP):时钟信号输入端,外接时钟频率一般为640kHz。 Vcc:+5V单电源供电。 、 Vref(+),Vref(-):基准电压的正极、负极。一般Vref(+)接+5V电源,Vref(-)接地。 D7~D0:数字信号输出端。 由A2、A1、A0三地址输入端选通8路模拟信号中的任何一路进行A/D转换。
用dac0832用于控制发动机油缸,将控制量通过p2传出用于控制发动机油缸
AD转换器运用TLC1543,其工作过程分为两个周期:访问周期和采样周期。工作状态由CS使能或禁止,工作时CS必须置低电平。CS为高电平时,I/O CLOCK、ADDRESS被禁止,同时DATA OUT为高阻状态。当CPU使CS变低时,TLC1543开始数据转换,I/O CLOCK、ADDRESS使能,DATA OUT脱离高阻状态。随后,CPU向ADDRESS提供4位通道地址,控制14个模拟通道选择器从11个外部模拟输入和3个内部自测电压中选通1 路送到采样保持电路。同时,I/O CLOCK输入时钟时序,CPU从DATA OUT 端接收前一次A/D转换结果。I/O CLOCK从CPU 接收10时钟长度的时钟序列。前4个时钟用4位地址从ADDRESS端装载地址寄存器,选择所需的模拟通道,后6个时钟对模拟输入的采样提供控制时序。模拟输入的采样起始于第4个I/O CLOCK下降沿,而采样一直持续6个I/O CLOCK周期,并一直保持到第10个I/O CLOCK下降沿。转换过程中,CS的下降沿使DATA OUT引脚脱离高阻状态并起动一次I/O CLOCK工作过程。CS上升沿终止这个过程并在规定的延迟时间内使DATA OUT引脚返回到高阻状态,经过两个系统时钟周期后禁止I/O CLOCK和ADDRESS端。
TLC1543三个控制输入端CS、I/O CLOCK、ADDRESS和一个数据输出端DATA OUT遵循串行外设接口SPI协议,要求微处理器具有SPI口。但大多数单片机均未内置SPI口(如目前国内广泛采用的MCS52和PIC列单片机),需通过软件模拟SPI协议以便和TLC1543接口。TLC 1543芯片的三个输入端和一个输出端与52 系列单片机的I/O口可直接连接.
用tlc1543主要用于接受4个传感器的信号,用于后面的控制
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。TC1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码。
本设计仿真时使用了Proteus仿真1602,即LM016L,依照1602数据手册说明可能遇到困难,可以尝试采用以下方案解决:数据手册中可能介绍1602内部D0~D7已有上拉,可以使用P0口直接驱动。在Proteus里LM016L内部可能没有,应该人为加上拉电阻。建议不要使用排阻,使用普通电阻一个一个拉应该可以解决问题,本设计在数据线上加了10K上拉电阻,效果良好。其它参数LM016L和1602完全相同。
1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中各管脚如表三所示:
表三:1602各管脚图
引脚 符号 功能说明
1 VSS 一般接地
2 VDD 接电源(+5V)
3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
4 RS RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
5 R/W R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
6 E E(或EN)端为使能(enable)端,下降沿使能。
7 DB0 低4位三态、 双向数据总线 0位(最低位)
8 DB1 低4位三态、 双向数据总线 1位