毕业设计(论文)-单片机步进电机的汽车仪表的设计_第1页
毕业设计(论文)-单片机步进电机的汽车仪表的设计_第2页
毕业设计(论文)-单片机步进电机的汽车仪表的设计_第3页
毕业设计(论文)-单片机步进电机的汽车仪表的设计_第4页
毕业设计(论文)-单片机步进电机的汽车仪表的设计_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 万方科技学院本科毕业设计(论文) 题目 步进电机的汽车仪表的设计 院(系部) 电气与信息工程系 专业名称 电子信息工程 年级班级 07电信1班 学生姓名 指导教师 2011年06月3日摘 要计算机技术和微步进电机技术的不断发展,这给汽车仪表的技术变革带来了可能和机遇。微型步进电机是一种以脉冲信号作为驱动信号的一种特殊电机,用它来驱动仪表指针,与先前的模拟式机芯相比具有体积小、重量轻、指示精确、一致性好、便于控制等特点,特别适合于用单片机控制。而单片机具有集成度高,抗干扰能力强,并具有较强的数据处理能力和接口功能,所有功能由软件实现,应用灵活,系统的扩展、配置较典型、规范,容易构成各种规模的应

2、用系统本文根据目前国内汽车仪表的状况和要求,完成基于STC12C08AD的步进电机式汽车联合仪表的实现,研究通用单片机和步进电机来实现汽车组合仪表的基本功能的解决方案。用单片机驱动步进电机指示汽车在行驶过程中的车速、水温等基本信息。关键词:步进电机、单片机、汽车仪表AbstractComputer technology and micro-stepper motor technology continues to evolve, it changes to the car dashboard technology to bring the possibility and opportunity

3、.Miniature stepper motor is a pulse signal as a drive signal to a special motor, use it to drive the meter pointer, and compared to the previous analog movement with small size, light weight, indicating precise, consistent, and easy control characteristics, particularly suitable for use MCU con

4、trol. The single chip with high integration, anti-jamming ability, and have strong data processing and interface functions, all functions realized by software, application flexibility, system scalability, configuration more typical, standard, easy to scale applications to create various Sy

5、stem  According to the current domestic situation and the requirements of automobile instrument to complete the step motor based STC12C08AD car implementation of the joint instrument to study the generic microcontroller and stepper motors to achieve the basic function of automotive instrum

6、ent cluster solution. Stepper motor with a microcontroller-driven process indicates the car is moving speed, water temperature and other basic information. Keywords:Stepper motors, microcontrollers, automotive instrument目 录1 前 言11.1设计的背景和意义11.2本设计的主要内容和难点12 系统设计方案32.1系统功能和要求

7、32.2系统的组成32.2.1步进电机控制模块42.2.2测速与测温模块52.2.3电源模块72.2.4单片机模块72.2.5LCD显示模块82.2.6串口通信模块93 系统硬件设计113.1单片机模块功能的实现113.2测水温、燃油模块133.3测车速(转速)里程模块143.4LCD显示模块163.5步进电机控制模块183.6串口通信模块193.7单片机电源(供电)模块194系统软件设计214.1系统软件模块划分214.2编程语言的选择214.3主程序的设计224.3.1转速、车速、里程程序的设计244.3.2表头驱动子程序的设254.3.3中断函数274.3.4水温测量子程序的设计294.

8、3.5燃油测量子程序的设计295 系统功能的调试和性能测试315.1系统安装与调试315.2系统性能测试325.3后期需要改进的地方32结束语32参考文献和附录351前 言1.1 设计的背景和意义汽车仪表的发展,根据技术规格可分为四代:第一代汽车仪表是基于机械作用力而工作的机械式仪表,即机械机芯表;第二代汽车仪表的工作原理基于电测原理,即通过各类传感器将被测的非电量转换成电信号加以测量,称之为电气式仪表;第三代为模拟电路电子式;第四代为步进电动机式全数字化汽车仪表从其应用技术手段上看,还是属于电子技术范畴,也属于电子式仪表。目前国内大部分汽车厂商所生产的汽车中使用的仪表仍为传统的动圈式机芯或动

