APP下载

基于MCS51单片机的汽车专用理财电子计算器

2010-08-08黄修力

网络安全与数据管理 2010年12期
关键词:电路设计原理图按键

黄修力,黄 河

(广东建设职业技术学院,广东 广州510450)

据来自公安部交通管理局的最新信息,至2009年底,我国汽车保有量已达7 619.31万辆[1]。伴随着汽车的飞速发展,汽车消费管理日益重要,很多司机苦于管理爱车日常的各项纷繁复杂的费用支出,例如养路费、车船使用税、车辆年检费、保险费用、汽油费、停车费、路桥费、保养维修费、洗车费、装饰费、违章罚款等。本文针对以上车主日常最关心的汽车消费,设计了一种汽车理财专用计算器。该计算器内部预设了所有的司机都会碰到的日常开销项目,通过本计算器,司机可以进行日常开支的记录查询和修改、统计输出等。该系统体积小、重量轻,可以轻易地安装到汽车内部或随身携带,便于司机在每次消费完毕后及时将数据输入,防止漏登记。极大地方便了车主,使车主对车的花费有一个清楚的账目。

系统能够在掉电重启后正常读取历史数据;还具有低高温报警功能,以防止车内温度过低,达到节能目的。系统能长时间稳定工作,抗震和抗干扰性良好,且结构简单,操作方便。

1 电路设计方案

本设计采用8位单片机AT89S53作为系统核心,通过编程生成菜单,通过LCD显示来提示操作,采用广州周立功公司生产的SPI接口芯片ZLG7289A进行键盘扫描实现数据的输入。对于用户数据,统一存放到非易失性的片外存储器AT24C16中,该芯片容量为16 KB,能够满足用户的日常数据量需求。时钟芯片采用达拉斯公司的DS1307。AT24C16与DS1307均采用I2C接口,在程序设计中采用C51模拟I2C协议来实现其与单片机的通信。温度采集使用单总线接口、数字量输出芯片DS18B20直接与单片机接口,同时使用液晶显示模块进行人机交流。本设计的原理框图如图1所示。

1.1 主控制器电路设计

主控制器电路由单片机、晶振电路、复位电路、电源电路组成。单片机采用8位的AT89S53单片机[2];晶振电路是通过2个22 pF的电容微调并采用11.059 2 MHz的振荡频率将时钟信号传给单片机AT89S53;复位电路上电瞬间所产生的微分脉冲的宽度大于2个机器周期;电源电路是将汽车提供的+12 V电压转换为+5 V,然后作为AT89S53单片机供电,该电源电路由LM7805稳压芯片、滤除+12 V电源中高频成分的 100 μF电解电容以及用于数字部分的+5 V的0.1 μF去耦电容组成[3]。图 2所示为主控制器电路的原理图。

1.2 键盘电路设计

本设计通过16个按键实现菜单控制,其中10个按键作为数字键 0~9,剩下的 6个键作为功能键(向上键、向下键、确定键、取消键(ESC)、删除键、切换键)。本设计选用性价比较高的ZLG7289作为16个键盘的驱动芯片。ZLG7289采用SPI串行方式,可以减少传统式直接运用单片机驱动按键时占用的I/O口的数量,节省了单片机的I/O口资源,同时简化了电路[4];而且ZLG7289可以连接多达64键的键盘矩阵,芯片内含有去抖动电路,可以有效地防止读按键时产生的误动作。其电路原理图如图3所示。

在读ZLG7289的按键代码时,先要向ZLG7289写读键盘指令,再从中读取键盘的代码;在读按键代码期间一直保持为低电平,表示可以进行读操作;同时在CLK每一个脉冲来时读取一位,前8位为AT89S53发送到ZLG7289的一字节读按键指令,后8位为ZLG7289送回给AT89S53的按键代码。在执行完读按键操作后,由低电平变为高电平,此时ZLG7289不再向AT89S53传送按键代码。

1.3 I2C总线电路设计

由于AT89S53不具备I2C总线接口,因此驱动DS1307和AT24C16时就必须采用单主方式下设计的虚拟I2C总线操作平台软件包,该软件包是主方式下的虚拟I2C总线软件包[5],只要用户给子程序提供几个主要参数,即可完成DS1307和AT24C16的I2C总线的应用程序。此软件包用在单主方式下的I2C总线,硬件接口是SDA、SCL,使用单片机的 I/O口作 SDA、SCL。在I2C总线中,发送数据的设备称之为发送器,接收数据的设备称之为接收器。I2C总线上的主器件应是能够在时钟线(SCL)上产生时钟脉冲,而在数据线(SDA)上产生寻址信号、开始条件、停止条件以及建立数据传输的器件,任何被寻址选中的器件都将被看成是从器件。因此,DS1307和AT24C16在I2C总线上应作为从器件,而I2C总线是同步串行数据传输总线,其内部为双向传输电路,端口输出为开漏结构,故总线上必须有上拉电阻,通常可取5 kΩ~10 kΩ, 因此在 DS1307和 AT24C16的 时 钟线(SCL)和数据线(SDA)上接阻值为 10 kΩ的上拉电阻。图4和图5分别为实时时钟芯片和存储电路的原理图。

