超市人流量统计

  • 格式:doc
  • 大小:283.00 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无线接收显示的超市人流量统计系统

设计目的:

统计一天当中某个超市的人流量,以及能准确的显示出在每一时刻超市里的现有人数。

基本思路:

两对相同的红外线发射接收装置分别放置在超市的进口(A)和出口(B),分别统计进出的人数。

红外线发射装置发出光线被接收装置接收,接收装置输出高低电平,输出信号脉冲,然后利用单片机的计数器对输入的脉冲进行计数。

1.红外线发射装置与接收装置对立放置相距1米,接收管必须和发射管水平对称。无人时,红外线照射接受管,接收管电阻很小,当有人从之间经过时,接收管没有红外线的照射,电阻变小,给无线发射装置一个“0”的数据,当无线接收装置接收到数据“0”后,将这个数据传给到单片机的外部中断0(12脚)和外部中断1(13脚),中断程序使数据加1和减1,用LCD1602两行分别显示“zaixian:人数”和“zongshu:人数”

2.将A传感器放置在超市的入口处,B传感器放置在超市的出口处,显示装置可以拿在手上。这样进去一个人则计数一个,出来一个人则减去一个,这样便可以测出当天的总人流量和当前超市的人数,并用液晶显示屏显示实时的数据。

电路图及PCB图:

下图为A、B装置,分别放置在超市入口和出口

下图为显示装置

程序(汇编):

X EQU 00H ;LCD 地址变量

RS EQU P1.0

RW EQU P1.1

EN EQU P1.2

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INT0

ORG 0013H

LJMP INT1

ORG 0030H

MAIN: MOV P2,#0FFH

MOV R0,#40H

MOV R2,#16

L1: MOV @R0,#00H

INC R0

DJNZ R2,L1

CLR EN

LCALL INIT_LCD ;初始化LCD

MOV R5,#10

LCALL DELAY

MOV DPTR,#ZAIXIAN ;指针指到显示消息1

MOV A,#1 ;显示在第一行

LCALL LCD_PRINT

MOV DPTR,#ZONGSHU ;指针指到显示消息2

MOV A,#2 ;显示在第二行

LCALL LCD_PRINT

LCALL DELAY1000

MOV SP,#60H

SETB IT0

SETB IT1

MOV IP,#05H

MOV IE,#85H

LCALL SHU

SJMP $

SHU: LCALL CONV1

LCALL CONV2

RET

;--------------------------------------------------------- ENABLE: ;写指令

CLR RS ;RS=L,RW=L,E=高脉冲

CLR RW ;D0-D7=指令码

SETB EN

LCALL DELAY1

CLR EN

RET

;-------------------------------------------------------

CLR_LINE: ;清除该行LCD 的字符

MOV R0,#16

CL1: MOV A,#' '

LCALL WDATA

DJNZ R0,CL1

RET

;-------------------------------------------------------

DE: MOV R7,#250 ;延时500微秒

DJNZ R7,$

RET

;-------------------------------------------------------

EN1:

CLR RW

SETB EN ;短脉冲产生启用信号

LCALL DE

CLR EN

LCALL DE

RET

;----------------------------------------------------- WCOM: ;以8位控制方式将命令写至LCD MOV P0,A ;写入命令

LCALL ENABLE

RET

;----------------------------------------------------- WDATA: ;以8位控制方式将数据写至LCD MOV P0,A ;写入数据

SETB RS ;设置写入数据

LCALL EN1

RET

;-----------------------------------------------------

;第一行行显示数

;-----------------------------------------------------

LCDP1: ;在LCD的第一行显示数字

ADD A,#30H

PUSH ACC

INC X

MOV A,X ;设置显示地址

ADD A,#80H ;设置LCD的第二行地址

CALL WCOM ;写入命令

POP ACC ;由堆栈取出A

LCALL WDATA ;写入数据

RET

;-----------------------------------------------------

;第二行显示数

;-----------------------------------------------------

LCDP2: ;在LCD的第二行显示字符

ADD A,#30H

PUSH ACC

INC X

MOV A,X ;设置显示地址

ADD A,#0C0H ;设置LCD的第二行地址

CALL WCOM ;写入命令

POP ACC ;由堆栈取出A

LCALL WDATA ;写入数据

RET

;---------------------------------------------------- DELAY: ;延时10MS

MOV R6,#50

D1: MOV R7,#100