无线接收显示的超市人流量统计系统设计目的:统计一天当中某个超市的人流量,以及能准确的显示出在每一时刻超市里的现有人数。基本思路:两对相同的红外线发射接收装置分别放置在超市的进口(A)和出口(B),分别统计进出的人数。红外线发射装置发出光线被接收装置接收,接收装置输出高低电平,输出信号脉冲,然后利用单片机的计数器对输入的脉冲进行计数。1.红外线发射装置与接收装置对立放置相距1米,接收管必须和发射管水平对称。无人时,红外线照射接受管,接收管电阻很小,当有人从之间经过时,接收管没有红外线的照射,电阻变小,给无线发射装置一个“0”的数据,当无线接收装置接收到数据“0”后,将这个数据传给到单片机的外部中断0(12脚)和外部中断1(13脚),中断程序使数据加1和减1,用LCD1602两行分别显示“zaixian:人数”和“zongshu:人数”2.将A传感器放置在超市的入口处,B传感器放置在超市的出口处,显示装置可以拿在手上。这样进去一个人则计数一个,出来一个人则减去一个,这样便可以测出当天的总人流量和当前超市的人数,并用液晶显示屏显示实时的数据。电路图及PCB图:下图为A、B装置,分别放置在超市入口和出口下图为显示装置程序(汇编):XEQU00H;LCD地址变量RSEQUP1.0RWEQUP1.1ENEQUP1.2ORG0000HLJMPMAINORG0003HLJMPINT0ORG0013HLJMPINT1ORG0030HMAIN:MOVP2,#0FFHMOVR0,#40HMOVR2,#16L1:MOV@R0,#00HINCR0DJNZR2,L1CLRENLCALLINIT_LCD;初始化LCDMOVR5,#10LCALLDELAYMOVDPTR,#ZAIXIAN;指针指到显示消息1MOVA,#1;显示在第一行LCALLLCD_PRINTMOVDPTR,#ZONGSHU;指针指到显示消息2MOVA,#2;显示在第二行LCALLLCD_PRINTLCALLDELAY1000MOVSP,#60HSETBIT0SETBIT1MOVIP,#05HMOVIE,#85HLCALLSHUSJMP$SHU:LCALLCONV1LCALLCONV2RET;---------------------------------------------------------ENABLE:;写指令CLRRS;RS=L,RW=L,E=高脉冲CLRRW;D0-D7=指令码SETBENLCALLDELAY1CLRENRET;-------------------------------------------------------CLR_LINE:;清除该行LCD的字符MOVR0,#16CL1:MOVA,#''LCALLWDATADJNZR0,CL1RET;-------------------------------------------------------DE:MOVR7,#250;延时500微秒DJNZR7,$RET;-------------------------------------------------------EN1:CLRRWSETBEN;短脉冲产生启用信号LCALLDECLRENLCALLDERET;-----------------------------------------------------WCOM:;以8位控制方式将命令写至LCDMOVP0,A;写入命令LCALLENABLERET;-----------------------------------------------------WDATA:;以8位控制方式将数据写至LCDMOVP0,A;写入数据SETBRS;设置写入数据LCALLEN1RET;-----------------------------------------------------;第一行行显示数;-----------------------------------------------------LCDP1:;在LCD的第一行显示数字ADDA,#30HPUSHACCINCXMOVA,X;设置显示地址ADDA,#80H;设置LCD的第二行地址CALLWCOM;写入命令POPACC;由堆栈取出ALCALLWDATA;写入数据RET;-----------------------------------------------------;第二行显示数;-----------------------------------------------------LCDP2:;在LCD的第二行显示字符ADDA,#30HPUSHACCINCXMOVA,X;设置显示地址ADDA,#0C0H;设置LCD的第二行地址CALLWCOM;写入命令POPACC;由堆栈取出ALCALLWDATA;写入数据RET;----------------------------------------------------DELAY:;延时10MSMOVR6,#50D1:MOVR7,#100DJNZR7,$DJNZR6,D1DJNZR5,DELAYRET;----------------------------------------------------DELAY100:MOVR5,#250;延时100MSD3:MOVR6,#200DJNZR6,$DJNZR5,D3RET;----------------------------------------------------DELAY1000:MOVR5,#250;延时100MSD4:MOVR6,#200D5:MOVR7,#10DJNZR7,$DJNZR6,D5DJNZR5,D4RET;-----------------------------------------------------DELAY1:;延时5MSMOVR6,#25D2:MOVR7,#100DJNZR7,$DJNZR6,D2RET;---------------------------------------P_KEY:MOVA,#1;第一行显示LCALLLCD_PRINTRET;---------------------------------------;转换为ASCII码...