9、磁式机芯仪表,只是在部分高档轿车上才使用了数字仪表系统。因此这一块市场存在着很大的空白。目前的汽车仪表多为模拟式动圈式机芯(线圈连同指针一起转动)或动磁式机芯(磁钢连同指针一起转动)仪表,主要是利用电磁感应原理来实现仪表的指示,指针的回转回零则是利用弹簧游丝的弹性实现。动圈式机芯仪表抗震性能差、过载能力弱、指针易抖动等弱点;而动磁式机芯(主要是十字交叉机芯)仪表虽比较先进,但也存在一致性、通用性差的缺点。同时,这两种机芯的仪表都具有体积大、重量重、生产工艺复杂等缺点,因此,迫切需要一种一致性好、通用性强、可靠性高的驱动机芯来取代。1.2 本设计的主要内容和难点本文根据目前国内汽车仪表的状况和要

10、求,完成基于STC12C5A08AD的步进电机式汽车联合仪表的实际,研究通用单片机和步进电机来实现汽车组合仪表的基本功能的解决方案。用单片机驱动步进电机指示汽车在行驶过程中的车速、转速,水温、油量、背光和各种状态指示灯等信息。主要包括汽车仪表的硬件结构、软件结构以及关键技术的实现。本文中,汽车仪表的关键问题和难点问题是如何消除指针的抖动。 2 系统设计方案(我认为论文中出现“设计方案”这样的词汇不合适,我们现在不是再讨论系统设计,而是系统总体介绍)论文研究的是基于单片机的步进式汽车组合仪表的解决方案。单片机是整个系统核心;微型步进电机是控制对象;与汽车仪表密切相关的一些汽车基本行驶信息(车速、

11、转速、水温、油量),是单片机所要处理的信息。论文中不能使用人称代词另外,你论文中的标点符号很有问题,仔细排查一遍!122.1 系统的组成步进电机式汽车组合仪表系统由单片机模块、测温模块、测速模块、显示模块、步进电机控制模块、串口通信模块、单片机电源和供电模块等部分构成。 系统组成图如图2.1所示:单 片 机 模 块油量信号测量模块水温信号测温模块车速信号滤波和整形测速模块LCD显示步进电机控制模块步进电机电源模块串口通信模块程序写入转速信号滤波和整形测速模块 图2.1 系 统 结 构 图把图调整得美观一些怎么没用系统总体描述呢?上次不是跟你说过了吗?122.12.22.2.1 步进电机控制模块

12、3.? 步进电机的工作原理 在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机的一个最显著特点就是:步距角固定。保持转矩是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近保持转矩。由于步进电机的输出力矩随速度的增大而不断衰减,输

13、出功率也随速度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。一般步进电机的精度为步进角的3-5%,且不累积。汽车仪表中应用的主要是两相步进电机,即步进电机中有两个独立绕组(定子两个相对极上的线圈串联成独立线圈)。步进电机两个绕组的夹角一般有90°和60°两种样式,这里采用的是60°样式的VID2905,内置减速比180:1的齿轮系,输出轴的步进角最小为1/12°,最大转速600°/S。系统选用的虽然为普通电机,但是。功能比较完备,精确度较高,而且性价比高,具有无累积误差、成本低、控制简单等优点。2.2.2 测速与测温模块汽车的

14、基本信号有车速、转速和水温、燃油四个,都是通过传感器采集。其中车速信号和转速信号为频率信号,但不符合标准的脉冲信号,水温信号和燃油信号为电阻信号,是模拟信号,在送到单片机之前要对它们进行处理。1. 车速(转速)信号车速信号和转速信号是通过传感器从汽车发动机相关位置取出,多以非接触方式获取,如用霍尔、电涡流等传感器获取。取出的信号为频率信号,但并非是标准的脉冲频率信号。根据取信号的位置不同,取出的信号有下面几种形式:(1)发动机飞轮齿取信号。信号比较稳定,杂波较少,最小峰值为1.5V ,高温时幅值较大。如图2.5所示。(2) 点火线圈取信号.点火时出现瞬时高峰值,最大值可达300V,紧接着迅速衰

