61阅读

流量计费系统漏洞-免费流量统计计数器

发布时间:2017-12-14 所属栏目:企业级oa系统开发框架

一 : 免费流量统计计数器

  MochiBot:MochiBot提供的flash统计服务,申请后将代码添加到你的flash作品中即可。

  网址:http://www.mochibot.com/

  35互联:新推出网站分析师服务,为你的网站进行流量统计,和国内主流统计服务不太一样,风格、功能更像国外的免费统计。

  网址:http://lm.35.com/

  免费统计:免费流量统计服务,功能强大,目前还是测试版,但还是可以试试。

  网址:http://www.free-tongji.com/

  XiTi:创始于1997年,感觉功能很强,也提供免费版。点“Subscribe”申请,但是申请比较麻烦。默认后台语言是法语,点左上角“FR”可以修改。

  网址:http://www.xiti.com/en/Solutions/Gratuit.aspx

  tongji123:提供免费流量统计服务,功能一般。

  网址:http://www.tongji123.com/

  163流量统计:提供免费统计服务,有电信、网通、移动、香港、美国等多台镜像服务器,功能比较强大,无插件广告弹出。

  网址:http://www.163.vc/

  SiteMeter:提供免费统计服务,它可以每天给你发统计报告到你的邮箱,很方便。

  网址:http://www.sitemeter.com/

  AddFreeStats:提供功能强大的免费统计服务。

  网址:http://www.addfreestats.com/

  51Yes:功能很强,速度不错,不弹广告插件。

  网址:http://count.51yes.com/

  太极链:提供免费文本广告交换服务,功能强大的免费统计服务。

  网址:http://www.textclick.com/

  索邦:提供免费统计服务,并能显示计数器,功能比较多,网通用户访问速度很快。

  网址:http://tj.sobonn.com/

  eXTReMe:提供免费统计服务,统计功能比较多,申请简单。

  网址:http://extremetracking.com/?reg

  yes5:提供免费统计服务,速度不错,功能比较多,申请简单。

  网址:http://www.yes5.net/

  WebSTAT:提供免费统计服务,有一定基本功能,但和高级版本比,免费版本(Basic Edition)每月只统计20000页面浏览量,适合规模不大的个人网站。

  网址:http://www.webstat.com/

  Sparklit:提供广告管理、在线投票、调查、论坛、邮件列表、留言簿、计数器等多种免费服务。

  网址:http://www.sparklit.com/

  Mytrix:提供多达200多个统计项目的超强网站统计服务,很漂亮的计数器,不过部分统计结果只保留10天,选择付费服务可以提供更强的服务和保存6个月的详细统计。

  网址:http://www.mytrix.com/

二 : ExtJs4实战流量统计系统----主框架搭建(三)

用ExtJs做前端框架,一般而言,主框架基本都会使用Border布局。(www.61k.com]

大概布局就像这个样子。

collapsemode ExtJs4实战流量统计系统----主框架搭建(三)

顶部左侧一般显示系统名称,右侧用户姓名。

左侧是一个手风琴(Accordion),或者其他的,比如Tree,用以实现导航或功能菜单。

中间就是主内容了,Tab选项卡的形式,以轻松支持多功能,同时可轻松切换,若是整个界面只支持最多一个页面的话,对于一个后台系统来说,确实不太方便。

当然,也可以多加几个模块,如顶部加一个用户信息及常用操作的工具条。

=========================分隔线====================================

如果只是简单的实现这样的布局,那么代码可以很简单。

var vp = Ext.create('Ext.Viewport', {  layout: 'border',  items: [  {  xtype: 'panel',  region: 'north',  height: 60  },  {  xtype: 'panel',  region: 'west',  width: 200  },  {  xtype:'panel',  region:'center'  }  ] });

定义布局为border,再定义三个内容块,分别为顶部,左侧和中间。

在实际项目中,直接这么简单的定义各块内容行吗?行,没问题,肯定能跑起来。

但对于后期代码阅读、维护、扩展等,那问题就来了。

为什么?因为各模块的内容远不只这么简单,比如左侧模块,简单一些,可能就是一个Tree空间,甚至更简单一些,只是几个固定的项,那么,负责一些呢。

collapsemode ExtJs4实战流量统计系统----主框架搭建(三)

以此系统来说,左侧包含三块内容:栏目列表、功能菜单、系统设置,这三块内容内部各包含一个Tree。

如果代码全部写在内容的Items里的话,层层嵌套,最终会导致单个文件过于庞大,难于阅读及维护。

=========================分隔线====================================

所以,还是建议以ExtJs官方推荐的方式编写脚本,就是以定义(Ext.Define)的方式实现各模块,再通过动态加载按需加载所需要的文件。

且按功能分类的将脚本写在不同的文件中,可以看下此系统的所有js文件:

 collapsemode ExtJs4实战流量统计系统----主框架搭建(三)

Common:存放在些比较通用的东西,比如数据的Model,一些工具方法等;

Function:对应左侧模块的功能菜单,所有功能菜单里的功能都放在这;

Main:主框架文件夹,图片上有几个是没用的,暂时还没删。Center是中间主内容,LeftPanel是左侧模块,LeftTree是栏目树,SysSetTree是功能菜单树及洗头系统设置树。

Show:前端流量数据展示的一些功能;

Sys:系统设置相关功能文件。

=========================分隔线====================================

好了,说说主框架的搭建吧。

