搜索
首页 电脑/网络 程序设计

怎么设计一个感应记数装?

怎么设计一个感应记数装置

全部回答

2018-04-05

50 0

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

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
程序设计
硬件
电脑装机
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
程序设计
VB
数据库
C/C++
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
举报
举报原因(必选):
取消确定举报