c语言编程车牌限行,机动车尾号限行提示器
机动车“尾号限行”的轮号使不少记性不佳的有车族被限行日期搞得有点晕。特别是那些家里有不止一辆车的人,要分别记住两辆车两天限行且对号入座,说起来容易,但做起来真的有一点点难度。本文介绍一种机动车尾号限行控制器,可以解决司机们的上述烦恼。
一、电路组成及原理
该控制器电路见图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的常闭触点处于闭合状态,汽车启动开关线接通,司机可以启动汽车行驶。
c语言编程车牌限行,机动车尾号限行提示器相关推荐
- c语言车辆限行,机动车尾号限行提示器
机动车"尾号限行"的轮号使不少记性不佳的有车族被限行日期搞得有点晕.特别是那些家里有不止一辆车的人,要分别记住两辆车两天限行且对号入座,说起来容易,但做起来真的有一点点难度.本文介 ...
- 2023年4月北京机动车尾号限行轮换新规定用手机提醒
为了巩固大气污染治理效果,有效减轻城市交通压力,很多地区都实行了工作日机动车尾号限行措施,一般是每个工作日限行2个尾号,而北京也不例外.此外自2023年4月3日起,北京机动车尾号限行轮换时间到了,实行 ...
- c语言编程输入5输出五行五列,C语言编程 在屏幕上打印五行*号,每行分别为5个,30个,10个,28个,16个。...
C语言输出如题所示图案的代码如下: #include int main( ) { int x; int i,j,k; { for(j=0;j<2*i-1;j++) printf("*& ...
- c语言编程新思路知道答案,C语言编程新思路_知道答案公众号免费
有潜力的创意的根本特征是 CCBⅡ制动机中,LCDM称为() [单选题]电影摄影角度是摄影机拍摄时的视角.即摄影师构图时运用摄影机取景器观察.选择确定的画面拍摄位置,由___.拍摄方向和拍摄高度决定. ...
- 头条限流是什么原因_今日头条限流吗 头条号限流是什么状态
头条号突然被限流了是什么原因? 我不在乎这个!有些人会对他们写的东西感兴趣,并会继续努力工作.没人看到,自己的水平太差了,限制在极限上,不要指望在这里发财或出名!(不管怎样,我不知道我是否有限)只要快 ...
- 借助尾号限行 API 实现限行规则应用的设计思路分析
引言 尾号限行是指根据车牌号的末尾数字,规定某些时段内不能在特定区域行驶,这是城市交通管理的一种措施.尾号限行政策的实施可以缓解城市交通拥堵问题,减少环境污染和交通事故等问题. 尾号限行 API 是一 ...
- 清明节快到了,车辆尾号限行规则提前看!一文带你了解全国各地的尾号限行规则
写在前面 车辆尾号限行是一个交通出行政策,根据地方交通管理政策,在一周内的某一天,该尾号车辆不允许在规定路段行驶.这种政策不是针对特定道路和特定车辆,是在一定区域内对所有车辆都具有制约能力,而且会不定 ...
- c语言编程杨辉三角前八行思路,C语言----(杨辉三角)
用C语言编程打印出杨辉三角的前10行.如下图所示: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 ... ... 解法1: ...
- Go 语言编程 — Cobra 指令行工具
目录 文章目录 目录 Cobra(眼镜蛇) Cobra 的核心概念 Cobra 的使用 初始化应用程序的项目框架 main.go 生成应用程序的子命令(SubCmd) 实现 Command 的功能 为 ...
- C 语言编程 — 指令行参数
目录 文章目录 目录 前文列表 命令行参数 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本数据类型> < ...
最新文章
- HNUSTOJ-1674 水果消除(搜索或并查集)
- MOSS字段编辑权限控制方案--发布源码
- 网站被黑你隔了多久才知道?
- linux nslookup脚本,Linux中nslookup命令起什么作用呢?
- 【C语言项目】贪吃蛇游戏(下)
- 使用Capistrano向EC2部署Django代码--关于SSH相关的配置
- 德国留学语言c1,德国留学申请,关于语言
- C语言中字符型和字符串型的对比
- 深度学习(1)--引言
- Codeforces Round #518 (Div. 2): F. Knights(神题)
- 怎么从视频文件中提取音频?
- window.open打开txt文件
- autojs利用坚果云实现云更新
- SSL单向认证和双向认证
- VS 错误: cout 不明确
- mxgraph.js实现Topo图
- MyBatis-Spring(五)--MapperScannerConfigurer实现增删改查
- C和C++和Java的一些区别
- 零基础学习CANoe Panel(6)—— 开关/显示控件(Switch/Indicator)
- 1.python真的是万恶之源么?(初识python)