某商场客流量统计计算设计方案.docx
《某商场客流量统计计算设计方案.docx》由会员分享,可在线阅读,更多相关《某商场客流量统计计算设计方案.docx(58页珍藏版)》请在冰豆网上搜索。
某商场客流量统计计算设计方案
某商场客流量统计计算设计方案
1概述
1.1研究意义
应用十分广泛,遍布生活的每个角落,像汽车上车载人数统计,车辆流量统
计,大型宾馆、图书馆客流量统计等等。
统计面向公众是与国际接轨的需要所决
定的。
定期、经常通过各种媒体向社会公众发布统计信息,是一种国际惯例。
在
许多国家,各级政府部门及其首脑也是通过媒体或其它载体的发布来获取非的统
计信息,而很少提出特殊的“领导需要”。
扩大对外开放,“迎接入世”挑战,
中国的统计信息从计算方法、采集渠道到公布形式,无疑应该更加详细、公开和
透明。
更好地为百姓服
1.2发展现状
随着外资零售企业的大举进入,零售企业的竞争日益激烈。
客流量对于零售业是非常基础的指标,它与销售量直接成正比关系,因此客流量统计尤为重要。
客流量是大型商业、旅游、公共安全、文博、连锁等公共场所在管理和决策方面不
可缺少的数据。
作为一项重要的市场研究手段,它能够为大型机关、企业的运营决策和综合管理提供准确及时的数据参考。
商场客流量统计系统的重要性显而易
见。
考虑到设计周期及技术难度,本文对简单的红外对管的人流量检测做简单的设计实现。
1.3论文主要容
通过比较现在普遍采用的客流量统计计算的各种解决方案的优缺点得出本
次设计所选定的方案:
红外对管的人流量检测设计。
进而得出相应的某商场客流
量统计计算设计的基本结构框图。
第二章对各个组成模块进行介绍,并且给出了
红外接线和1602液晶显示的选择。
然后介绍了系统硬件框图设计全过程、硬件
电路设计及测试结构分析。
2设计方案选择
2.1方案查询选定
现在所普遍采用的客流量统计解决方案大面上可以分为2种,一种采用机器视觉的技术,通过本地或远程监控摄像头采集视频帧数据,由主机电脑服务器处理(主要通过人头部,肩部等特征,来识别画面中的人物)并检测出进出商场或者车箱的人数。
这种方法的优点是识别精度高,识别准确。
缺点是工程规模大,相比后一种成本要高出许多。
另一种是通过红外线和单片机系统构成的检测系
统。
这种方法也大概分为两种,一种是通过人体的热成像来识别判断人物,然后进行计数。
另一种是通过红外线对管发射和接收,来判读是否有人出入,并计数。
这种红外计数的检测设备也有好多种,有一些是红外对管分别安
装在人流进出门的两侧,一边发送一边接收,当接受不到后外信号就计数一次。
还有一种方案是将红外对管安装在一起,在检测门对面安装反射镜,这样设计的系统可以成为一个单个的整体,节省了成本。
这里我们选择最后一种方案进行设计。
2.2模块设计
2.2.1某商场客流量统计计算设计的基本结构框图
本设计的基本结构框图如下图2-1所示:
图2-1某商场客流量统计计算设计的基本结构框图
2.2.2某商场客流量统计计算设计的组成部分介绍及选择
本设计在结构上可以分为以下几个模块:
80C51单片机主控模块、红外检测模块、电源模块、1602液晶显示模块。
(1)红外检测模块
采用两对红外对管,在相隔10-15cm的距离进行2次检测,确保检测的准确性。
红外发射管芯中央凸显,红外接收管管芯有红外感光电极。
红外对角的两引
脚一长一短,长引脚是正极,和普通发光管相同。
通电测试方法辨别
用一只发光二极管和一个电阻与被测的电管串联,用遥控器对着被测管
按下任意键时,被测管亮,则是红外接收管,不亮则是红外发射管。
(2)80C51单片机主控模块
其管脚图如图2-2所示
图2-2AT89C51单片机管脚图
○1P0口
有八条端口线,命名为P0.0~P0.7,其中P0.0为低位,P0.7为高位。
每根线
由一个输出锁存器,两个三态缓冲器,输出驱动电路和输出控制电路组成。
P0
口是一个三态双向I/O口,它有两种不同的功能,用于不同的工作环境。
○2P1口
P1口有八条端口线,命名为P1.0~P1.7,P1口是一个准双向口,只作普通的
I/O口使用,器功能与P0口的第一功能相同。
作输出口使用时,由于其部有上
拉电阻,所以不需外接上拉电阻;作输入口使用时,必须先向锁存器写入“1”,
使场效应管T截止,然后才能读取数据。
○3P2口
P2口有八条端口线,命名为P2.0~P2.7,P2口也是一个准双向口,它有两种使用功能:
一种是当系统不扩展外部存储器时,作普通的I/O口使用,其功能与P0口的第一功能相同。
作输出口使用时,不需外接上拉电阻;另一种是当系统
外扩存储器时,P2口作系统扩展的地址总线口使用,输出高8位的地址A7~A15,
与P0口第二功能输出的低8位地址相配合,共同访问外部程序或数据存储器,但它只确定地址并不能像P0口那样还可以传送存储器的读写数据。
○4P3口
P2口有八条端口线,命名为P3.0~P3.7,P3口是一个多用途的准双向口,第一功能是作普通的I/O口使用,其功能与P1口的第一功能相同。
当不对P3口寻址时,口锁存器的Q端自动置1。
这时P3口作为第二功能使用。
○5并行口的负载能力
P0口每一口线可驱动8个LSTTL负载
P1,P2,P3口的每一位能驱动4个LSTTL负载。
可方便地由OC门或漏极开路电路驱动,而无须外接上拉电阻。
AT89C51芯片具有8K字节FLASH闪烁存储器256字节部RAM,32个I/O口
线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片振荡器、时钟电路。
同时AT89C52可降至0HZ的静态逻辑操作,并支持两种软件可逆的节电工作模式,停止CPU的工作,允许RAM,定时/计数器,串行通信口及中端系统继续工作。
结合实际,选择89C52单片机来设计。
AT89C51是一个低功耗,高性能CMOS8位单片机,片含4k字节Flash可擦写存储器(PEROM)。
AT89C51器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,AT89C51的片Flash允许
程序存储器通过传统编程器反复编程。
由于芯片集成了通用8位中央处理器和
Flash存储单元,功能强大的微处理器ATMELAT89C51可为许多嵌入式控制应用系统提供高度灵活、高性价比的解决方案。
AT89C51具有如下特点:
4kBytesFlash存储器、128bytes的RAM、32个
I/O口、2个16位定时/计数器,5个中断优先级2层中断嵌套中断、1个全双工串行通信口、片时钟振荡器。
此外,AT89C51设计和配置了振荡频率可为0Hz
并可通过软件设置省电模式。
AT89C51在空闲模式下,CPU暂停工作,而RAM、定时/计数器、串行口和外中断系统可继续工作,掉电模式冻结振荡器并保存RAM
的数据,停止芯片其它功能直至硬件复位。
AT89C51的特性如下:
①低功耗空闲和省电模式
②兼容MCS-51指令系统
③4k可反复擦写(>1000次)FlashROM
④时钟频率0-24MHz
⑤2级程序存储器锁
⑥128×8位部
RAM
⑦32个双向
I/O
口
⑧2个
16位定时/计数器
⑨6个中断源和可编程串行通道
(3)红外线传感器的选择
红外线接收头(又称红外线接收模组,IRM)是集成红外线接收PD二极管、放
大、滤波和比较器输出等的IC模块.
红外接收头的主要参数:
工作电压:
2.7~4.5V工作电流:
1.7~2.7mA接
收频率:
37.9kHz峰值波长:
940nm静态输出:
高电平输出低电平:
≤0.4V
输出高电平:
接近工作电压
红外接收头其特性如下:
①小型设计②置专用IC③宽角度及长距离接收
④抗干挠能力强⑤能抵挡环境干挠光线⑥低电压工作;
光电参数如下:
光电参数(T=25℃Vcc=5vf0=38KHZ):
参数符号测试条
件MinTypeMax单位工作电压VCC
2.7
5.5V
工作电流Icc
0.60.8-mA
静态电流Ice无信号输入时0.1
0.5mA
接收距离L※1518
M
接收角度θ1/2
+/-35Deg
载波频率f037.9
红外线的模块选择
红外发光二极管是采用砷化镓(GaAs)和砷铝化镓材料制成的,它们的外形和普通的发光二极管基本相同,装。
中、大功率的红外发光二极管采用金属或瓷材料作底座作窗口。
红外接收二极管
(GaAlAs)等半导体用透明的树脂材料封
用玻璃或树脂透镜
接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏置电压,他才能正常工作获得高的灵敏度。
红外接收二极管一般有圆形和方形两种。
由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。
红外对射式检测电路
主要分两部分接收与发射,可以采用集中与分散供电方式。
2.2.3LCD数码管显示器的选择
(1)1602字符型LCD简介
液晶显示器各种图形的显示原理线段的显示:
点阵图形式液晶由M×N个显
示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的容和显示屏上相应位置的亮暗对应。
例如
屏的第一行的亮暗由RAM区的000H——00FH的16字节的容决定,当(000H)=FFH
时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则
屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,
(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗
线组成的虚线。
这就是LCD显示的基本原理。
(2)字符的显示
用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。
这样一来就组
成某个字符。
但由于带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
(3)汉字的显示
汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵
码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、
3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找
出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加
1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD
上得到一个完整汉字。
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,
目前常用16*1,16*2,20*2和40*2行等的模块。
下面以太阳人电子的
1602字
符型液晶显示器为例,介绍其用法。
(4)1602LCD的基本参数及引脚功能
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光
的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图
(5)LCD1602主要技术参数
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
(6)引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口
说明如表2-1
表2-1:
引脚接口说明表
编
符号
引脚说明
编
符号
引脚说明
号
号
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命
令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
1602液晶模块部的控制器共有11条控制指令,如表2-2所示
表2-2:
基本操作时序表
序
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
号
1
清显示
0
0
0
0
0
0
0
0
0
1
2光标返回000000001*
3
光标返回
0
0
0
0
0
0
0
0
1
I/D
S
4
显示开/0
0
0
0
0
0
0
D
C
B
关控制
5
光标或字
0
0
0
0
0
0
0
S/C
*
*
符移位
R/L
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发
0
0
0
1
字符发生存贮器地址
生存贮器
地址
8
存贮器地
0
0
1
显示数据存贮器地址
址
9
读忙标志
0
1
BF
计数器地址
或地址
10
写数到1
0
要写的数据容
CGRAM或
DDRAM)
11从CGRAM11读出的数据容
或DDRAM
读数
1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。
(说明1为高电平,0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置指令2:
光标复位,光标返回到地址00H
指令3:
光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:
屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。
指令4:
显示开关控制。
D:
控制整体的显示开与关,高电平表示开显示,低电平表示关显示。
C:
控制光标的开与关,高电平表示有光标,低电平表示无光
标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时显示移动的文字,低电平时移动
光标
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时为双行显示,F:
低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。
与HD44780相兼容的芯片时序表如下:
表2-3:
基本指令
读状态
输入
RS=L,R/W=H
输出
D0-D7=状态字
E=H
写指令
输入
RS=L,R/W=L,
输出
无
D0—D7=指令
码,E=高脉冲
读数据
输入
RS=H,R/W=H,
输出
D0-D7=数据
E=H
写数据输入RS=H,R/W=L,输出无
D0—D7=数据,
E=高脉冲
(7)1602LCD的RAM地址映射及标准字库表
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块
的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字
符地址,也就是告诉模块在,哪里显示字符,例如第二行第一个字符的地址是
40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的
数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。
每次输入指令前都要判断液晶模块是否处于忙的状态。
1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
3系统硬件设计
本系统采用以STC89C51系列单片机为控制中心,以及外围供电、复位、晶振、LM317稳压电路组成单片机系统电路,单片机作出计数与判断,同时让LCD1602液晶显示总人数与剩余人数。
3.1系统结构框图
LM317稳压
电路
复位电路
AT89C51
红外检测
电路
晶振电路
LCD1602液
晶显示
图3-1系统结构框图
整个装置主要由以下电路组成:
STC89C51单片机最小系统、LCD1602液晶显示驱动电路、红外线检测电路。
LM317稳压电路
3.2单片机最小系统电路
图3-2系统结构框图
单片机最小系统主要由复位电路,晶振电路,电源等几部分组成。
(1)复位电路
复位电路有两种方式:
上电复位和按钮复位,我们主要用按钮复位方式。
如下图3-3所示:
图3-3复位电路
(2)晶振电路
晶振电路原理图如图3-4所示:
图3-4晶振电路
(3)电源
AT89C51单片机的供电电源是5V的直流电源。
(4)EA非/Vpp脚
我们没有用外部扩展ROM,因此EA非/Vpp为高电平
3.3LCD液晶显示驱动电路
主要由16孔排座、1.8K电阻和0欧电路组成,如图3-5所示:
图3-5LCD1602液晶显示驱动电路图
3.4供电电路图
典型供电电路图中Lm317原理图如图3-7所示
图3-7集成稳压电源电路
如图3-7LM317输出电流为1.5A,输出电压可在1.25-37V之间连续调节,
其输出电压由两只外接电阻R1、RP1决定,输出端和调整端之间的电压差为
1.25V,这个电压将产生几毫安的电流,经R1、RP1到地,在RP1上分得的电压
加到调整端,通过改变RP1就能改变输出电压。
注意,为了得到稳定的输出电压,
流经R1的电流小于3.5MA。
LM317在不加散热器时最大功耗为2W,加上
200*200*4MM3散热板时其最大功耗可达15W。
VD1为保护二极管,防止稳压器输出端短路而损坏IC,VD2用于防止输入短路而损坏集成电路
4系统软件设计
4.1软件设计步骤
(1)系统定义
所谓系统定义,就是清楚地列出系统的各个部分与软件设计有关的特点,并进行定义,以作为软件设计的依据。
系统定义是对系统任务的描述,系统定义至少应包括下列容:
输入定义:
首先列出系统向微机提供的所有输入项,然后对每个输入提出问
题。
输出定义:
首先列出要求微机产生的所有输出项,然后对每个输出提出问
题。
定义存储器:
指对存储器资源如何管理,工作区然后划分?
是否采取存储器掉电保护?
定义信息处理方式:
从读入输入数据到送出结果之间的阶段称为处理阶段。
在这个阶段必须精确确定用什么方法处理输入数据以获得要求的结果。
定义错误处理方式:
系统出现错误是难免的,因此,设计者必须为排错及故障诊断做好准备。
定义操作要求:
任何系统都要人来干预,即要进行人机对话。
因此必须考虑操作者最合适的输入方式和操作步骤,何种显示形式才能很容易地提醒操作人员出现的操作出错。
(2)程序设计
程序设计是制定程序的纲要,也就是将系统定义的问题用程序的方式进行描述、绘制流程图,结构化程序设计、模块化程序设计和自顶向下设计等,都是此步骤的有效方法。
(3)编程
所谓编程就是将程序流程图的一系列操作,编译成计算机能够接受的具体程序。
编程人员可以采用机器语言、汇编语言或是高级语言,采用何种语言编程,应根据相系统的情况、要求和设计人员的技术水平。
(4)查错和测试
查错是让程序去执行设计规定它应该完成的任务,用以发现程序中出现的错误。
测试是用以校验程序是否正确地执行了总的系统任务。
查错只能发现编程中的错误,而很难发现系统在总体结构方面、各任务之间协调配合方面的错误。
这
方面的错误依靠测