基于单片机的汽车组合电子仪表

时间:2013-03-06来源:网络


2、硬件描述


图1

LJ12芯片内部有丰富的硬件资源,我们做了如下配置:

• PLL:外部晶振32.768k;内部总线倍频至4M;
• SCI:用于上位机通讯,比特率9600,中断方式;
• SPI:时钟1M,作为MC33970的控制,用两个通用管脚作为SPI的片选信号;
• LCD:使用26×4模式,即26前极、4背极的模式,动态驱动;因为设计中用到6位LCD模块,所以使用FP1~FP12、BP0~BP3已经足够;
• Flash:利用常驻内存函数(ROM-Resident Routine)将里程数据以32位数据的形式保存于用户闪存中。

选取SWITEC公司出品的步进电机作为执行器。六位笔段式动态驱动液晶模块,用于里程,单次里程或时间日期的显示。出于习惯,汽车仪表需要一直保持带电状态,无需重置时间参数,为了方便演示,用两个按钮实现LCD显示模式的切换。六个发光二极管分别用于显示制动、危险、机油压力、电瓶、发动机以及空档信息,利用MC1413作为发光二极管的驱动。

MC33970由微控制器的SPI直接驱动;车速和发动机转速为脉宽调制信号或来自串口输入,通过定时器模块的输入捕捉功能得到其频率,换算得数据。

(1) 电源及掉电保护

输入端使用7805。为了在掉电的时候也可以及时地保存里程数据,在电源地输入端加一个1000uF或两个470uF的电解电容。电源断开的时候在IRQ管脚会产生一个中断信号,大电容可以维持单片机电源足够长的时间,使得单片机可以完成外部中断的服务程序。

(2)调理电路

为了改善波形,在定时器管脚外添加了调理电路。

(3)整体设计

本设计面向的是市场上的中低档轿车,为了表现这个初衷,根据长安轿车的仪表外壳及内部尺寸设计了仪表的PCB,并重新布局。


图2 系统框图

3、 软件描述

(1) 初始化函数

内部总线倍频至4M;设置定时器模块的通道为捕捉功能;SCI波特率9600,开接收中断;SPI时钟频率1M;LCD模块26×4模式;使能Real Time Clock模块;MC33970与指针初始化;从用户Flash中读取先前记录的里程数据,并根据ODO/TRIP信号加以显示。

(2) 中断服务程序

• 外部中断:断电后短时间内利用大电容的放电使指针回零。
• SCI中断:遵循一定的上位机协议,接受命令,改变LCD显示内容;改变车速和转速数据。
• RTC中断:每秒记录一次里程数据;根据车速信号换算里程数据。

(3) 主函数

定时读取里程数据,并在LCD上显示;每一次主循环结束的时候重启WATCHDOG;当车速或转速信号改变之后通过指针位置的变化作出反应。


图3 主程序流程图

1 2 3

关键词: 单片机 电子仪表 MC33970

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版