Ext.define("Yiqi.Main.Main", {  extend: 'Ext.container.Viewport',  requires: ['Yiqi.Main.Center', 'Yiqi.Main.LeftPanel', 'Yiqi.Common.Tools'],  initComponent: function () {  this.buildTop();  this.buildLeft();  this.buildCenter();  Ext.apply(this, {  layout: 'border',  items: [  this.topPart,  this.leftPart,  this.centerPart  ]  });  this.callParent(arguments);  },  buildTop: function () {  // 头部  this.topPart = Ext.create('Ext.panel.Panel', {  region: 'north',  margin: '5 5 0 5',  header: false,  split: true,  collapsible: true,  collapseMode: 'mini',  hideCollapseTool: true,  contentEl: 'top_box',  height: 45  });  },  buildLeft: function () {  //左侧菜单  this.leftPart = Ext.create('Yiqi.Main.LeftPanel', {  region: 'west',  //flex:1,  title: '功能菜单'  });  },  buildCenter: function () {  //主体内容  this.centerPart = Ext.create('Yiqi.Main.Center', {  region: 'center'  //flex:4  });  } });

Ext.define的方式,定义整个主框架。内部各模块组件化,这样代码看上去,简洁多了。

=========================分隔线====================================

因为我需要自定义功能菜单是以Tab选项卡的形式打开还是弹出window的形式打开,所以,整个主框架,也就这一块花了点心思。

先看下功能菜单是怎么样的。

collapsemode ExtJs4实战流量统计系统----主框架搭建(三)

功能地址,就是功能所在的文件路径&文件名,也是模块的类名。

了解ExtJs动态加载的应该知道这个。

比如:用户管理,它的功能地址是Yiqi.Sys.Security.UserList,Yiqi是定义的动态加载根路径,

所以,这块功能的JS文件路径实际是:\Sys\Security\UserList.js。

功能类的定义:

Ext.define('Yiqi.Sys.Security.UserList',{  extend:'xxxxxx',  //.............TODO });

这也是使用ExtJs的一大好处,功能菜单,可以随意的定义功能地址、打开方式等等,而不需要改任何代码,当然,你得先把功能做好。

扩展:extjs框架搭建 / extjs开发实战 / extjs开发实战 pdf

而打开方式的实现过程,也比较简单,定义树中node的单击事件,判断单击的node,有无定义功能地址,如果有,再判断打开方式,如果是弹出窗,则以window的形式打开;如果是选项卡,则以选项卡的方式打开。

onItemClick: function (view, rec, item, idx, e) {  var path = rec.get("LoadPath"); //--功能地址  var openType = rec.get("OpenType"); //--打开方式  var me = this;  if (!Ext.Object.isEmpty(path) && !Ext.Object.isEmpty(openType)) {if (openType == "window") {  var win_id = 'syswin_' + rec.get("id");  var win = Ext.WindowManager.get(win_id);  if (win) {  Ext.WindowManager.bringToFront(win);  }  else {  win = Ext.create(path, {  title: rec.get("text"),  iconCls: rec.get("iconCls"),  id: win_id  });  win.show();  }  }  else if (openType == "tab") {  //--选项卡方式打开,先判断当前功能是否已经打开,如果已打开,则无需新建,直接将该功能设为活动选项卡就行了。  //--me.ownerCt.ownerCt.centerPart是主框架的中间内容模块。  var tab = me.ownerCt.ownerCt.centerPart.getComponent('tab_sys_' + rec.get('id'));  if (!tab) {  var newitem = Ext.create(path, {});  tab = Ext.create('Ext.panel.Panel', {  title: rec.get('text'),  itemId: 'tab_sys_' + rec.get('id'),  layout: 'fit',  closable: true,  iconCls: rec.get('iconCls') || 'icon_preview',  items: newitem  });  me.ownerCt.ownerCt.centerPart.add(tab);  }  //--设为活动选项卡  me.ownerCt.ownerCt.centerPart.setActiveTab(tab);  }  }  }

至此,主框架就差不多了~~~

扩展:extjs框架搭建 / extjs开发实战 / extjs开发实战 pdf

三 : 人流量统计系统设计 52

Southwest university of science and technology

本科毕业设计(论文)

基于红外传感器的公共场所人流量统计系统

设计

学 院 名 称

专 业 名 称

学 生 姓 名

学 号

指 导 教 师

信息工程学院 电子信息工程 张月蒙 20105363 邓 琥

二〇一四年六

基于红外传感器的公共场所人流量统计系统设计

摘要: 随着科学技术的不断发展,我们的生活也不断的朝智能化方向发展。各种智能化产品频繁出现在我们的生活中,其中单片机是最常用的智能化控制核心,为了能更好的了解单片机,我打算利用单片机设计一个公共场所人流量统计系统。本系统采用STC89C51单片机作为整个系统的控制核心,利用人体红外感应模块来检测是否有人员通过门,有人员通过则输出高电平,再根据实际情况由单片机判断人员是进入还是出去,最后将人员进出情况送液晶屏显示。同时系统还具有显示时间和时间可调的功能,这将使我们能更加直观的了解到各个时段人流量的变化情况。本次设计中的单片机控制程序采用C语言编写,具有结构清楚,便于理解以及改进功能的特点。

关键词:人流量统计;人体红外感应器;51单片机

Design Of The Flow Of People Statistics System Based On Infrared Sensor

Abstract : With the development of science and technology, our life has been developing in the direction of intelligence. Various kinds of intelligent products often appear in our lives, SCM is the core of intelligent control of the most commonly used, In order to better understanding of SCM, I'm going to design a public traffic statistics system using single chip microcomputer. The system uses STC89C51 microcontroller as the control core of the whole system, using the infrared human body induction module to detect whether there is the people through the door, Some people through the door Infrared human body induction module output high level. According to the actual situation by the microcontroller judgment personnel into and out of, Finally, will send the LCD screen display. At the same time, the system also has the function of displaying time and time can be adjusted, this will enable us to understand the changes of the flow of people more intuitive. SCM control program of this design using C language, has the advantages of that the structure is clear, easy to understand and improve the functions .

Key word: The flow of people Statistics, The human body infrared sensor, The 51 single chip microcomputer

目 录

第1章 绪 论 ..................................................................................................................... 1

1.1 选题背景及意义 ..................................................................................................... 1

1.2 人流量统计系统的需求分析 ................................................................................. 2

1.2.1 国内外研究现状 .............................................................................................. 2

1.2.2 生产需求状况 .................................................................................................. 2

1.3 本文的工作和结构 ................................................................................................. 3

第2章 设计方案研究 ......................................................................................................... 4

2.1 设计内容 ................................................................................................................ 4

2.2 设计方案讨论 ........................................................................................................ 4

第3章 人流量统计系统的硬件电路 .................................................................................. 6

3.1 单片机最小系统系统 ............................................................................................ 6

3.1.1 STC89C51芯片简介 ........................................................................................ 6

3.1.2 STC89C51各引脚功能 .................................................................................... 6

3.1.3 最小系统电路图 .............................................................................................. 9

3.2 DS1302时钟芯片模块 ......................................................................................... 10

3.2.1 DS1302时钟芯片简介 .................................................................................. 10

3.2.2 DS1302芯片工作原理 .................................................................................. 12

3.2.3 DS1302的寄存器和控制命令 ...................................................................... 12

3.2.4 时钟电路 ........................................................................................................ 14

3.3 LCD1602液晶显示模块 ........................................................................................ 15

3.3.1 LCD1602简介 ................................................................................................ 15

3.3.2 LCD1602指令及时序说明 ............................................................................ 16

3.3.3 LCD1602的RAM地址映射 .......................................................................... 18

3.3.4 显示电路的设计 ............................................................................................ 19

3.4 人体红外感应模块 .............................................................................................. 20

3.4.1 人体红外感应模块说明 ............................................................................... 20

3.4.2 人体红外感应模块的硬件电路连接 ........................................................... 22

3.5 系统性能仿真 ...................................................................................................... 22

3.5.1 仿真结果 ........................................................................................................ 22

3.5.2 仿真分析 ....................................................................................................... 24

3.6 硬件调试 .............................................................................................................. 25

第4章 系统的软件设计 .................................................................................................... 26

4.1 系统整体流程图 ................................................................................................... 26

4.2 时间显示及设置流程图 ....................................................................................... 27

4.3 判断人数流程图 .................................................................................................. 28

总 结 ................................................................................................................................... 30

致 谢 ................................................................................................................................... 31

参考文献 ............................................................................................................................. 32

附录1 .................................................................................................................................. 33

附录2 .................................................................................................................................. 35

人流量统计系统设计 52_人流量统计

第1章 绪 论

1.1 选题背景及意义

当今社会,城市发展十分迅猛,城市的人口急剧增长,人员流量日益加大。客流通常也被称作人流量,是大型商场、购物中心、连锁店、机场、车站、博物馆、展览馆等公共场所在管理和决策方面不可缺少的数据,对于零售业而言,人流量更是非常基础的指标。在商业竞争日益激烈的今天,有效的商业管理已经成为商业营销成败的重要因素。商业模式逐步由传统坐商向极具主动性的行商转变,对商业管理者提出了更高要求:必须在最短时间内对市场的微弱变化做出快速反应,且具备市场预见性和最大限度的节约商业运做成本,提高商场日常经营决策的科学性、购物环境舒适性、人力资源调配的合理性等。因其与销售量直接的正比关系,人们对人流量统计数据的重视由来已久。

人流量对于依赖于人流量量的产业来说意义重大。就拿零售业来说,顾客是货币的携带者,又是商品的潜在购买者,研究流量规律,可以增加销售机会,将观看者转变为购物者,最大限度地挖掘商场的销售潜力,增加利润。

人流量是重要的衡量工具,通过这一准确的量化的数据,您不但可以获得您的商场、购物中心、博物馆或者飞机场完整的正在运行的状况,而且您还可以利用这些高精度的数据,进行有效的组织运营工作!人流量统计的重要性主要可以表现在以下这些方面:通过统计出入口的人流量,您可以了解出入口设置的合理程度;通过统计出入口人流量进出的方向,可以了解出入通道设置的合理程度;通过统计主要楼层人流量状态,从而进行店面的合理分布;统计各个区域的吸引率和繁忙度;有效评估所举行的营销和促销投资的回报;根据人流量变化,更有效分配物业管理、维护人员 ;通过人流量人群转化率,提高商场服务质量;通过人流量人群购买率,提高营销和促销的效率 计算人流量人群的平均消费能力;客观决定租金价位水平;评估和优化宣传广告和促销预算。他们根据来访顾客数量的多少来决定回馈顾客资金的使用。他们可以知道什么时间是开关店的最佳时间。获得了更多在销售过程中有关销售和访问者方面的真实想法。显示当前人流量状态和变化趋势,管理人员可以对流量比较大的区域采取预防突发事件措施[1],并可实施观察商场当前的实际人数等等。

1.2 人流量统计系统的需求分析

1.2.1 国内外研究现状

人们对人流量统计数据最早的方式是靠人工统计的方法来实现的。商场派出若干名员工在预先设定好的时间内,在出入口持续地对进入商场的顾客通过目测进行计数,然后利用手工统计的方式来了解、掌握商场的客流信息。由于当今社会市场竞争异常残酷,人工统计方式已经完全不能满足市场需求,逐步被自动化统计所取代已是必然趋势。

红外遮挡系统和压力传感系统是早期自动客流信息统计所采用的主要方法,虽然它们具有易实现、低成本等优点,但是也有计数不准确、应用场所有 限等缺点。特别是在人流密集拥堵时,统计结果误差很大。

随着科学技术的飞速发展,传感器技术也越来越多的应用在了客流量采集方面,出现了基于传感器的客流信息采集系统,但此系统适应性不强,仅适于客流量小的场所。后来又引入的压力传感器计数技术,通过对人体通过压力传感器时产生的压力信号进行判断来确定人数。然而压力传感器的缺点也很明显,不但客流密集时不能准确计数,而且使用寿命短,安装调试也很不方便。

近年来的研究热点是基于视频的客流统计方法。随着计算机技术的飞速发展和图像处理技术的日益兴起与不断发展,传统的客流统计方法所面对的很多问题有了新的应对方法。采用视频分析技术的视频客流统计系统开始崭露头角,因其优越的性能、精确的统计结果、简单的安装实现方式以及低廉的成本等特性,正逐步被商场等购物场所采纳使用[2]。据统计,目前香港、日本、新加坡、欧美等发达国家和地区90%以上的大型商场及连锁商业网点都在广泛使用实时客流分析系统。

1.2.2 生产需求状况

对于那些希望切实监控商场各个门店客流销售情况,并且正确的做出决策的管理者,人流统计分析是一个很好地辅助工具。它可以向管理者展示当前的事实客流数据,使管理者对各个时段的客流做出分析,高效的完成商场的管理工作。对于人流量比较集中的大型公共场所,掌握各个区域的人流量变化情况显得更加重要,管理者可以提前对流量比较大的区域采取预防突发事件措施,所以说人流量统计系统的发展前景非常好。随着电子技术的迅猛发展,智能视频技术将成为研究的热点,并替代传统的人流统计系统。

1.3 本文的工作和结构

本次设计的主要内容是:以51单片机为核心,添加必要的元器件,实现一个简易的人流量统计系统,它符合人流量统计的基本要求,并且具有显示时间和时间可调的功能。论文首先讨论了研究方案的选择以及各种元器件的选择之后,开始介绍整个系统的硬件电路的各个模块的功能,以及整个系统的仿真结果。最后通过必要的流程图讲解了整个软件的设计过程,最终完成论文的编写。

第2章 设计方案研究

2.1 设计内容

本次的设计内容是利用单片机和必要的元器件设计一个简易的公共场所人流量统计系统,具体要求如下:

(1)、用电子器件设计制作一个人流量系统,使之可以统计和显示在某一时间内进出的人流量。

(2)、每当有一个人从门进入时,IN门将显示加一;当有一个人从门出去时,OUT门将显示加一。

(3)、该系统能够显示时间从早上8:00——晚上8:00,从而计算在这段时间的人流量。

2.2 设计方案讨论

此次设计的人流量统计系统有两种方案:第一种是采用压力传感器来检测,通过判断人体的重量来判断是否有人进出。第二种是采用红外传感器检测,其中方案一传感器对人体重量要求严格,对踩在上面的人所产生的压力的不确定性而产生误判,而且工程量大,不易安装。所以,在本次设计中我决定采用红外传感器来得到是否有人通过的信号,传感器与单片机相连,单片机通过传感器输入的电信号的变化判断人员的进出,最后由单片机将人员进出情况送液晶显示屏进行显示,原理框图如图2-1所示。

图2-1 人流量统计系统原理框图 系统想要准确的统计出进出门的人数,就要求传感器要有很强的抗干扰性,现在最常用的传感器是红外对管和热释电人体红外传感器。红外对管的原理是:一个红外发射,一个红外接收,当有物体档在中间时,接收管接收不到信号,发出的电脉冲也不一样大小,可以利用电脉冲的变化来判断有无人员通过门[3]。但是采用红外对管不利于安装,并且干扰很大,比如一个人推着一个箱子通过门进入室内,这时红外信号将被遮挡两次,导致统计结果就是进入2人,统计误差将会很大[4]。所以在这次的设计中我将采用热释电人体红外传感器来检测人员的进出,热释电人体

红外传感器的特点是它只有在由于外界的辐射而引起它本身的温度变化时,才给出一个相应的电信号,当温度的变化趋于稳定后就再没有信号输出,所以热释电人体红外传感器只对运动的人体敏感,不会被其他物体干扰,所以不会出现上面的情况。所以说热释电人体红外传感器比红外对管具有更高的抗干扰性,而且安装更为方便。

此外系统还要求能显示时间并且时间可调,一种方法是通过程序控制单片机自己的系统时钟做“秒”“分”“时”的累计,模拟出一个标准时间。另一种是用DS1302时钟芯片,它能够向单片机提供秒、分、时、日、月、年、及星期等实时时间信息,并能够对闰年天数自动调整,日历有效至2100年。第一种方案中单片机的定时器用的是它自己的晶振,不是专门用来做电子钟的,因此精度不高,而且操作麻烦,不容易实现。DS1302它是一种时钟芯片,内部有专用的寄存器用于存年月日时分秒,用的晶振也是另接的,高精度。当秒改变到一定量是,分会自动加一,写程序比较简单,所以采用时钟芯片向单片机提供时间信息。

在显示方面可以采用LCD或LED来显示,其中数码管显示内容单一,液晶则比较丰富;数码管一般就是一个7段的8字,当然多的有16段的中间米字型的,液晶可以显示各种内容。(最基本的)数码管是自发光的,液晶是靠背光(环境)的。数码管是LED发光的效果,液晶是分子偏转引起的暗影效果,而且数码管比液晶耗电。所以在系统中采用LCD显示内容[5]。系统总体框图如图2-2所示。

图2-2 系统框图

人流量统计系统设计 52_人流量统计

第3章 人流量统计系统的硬件电路

3.1 单片机最小系统系统

3.1.1 STC89C51芯片简介

STC89C51RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。

STC89C51系列单片机是从引脚到内核都完全兼容标准8051的单片机,有PDIP-40、PLCC-44、PQFP-44三种封装形式。STC89C51/52/53/54/55/58/516芯片分别含有4K/8K/15K/16K/20K/32K/64K字节FLASH ROM供用户编程使用。除了内含FLASH ROM容量的不同外,STC89C系列单片机还分成STC89C5xRC/RD+(VCC为5V)、S17C89LE5xRC/RD+(VCC为3.3V)、STC89LE5xAD(VCC为3.3V,带8位A/D转换电路)等型号。其中51/52/53型号后缀为RC,表明片内集成了512字节RAM。54/58/516型号后缀为RD+,表明片内集成了1280字节RAM。后缀为AD则表明片内集成了A/D转换电路和512字节RAM。

STC89C系列单片机是高速/低功耗的新一代8051单片机,最高工作频率可分别达到25MHz~50MHz,具体在芯片上的型号名称后以“-XX”标注。STC89C系列单片机有较宽的工作电压,5V型号的可工作于3.4V~6.0V,3.3V型号的可工作于2.0V~4.0V(ISP/IAP操作时对电压要求会稍严)。正常工作模式下的典型耗电为4mA~7mA,空闲模式为2mA,掉电模式(可由外部中断唤醒)下则小于0.1μA。

3.1.2 STC89C51各引脚功能

STC89C51芯片总共有有40个引脚,其中32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。STC89C51芯片的引脚分布图如图3-1所示。

图3-1 STC89C51引脚图

STC89C51芯片的各引脚的功能如下:

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门

电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表3-1所示。P3口同时为闪烁编程和编程校验接收一些控制信号。

表3-1 P3口特殊功能

引 脚 功 能

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7 RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(记时器0外部输入) T1(记时器1外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通)

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将 不会出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

3.1.3 最小系统电路图

单片机最小系统,或者称为最小应用系统, 就是指一个单片机能开始独立工作所需的最基本的外部电路连接[6]。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。在Protues中绘制的最小系统如图3-2所示。

图3-2 单片机最小系统图

在单片机系统中,复位电路是非常关键的,当程序运行不正常或死机(停止运行)时,就需要进行复位操作。MCS-5l 系列单片机的复位引脚RST( 第9 管脚) 出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST 持续为高电平,单片机就处于循环复位状态。

在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以当充电到0.7倍即为

3.5V),需要的充电时间是电容的值与电阻的值相乘为0.1S。

在启动的0.1S内,电容两端的电压从0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。而在51单片机中小于1.5V的电压信号为低电平信号,所以在开机0.1S内,单片机系统自动复位。在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小,这个时候10K电阻两端的电压为

3.5V,甚至更大,所以RST引脚又接收到高电平,单片机系统自动复位。

时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作[7]。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。

电路中的电容典型值通常选择30pF左右,该电容大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性[8]。晶振的振荡器频率的范围通常在1.2~12MHz之间,晶体的频率越高,则系统的时钟频率也就变高,单片机的运行速度也就越快。但反过来运行速度快,对存储器的速度要求就高。对印刷电路板的工艺要求也高,即要求浅间的寄生电容要小;晶体和电容应尽可能安装得与单片机芯片靠近,以减少寄生生活,更好的保证振荡器稳定,可靠地工作。电路中的两个电容的作用有两个:一是帮助振荡器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是对振荡器的频率起到微调的作用(C1 C2的值大,频率略有减少,反之,频率略有提高)。本设计采用12MHz晶振,并联两个22pF瓷片电容C1及C2构成时钟电路。

3.2 DS1302时钟芯片模块

3.2.1 DS1302 时钟芯片简介

DS1302是 DALLAS 公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态 RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可以自动调整,时钟操作可通过 AM/PM 标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根 I/O线:复位

人流量统计系统设计 52_人流量统计

(RST)、I/O数据线、串行时钟(SCLK) 。时钟/RAM 的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚功能说明如图3-3所示。

图3-3 DS1302引脚图

DS1302各引脚功能如表3-2所示。

表3-2 DS1302各引脚功能

引 脚

功 能

X1,X2 GND RST I/O SCLK VCC1 VCC2

32.768kHz 晶振引脚

地 复位(低电平有效) 数据输入/输出 串行时钟

可提供单电源控制也可用作备用电源

主电源引脚

DS1302的内部主要组成部分为:电源控制、移位寄存器、命令与控制逻辑、振荡器与分频器、实时时钟以及 RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。DS1302的内部结构如图3-4所示。

图3-4 DS1302结构图

3.2.2 DS1302芯片工作原理

DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿时串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。 3.2.3 DS1302的寄存器和控制命令

对 DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为 BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如表3-3所示。

表3-3 DS1302时间寄存器及控制字

寄存器名称 秒寄存器 分寄存器 小时寄存器

取值范围

D7 CH 0 12/24

D6 D5

秒的十位 分的十位

D4 D3

D2 D1 D0

00~59 00~59 01~12或00~23

秒的个位 分的个位

0 A/P HR

小时的个位

日寄存器 月寄存器 星期寄存器 年寄存器 写保护寄存器 涓流充电寄存器 时钟突发寄存器

01~31 01~12 01~07 01~99 WP TCS

0 0 0

0 0 0

日的十位 日的个位 月的个位 星期几 年的个位

0 0

1/0 0

年的十位

0 0 0 0 DS

0 DS

0 RS

0 0

TCS TCS TCS

RS RS

小时寄存器(85h、84h)的位7用于定义 DS1302是运行于12小时模式还是24小时模式。 当为高时, 选择12小时模式。

在12小时模式时,位5是 ,当为1时,表示 PM。在24小时模式时,位5是第二个10小时位。

秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。

控制寄存器(8Fh、8Eh)的位7是写保护位(WP) ,其它7位均置为0。在任何的对时钟和 RAM 的写操作之前,WP 位必须为0。当WP 位为1时,写保护位防止对任一寄存器的写操作。

DS1302的控制字如3-5图所示,要想与 DS1302通信,首先要先了解DS1302的控制字。

图3-5 DS1302控制字

控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到 DS1302中。

位6:如果为0,则表示存取日历时钟数据,为1表示存取 RAM 数据。 位5至位1(A4~A0):指示操作单元的地址。

位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图3-6所示。

图3-6 DS1302读写时序

3.2.4 时钟电路

在系统的时钟电路模块的设计中,将DS1302时钟芯片的SCLK、I/O、RST引脚分别与单片机的P3.4~ P3.6口连接构成实时时钟电路的控制部分,将调整时间的4个按键分别与单片机的P1.0~P1.3接口连接组成系统的按键电路。时钟电路的连接如图3-7所示。

图3-7 时钟电路

时钟芯片部分,将DS1302的X1与X2引脚分别与晶振相连,并通过两个分立电容相连然后接地VCC2与主电源相连,VCC1与电池相连用作备用电源,构成DS1302的供电电路[9]。将DS1302的SLK引脚与单片机的P3.4引脚相连构成DS1302的时钟端电路;将DS1302的I/O引脚与单片机的P3.5引脚相连构成DS1302的I/O端口电路;将DS1302的RST引脚与单片机的P3.6引脚相连构成DS1302的复位引脚电路。

四个按键key1~key4分别与单片机的P1.0~P1.3引脚相连,key1按键作为切换键用来选择调整时间的小时或分钟;key2按键作为加;key3按键作为减;key4按键作为确认键,时间调整好之后,按key4键即可确认。

3.3 LCD1602液晶显示模块

3.3.1 LCD1602简介

1602液晶显示屏也叫1602字符型液晶显示屏,它是一种专门用来显示字母、数字、符号等的点阵型液晶显示模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。LCD1602引脚图如图3-8所示。

人流量统计系统设计 52_人流量统计

图3-8 LCD1602引脚图

LCD1602各引脚功能如下: 第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脚:背光源负极。 3.3.2 LCD1602指令及时序说明

1602液晶模块内部的控制器共有11条控制指令,如表3-4所示:

表3-4 LCD1602控制指令

序号 1 2 3 4 5 6 7 8 9 10

指令 清显示 光标返回 置输入模式 显示开/关控制 光标/字符移位

置功能 置字符发生存储地址 置数据存储器位置 读忙标志或地址 读数到CGRAM或

DRAM

11

从GRAM或DRAM

读数据

RS 0 0 0 0 0 0 0 0 0 1

R/W 0 0 0 0 0 0 0 0 1 0

D7 0 0 0 0 0 0 0 1 BF

D6 D5 D4 D3 0 0 0 0 0 0 1

0 0 0 0 0 1

0 0 0 0 1 DL

0 0 0 1

D2 D1 D0 0 0 1 D

0 1 I/D C * *

1 * S B * *

R/C R/L N

F

字符发生存储器地址 显示数据存储器地址

计数器地址

要写入的数据内容

1 1

要读出的数据内容

1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 指令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:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。 指令11:读数据。

基本操作时序如表3-5所示:

表3-5 LCD1602基本操作时序

状态 读状态 写指令

输入

输出

RS=L,RW=H,E=H RS=L,RW=L,E=下降沿脉

冲 DB0-DB7=指令码

DB0-DB7=状态字

DB0-DB7=数据

读数据 写数据

RS=H,RW=H E=H RS=H,RW=L,E=下降沿脉

冲 DB0-DB7=数据

3.3.3 LCD1602的RAM地址映射

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,如果忙标志位高电平,则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-9是1602的内部显示地址。

图3-9 LCD1602的内部显示地址

想要在LCD1602屏幕的第一行第一列显示一个“A”字,就要向DDRAM的00H地址写入“A”字的代码就行了。 3.3.4 显示电路的设计

LCD1602液晶显示屏的硬件电路连接如图3-10所示,其中1602的D0~D7与单片机的P0口相连[10],传送数据信息,分别用P2.5、P2.6、P2.7作为LCD1602的RS、RW、E控制线,传输LCD1602的控制信息。

图3-10 显示电路的连接

3.4 人体红外感应模块

3.4.1 人体红外感应模块说明

热释电红外传感器是一种能够检测人或动物发射的红外线而输出电信号的传感器[11]。早在1938年,有人提出过利用热释电效应探测红外辐射,但并未受到重视,直到六十年代,随着激光、红外技术的迅速发展,才又推动了对热释电效应的研究和对热释电晶体的应用[12]。热释电晶体已广泛用于红外光谱仪、红外遥感以及热辐射探测器,它可以作为红外激光的一种较理想的探测器。它正在被广泛的应用到各种自动化控制装中。本次设计中用到HC-SR501 人体红外感应模块,如图3-11所示。

图3-11 HC-SR501人体红外感应模块

HC-SR501人体红 外感应模块参数如表3-6所示。

表3-6人体红外感应模块参数

产品型号 工作电压 静态电流 电平输出 触发方式 延时时间 封锁时间

HC-SR501人体红 外感应模块

直流电压:4.5V~20V

小于50uA 高电平3.3V/低电平0V

L不可重复触发/H重复触发

0.5~200S(可调)可制作范围零点几秒—几十分钟

2.5S(默认)调整方式未知

人流量统计系统设计 52_人流量统计

人体红外感应模块具有以下功能特点:

1.全自动感应:感应角度为小于100度的锥脚,当有人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平。输出低电平。延时时间可调(0.5秒~200秒)。

2.光敏控制(可选,出厂时未设):模块预留有专门的位置,可以设置光敏控制,白天或光线强时不感应。

3.两种触发方式:L不可重复,H可重复。可跳线选择,默认为H。

A.不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。

B.可重复触发方式: 即感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。

4.具有感应封锁时间(默认设置:2.5秒,调整方式未知):感应模块在每一次感应输出后(高电平变为低电平),可以紧跟着设置一个封锁时间,在此时间段内感应器不接收任何感应信号。此功能可以实现(感应输出时间和封锁时间)两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。

5.工作电压范围宽:默认工作电压DC4.5V至20V。

6.微功耗:静态电流小于50微安,特别适合干电池供电的电器产品。

7.输出高电平信号:可方便与各类电路实现对接。 8.

外接示意图和典型应用如图3-12所示。

图3-12 外接示意图和典型应用

3.4.2 人体红外感应模块的硬件电路连接

由于在Protues仿真库中没有人体红外感应模块,所以在Protues仿真电路中我用开关代替人体红外感应模块,作为传感器感应到人时的感应信号的输入,连接如图3-13所示。

图3-13 红外感应模块的硬件电路连接

人体红外感应模块1、2分别与单片机的P1.6和P1.7口相连,1表示进门的传感器,2表示出门的传感器,在两个传感器同时检测到人的情况下,通过两个传感器检测不到人的先后顺序来判断人员的进出。

3.5 系统性能仿真

3.5.1 仿真结果

Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,在Keil中编写完程序后,就要将正确无误的程序通过烧写器烧写到单片机中,这时就需要在Keil中产生一个.HEX格式的文件,只有通过这种格式,烧录器才能将写好的程序烧写到单片机中运行。.HEX文件格式是由Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码,它保存物理程序存储区中的目标代码映象,一般的编程器都支持这种格式。

Protues是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。

将单片机各部分硬件电路在Protues中绘制好之后,选中单片机点击右键,找到用Keil C51编译后产生的目标代码文件:.HEX文件,将文件添加到单片机中,点击开始仿真的按钮,就可以在Protues的原理图中看到模拟的实物运行状态和过程,如图

3-14所示。

图3-14 系统电路连接

系统默认的时间是8点整,我们可以通过接在P0.0~P0.3的按键key1~key4来调整时间。按一下key1(时间设置按钮),屏幕右上方出现H字样,如图3-14 所示此时可以通过 key2(加)和key3(减)按键来调整小时的数值。此时如果按key4按键则确认并退出时间调整模式,如果按key1按键,则屏幕右上方出现F字样,如图3-15 所示。此时可以通过 key2和key3按键来调整分钟的数值。调整完之后可以通过确认键

key4来完成调整。

图3-14 调试过程a 图3-15 调试过程b

在判断人员进出情况时,由于单片机的P1.6和P1.7脚上电时默认为高电平,我们可以认为两个传感器一直处于同时检测到有人在门附近的情况,如果按下与P1.6相连的按键时,P1.6脚变为低电平,可以认为是第一个传感器先检测不到人的信号,此时表示有人通过门进入,IN显示加一。按下与P1.7相连的按键时,P1.7脚变为低电平,可以认为是第二个传感器先检测不到人的信号,此时表示有人通过门出去,

OUT显示加一,仿真结果如图3-16所示。

图3-16 系统仿真结果

3.5.2 仿真分析 在仿真过程中,点击开始仿真后发现液晶显示屏只有背光灯亮,显示屏上没有内容显示,查阅资料后才知道是因为P0口没有加上拉电阻,而Protues软件中的1602内部也没有集成的上拉电阻,在加上上拉电阻之后屏幕显示正常。

由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。P0口作为I/O口输出的时候时,输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态,也就是说P0 口不能真正的输出高电平)不能给所接的负载提供电流,因此必须接上拉电阻(一般电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。P0作输入时不需要上拉电阻,但要先置1。因为P0口作一般I/O口时上拉场效

应管一直截止,所以如果不置1,下拉场效应管会导通,永远只能读到0。因此在输入前置1,使下拉场效应管截止,端口会处于高阻浮空状态,才可以正确读入数据。

3.6 硬件调试

在软件仿真调试都通过之后,就要对系统进行实物调试了。在按照原理图焊接好电路板后,应该先检查电源、每个器件的连接是否正确;在确认连接无误后,方能加电。其调试方法和软件调试类似,把Keil C软件编译生成的.hex文件通过ISP下载线将二进制数据文件下载到单片机上,上电开始检查硬件的各个模块是否工作正常。

在调试过程中,LCD显示屏显示的内容正确,但在调整时间时,控制时间加的按键不起作用。通过万用表检测后发现单片机的P1.1引脚在按键按下和没按下的情况下输出始终是5V的高电平,也就是说按键焊接出了问题,没有接地。在对按键电路进行检查并且改善后,时间加按键功能恢复正常。

在对人体红外感应器调试的过程中,发现无论是人从哪边通过,IN和OUT的数值都没有变化。用万用表检测后,传感器的供电和输出都正常,检查程序后,发现程序也没有问题。后来将两个传感器位置互换后,上电后发现,无论是进还是出,都只有IN的数值在变化。用万用表检重新检测传感器的输出后,发现进门的传感器在人未通过门的过程中,输出的是连续的高电平。而出门的传感器只有很短的时间输出高电平,查阅人体红外传感器资料后,才知道它们的触发方式不同,一个是可连续触发,另一个是不可连续触发。调整完触发方式后,IN和OUT的显示正常,这个硬件电路基本完善。

人流量统计系统设计 52_人流量统计

第4章 系统的软件设计

4.1 系统整体流程图

主函数的任务是进行上点初始化,并在程序运行中不断查询按键情况并执行相应的功能。在接收到有人通过门的信号之后,将该信号送单片机处理判断人员进出情况,最后将人员进出情况送LCD液晶显示屏显示。公共场所人流量统计的主程序流程图如图4-1所示。

图4-1 公共场所人流量统计的主程序流程图

4.2 时间显示及设置流程图

在时间显示方面,设计要求系统能够统计从早上8点到晚上8点这一时间段内的人流量,所以我给系统设置的初始化时间为早上8点,即系统开机或初始化之后显示的时间为8点整。如果系统检测到需要调整时间的信号后,将进入时间调整模式,时间调整结束之后,按确认键即可完成调整并将调整的好的时间送LCD屏进行显示。流程图如图4-2所示。

图4-2 时间设置流程图

按键调整时间的过程如下:当key1按键按下时,系统进入调整小时的模式,此时可以通过调整时间的加(key2)或减(key3)按键来调整小时的数值。调整结束后,按确认键(key4)则完成调整,按key1键则进入调整分钟的界面。调整分钟的方式与调整小时的方式一样,此时按key1键系统将返回到调整小时的模式,按key4键将完成时间的调整,离开时间调整模式,显示屏显示调整之后的时间。按键调整时间的流程图如图4-2所示。

图4-2 时间调整流程图

4.3 判断人数流程图

系统利用人体红外感应模块来检测是否有人员进出,当传感器检测到有人通过时就会输出高电平,此时传感器如果是可连续触发模式,在延时时间段内能检测到人员在运动,则传感器将输出连续的高电平,直到人员离开监测区域时才会自动延时变为低电平。而如果是不可连续触发模式下,只要延时时间一到,就马上变为低电平,延时时间一般在0.5S到200S之间可调。在此次设计中我采用的是不可连续触发模式,因为在可连续触发模式下,传感器在检测到人员通过门后,还要经过一定的延时后,才能将内容送LCD显示,导致显示过程缓慢。

两个传感器判断人员进出的规则是:当有人通过门时即两个传感器都检测到有人在门附近时,人继续移动,当进门的那个传感器先检测不到人了,而另一个传感器依然检测到人的存在,那么就说明人进去了,此时IN门加一。反之即为人出门,OUT门加一。考虑到走出房间的人数不可能比进入房间的人数多这种情况,所以当OUT的值大于IN的值时,令OUT的值等于IN的值即两个门显示的人数将相等,如图4-3所示。

图4-3 判断人数流程图

其软件程序如下所示:

if(IN==1 && OUT == 1) change = 1; //两个传感器同时检测到人,状态标志位 1 if(change==1 && IN == 0 && OUT == 1) {++in; change = 2;

} //确定有人在门口并且仅有出门红外传感器检测到有人,人进入 if(change == 1 && OUT == 0 && IN == 1) {++out; change = 3;

} //确定有人在门口并且仅有进门红外传感器检测到有人,人出去

总 结

经过一段时间的学习和努力,我所选的毕业设计也接近了尾声。我此次毕业设计的题目是《基于红外传感器的公共场所人流量统计系统》, 本系统用于统计某个场所的人流量。该系统具有智能功能,能实现统计该场所的实际人数,自行的判断人员是进入还是离开,如果进入则IN自行加计数,相反则OUT进行加计数,计得的结果通过LCD显示器显示出来,此外系统还具有显示时间和时间可调的功能,便于统计某一时间段内的人流量。用单片机来实现人流量统计的控制该系统具有开发方便、成本廉价、计数准确的特点。本设计以STC89C51单片机作为基础,添加必要的辅助器件组成简易的人流量统计系统。系统的控制程序采用高级汇编语言—C语言编写,软件编写完成之后,经过仿真和硬件测试,最终完成设计要求的电路。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,不仅省时,而且便于修改程序中的错误,为硬件测试做了很好的铺垫。

为期一个学期的毕业设计即将结束,在短短几个月的时间里,我不仅巩固了过去学习的知识,弥补了许多学习的不足,还学到了许多新的东西。在完成毕业设计的过程中,我遇到过许多困难,但是在解决这些问题的过程无疑也是对自己自身专业素质的一种提高,不管做什么事只要肯下功夫,任何困难都可以迎刃而解。在此次设计中,我感触最大的就是做好一件事,有一个好的计划很重要。有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。这样才能提高成功率;其次我们做事情要注意细节,细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。因此我们不仅仅要有整体意识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。此次的毕业设计不仅增强了自己在专业设计方面的信心,更是巩固了自己所学知识,并且使自己对硬件、软件系统设计的过程更加熟悉,此次设计也锻炼了自己的动手能力、查阅资料能力、综合运用知识的能力,以及培养团队合作的精神,为自己能更好的适应以后的学习和生活打下了基础。

人流量统计系统设计 52_人流量统计

致 谢

通过一个学期的努力,我的毕业设计《基于红外传感器的公共场所人流量统计系统设计》的实物和论文终于完成了,这也意味着我在西南科技大学的四年学习生活即将结束。在这四年的时间里,我在学习上和思想上都受益非浅。这除了自身努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。

论文的写作是枯燥艰辛而又富有挑战的。老师的谆谆诱导、同学的出谋划策及支持鼓励,是我坚持完成论文的动力源泉。在此,我特别要感谢我的导师邓琥老师。从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,他都费尽心血。没有邓琥老师的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。

最后, 再次对关心、帮助我的老师和同学表示衷心地感谢!

参考文献

[1]千承辉,王松,李映萱,魏庆丽.基于人流量统计的灾害救援系统研究[J].单片机与嵌入式系统应用,2012,11(09):60-66.

[2]宋磊,陈国强,林洪波,谭业刚.基于图像分析技术的风景区客流分布统计系统[J].电子科技,2012,25(1):36-45.

[3] 王俭.红外传感器在障碍物探测应用中的抗干扰问题[J]. 徐州师范大学学报. 2003,30(01): 34-36.

[4] 陈永甫.红外探测与控制电路[M].北京:人民邮电出版社,2004:462-555.

[5]朱利强,吕珊珊,曹秀珍.基于单片机的图书馆人流量统计器的设计[J].硅谷,2012,10(19):43-44.

[6]曹天汉,傅卫卫.单片机原理与接口技术[M].北京:电子工业出版社,2006:1-128.

[7]马家辰,孙玉德,张颖.MCS-51单片机原理及接口技术[M].哈尔滨:哈尔滨工业大学出版社,1998:1-120.

[8]刘坤,宋戈,赵红波,张宪栋.51单片机C语言应用开发技术大全[M].北京:人民邮电出版社,2008:11-173.

[9]边春元,李文涛,江杰,杜平.C51单片机典型模块设计与运用[M].北京:机械工业出版社,2008:121-213.

[10]邵婷婷,任蒙,张瑶.基才单片机的太阳能人数统计系统设计[J].电子设计工程,2012,20(19):70-76.

[11] 刘梅锋,钟国韵. 基于单片机AT89C51热释电红外报警系统的设计[J]. 科技广场, 2006,18(01):95-96.

[12]马志.基于红外热释电传感器的计数装置的设计[J].昆明冶金高等专科学校学报,2008,24(5):127-136.

[13]S. J. Cahill. The single chip microcomputer[M]. California:Prentice-Hall, 1987:1-20.

[14]Milos D.Ercegovac,Tomas-lang,Jamime H.Moreno. Introduction to Digital System[M]. John wiley son,1998:1-80

[15]Brian W.Kernighan. The C Programming Language[M]. London:Pearson Higher Isia Education,1988:1-60.

附录1

人流量统计系统实物图

附录2

系统主程序如下: #include <reg51.h> #include <intrins.h> #include <string.h>

#define uint unsigned int #define uchar unsigned char

sbit IO = P3^5; //sbit SCLK = P3^4; sbit RST = P3^6;

sbit RS = P2^5; //sbit RW = P2^6; sbit EN = P2^7;

sbit key1=P1^0; //sbit key2=P1^1; //sbit key3=P1^2; //sbit key4=P1^3; //

sbit IN = P1^6; //sbit OUT = P1^7; //

uchar x1=0;

uchar change = 0; //uchar DateTime[9];

uchar lcd1[]={"TIME 00-00-00 "}; uchar lcd2[]={"IN:000 OUT:000 "};

uint in = 0; //uint out = 0; //

void delayms(uchar x) //{ uchar i,j;

for(i=x;i>0;i--) for(j=110;j>0;j--); }

void delayus(uchar x) //{

uchar i;

for(i=0;i<x;i++); }

定义1302管脚 定义1602管脚 调时键盘 加 减 确定 传感器1 传感器2 传感器确定人员进出的状态变化进入的人数 出来的人数 延时毫秒程序 延时微秒程序

人流量统计系统设计 52_人流量统计

void DS1302WriteByte(uchar dat) {

uchar i;

SCLK=0; //初始时钟线置为0 delayus(2);

for(i=0;i<8;i++) //开始传输8个字节的数据 {

IO=dat&0x01; //取最低位,DS1302的数据和地址都是从最低位开始传输的。 delayus(2);

SCLK=1; 输。

delayus(2);

SCLK=0; //dat>>=1; //} }

uchar DS1302ReadByte() {

uchar i; uchar dat; delayus(2); for(i=0;i<8;i++) {

dat>>=1; //if(IO==1) //dat|=0x80; //SCLK=1; //delayus(2);

SCLK=0; //delayus(2); }

return dat; //}

uchar DS1302Read(uchar cmd) //cmd:{

uchar dat;

RST=0; //SCLK=0; //RST=1; //DS1302WriteByte(cmd); //dat=DS1302ReadByte(); ////时钟线拉高,制造上升沿,SDA的数据被传时钟线拉低,为下一个上升沿做准备 数据右移一位,准备传输下一位数据 要返回的数据左移一位

当数据线为高时,证明该位数据为 1

要传输数据的当前值置为 1,若不是,则为 0 拉高时钟线 制造下降沿 返回读取出的数据/16*10+dat%16 要写入的控制字节,dat:读取的数据 初始 CE线置为0 初始时钟线置为0

初始 CE置为 1,传输开始

传输命令字,要读取的时间/日历地址 读取要得到的时间/日期

SCLK=1; //时钟线拉高

RST=0; //读取结束,CE置为 0,结束数据的传输 return dat; //返回得到的时间/日期 }

void DS1302Write(uchar cmd, uint dat) //cmd:要写入的控制字,dat:要写入的数据 {

RST=0; //初始CE线置为 0 SCLK=0; //RST=1; //DS1302WriteByte(cmd); //DS1302WriteByte(dat); SCLK=1; //RST=0; }

void chushihuaDS1302(void) {

DS1302Write(0x8e,0x00); //DS1302Write(0x80,0x00); //DS1302Write(0x82,0x00); //DS1302Write(0x84,0x08); //}

void write_order(uchar order) { RS=0; P0=order; delayms(5); EN=1;

delayms(5); EN=0; }

void write_lcd(uchar date) { RS=1;

delayms(5); EN=1; P0=date; delayms(5); EN=0; }

初始时钟线置为0

初始 CE置为 1,传输开始

传输命令字,要写入的时间/日历地址 //写入要修改的时间/日期 时钟线拉高

读取结束,CE置为0,结束数据的传输 写保护关 初始秒 初始分钟

初始为24小时模式,初始时 //

void LCD1602_write_word(unsigned char *s) {

while(*s>0) {

write_date(*s); s++; } }

void chushihuaLCD1602() { EN=0; RW=0;

write_order(0x38); write_order(0x0c); write_order(0x06); write_order(0x01); }

void gettime() {

uchar i,n;

for(i=0,n=1;i<3,n<7;i++,n=n+2) {

DateTime[i]=DS1302Read(0x80+n); delayus(1); } }

void zhuanhuan() {

gettime();

lcd1[5]=((DateTime[2]>>4)+0x30);lcd1[6]=((DateTime[2]&0x0f)+0x30);delayus(2); //时 lcd1[8]=((DateTime[1]>>4)+0x30);lcd1[9]=((DateTime[1]&0x0f)+0x30);delayus(2); //分 lcd1[11]=((DateTime[0]>>4)+0x30);lcd1[12]=((DateTime[0]&0x0f)+0x30);delayus(2);//秒 }

void jianpan() //键盘调时 {

uchar x2,address,max,min; int item; if(key1==0) {

delayms(10);

if(key1==0) { x1++;

if(x1>=3) x1=1; switch(x1) {

case 1: lcd1[15]='H';x2=1;address=0x84; max=23;min=0;break; //时 case 2: lcd1[15]='F';x2=2;address=0x82; max=59;min=0;break; //分 } }

while(!key1); }

item=(DS1302Read(address+1)/16)*10 + (DS1302Read(address+1))%16; if(key2==0) {

delayms(10); if(key2==0) {

if(x2==1) {item++; }

else if(x2==2) {item++;} }

while(!key2); }

if(key3==0) {

delayms(10); if(key3==0) {

if(x2==1) {item--;} else if(x2==2) {item--; } }

while(!key3); }

if(key4==0) {

delayms(10); if(key4==0) {

lcd1[15]=' '; x1=0; x2=0; }

while(!key4); }

if(item>max) item=min;

if(item<min) item=max;

DS1302Write(0x8e,0x00); //允许写操作 delayms(10);

DS1302Write(address,(item/10)*16+item%10); //写入DS1302 //转成BCD码 delayms(20);

DS1302Write(0x8e,0x80); //写保护,禁止写操作 }

void count(void) //传感器检测规则 {

if(IN==1 && OUT == 1) //两个传感器同时检测到人 {

delayms(5); //去抖延时 if(IN==1 && OUT == 1) {

change = 1; //状态标志位置1 } }

if(change==1 && IN == 0 && OUT == 1) //确定有人在门口并且仅有出门红外传感器检测到有人 {

delayms(10);

if(change==1 && IN == 0 && OUT == 1) { ++in;

change = 2; } }

if(change == 1 && OUT == 0 && IN == 1 ) //确定有人在门口并且仅有进门红外传感器检测到有人 {

delayms(10);

if(change == 1 && OUT == 0 && IN == 1) {

++out; change = 3; } }

if(in <= out) //考虑到实际情况,出门的不可能比进门的人数多 {

out = in; }

if(in > 999) //人员进入数大于999时计数清零 { in =0;

人流量统计系统设计 52_人流量统计

西南科技大学本科生毕业论文

}

if(out > 999)

{

out=0;

}

if(change == 2) //人员进入显示人数 {

lcd2[3] = in / 100 + 0x30;

lcd2[4] = in % 100 / 10 + 0x30;

lcd2[5] = in % 10 + 0x30;

change = 0;

}

if(change == 3 ) //人员出门显示人数 {

lcd2[11] = out / 100 + 0x30;

lcd2[12] = out % 100 / 10 + 0x30;

lcd2[13] = out % 10 + 0x30;

change = 0;

}

}

void main()

{

uchar k;

uint i = 0,j=0;

chushihuaLCD1602();

if( (DS1302Read(0x81) & 0x80) ) chushihuaDS1302(); chushihuaDS1302();

while(1)

{

jianpan();

zhuanhuan();

count();

write_order(0x80); //lcd的第一行 for(k=0;k<16;k++)

{

write_lcd(lcd1[k]);

delayus(2);

}

write_order(0x80+0x40); //lcd的第二行 for(k=0;k<16;k++)

{

write_lcd(lcd2[k]);

delayus(2);

}

}

}

41

四 : 台球计费系统漏洞

台球计费系统存在的漏洞

1、 收银员怎么修改时间作弊?

答:计费系统行业都是以开台和结账的时间差来计算应收客人多少钱。目前,行业中的软件都是以您的电脑时间为准,并且在软件打开时,记录您电脑时间的修改情况。

但聪明的收银员已经发现了,晚上11点左右,基本来开台的很少了,就剩下几个未结账的台子,把软件关掉,在下一个客人来埋单时(比如过了半小时),把电脑时间改到关掉软件的时间,然后打开软件,那么当前还在开的每个台子,就被偷走了半个小时的钱。

2、 收银员如何异常开灯?

答:异常开灯,也就是没用通过软件而通过其他途径开灯的方法。

目前市场上的灯控都有一把钥匙可以锁住手动开关,如果你去过电子市场就会发现,这种开关的钥匙是完全一样的,也就是说只要去电子市场,或者淘宝上淘一下,就能获取一把能开您灯控的钥匙。

3、 什么叫安全开关?

答:所谓安全开关,就是手动开关(弱电开关)控制小电压小电流的电路,由电路控制强电才是安全的。

目前,市场上有很多厂商为了降低成本,用弱电开关控制了强电,如果您手上有水滴,就可能会被强电点击。

4、 如何识别您的灯控开关是安全开关还是不安全开关呢?

答:您只要把灯光控制器的电源关掉,如果用手动开关可以开灯,那就证明您的开关是不安全的,否则才是安全的。

5、 网络通讯、USB通讯、串口通讯,哪种更好些?

答:从方便性来说,依次是USB通讯、网络通讯、串口通讯。

从稳定性来说,依次是网络通讯、串口通讯、USB通讯。串口因为是非常原始的通讯方式,现在新主板很少有串口,而且很容易出现不通讯的故障;USB通讯的不稳定是众所周知的,对于灯控来说,开灯灯不亮,关灯灯不灭就给收银员一些更多机会,造成收银漏洞及混乱;而网络通讯是电脑的基本通讯方式,很少听说过电脑主板的网口坏了。

从传送数据上来说,依次是网络通讯、USB通讯、串口通讯。

6、 三相平衡是什么意思?

答:商业用电一般都提供三相电入户。因为我国变压器输出的是三相四线制电源,照明电路使用三相四线制供电是因为变压器输出的三相火线电压是380伏的,而照明电及家用电器都是220伏的,所以得采用一根火线及一根零线配合而得220伏的电压,同时如果全部都使用这一相火线,那么其余那两根火线就产生电动势不平衡,会导致过电压现象,所以就在照明电路分配使用其余两根火线,使三相电动势处于平衡状态工作。

专业电工在配电箱配电时,一定会考虑用电平衡,比如您有9张台子,就会3张台子用A相,3张台子用B相,3张台子用C相。

三相不平衡的危害:

???增加线路的电能损耗。

???增加配电变压器的电能损耗。

???配变出力减少。

???配变产生零序电流。

???影响用电设备的安全运行。

7、 收银员恶意盗刷客户卡里的钱怎么办?

答:会员刷卡机读取卡的内码,然后通过模拟键盘输入的方式把卡的内码送到光标位置,而内码是可以记忆或复制出来,然后在需要的时候模拟键盘输入软件里,从而达到盗刷会员卡的目的。

五 : 台球计费系统漏洞

台球计费系统存在的漏洞

1、 收银员怎么修改时间作弊?

答:计费系统行业都是以开台和结账的时间差来计算应收客人多少钱。(www.61k.com]目前,行业中的软件都是以您的电脑时间为准,并且在软件打开时,记录您电脑时间的修改情况。

但聪明的收银员已经发现了,晚上11点左右,基本来开台的很少了,就剩下几个未结账的台子,把软件关掉,在下一个客人来埋单时(比如过了半小时),把电脑时间改到关掉软件的时间,然后打开软件,那么当前还在开的每个台子,就被偷走了半个小时的钱。

2、 收银员如何异常开灯?

答:异常开灯,也就是没用通过软件而通过其他途径开灯的方法。

目前市场上的灯控都有一把钥匙可以锁住手动开关,如果你去过电子市场就会发现,这种开关的钥匙是完全一样的,也就是说只要去电子市场,或者淘宝上淘一下,就能获取一把能开您灯控的钥匙。

3、 什么叫安全开关?

答:所谓安全开关,就是手动开关(弱电开关)控制小电压小电流的电路,由电路控制强电才是安全的。

目前,市场上有很多厂商为了降低成本,用弱电开关控制了强电,如果您手上有水滴,就可能会被强电点击。

4、 如何识别您的灯控开关是安全开关还是不安全开关呢?

答:您只要把灯光控制器的电源关掉,如果用手动开关可以开灯,那就证明您的开关是不安全的,否则才是安全的。

5、 网络通讯、USB通讯、串口通讯,哪种更好些?

答:从方便性来说,依次是USB通讯、网络通讯、串口通讯。

从稳定性来说,依次是网络通讯、串口通讯、USB通讯。串口因为是非常原始的通讯方式,现在新主板很少有串口,而且很容易出现不通讯的故障;USB通讯的不稳定是众所周知的,对于灯控来说,开灯灯不亮,关灯灯不灭就给收银员一些更多机会,造成收银漏洞及混乱;而网络通讯是电脑的基本通讯方式,很少听说过电脑主板的网口坏了。

台球计费系统 台球计费系统漏洞

从传送数据上来说,依次是网络通讯、USB通讯、串口通讯。[www.61k.com]

6、 三相平衡是什么意思?

答:商业用电一般都提供三相电入户。因为我国变压器输出的是三相四线制电源,照明电路使用三相四线制供电是因为变压器输出的三相火线电压是380伏的,而照明电及家用电器都是220伏的,所以得采用一根火线及一根零线配合而得220伏的电压,同时如果全部都使用这一相火线,那么其余那两根火线就产生电动势不平衡,会导致过电压现象,所以就在照明电路分配使用其余两根火线,使三相电动势处于平衡状态工作。

专业电工在配电箱配电时,一定会考虑用电平衡,比如您有9张台子,就会3张台子用A相,3张台子用B相,3张台子用C相。

三相不平衡的危害:

???增加线路的电能损耗。

???增加配电变压器的电能损耗。

???配变出力减少。

???配变产生零序电流。

???影响用电设备的安全运行。

7、 收银员恶意盗刷客户卡里的钱怎么办?

答:会员刷卡机读取卡的内码,然后通过模拟键盘输入的方式把卡的内码送到光标位置,而内码是可以记忆或复制出来,然后在需要的时候模拟键盘输入软件里,从而达到盗刷会员卡的目的。

本文标题:流量计费系统漏洞-免费流量统计计数器
本文地址: http://www.61k.com/1149352.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1