基于单片机的光电计数器的设计!
计数系统基于MCS-51系列单片机8031。在8013单片机外围扩展了程序存储器27C256和数据存储器WM0016DRH。此外,I/O端口扩展了8255,它还具有时钟单元、断电保护、看门狗单元、通信单元和LED(发光二极管)。
1)8031单片机和存储器
8031含有4kb EEPROM程序存储器,具有功耗低、抗干扰能力强的特点,可放置在监控现场。数据存储器WM0016DRH是一种多功能非易失性SRAM,具有以下特点:高速高抗干扰自保持,不怕掉电,经过百万次开关机后数据不丢失,断电保护有效10年,不仅可以连续高速读写,还可以在任意地址单字节操作,无需拼凑页面,随机读写无需等待,立即生效,输入输出兼容TTL/CMOS 上电复位输出、断电保护、内置看门狗、电源监控、无需外部电路和电池、引脚与标准SRAM兼容。
2)计数和显示
多车道车流量对应的脉冲通过光电隔离耦合并行输入到8031单片机的P1端口,计数值由软件控制和键盘设定,并由LED显示,有自动循环显示和定点显示两种方式,两者可任意切换[4]。
当热释电传感器安装位置固定时,输入脉冲的脉宽和占空比取决于高速公路上的车速和距离(脉宽对应于车辆传感器有效监测方向上的时间,车速和距离受限),占空比Q小于50%。为了准确拾取交通流信息,软件可以实现每个并行输入数据的读取周期短于脉冲宽度,计算每个通道相邻两个读取周期内读取的数据(暂存前一周期读取的数据)。其中0为上一周期的读数数据,此时脉冲为低电平,1为下一周期的读数数据,此时脉冲为高电平,这样就避免了脉冲的遗漏和重复计数,然后每周期将四个读数相加一次,累加之和即为总车流量。
8031单片机中的定时器/计数器设置为1的工作模式,形成16位二进制计数器[5],5位十进制计数器[5]采用动态扫描直接驱动。采用动态扫描方式直接驱动5位十进制LED显示屏,最大计数值达到65536,可记录4辆车的车流量并显示一个月内的日流量,累计一个月内4条车道的日总流量,计数器内数据保护时间可达一个月。当计数器达到设定值时,会发出声光报警,存储数据并手动复位。
3)时钟单元
DS12C887实时时钟芯片具有显示特定时间信息的功能。如果设计了调整和设置按钮,可以方便地调整和设置时间,从而为流量统计提供准确的时间数据。
4)串行通信单元
由于单片机系统的数据存储能力和数据处理能力有限,现场实时性要求高,单片机只能对采集的数据进行临时存储和简单处理。至于大量的数据存储和后续复杂的数据处理,可以交给上位机。由于主机具有RS-232标准串口,所以可以通过8031单片机的TTL电平全双工串口和附加的RS-232电平转换电路MAX3232实现与上位机的数据通信。
3软件设计
计数系统程序主要包括系统自检程序、系统初始化程序、键盘扫描程序、按键处理程序、显示程序和数据采集处理程序等。图4显示了主程序流程。
4安装和调试