基于AT89C52的图书馆阅览室人数统计器设计
2023-08-23郭悦夏琬娇段昱臻
郭悦,夏琬娇,段昱臻
(燕京理工学院,河北廊坊,065000)
0 引言
随着计算机技术的不断发展,统计器的应用也越来越广泛[1-4]。由于图书馆学习的同学很多,尤其每每到复习周的时候,座位成了炙手可热。由于图书馆座位不可提前占座,学生们需要当天去占用,由于复习周学习人数暴增,可能出现进入图书馆阅览室辛苦找了半天,却没有座位,这就很耽误复习时间。如果能在图书馆入口及每个阅览室门口一款实时图书馆人数统计器显示现有人数,方便查看以便节省时间。
本系统设计可以实现以下功能:可以统计图书馆阅览室进入与出去的人数而且设置上限人数以防止人数太多发生拥挤,实时显示图书馆阅览室的总人数。系统并且带有清零复位功能,按下清零按键后清除当前统计的人数,并且重新计数,并显示液晶屏幕上。本设计的按键模块带有设置上限人数按键以及设置人数加减键,同时带有超过上限人数时由蜂鸣器与发光二极管的声光报警模块。
1 整体方案设计
本设计的整体方案为:根据系统功能需求,选择红外传感器作为人数的监测模块,将图书馆阅览室门口分为入口和出口两个通道,将红外传感器放置于的两通道的侧边,一侧的通道检测出去的人数,另一侧的通道检测进入的人数,当有人通过两侧的通道时遮挡红外传感器发射端,红外传感器接收端输出电平由高为低,由电平变化反映到单片机中从而单片机发出指令,对所统计的人数的数据进行加减从而显示进来J与出去人数C,同时实时统计室内的总人数Z。同时选用LCD1602液晶显示屏作为显示模块,将检测到的人数统计显示出来。通过按键模块进行上限人数的设置。当人数统计达到上限人数时,选用的是蜂鸣器二极管构成的声光报警模块,进行报警提示。本设计的核心控制模块是AT89C52单片机,控制整体运行与各模块协调工作,系统整体模块设计图如图1所示。
图1 整体模块设计图
2 系统硬件电路设计
该系统由主控模块AT89C52单片机,按键模块S2、S3、S4,LCD1602液晶显示屏显示模块,红外传感器的人数检测模块,蜂鸣器与发光二极管的声光报警模块。
■2.1 主控模块
主控模块在整体设计中占据重要地位,起到对其余各个模块的控制和协调功能。采用AT89C52单片机芯片作为主控模块[5]。8位I/O接口P0-P3,与本设计外部的器件进行通信与控制,两个计数器,可以实现本设计的计数功能。引脚说明:时钟电路引脚:XTAL1(19脚)和XTAL2(18脚),由于选用外部时钟,因此XTAL1(19脚)接地。复位电路中:控制信号引脚RST(9脚):高电平信号输入可以复位。ALE/PROG(30脚):地址锁存信号端悬空。 以及PSEN(29脚):可以作为读取存储器的选通端。输入/输出端口P0/P1/P2/P3:P0口(P0.0~P0.7,32~39脚)和P1口(P1.0~P1.2,1~3脚)接显示模块LCD1602液晶显示屏作为输出单片机指令。P2口(P2.0~P2.1,21~22脚)接红外传感器使检测到进入与出去的人数作为输入到单片机。P3口(P3.5~P3.7,15~17脚)接按键模块中,P3.5:T1 计数器接设置上限人数按键S2。P3.6:外部数据存储写选通接按键S3上限人数加一。P3.7:外部数据存储读选通接按键S4上限人数减一。单片机最小系统是由AT89C52单片机、上拉电阻P1、复位电路、时钟电路组成[6]。如图2所示。
图2 单片机最小系统电路图
■2.2 LCD液晶显示模块
本设计的显示模块中要求显示界面显示的进入人数J出去人数C和总人数Z的一些参数。采用LCD1602液晶显示屏作为显示模块,主要技术是液晶制透光度技术,显示数字为荧绿的色彩。通过单片机控制LCD1602液晶显示屏显示数字,与一般数码管比较,可以整体同时显示。相较于数码管来说看起来更清晰更明朗。
该模块的原理:当红外检测模块检测到有人经过时,红外接收电路输出口将输出一个高电平,这个高电平信号传递给主控模块单片机完成计数;用AT89C52的P0口分别作为数据线,用P1.2、P1.1、P1.0分别作为LCD液晶显示屏的引脚接单片机的引脚EN、R/W、RS。这个显示模块主要为:将统计出来进入的人数J置于第二行左端出去人数C置于第二行右端,第一行中间显示总人数Z(即进入人数J减出去人数C),同时实时一起显示在LCD1602液晶显示屏上,如图3所示。
图3 单片机与LCD1602接口
■2.3 按键模块设计
本系统的按键模块中应用独立按键,按键的一端接IO口,且IO口接高电平,另一端接地。当按键没有按下时,IO接地。通过检测与按键连接的IO口电平高低就可以判断是否按下的按键。S1为复位按键,复位,系统开始重新工作;S3为增加按键,使设置上限人数增加;S4为减少按键,使设置上限人数减少;S2为开始设置上限人数/清零按键,可以进行上限人数的设置或清除当前统计的人数,重新计数,所图4所示。
图4 上限人数设置按键电路原理图
■2.4 人数检测模块设计
本模块设计的原理:红外传感器的红外发射管发射的红外线在能感应的在一定范围内,若没有障碍物时,红外传感器的发射端发射出去的红外线会因为传播距离越远而红外线的能量减少因而逐渐减弱,最后消失。若有障碍物时,红外传感器的发射端发射出去的红外线遇到障碍物,就像蝙蝠或雷达定位一样,应用反射定理,红外线被反射回到红外传感器的接收端[7]。
人数检测模块应用的红外传感器是将红外线反射回来的光变化转化为电变化,将电平信号传递给单片机使之控制从而实现对人数的检测[8]。它的组成包括:红外传感器发射端、红外传感器接收端以及检测电路。检测进入人数J的红外传感器接单片机的接口P2.1口;检测出去人数C的红外传感器接单片机的接口P2.0口。红外传感器将光的变化转变为电平的变化使单片机的P2.1口与P2.0口的电平同时发生不同的变化使单片机发出不同的指令,从而完成对进入人数J与出去人数C以及最终的总人数Z的统计,所图5所示。
图5 红外传感器与单片机接口图
■2.5 蜂鸣器报警电路
软件处理声光报警,利用蜂鸣器响起与发光二极管持续发光同时进行人数达到上限报警。当所测人数超过设置的上限人数时,数据口高电平,声光报警输出。声光报警电路硬件连接如图6。检测进出的红外传感器分别安装在图书馆阅览室门的两侧的通道,当红外传感器探测到通道有人进过时,红外传感器将此信号传递给单片机,单片机接到此信号。若阅览室总人数Z超过之前的预设人数时,单片机发出指令给P1.4端,由单片机接口P1.4连接的声光报警模块,从而声光报警启动,蜂鸣器响起同时发光二极管持续发亮。
图6 声光报警电路接图
3 系统软件调试
开机后,系统开始初始化,首先检测S1键是否为低电平,若S1为低电平,则表示已按下S1键,根据图书馆阅览室的最大人数容纳量设置上限人数;依次检测S2键/S3键是否为低电平,若S2/S3键为低电平,表示已按下S2/S3键,增加/减少上限人数。之后再次检测S1是否为低电平,当人通过入口或出口时,红外传感器检测经过从中经过的人数,就可以检测到进入人数J或出去人数C,同时单片机将计数显示指令给LCD1602液晶显示屏使之显示由进入人数J与出去人数C相减得出总人数Z。若总人数超过预设上限人数时,单片机给出指令使声光报警模块感应蜂鸣器响起发光二极管持续发亮;若有人依然通过进入口或出口,被红外传感器检测,并被单片机控制计数统计LCD1602显示屏显示人数但是报警模块并未消除提醒人数达到上限。当总人数Z低于预设总人数时;或者S1为低电平即S1按下则重新计数;那么声光报警才消失。主程序如图7所示。
图7 主程序流程图
4 结论
本文应用AT889C52单片机,具有集成度高、低功耗等很多强大的功能,在各个领域电子产品上有广泛应用。
其硬件电路应用模拟电子技术,主要包括一些简单电路设计,比如:单片机最小系统,红外传感器模块、按键电路模块,声光报警电路模块等。其软件方面,应用C语言根据程序框图编写程序,C语言简洁紧凑、灵活方便而且应用范围广,在很多电子产品的编程上也有广泛应用。
本设计检测人数模块中选用的红外传感器感应范围为5米左右,存在一定的误差。例如:当很多同学两两或更多结伴进入图书馆阅览室时易漏计人数;在装置处有人来回走动时易多次计算人数;以及红外传感器的感应范围有限,因此可能会把靠近红外传感器周围的人统计时多计数。可以采用排队依次进出,进出的通道的标识明显、醒目,以及采用将进出通道用材料加宽加高加厚以防止把周围的人数计数等措施来解决误差。