15、减。如图2.6所示。 图 2.2 飞轮信号波形图 图2.3 点火信号波形图(3)发电机取信号。又可以分相线和中性点取信号两种,相线取信号类似方波,但是有尖峰干扰信号,必须作前级滤波处理,如图2.7所示。中性点:直流成分较大,高频成分较多,必须作前级滤波处理。如图2.8所示。 图2.4 相线信号波形图 图 2.5 中性点信号波形图 比较上面三个信号的特点, 结合系统对输入脉冲信号的要求,决定从发动机的飞轮齿取信号。因为它的信号由专门时传感器产生,信号较好,谐波分量少,更稳定,更规则,幅值大于1.8v ,虽不完全是较好的频率信号,但很接近于正弦波,只要经过滤波、整形等处理,很容易得到系统所要求的脉

16、冲波形。2.水温信号通过传感器采集来的水温属于电阻信号,要进行滤波处理和A/D转换才能送入单片机.最后通过单片机处理,显示在LCD液晶屏上。3.燃油信号通过传感器采集来的燃油属于电阻信号,要进行滤波处理和A/D转换才能送入单片机.最后通过单片机处理,显示在LCD液晶屏上。2.2.3 电源模块 系统的电路由于有模拟电路和数字电路两部分,电源的要求也会不同。通常模拟电路的电源为+12V.要求不太高,经过一般稳压即可;数字电路的电源则不同,一般电路为+9V,可以用集成稳压电源实现,CPU则为+5V,而且要求相当严格,可以采用开关稳压电源实现,尤其是脉宽调制型开关稳压器件组成开关的开关电源,具有体积小

17、效率高、外围元件少、应用简单、输出电压可调、误差小、输出电流大、转换速率快、保护功能强等特点,特别适合于给单片机供电。本系统中用三端稳压(7805)IC来组成稳压电源所需要的外围器件极少,IC型号后面的数字代表该三端稳压IC电路的输出电压,7805表示输出电压为+5V,电路内部还有过流、过热和调整管的保护电路,使用起来方便、可靠,价格便宜2.2.4 单片机模块单片机模块是整个系统的核心,完成以下功能:输入数据的采集转换并驱动表头、驱动液晶显示里程、按键处理、系统标定等所有功能。根据系统的要求和现实的考虑,选用宏晶公司生产的STC12C5A08AD通用单片机。 STC12C5A08AD是由宏晶公

