目 录
第一章 绪论……………………………………………………….….……4
1.1 研究背景及意义……………………………………………….4
1.2 人数统计系统研究与应用现状……………………………………………4
1.3 研究目的与意义……………..…………………………….4
第二章 系统总体设计……………………………………….……………………5
2.1 系统设计任务与要求……………………………..……………………….5
2.2 系统总体结构…………….…………………..…………………………….5
2.2.1系统框图………………..…………………………………….…..5
2.2.2工作流程………………..…………………………………….…..6
2.3 方案论证………………………………………………………………….....6
2.3.1单片机选型………………..…………………………………….…..6
2.3.2光控电路方案…………………………………….…………………7
2.3.3显示与指示方案………………………………….…………………7
第三章 硬件设计………………………………………..…….……………………7
3.1单片机最小系统…………………….………..……………………………7
3.2光控检测模块 ……………..…………………………………….….. …7
3.3 数码管显示模块……………………………………….…………………8
3.4 手动复位与声光指示模块……………………………….………………8
第四章 软件设计………………………………………..…….……………………9
4.1主程序设计………………………………….………..……………………9
4.1.1流程图……………………………………….…………………9
4.1.2关键代码……………………………………….…………………9
4.2方向判断与计数模块………………….………..……………………10
4.3显示与指示函数………………….………..……………………11
第五章 实验结果与分析……………………………..……....…………..…………12
5.1软件调试(Keil5环境)………………...……………….………..…………12
5.2硬件调试……………..……….………….………..…………………12
5.2.1光控触发测试…………………………………….…………………12
5.2.2计数逻辑测试…………………………………….…………………12
5.2.3复位与指示功能测试…………………………………….…………12
5.3问题与解决方案……………..……….………….………..………………13
结束语……………………………..……....……………………………..…………13
第一章 绪论
1.1 研究背景及意义
在实验室管理中,实时准确统计人员进出数量是优化资源配置、保障安全的重要需求。传统人工登记方式效率低、易出错,而基于红外光线检测的非接触式计数系统具有实时性强、成本低、安装便捷等优势。通过两路光控电路的触发顺序判断进出方向,可有效避免单向计数误差,满足实验室动态管理需求。
1.2 人数统计系统研究与应用现状
现有人员计数技术包括红外对管、RFID、视频识别等。红外对管方案因结构简单、功耗低,广泛应用于门禁、通道检测场景[1]。本设计基于STC89C52单片机,结合双路红外检测与数码管显示,实现低成本、高可靠性的人数统计,为中小型实验室提供实用解决方案。
1.3 研究目的与意义
通过设计光线通断式计数系统,掌握单片机输入信号处理(如脉冲边沿检测)、逻辑判断(进出方向识别)及外设控制(数码管动态显示、声光指示)等技能。同时,理解抗干扰设计(如光线屏蔽、软件消抖)在实际系统中的重要性,为嵌入式系统开发积累经验。
第二章 系统总体设计
2.1 系统设计任务与要求
- 基本功能:
- 两路红外光控电路(门外A路、门内B路),通过脉冲触发顺序判断进出方向:
- A先触发、B后触发:加计数(进入);
- B先触发、A后触发:减计数(离开)。
- 计数器容量0-99,四位数码管实时显示(前导零可省略)。
- 两路红外光控电路(门外A路、门内B路),通过脉冲触发顺序判断进出方向:
- 发挥功能:
- 独立按键手动复位,清零计数器。
- 每次计数时触发蜂鸣器短鸣(0.5s)和LED闪烁(红色指示加计数,绿色指示减计数)。
2.2 系统总体结构
- 系统上电初始化,数码管显示“00”,蜂鸣器和LED待机。
- 当人员遮挡红外A对管时,产生脉冲信号A,单片机记录触发时间;
- 若后续检测到脉冲信号B,且时间差<1s,则判定为“进入”,计数器加1,红色LED闪烁,蜂鸣器响;
- 若先检测到脉冲信号B,再检测到A,则判定为“离开”,计数器减1(不低于0),绿色LED闪烁,蜂鸣器响;
- 按下复位按键,计数器清零,数码管显示“00”。
2.3 方案论证
2.3.1 单片机选型
- 方案1:STM32F103C8T6(ARM内核),功能强大但成本高,适合复杂系统;
- 方案2:STC89C52(51内核),性价比高、开发简便,满足简单计数逻辑需求。
结论:选择STC89C52,降低成本且易于调试。
2.3.2 光控电路方案
- 方案1:激光对管,检测距离远但易受环境光干扰;
- 方案2:红外对管(TCRT5000),成本低、抗干扰能力强,适合近距离检测(<10cm)。
结论:采用红外对管,配合遮光罩减少环境光影响。
2.3.3 显示与指示方案
- 显示:四位共阴数码管+74HC595串行驱动,节省IO口;
- 声光:蜂鸣器(有源)+红绿LED,通过PNP三极管驱动,单片机IO口输出控制信号。
3.1 单片机最小系统
- 核心元件:STC89C52单片机,晶振11.0592MHz,复位电路采用10kΩ电阻+10μF电容+按键(图3-1)。
- 引脚分配:
- P3.2(INT0):红外A信号输入;
- P3.3(INT1):红外B信号输入;
- P2口:数码管段选信号(通过74HC595驱动);
- P1.0:蜂鸣器控制;
- P1.1:红色LED(加计数指示);
- P1.2:绿色LED(减计数指示);
- P3.7:手动复位按键输入(低电平有效)。
3.2 光控检测模块
- 电路设计:
红外发射管串联220Ω电阻接5V,接收管输出端通过10kΩ上拉电阻接5V,信号端接单片机INT0/INT1。当光线被遮挡时,接收管截止,输出低电平脉冲(图3-2)。 - 抗干扰措施:
- 红外对管垂直安装于门框两侧,间距5cm,避免直射;
- 软件消抖:检测到低电平后延迟20ms再次确认,消除抖动干扰。
3.3 数码管显示模块
- 驱动方案:
采用74HC595串行转并行芯片,通过单片机P2.0(SCK)、P2.1(MOSI)控制时钟和数据传输,减少IO口占用。四位数码管动态扫描,刷新频率100Hz,避免闪烁。
3.4 手动复位与声光指示模块
- 复位电路:独立按键接P3.7和GND,按下时触发外部中断,计数器清零。
- 声光电路:
第四章 软件设计
4.1.1 流程图
4.1.2 关键代码
4.2 方向判断与计数模块
中断服务函数
4.3 显示与指示函数
计数更新
5.1 软件调试(Keil环境)
- 编译测试:程序通过Keil C51编译,生成HEX文件,无语法错误,代码大小约2KB,满足STC89C52存储需求。
- 仿真验证:使用Proteus仿真平台,模拟红外对管脉冲输入,验证计数器加减逻辑、数码管显示及声光指示功能,结果与设计一致(图5-1)。
5.2 硬件调试
5.2.1 光控触发测试
- 测试方法:用手依次遮挡红外A和B对管,观察单片机IO口电平变化(用示波器检测)。
- 结果:遮挡A时,P3.2电平由高变低,产生有效脉冲;遮挡B时,P3.3电平变化正常,无误触发。
5.2.2 计数逻辑测试
- 进入测试:按A→B顺序遮挡,计数器加1,数码管显示正确,红色LED闪烁,蜂鸣器发声。
- 离开测试:按B→A顺序遮挡,计数器减1(≥0),绿色LED闪烁,蜂鸣器发声。
- 边界测试:计数器达99时,再次进入不计数;计数器为0时,离开不计数。
5.2.3 复位与指示功能测试
- 手动复位:按下复位按键,计数器清零,数码管显示“00”,声光无动作。
- 声光指示:每次计数时,对应颜色LED闪烁0.5s,蜂鸣器发出清晰提示音。
5.3 问题与解决方案
- 环境光干扰:
- 现象:自然光照射下,红外接收管误触发。
- 方案:在红外对管外侧增加黑色遮光罩,缩短检测距离至5cm,有效抑制干扰。
- 数码管闪烁:
- 现象:动态扫描频率过低导致显示闪烁。
- 方案:将定时器中断周期从100ms缩短至10ms,提高刷新频率,消除闪烁。
- 按键抖动:
- 现象:复位按键按下时多次触发清零。
- 方案:在按键检测函数中增加20ms软件消抖,确保单次触发有效。
本设计基于STC89C52单片机,通过双路红外光控电路实现了实验室人员进出方向判断与计数功能,配合数码管显示、手动复位和声光指示,满足基本需求与发挥功能。系统成本低、易部署,适用于中小型实验室的实时人数统计。未来可扩展无线传输功能(如蓝牙上传数据至服务器)或集成人脸识别,进一步提升智能化水平。