1895基于单片机人流量统计仿真系统设计【毕设课设】 |
您所在的位置:网站首页 › 商场人流量统计方法 › 1895基于单片机人流量统计仿真系统设计【毕设课设】 |
摘要 本文介绍了一种基于STC89C52单片机的人流量统计仿真系统设计。该系统通过两个红外对管检测人员的进出,利用LCD1602显示屏实时显示当前人数流量,并实现了人数缺少报警提醒和人数正确绿灯提醒的功能。该系统结构简单、操作方便,可广泛应用于商场、超市、车站等需要统计人流量的场所。 一、引言 随着城市化进程的加快,人流量统计在商场、超市、车站等公共场所变得越来越重要。传统的人流量统计方法往往依赖于人工计数,不仅效率低下,而且容易出错。因此,开发一种基于单片机的人流量统计仿真系统具有重要的现实意义和应用价值。 二、系统设计 本系统以STC89C52单片机为核心控制器,通过两个红外对管检测人员的进出,利用LCD1602显示屏实时显示当前人数流量。同时,系统还设计了人数缺少报警提醒和人数正确绿灯提醒的功能,以满足不同场合的需求。 三、硬件设计 STC89C52单片机:作为系统的核心控制器,负责接收红外对管的信号,处理数据,并控制LCD1602显示屏、继电器、蜂鸣器等外设的工作。 LCD1602显示屏:用于实时显示当前人数流量,方便用户查看。 红外对管:安装在进出口处,当有人经过时,会遮挡红外光线的传播,从而产生信号变化,单片机通过检测这种信号变化来判断人员的进出。 继电器:用于控制绿灯的亮灭,当人数达到预设值时,继电器动作,绿灯亮起。 独立按键:用于设置预设人数等参数。 蜂鸣器:当人数少于预设值时,蜂鸣器会发出报警声,提醒用户。 四、软件设计 系统软件设计主要包括初始化、数据处理、显示控制、报警控制和绿灯控制等模块。初始化模块负责初始化单片机和各外设;数据处理模块负责接收红外对管的信号,并计算进出人数;显示控制模块负责将当前人数流量显示在LCD1602显示屏上;报警控制模块在人数少于预设值时启动蜂鸣器报警;绿灯控制模块在人数达到预设值时控制继电器动作,使绿灯亮起。 五、系统测试与结果分析 在系统设计完成后,我们进行了实际测试。测试结果表明,该系统能够准确检测人员的进出,实时显示当前人数流量,并在人数缺少时发出报警提醒,人数正确时亮起绿灯。系统响应速度快,操作简便,具有一定的实用价值。 六、结论 本文介绍了一种基于STC89C52单片机的人流量统计仿真系统设计。该系统通过两个红外对管检测人员的进出,利用LCD1602显示屏实时显示当前人数流量,并实现了人数缺少报警提醒和人数正确绿灯提醒的功能。测试结果表明,该系统具有较高的准确性和稳定性,可广泛应用于各种需要统计人流量的场所。 #define m9 (65536-9000) //约9mS #define m4_5 (65536-4500) //约4.5mS #define m1_6 (65536-1630) //约1.65mS #define m_65 (65536-580) //约0.65mS #define m_56 (65536-560) //约0.56mS #define m40 (65536-40000) //约40mS #define m56 (65536-56000) //56mS #define m2_25 (65536-2250) //约2.25mS sbit IR_1 = P3^6; //定义发射引脚(接PNP三极管基极) sbit IR_2 = P3^7; //发射指示灯 sbit K1 = P1^4; sbit K2 = P1^5; sbit K3 = P1^3; sbit BUZ = P1^6; sbit LED = P1^7; uchar buf_1[]="T_count:80"; uchar buf_2[]="C_count:"; uchar buf_3[]="00"; uchar count; void ZZ(uchar x); void Z0(uchar temp); void TT0(bit BT,uint x); void ZZ_1(uchar x); void Z1(uchar temp); void TT1(bit BT,uint x); void delayms(uint xms) { uint x,y; for(x=xms;x>0;x--) for(y=122;y>0;y--); } void keyscan() { if(K1==0) //检测按键K1(正转)是否按下 { delayms(10); //消除抖动 if(K1==0) { ZZ(0x01); count++; buf_3[0]=count/10+'0'; buf_3[1]=count%10+'0'; lcd_write_str(0x80+0x40+8,buf_3); } while(!K1); //检测按键是否松开 } if(K2==0) //检测按键K2(反转)是否按下 { delayms(10); //消除抖动 部分代码
资料下载地址: https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |