|
|
|
发表人:偶尔路过 |
发表时间:2009/6/28 19:52:00 |
|
发表新论题 |
本栏论题: |
基于单片机的公交车自动报站器 [6091] |
摘要:对车轮轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以AT89C51为CPU在中断处理程序中对外来脉冲计数,结合语音芯片ISD4004输出语音。
关键词: 距离控制 计数 C51 ISD4004 编程
0 引言
目前公交报站有三种方式,一种是利用GPS全球卫星定位系统的公交车报站系统,目前美国部分城市投入使用,国内也有此类产品的研制开发,其功能强大,系统稳定,但其投资昂贵,尤其是一些中小城市无法承受。目前我国部分城市采用手动电子报站和人工报站的方式,而它们都离不开司务人员,加大司乘人员的工作强度。手动电子报站一般由司机或者乘务员控制,经常出现错报,误报的情况,基于上述情况的不足,结合公交车辆的使用特点及实际营运环境,研制开发了市内公交智能报站系统。技术关键是对车轮转轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以AT89C51为CPU在中断处理程序中对外来脉冲计数,利用ISD4004输出语音。
一 组成原理
系统由脉冲检测、脉冲计数、比较判断、控制信号、语音芯片、输出显示等组成。
1.1 脉冲检测 该系统关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的 环境中运行,故采用可靠的霍尔元件DN6848作为信号的采集装置,再经光电耦合器4N25输入给单片机。
1.2 脉冲计数 光电耦合器的信号进入C51后,采用中断方式对脉冲计数。外部晶振12MHz。
1.3 在比较判断程序中将计数值于预置值进行比较,当数值到时就输出信号控制语言芯片进行报站。
1.4 控制按键 用于手动控制、手动调整、预置值的输入等
1.5 语言芯片 由专用语音芯片ISD4004组成,可擦写,便于在不同公交线上使用。
1.6 复位控制 安装在车门上的微动开关在到站后给C51一个信号,使其自动开始下一段的计数。
1.7 输出显示 由两位七段数码管组成,由C51采用动态扫描方式显示。
1.8预置存储 采用两种方式存储,一种是在烧写器上将数据写入,另一种是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内。
二 硬件设计
系统电路图如下:
2.1 C51通过P0.0到P0.3与外部的语言芯片ISD4004进行连接。其中ISD4004为PDIP封装,引脚功能为:片选(SS): 此端为低,即向该ISD4000芯片发送指令,两条指令之间为高电平;串行输入(MOSI): 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入;串行时钟(SCLK): ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据转输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD;中断(INT): 漏极开路输出,ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。语音由AUDOUT输出给功放,放大后输出。
2.2 P1.0到1.4组成按键组,完成前后选择、状态选择、手动控制。并预留P1.4到P1.7做为功能扩展口。
2.3 霍尔采集的信号经光耦4N25进入P3.2。此脚为外部中断O的输入脚,一旦有脉冲进入就会触发单片机中断,调用处理程序。
2.4 安装在车门上的微动开关在到站后给C51一个信号,使其自动开始下一段的计数。
2.5 P2.0到P2.6直接驱动数码管,P3.6 P3.7为片选端,采用动态扫描方式输出到站情况。
2.6 ISD4004的供电电压为3V,还需要一个电压变换电路,在此不给出。报站器还有其他功能如乘员话筒,报警提示等由于本文只简述计数功能的核心,便不再累述。
三 软件设计
采用C语言开发,包括初始化、中断处理、自动运行、手动运行、读写EEPROM、以及主程序模块。在XAC环境下进行开发,并仿真,最好即可上车调试使用。
四 调试与应用
系统完成后就可以上机调试,使用时可用配套的烧写器将站与站之间的距离写入单片机内,如果不知道距离可以在机上采用手动方式输入,使装置处于输入状态,出站时按下录入键,到站时按下确定键,就可以将站与站之间对应的数据写入单片机。使用中如果出现粗报,采用手动调整即可。
五 结束语
该方式应用89C51单片机的高速计数器端口进行脉冲计数,以距离来控制报站时刻,首次实现了模糊控制,改变现有设备的不足。做到简单实用自动化程度高。传感器在公交车上的应用极大的提高了设备功能。
|
|
相关博客新闻: |
|
相关技术论坛: |
|
相关技术论文: |
|
|