首页 > 范文大全 > 正文

基于AT89C51的车用数字仪表的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于AT89C51的车用数字仪表的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:介绍以AT89C51为核心,运用数模转换模块、波形发生器等器件实现LED数码管显示速度、温度、油量、里程。该系统采用数码管显示,方便直观且显示稳定。此外,系统采取多种硬件与软件抗干扰措施,可以有效地排除各种环境干扰,提高系统稳定性。

关键词:AT89C51 波形发生器 ADC0832 车用数字仪表

中图分类号:TP368.121 文献标识码:A 文章编号:1007-3973(2013)011-119-02

1 引言

车辆仪表是反应车辆各种指标的有效工具,是联系驾驶员和车辆的重要纽带。它提供给驾驶员一个信息视图,在行车过程中有着举足轻重的地位,是行车安全的重要保障。随着科学技术特别是电子技术发展,用微处理器控制的电子仪表越来越流行。但是国内现在的汽车仪表现在仍然比较落后,数字化水平比较低,一些仪表还没有实现电子化,另外车内的仪表数量仍然比较多,体积大,影响美观和使用。所以,以AT89C51为核心的车内电子仪表系统的设计就变得很必要了,它能够有效的解决这些问题。(1)它能有效的反应车的各个指标,并且能有效的预防电子干扰,实时准确的反应给驾驶员;(2)在体积数量上面,它都只占用少的空间,能够直接美观的进行呈现。除此之外,还有成本低,寿命高等优点。

2 系统的工作原理和功能框图

图1给出了基于at89c51单片机的车用数字仪表系统的框图。电子仪表的设计方案如下:控制器件AT89C51输入传感器信号并对脉冲信号进行处理测出车速以及车辆行驶的里程数,通过滑动变阻器的电压信息计算出油量信息,与温度信号一起送数码管显示模块进行数码显示并存储里程信息。所以系统显示部分分为四个:车速、里程、温度、油量。四个显示部分功能部分分别独立设计。

整个系统主要包括:AT89C51控制模块、数码管显示模块、ADC0832数模转换模块、波形发生器。其中AT89C51主要完成硬件的控制以及信息处理功能;数模转化模块完成温度信号的转换;波形发生器模拟汽车行驶的全脉冲信号;数码管显示模块完成字符/数字转换、驱动及显示功能。

3 硬件设计

本文介绍的系统硬件部分由下面部分组成:主控芯片ATC51单片机、信号发生器、数码显示管、滑动变阻器、D/A转换器、油量传感器与温度传感器。它们的作用以及构成由下。其中,单片机是核心地位,数码管是最终仪表的显示部分。其他部分为中间的功能实现部分,为基础。在接口方面,单片机的接口分别被四个数码管部分占据,此外还有D/A转换器,电源复位电路。D/A转换器与滑动变阻器相连,二者负责信号的输入。里程和车速信号由波形发生器负责发送输入。波形发生器也占用一个接口。

3.1 主控制模块

CPU主控制模块采用AT89C51完成波形发生器的信号、变阻信号的采集,以及里程信号、速度信号、温度信号的显示。AT89C51是ATMEL公司生产的比较经典的单片机芯片,工作稳定、能耗低、抗电磁干扰性强。AT89C51是一个高性价比的车用电子仪表解决方案。

3.2 信号发生器

本系统采用的信号发生器,输出地是连续方波,波形的周期T由一个周期的输出点数N和点之间的时间间隔t确定,T=N*t,频率就为1/T;在输出点数一定时,由点之间的时间间隔(决定DA输出频率)调整波形频率,上面的公式估计就是调整DA输出频率的。

3.3 D/A转换器

DAC0832是双列直插式8位D/A转换器,能完成模拟量输入到数字量输出地转换,D0,D1为数据输出端,CLK为信号输出端,CH0,CH1为电阻信号输入端,VCC为芯片供电电压。

3.4 油量传感器与温度传感器