18、司生产的和Atmel公司生产的AT89C52性能相当的一种8K字节可编程可擦除只读存储器(FPEROM-FalsbProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS位微处理器,俗称单片机。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和可编程存储器组合在单个芯片中,它是一种高效微控制器,为很多嵌式控制系统提供了一种灵活性高且价廉的方案。和Intel公司的MCS-51系列单片机相兼容,是广泛应用的单片机之一。 图 2.6 STC12C5A08AD 的结构图2.2.5 LC

19、D显示模块由单片机控制HT1621B芯片驱动LCD显示燃油、水温、里程小计和总里程, HT1621是一个128(32*4)点LCD驱动器,它可有软件配置成1/2或1/3的LCd驱动器偏压和2、3或4个公共端口,这一特性使 HT1621 适用于多种 LCD 应用场合, LCD 驱动时钟有系统时钟分频产生, 静态显示内存 RAM 以 (32 *4) 位的格式储存所显示的数据,RAM 的数据直接映象LCD驱动器,可以用 READ、WRITE 和 READ-MODIFY-WRITE 命令访问 HT1621可以用软件设置两种模式的命令,可以配置HT1621和传送LCD所显示的数据,HT1621的配置模式

20、称为命令模式,命令模式类型码为100,命令模式包括一个系统配置命令,一个系统频率选择命令,一个LCD配置命令,一个声音频率选择命令,一个定时器/WDT设置命令和一个操作命令,数据模式包括 READ WRITE和READ-MODIFY-WRITE操作, 操作 模式 类型码 READ 数 据 110 WRITE 数 据 101 READ-MODIFY-RITE 数 据 101 COMMAND 命 令 100模式命令应在数据和命令传送前运行,如果执行连续的命令,命令模式代码即100,将被忽略,当系统在不连续命令模式或不连续地址数据模式下,管脚/CS 应设为1,而且先前的操作模式将复位,当管脚/CS返

21、回“0”时,新的操作模式类型码应先运行。2.2.6 串口通信模块 单片机的串口通信模块主要是用于扩展单片机的功能,使其功能更加强大,操作更加方便,在有串口通信模块的情况下,可以实现在电脑上直接对整个系统进行操作,如监控该系统,直接获取相关信息到电脑上,如车速,温度;也可以在计算上直接对该系统单片机进行读写控制,如可以直接写入本设计需要的程序,直接控制直流电机转速,直接控制与测温相关的温度调节。串口通信模块最主要的功能是用于后续功能扩展,以使单片机具备更多的功能。本系统中用的是SPI接口模式的HT93LC66芯片,SPI接口需要两条控制线(CS和SCLK)和两条数据线(DIN/SDI和DOUT/

22、SDO)。在这里从从设备的角度出发说明三线接口的数据线。DIN是从设备的数据输入线,DOUT是从设备的数据读出线。这里我们使用CS,SCLK,DIN和DOUT来定义三线接口中的各条线。 下图为HT93LC66与单片机连接图 图2.7 HT93LC66接线图3 系统硬件设计1233.1 单片机模块功能的实现 采用STC12C5A08AD单片机,实现单片机模块各项功能。单片机模块接线如图3.1所示。 图3.1 单 片 机 模 块单片机模块管脚连接简介:对从测温传感器、测油量传感器、测车速传感器和测转速传感器四个信号输入的数据进行处理。车速、转速和里程,FP2OUT、ZHSI、CHSI分别是里程信号

23、输入、转速输入和车速输入,送入单片机处理。水温、燃油模块,OWaterled、ORYled、QY1、QY2、SLPW和SLPR分别是水温报警、燃油报警、水温A/D转换输入、燃油A/D转换输入、水温输入信号、燃油输入信号。 串口通信模块,CS2L、SCK2L和SIO2L三个管脚连接HT93LC66芯片与单片机,扩展单片机的功能,驱动步进电机来驱动表头,使仪表能指示车速、转速。CW、FA、FB三个管脚连接的是步进电机驱动模块芯片STI6608,用于单片机控制STI6608进而控制步进电机来指示车速和转速。编程部分,RXD、TXD用于单片机和计算机之间的通信。从测温传感器、测油量传感器、测速传感器测

24、转速传感器等几个信号中获得的数据经单片机处理后,送入HT1621芯片显示数据,DATA、WR、CS是HT1621与单片机通信的接口,控制液晶屏显示。 KEY是复位按键,用于系统的复位和显示内容的切换。3.2 测水温、燃油模块 图3.2 燃 油 部 分 图3.3 水 温 部 分燃油、水温是在液晶屏上模拟显示的,水温、燃油的输入信号是电阻信号,经过电阻的分压转换为电压信号,经过限幅滤波送入A/D转换器,得到数字量送入单片机处理,最后在液晶屏上模拟显示水温和油量,3.3 测车速(转速)里程模块 图3.4 转 速 部 分 图3.5 车 速 里 程 表 部 分 图3.6 车速输出部分转速、车速两路频率信

25、号通过限幅、滤波,再经过三极管电子开关的整形变成符合要求的脉冲信号送CPU计数器,进行数据处理。3.4 LCD显示模块LCD的显示主要通过HT1621芯片显示数据的,单片机把要显示的数据送到HT1621B的RAM内,通过单片机的读写控制要显示的内容, 图3.7 L C D 液晶屏部分 图3.8 H T1621 控制芯片3.5 步进电机控制模块采用STI6008芯片控制步进电机的各项功能,模块接线图如下图 图3.9 步进电机 图3.10 STI6608 芯片3.6 串口通信模块采用MAX232A来实现串口通信模块各功能,用以向单片机写入程序。串口通信模块接线图如图所示。 图3.11串 口 通 信

26、 部 分3.7 单片机电源(供电)模块采用L7805芯片实现单片机供电系统模块各项功能,用以向单片机中各其它模块提供电源。模块接线图如下图所示。 图3.12 电 源 部 分4系统软件设计本系统的软件功能主要是完成数据的采集与转换、步进电机的驱动、数据的存储、数据的显示、系统的复位等等,它包含主程序和若干个子程序。如何使电机平滑地转动(尤其是在车速和转速较高时)是设计重点。要保证这一点,需要做好两方面的工作:一是信号的采样频率的选定;二是表头驱动程序的合理设计。在编程过程中采用模块化的编程技术,对所有项目分模块进行编程。12344.1 系统软件模块划分根据系统任务分析,程序分为系统初始化、中断处

27、理、步进电机驱动、车速转速测量、水温、燃油测量、串行通信、显示等模块。初始化模块。初始化模块用于系统程序运行之前完成系统功能参数的初始化。中断处理模块。获取程序所需的各种参数。车速里程测量模块。根据入口参数完成车速里程的计算、转换、存储。转速测量模块。根据入口参数完成转速的计算、转换。水温测量模块。根据入口参数完成水温的计算、转换。燃油测量模块。根据入口参数完成水温的计算、转换。串行通信模块。根据入口参数完成数据段的发送。4.2 编程语言的选择现在单片机的编程语言主要有三种:汇编语言、C语言和PLM语言。其中C语言和PLM语言属于高级语言,它们的优点是本身具有丰富的库函数和数据类型封装,程序编

28、制简单,可读性强,缺点是程序生成机器代码的效率低。汇编语言则相反。本系统既对机器代码的效率有较高的要求,又对数据的计算和处理要求也较高。因此,系统软件程序C语言的形式编程。4.3 主程序的设计系统的软件是由一个主程序和若干子程序构成,主程序的主要功能是设定程序执行过程中用到的相关变量,分配寄存器,对所需要的参数进行初始化,然后按照要求在恰当的时间调用相应的处理模块和子程序,来对系统进行处理。主程序具体简述如下:定义系统运行过程中所需的变量;分配硬件系统所提供的相关资源,如寄存器、ROM以及中断资源和堆栈:完成系统的自检;在程序的运行过程中,按要求依次完成对系统各模块的调用,并将结果提供给用户;

29、在各模块的调用过程中,实现调用过程的现场保护,以确保程序正确执行;保存系统运行过程中的必要参数。下图为主程序流程图图4.1 主函数流程图12344.14.24.34.3.1 转速、车速、里程程序的设计第四代车速里程表无论选择哪种传感器它们输出的信号都要是脉冲信号,从而使得非接触式转速传感器得以迅速发展。也只有选择产生脉冲信号的传感器才能满足本课题的要求。故本系统选用霍尔式转速传感器。霍尔探头组件安装在变速箱输出轴上,里程计数、车速计时脉冲产生的工作原理如下图所示。八个磁钢与变速箱输出轴同步旋转。霍尔探头固定在变速箱壳体上静止不动,当输出轴上某只磁钢转动到霍尔探头对应位置时,霍尔探头中的霍尔敏感

30、器件受到磁钢磁场作用,霍尔探头输出一个低电平,当没有磁钢与霍尔探头对准时,霍尔探头不再受到磁场作用,输出高电平。输出轴转动一周,霍尔探头有八个方波输出。如果以速比为1:540的车型为例,汽车行驶一公里,则霍尔传感器发出的脉冲数共为8×5404320个。步进电机式车速里程表机芯的转动和LCD中里程的显示都是受控于霍尔探头输出的方波个数。记录4320个脉冲表示汽车行驶1公里,记录单个脉冲的周期算出汽车行驶的速度,具体应用将在相应章节中介绍。车速里程表的速比表示的是:车轮转轴在汽车行驶一公里时所转过的转数。步进电机式车速里程表采用的是霍尔式转速传感器。这种车速里程表转轴每转一圈,霍尔传感器

31、将感应发出八个脉冲。现在以速比为1:540的车型为例,汽车行驶一公里,则霍尔传感器发出的脉冲数共为8×5404320个,也就是说,每个脉冲代表了1/4320公里的路程。将这些脉冲信号输入给单片机的定时器/计数器,利用计数器的计数功能,使之计到432个脉冲产生一个中断,中断后进入计数器中断子程序,在这个中断子程序中,实现对小计里程的累计和总里程的累加。若累加了总里程则把累加的总里程数送到E2PROM芯片HT93LC66中保存,并从芯片HT93LC66中调出送给LCD显示。从以上章节,我们已经知道LCD分别显示出小计里程和总里程,其中小计里程进位时,也同时累计至总计里程。小计里程显示为0

32、00.0999.9km,总里程液晶显示为000000999999km。液晶里程显示屏见图2-5所示,其中上一排4位显示小鸡里程,且小计里程的最后一位为小数。下一排6位显示总里程,器件子地址的传送顺序是从上排左首至右结束,接着再从下排右首开始,至左首结束,上下两排都是左首为高位。小计里程显示的复位是通过外部中断Key来实现的,小计里程以0.1km为最低显示数字,停车关掉电门后不保存,总里程显示数值保存在E2PROM中,从而掉电不会丢失总里程数值,当打开电门,即刻显示上次总里程累计数。下次行车总里程继续累计相加,总里程累计超过显示范围999999km时,不再响应里程数的变化,而一直显示999999

33、 km。小计里程超过显示范围999.9km时即刻清零,并从000.0开始重新计数。4.3.2 表头驱动子程序的设 步进电机平滑的正反转控制是设计的重点。当车速转换后的信号频率增大时,电机就向顺时针方向运动,这是正转;当车速和转速转换后的信号频率减小时,电机就向逆时针方向运动,这是反转;而当车速恒定时,指针也不发生改变。在进行程序设计时,要设定各步进电机的驱动间隔定时器和计数器,设定各表指针需要达到的角度位置和实际角度位置,均为1/12度,即一个微步。 首先判断指针是否需要走动,如果否,直接跳到结束,等待新一轮判断,如果判断结果为需要转动,继续判断上一步是正向还是反向, 结果为正向运动,进入正向

34、运动模块,继续判断当前位置与目标位置是否一致。如果目标位置和当前位置一致,则表明指针已到达指定位置,此时进入防抖模块,并将Move_con置位1,如果目标位置和当前位置不一致,则要进一步目标位置是否大于当前位置,如果目标位置小于当前位置,则表明在步进电机的正向运动中检测到反向运动请求,此时进入反向运动需求相应模块,逐渐减小步进电机转速,最后改变步进电机运行方向标志, 如果目标位置大于当前位置,则表示运动需求仍为正向,此时需要判断目标位置和当前位置只差的大小,如果位置差很大,而步进电机转速没有到达最大,则提速,如果转速已达到最大,则保持该转速,如果位置差小于某一速度,则进入减速状态,4.3.3

35、中断函数首先判断指针是否转动,如果是,表明上次转动尚未完成,直接跳出中断,等待下一次中断。如果判定结果为不要转动,继续判断上一步是正向还是反向运动。若判定结果为正向,则继续进行下一步判断:目标位置和当前位置是否一致。结果为反向择进入反向运动中断处理模块,流程结果类似。判断转动一步标志位是否为1.若为1.依据当前位置从PWM数组里赋新值给PWM寄存器,步进电机行动一步,当前位置进一步(若为反向择后退一步)并清零转动一步标志位。这样下一次进入中断时,若转动一步标志位没有在主循环里重新赋值为1,步进电机就不会再次转动。每次进入中断,当Move_con不为0时,Move_con减1,直至减为0为止。

36、4.3.4 水温测量子程序的设计水温属于电阻信号,通过测量水温传感器电阻信号,然后经过A/D转换后的数字信号直接通过MCU处理,最后模拟显示在LCD上。测温子程序函数流程图: 4.3.5 燃油测量子程序的设计和水温信号一样,燃油也属于电阻信号,通过测量燃油传感器电阻信号,然后经过A/D转换后的数字信号直接通过MCU处理,最后模拟显示在LCD上。测油量子程序函数流程图: 初始化显示空格读取命令读取燃油信号 发燃油转换命令 燃油计算处理模拟显示 5 系统功能的调试和性能测试系统在完成了上述硬件及软件设计后,做成样品,并对整个系统进行设计和相应的功能测试。123455.1 系统安装与调试系统调试包括

37、硬件和软件两个方面的调试。由于本设计包括2个以上的模块,因此为了防止一次性做完后出现大问题的情况,系统调试主要是采取了分模块进行调试的方法,调试一块,成功一块,才去调试下一个模块。硬件调试方面:硬件方面主要的问题:由于是分模块进行硬件焊接、调试,所以避免了在最后拼接时出现严重问题。硬件安装调试中出现的问题主要是焊点、芯片管脚焊错的问题。一般情况下,主要避免犯以上两个错误,硬件都能安装成功。在安装步进电机模块时,出现过主要的问题是刚开始把步进电机关系到相位的4个焊点焊错,导致步进电机无法转动。后来很快就发现了问题,重新焊脚,步进电机便能正常地运行。液晶屏模块也是是否虚焊,连焊 也是硬件调试中经常

38、遇见的问题。软件调试方面:调试工具: Keil uVision 3 通过将单片机系统和电脑相连接,将程序编译后的hex文件烧写至单片机系统。在编写程序的过程中, 主要遇到了一些子程序的具体算法的实现,这其中涉及到算法的稳定性和对其它模块的影响 ,另一个问题就是各个模块的的协同工作,上述两个问题是在软件调试遇到的最大的问题,最终通过不断的调试和请教,终于仪表设计要求的各项功能5.2 系统性能测试本设计测车速、转速以及温度,燃油几个重要信号。根据车速、转速和水温、燃油两路信号的特点和参数,用直流电机来模拟车速信号,用可调电阻来作为水温燃油信号输入,输入相应接口,不断改变相关参数的取值,观察LCD显

39、示和车速、转速表头的指针变化及在表盘的位置。另一方面,改变软件中采样周期,观察指针的转动和抖动情况。两种参数的改变测试,测试结果和参照车型仪表的测试指标完全一致,证明了论文中系统的方案和技术理论的正确性。经过以上系统的功能测试表明,论文所研究设计的基于单片机的步进式汽车组合仪表性能表现基本符合要求,达到技术要求,不但何积小、重量轻、生产检测工艺简单,而且精度高,可靠性好、抗干扰能力强、兼容性高、通用性强、开发成本低、开发周期短,非常适合规模化生产。5.3 后期需要改进的地方由于本人水平有限,此次设计出来的基于单片机的汽车组合仪表是比较简单,比较初级的,功能不是很完善,蓄电池量显示,方向灯、倒车

40、雷达等虽然在硬件系统中,但是并没有把这些功能用软件实现控制它们。这些地方需要极大改进,相信在以后的学习中,能够更加深入的了解到有关基于单片机的汽车仪表方面的知识和技术,使该设计更加完善,更加人性化,更加直观。结束语 经过几年的学习和研究,此次的设计主要是完成了以下几个方面的工作;数字式步进电机组合仪表总体方案设计;仪表系统的硬件设计;仪表系统的软件设计;系统的功能测试。本文设计的是基于单片机的步进电机式汽车组合仪表,用单片机技技术应用于传统汽车仪表中,实现了传统汽车仪表的基本功能,用步进电机带动表盘指针实时指示汽车在行驶中的车速和转速信号;用LCD模拟显示汽车水温和燃油信号。通过对仪表系统功能

41、测试,系统各方面性能表现良好,基本达到实际要求。此次设计中主要是做了以下几件事:1.以STC12C5A08AD单片机为核心完成了系统设计,在进行总体设计时,对系统的各个组成部分进行了详细的分析和介绍,尤其是对能给系统性能的车载输入信号的性质特征进行了细致的分析,为后面系统的硬件设计打下了基础。2.在系统的硬件设计过程中,为了使测量准备、表头指针转动平滑无抖动和增强系统的抗干扰性,对车载信号中的车速信号进行了整形和滤波。3.在系统的软件设计过程中,对步进电机的驱动程序作了详细的设计,系统设计的关键是如何使表头指针能平滑无抖动地转动。设计中,采取设定步进电机的驱动间隔定时器和计数器的方法来减小指针

42、抖动。4.对仪表系统功能进行了反复地模拟测试,通过改变温度信号、燃油信号和直流电机转动速度,不断进行测试,通过测试,系统各方面性能表现良好,基本达到技术要求,从而证明了系统方案的可行性和实用性。尽管此次设计出了较为简单的基于单片机系统的汽车仪表 ,并且达到了基本目标,但仍然离实际应用的标准非常远,许多实际汽车仪表中的功能都没有集成进这个系统,最重要的车速显示非常粗糙,只是显示了范围,没有显示精确的车速,这是一个极大需要改进的地方。 我会在以后的学习中更加努力,在这个方面进行更加深入的学习,继续研究基于单片机系统的汽车仪表方面的内容,完善这个系统,使其功能更加强大,更加易用,更加人性化。 此篇论

43、文是在我的导师张素妍老师的悉心指导下完成的,张老师在选题、研究方案的制定、研究进度、论文撰写等多方面给予了耐心细致的指导,我的每一点进步无不倾注着导师的心血。在论文完成之际,我谨向张素妍老师及其帮助过我的所有老师表示衷心的感谢,感谢她给予我的帮助。最后,感谢我的父母和家人,感谢他们对我工作学习的理解与支持以及生活上无微不至的关怀! 尚 赛 二零一一年六月于学校参考文献和附录1杨忠敏.汽车仪表的发展现状.汽车电器,2004,(4):1-32许德章.现代汽车仪表技术与发展趋势.汽车电器,2002,(5):127-1293潘旭峰.现代汽车电子技术北京:北京理工大学出版社,2004:229-2324M

44、izushima. Development of Liqud Crystal Display Module for Automobile. ShapuGiho/ Sharp Technical.1998,(97):73-765潘旭峰.现代汽车电子技术北京:北京理工大学出版社,1995:229-2326李潮青.单片机原理及接口技术.北京:北京航空航天大学出版社,2009:56-707宋培义,刘立新.单片机原理、接口技术及应用.北京:中国广播电视出版社, 1991,( 1):73- 788 求是科技.51系列单片机设计实例,2006.49谭浩强.C程序设计(第二版)北京:清华大学出版社,2000:

45、75-8010杨文霞,赵春雷.单片机AT90S2313在汽车里程表中的应用.电子技术,2001,(3):35-3811Tim Bour, Stan Gage. Integrated LED Display Technology for Automobiles.Electronic Instrument Panel Displays. Paper97 0192:127-13412徐雁.单片机测量频率的两种方法.电测与仪表,2005,(3):22-2513王柏林.单片机系统设计的误区与对策.电子技术应用,2002;28(2):22-2514Craig Szydiowski.A Gateway fo

46、r CAN Specification 2.o Non-Passive Divices. Automotive Micrio-controllers.Paper 930005:201-20915FumihikoAndoh,Hiroshi Shimamoto,and Yoshihiro Fujita.A Digital Pixel Image Sensor for Real-Time Readout. IEEE Transactions on Electron Devices/the Instituteof Electrical and Electronics Engineers,2000,47

47、(11):21 23-2127表头显示程序:#include<STC12x5A60S2.H>#include<intrins.h>#defineuchar unsigned char#defineuint unsigned inttypedef unsigned char INT8U;typedef unsigned int INT16U;#define ENABLE_ISP 0x87 uint Csplv3=0,Zsplv3=0;uint Csplvn = 0,Zsplvn = 0;uint Csplvo = 0, Zsplvo = 0;uint zstc,cstc,

48、zstn,zstc,swtn,swtc,rytn,rytc,cstn;uint stepcsn,stepcso,stepzsn,stepzso,stepswn,stepswo,stepryn,stepryo;uchar tempmil1=0,tempmil2=0,totalmil1=0,totalmil2=0,totalmil3=0,totalmilx=0;uchar Ryvalue9=0,Swvalue9=0;uchar Ryvaluen=0, Swvaluen=0;ucharTempseg10=0xbf,0x07,0x7d,0x5f,0xc7,0xdb,0xfb,0x0f,0xff,0xd

49、f;ucharTotalp7=0x00,0x12,0x10,0x0e,0x0c,0x0a,0x08;/define step moto drive IC-sti6608/*sbitCSFD = P00;/sbit ZSFC = P01;sbitSWFB = P03;/sbitRYFA = P13;sbitRYFA = P10;sbit CCW = P02;*/sbit FB = P00;sbit CW = P01;sbit FA = P02;sbit OWaterled = P25;sbit ORYled = P03;bit Cszerof = 0;bit Zszerof = 0;bit Ry

50、flag = 0;bit Swflag = 0;bit Csoverf = 0;bit Zsoverf = 0;bit Adsfirstf = 0;bit Adrfirstf = 0;bit Mflag = 0;bit Totalzero = 0;bit Keyflag = 0;bit Keyflag1 = 0;bit Keyzhflag = 0; union union_temp16 INT8U un_temp82; INT16U un_temp16;my_unTemp16;INT8U Byte_Read(INT16U add); /读一字节,调用前需打开IAP功能,void Byte_Program(INT16U add,INT8U ch); /字节编程,调用前需打开IAP功能,void Sector_Erase(INT16U add); /擦除扇区,void IAP_Disable(); /关闭IAP功能,void DelayW(uint x) int i; while(x->0) for(i=0;i<6;i+); void Disptemp() /uchar i; i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论