1.4 温度检测及报警电路设计

本设计要实现车内温度变化的实时检测,同时通过液晶模块和报警电路提醒车主,以达到汽车节能的效果。采用数字化温度传感器DS18B20对车内温度进行实时检测。DS18B20为“一线总线”数字化温度传感器[6],其电源和信号复合在一起,仅使用AT89S53的一个I/O口。现场温度以“一线总线”的数字方式传输,简单的网络化的温度感知、零功耗的等待,大大提高了系统的抗干扰性,适合车内的温度测量与控制。DS18B20可以由程序设定9~12 bit的分辨率,精度为±0.5℃,可以把 DS18B20的分辨率及设定的报警温度储存在EEPROM中,使得掉电后依然保存。图6所示为温度检测及报警电路原理图。

1.5 液晶显示电路设计

本设计液晶显示电路采用NH12864J-1A的液晶模块[7],液晶模块的8位数据线的引脚DB0~DB7依次接到AT89S53的引脚P0.0~P0.7,并将8位数据线的每位引脚接上拉电阻,在NH12864J-1A的液晶模块的引脚RS、RW、E、CSB、CSA、RST依次与 AT89S53单片机上的引脚 P2.1~P2.6相连接,在NH12864J-1A液晶模块的引脚VO和引脚BLA上分别接有用于调节LCD中字体和背光亮度的电位器R11和电位器R10。液晶显示电路原理图如图7所示。

1.6 串口电路设计

串口电路用于将数据传输到计算机中,供车主做进一步记录与处理。电路设计采用MAX232标准接口电路,由MAX232芯片加外接电容和电阻组成。串口电路原理图如图8所示。

2 系统软件设计流程图

系统单片机每一次上电或复位时,液晶屏显示主页面,并显示实时时间和温度;当检测到的温度小于设定温度时,蜂鸣器就会发出有节奏的报警声,液晶屏上会显示“当前温度过低”,并在下方显示当前具体温度。整个系统界面由按键进行选择。可以通过页面的切换实现相应的功能。部分流程图如图9所示。

本系统采用价格相对低廉的8位单片机AT89S53作为主控制器,使用蓝屏背景的NH12864J图形液晶显示器,结合C51程序来编制系统菜单,设计了一个成本低、性价比高、可靠性高的汽车实用产品。系统外围电路采用I2C总线技术和SPI接口技术与单片机通信,使硬件结构更加简单。同时采用DS18B20数字温度芯片实时检测车内温度,保证舒适度。该设计功能齐全、人机界面友好、操作方便、通用性强、易于推广,能够最大限度地兼容各种不同的功能程序,而无需修改原有的电路,从而能够广泛地应用到各种不同的领域。

[1]http://auto.qq.com/a/20100114/000014.htm.

[2]张志良.单片机原理与控制技术(第 2版)[M].北京:机械工业出版社,2005.

[3]黄智伟.全国大学生电子设计竞赛制作实训[M].北京:北京航空航天大学出版社,2007.

[4]胡元胜,周伟.智能显示驱动ZLG-7289A的原理及应用[J].液晶与显示,2004,19(4):299-303.

[5]张俊谟.基于 MSP430单片机的虚拟I2C总线软件包[J].单片机与嵌入式系统应用,2001(12):73-74.

[6]赵浪涛,赵永花.DS18B20芯片在温度测量系统中的应用[J].兰州工业高等专科学校学报,2009,16(4):4-7.

[7]北京宁和颂扬科技发展有限公司.NH12864使用手册[Z].

猜你喜欢

电路设计原理图按键
基于有限状态机的按键检测程序设计
浅谈STM32核心板原理图设计
一种车用醉驾检测电路设计
电路原理图自动布图系统的设计与实现
电气CAD原理图数据提取与辅助建模
Altium Designer在电路设计中的应用
基于Protel DXP 2004层次原理图的设计
负反馈放大电路设计
按键消抖在单片机和FPGA实验教学中的应用
开漏输出比较器的峰值检测电路设计