新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 机动车尾号限行提示器

机动车尾号限行提示器

作者:时间:2011-02-21来源:网络收藏

机动车“尾号限行”的轮号使不少记性不佳的有车族被限行日期搞得有点晕。特别是那些家里有不止一辆车的人,要分别记住两辆车两天限行且对号入座,说起来容易,但做起来真的有一点点难度。本文介绍一种机动车尾号限行控制器,可以解决司机们的上述烦恼。

一、电路组成及原理

该控制器电路见图1,它由输入电路、日期产生电路、LCD显示电路、输出控制电路、和电源组成。自己的车牌尾号由DIP开关S1输入到DS1302芯片中保存,当司机发动汽车时,控制器将自动与限行的车牌号对比,若当天是限行日,则在液晶屏幕上显示提示信息,同时切断启动电机开关线,使汽车不能启动;若当天不是限行日,则汽车即可正常使用。

1. 输入电路

由于车牌尾号和日期、时间不需要经常输入,所以输入电路采用了DIP开关S1 和4个10kΩ电阻组成键盘电路,DIP开关如图2所示,其优点是体积小,可靠性高。S1中的开关1是限行选择开关,当它处于OFF位置时,取消限行管制,该控制器不起作用。只有当它处于ON位置时,机动车尾号限行控制器才起作用。开关2是功能选择开关,可以选择不同的输入功能。开关3是数字“加”键,开关4是数字“减”键。通过2、3、4开关的配合使用可设置控制器的初始年、月、日、时、分、秒和自己的车牌尾号。

图1 机动车尾号限行控制器电路

图2 DIP开关

2. 日期产生电路

日期产生电路的芯片型号是DS1302,其引脚图见图3 。它是一种高性能低功耗时钟芯片,包括实时时钟/日历和31 字节的静态RAM,可实时地对秒、分、时、日、周、月以及闰年进行计数处理。31字节的高速RAM通过外接充电电池可长期保存数据。正常工作时DS1302芯片还能慢速为电池充电。它能在2.5~5.5V 电源下可靠工作,在2.5V时耗电小于300nA。在主电源关闭的情况下,能保持时钟的连续运行。DS1302芯片有8个引脚,2、3脚X1、X2是晶体引脚,晶体的频率是32.768kHz 。1脚是主电源引脚VCC2,8脚是备用电源引脚VCC1,当VCC2小于VCC1电压0.2V以下时,VCC1给DS1302芯片供电。5脚是复位引脚,RST低电平有效。7脚是串行时钟引脚SCLK。6脚是串行数据输入/输出脚I/O,它和SCLK配合与交换数据。4脚是电源地。

图3 DS1302引脚图

图4 电源电路

3. LCD显示电路

LCD显示电路采用的是12232F,它内置了8192个16×16点汉字和128个16×8点ASCII字符集。它主要由行驱动/列驱动器及128×32全点阵液晶显示器组成。可完成图形显示,也可以显示7.5×2个(16×16点阵)汉字。它与采用串行方式交换数据。1 2 2 3 2 F 有8 个引脚, 1 脚是电源地V S S 。2 脚是电源正V D D(3.0~5.5V)。3脚是对比度调整V l c d 。4 脚是串行同步时钟输入脚CLK,上升沿时读取SID数据。5脚是串行数据输入脚SID。6脚是片选脚,高电平有效。7脚是背光源正BL+。8脚是背光源负BL-。

4. 输出控制电路

输出控制电路由R2、VT1、VD1、K1组成。其中VD1是保护管,避免VT1截止时K1产生的感应电压把VT1损坏。当控制系统判断出今日该车尾号限行时,则在IC2的P1.3输出一个高电平使VT1饱和导通,K1线圈得电,常闭触点断开,机动车启动开关线断开,使机动车不能发动。同时在LCD显示屏上显示“今日不能开车”的信息提醒司机注意。

5. 单片机和电源

为了便于大家制作,本控制器选用AT89C2051为控制核心。由于它内部程序存储器为Flash,所以修改内部程序十分方便快捷,只要配备一个可以编程89C2051的编程器即可。调试人员可以采用程序编辑、编译、固化和插到电路板中试验这样反复循环的方法,对大多数人来说,这种调试方法并不困难。AT89C2051是20引脚的与8051兼容的8位高性能单片机。图1中C1、C2、晶体与单片机内部电路组成了时钟电路。C3、R3构成了上电复位电路。本控制器的电源取自汽车的Acc线,通过7805稳压提供稳定的5V电源电压。电源电路见图4,其中C1、C2和C3是滤波电容。

二、程序结构及原理

该程序用C 语言编写,其程序结构包括参数输入模块、显示模块和控制输出模块。在程序的参数输入模块中,主要涉及DS1302时钟芯片的编程。通过输入模块程序,给DS1302设置初始的年、月、日及时间的初值,然后输入自己的车牌尾号。

程序首先检查与S1的开关2相连的P3.1脚,每检测到一个脉冲,“功能选择”变量值加1。具体要输入什么参数,由变量“功能选择”的数值决定,见附表。

图5 程序流程图

附表 功能键说明

再检查与S1的开关3相连的P3.2脚,每检测到一个脉冲,给相应的变量加1。例如“功能选择”变量=7,表示要输入车牌尾号。P3.2脚每得到一个脉冲,车牌尾号变量加1。与S1的开关3相连的P3.3脚,每输入一个脉冲,给相应的变量减1。

显示模块主要涉及对12232F芯片进行编程,包括液

晶屏初始化部分程序和写命令和数据到12232F芯片的程序。其中液晶屏初始化部分程序放在总程序的初始化部分。由于12232F芯片本身内置8192个16×16点汉字库和128个16×8点ASCII字符集图形点阵库,所以对它的编程比较简单。

在控制输出模块程序中,首先检测P3.0脚,它与S1的开关1相连,当P3.0=0时表示取消限行管制,使P1.3脚输出为“0”,三极管VT1截止,继电器K1不动作,K1的常闭触点处于闭合状态,汽车启动机开关线接通,司机可以启动汽车行驶。当P3.0=1时,表示要进行限行管制,此时程序从DS1302芯片中取出当天日期,并计算出当日限行号码,与该车尾号进行比对,如果相同则使P1.3=1,三极管VT1饱和导通,继电器K1吸合,K1的常闭触点断开,机动车启动开关线断开,司机不能启动汽车行驶,同时在LCD屏上显示“今日不能开车”的信息提醒司机注意。

如果不同则使P1.3=0,三极管VT1截止,继电器K1不动作,K1的常闭触点处于闭合状态,汽车启动开关线接通,司机可以启动汽车行驶。



评论


相关推荐

技术专区

关闭