温度和油量的变化都是通过滑动变阻器来实现的。通过改变滑动变阻器的划片,两端的电压就会发生变化,从而油量和温度就会发生变化,变化之间的量化关系具体通过实验取的。电压变化的信号通过传入ADC0832中进行D/A转换,那样51单片机接收的信号就会改变,通过调用显示模块就可以显示出来。

3.5 显示模块

系统采用了4块位数不等的7段LED液晶管,分别显示车速,里程、车内温度、油量。显示的原理是高低电平驱动发光二极管LED,本系统由于显示的是油量和温度,采用两个液晶管,如果要把其他的车速,里程显示出来,则应该采用CRT液晶显示管,那么在一个显示屏上面就可以把所有的信息显示出来,不需要采用多个数码管,一则降低成本;二则降低空间占用并且美观直接一些。

4 程序设计

程序的设计是按照车用仪表的工作环境具体实现的。程序的流程是这样的:系统上电启动,单片机开始从0000H开始运行。单片机通过输入波形发生器的方波开始打开中断,并且计算每秒中的波形。通过滑动变阻器改变的电压信号经过模数转化后,单片机读取这些信号,调用显示子程序显示出来。

软件部分主要完成信号的处理及控制功能等。本系统的软件设计主要包括了系统主程序、数据采集与 A/D 转换子程序、中断子程序、LCD 及 LED 指示灯显示子程序等。

编程环境采用的是KEIL软件,编程语言为C语言。因为C语言有模块化很强的优点,对于本系统的设计很有帮助。

4.1 主程序设计

主程序主要实现对系统的初始化以及对各个子程序的调用。系统初始化主要包括对液晶显示器、显示缓冲值、中断及寄存器标志值的初始化等。系统上电之后初始化,然后调用数据采集与A/D转化子程序,处理完之后进行调用数据处理子程序,如果有异常就调用报警子程序,无异常则调用显示子程序。

4.2 数据采集及转换子程序设计

此子程序根据由模拟通道输入的相应模拟信号进行采样、量化并进行相应的运算处理,采样和量化工作由传感器自行完成,主程序则直接调用结果。最后将相应信号的数值返回主程序。

4.3 中断子程序

本系统的中断源主要包括波形发生器产生的连续方波脉冲、滑动变阻器器和A/D转换器等,通过这样的设置可以保证系统良好的运行。而ADC0832的中断系统可以提供11个中断源,完全可以满足本系统的要求。

4.4 显示子程序

显示子程序分为四个部分,分别显示车速、里程、油量、温度。四个子程序分别独立完成。子程序主要负责驱动LED灯进行显示。以数字的形式显示输出。如果想把显示放在一起,可以考虑采用LCD的彩色显示屏放在一起进行显示。这里不进行讨论。

5 结束语

车辆数字仪表设计是为了帮助驾驶员了解车辆信息,当然,如果采用油压传感器、发动机转速传感器则可实现油压显示、转速显示等更多功能,那会更加完善,另外显示方面如果采用彩色的CRT显示屏将所有的信息显示在一起,它将会成为国内外先进的车用数字仪表系统,将有着不可估量的应用前景。很显然,用单片机做为开发的核心控制芯片具有一定的实用性,有很大的现实实行的意义。正是基于这种考虑,如果我们能利用现有先进的传感器测量系统,采用单片机控制技术设计现代车用数字仪表系统,就能够加快现代车辆仪表系统的发展。

参考文献:

[1] 谷树忠,温克利,冯雷.Protel 2004实用教程――原理图与PCB设计(第3版)[M].北京:电子工业出版社,2005.

[2] 李东生.Protel99SE电路设计技术入门与应用[M].北京:电子工业出版社,2002.

[3] 潘松,黄继业.EDA技术实用教程[M].北京:电子工业出版社,2002.

[4] 赵娜,赵刚,于珍珠.基于51单片机的温度测量系统[J].微计算机信息,2006(8):63-65.

[5] 张武,顾凯,基于51单片机的车用数字仪表设计与实现[J].今日电子,2006(5):32-35.