基于单片机的人数统计系统.docx
《基于单片机的人数统计系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的人数统计系统.docx(33页珍藏版)》请在冰豆网上搜索。
![基于单片机的人数统计系统.docx](https://file1.bdocx.com/fileroot1/2022-10/9/9b84dbc1-f525-496e-a7c0-080fe9da1bf4/9b84dbc1-f525-496e-a7c0-080fe9da1bf41.gif)
基于单片机的人数统计系统
摘要
本文设计了一个基于单片机的人数统计系统,他可以通过光电开关统计教室的人数,并把实时的人数在LCD1602液晶屏上显示,另该系统还配备了一个时间显示的功能,可显示当前的年、月、日、小时、分种、秒等时间信息,时钟芯片采用的是DS1302.DS1302能存储时间信息,并且时间可以掉电保存。
关键词单片机;LCD1602;人数统计;DS1302
Abstract
Thispaperdesignedasystembasedonsingle-chipmicrocomputer,thenumberofstatistics,hecanthroughthephotoelectricswitchstatisticthenumberoftheclassroom,andthenumberofreal-timeintheLCD1602displayontheLCDpanel,thesystemalsoequippedwithanothertimedisplayfunction,candisplaythecurrentyear,month,day,hours,minutes,secondstimeinformation,suchasclockchipUSESisDS1302.DS1302timeinformationcanbestored,andtimecanbesavedwhenpowersupplydrop.
KeywordssinglechipmicrocomputerLCD1602ThenumberofstatisticsDS1302
第1章绪论
1.1目的和意义
在生活中,学校、火车站、银行、商场、公交车等人员流动比较大的地方,如果可以将人数实时地统计出来,这样可以给我们的生活与学习带来很多的便捷。
例如,在学校,很大的教室里,考勤对于老师来说是一件很麻烦的事情,但如果设计一款人数统计器,实时显示教室人数的话,考勤也变得方便;在火车站等人员较多的地方,如果可以实时统计室内人数,那么可以减少不必要的排队及拥挤。
在公交车上,如果可以设计一个实时人数统计器,可以将公交车的人数固定,使我们的坐车环境得到优化。
所以设计一款实时统计人数的器件对于我们的生活是很有意义的,可以提高我们的生活质量。
1.2研究概况和发展趋势
计数器从发明以来,在不断地发展,如今,市场上已经出现了各种各样的计数器,其功能也从计数扩展到更多的功能,之前的计数器大部分用在工业方面,如:
生产线上计数器的使用,数控零件计数应用。
人数统计器及我们看到的道路上的大小车辆计数器都是在计数器的基础上扩展而来的,之前的人数统计使用的是接触式的方式,即人体必须接触器件才可以计数,例如:
脚踏板人数统计器,若有两个人同时通过的话就不能精确计数,之后出现了非接触式的,人体通过就可以计数,但也不是很精确,必须配备一定的设备才可以提高精确度。
发展到现在,人数统计的发展趋势是红外线统计,它的距离可以更远,即:
通过红外线扫描,来统计人数,这样的方法就比较精确,并且还可以增加人脸识别功能,方便警察办案。
1.3本系统主要功能
本系统设计可以实现以下几种功能:
(1)可以统计场所来往的人数并进行相应的加减,计算出室内实时人数,并显示在液晶屏幕上。
(2)单片机可以采集DS1302的数据,通过数据传输将当时的年、月、日、时、分、秒显示在液晶屏幕上,用户可以使用按键设置时间,时间可以自动更新,系统不供电时,时钟芯片依然可以由后备纽扣供电,使其掉电时保存时间,下次上电时,时间依然准确。
(3)系统带有液晶显示可以实时显示时间和当前统计的人数。
(4)系统带有清零按键,按下后清除当前统计的人数,但不会将时间清除。
第2章总体方案论证与设计
根据本设计所要实现的功能,可以将系统划分为以下几个模块:
主控模块、显示模块、时钟模块、人数统计模块,下面对以上模块的选型和论证进行讨论分析。
2.1主控模块的选型和论证
方案一:
如果本设计使用单片机MSP430,它是16位超低功耗的混合信号处理器。
功能比较强大,但其缺点是:
芯片价格比较昂贵,不太适合本设计这样比较一般的设计。
方案二
若使用51系列的单片机,该8位、32个IO口单片机具有高可靠性,超低价,无法解密,高性能等特点,而且STC系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试,比较适合本设计这样一般的设计。
由上所述,51系列单片机比较适合本设计。
2.2显示模块的选型和论证
方案一:
采用点阵式数码管显示,它是八行八列的二极管排列组成的,显示文字要适合一点,若显示数字有点浪费其资源,另一方面价格也较高,所以本系统不使用点阵式数码管作为显示模块。
方案二:
采用LED数码管显示,有以下优点:
价格一般,适用于显示数字,它的显示是采用动态扫描法,连接单片机时,占用单片机接口线也少。
其缺点是:
数码管动态扫描时要使用74LS164移位寄存器进行移位,移位寄存器的使用会给电路的调试带来很多的障碍。
方案三:
采用LCD1602液晶显示屏,其显示屏可以显示两行,对于文字,图像,数字都可以显示,对于本设计也刚好够用,价格也适中。
与单片机连接时接口线较多,有利于系统调试。
由上分析,LCD1602液晶显示屏比较适合本系统设计
2.3时钟芯片的选型和论证
方案一:
使用单片机内的定时计数器,通过编程来实现时间计数。
这样虽然可以不使用时钟芯片,节约了成本,但是,对于闰年及每月天数的不同来说就不太准确了,对于实时时间的实现误差较大,不可以较精确的计数。
方案二:
这里用DS1302时钟芯片实现时钟,DS1302的性能比较高,功耗比较低,并且内部有31*8的RAM的实时时钟电路,DS1302可以计时年、月、日、时、分、秒等,可以将每个月的31、29、28或30天进行加与减的操作,使时间显示更加准确,也可对闰年进行补偿,其工作在2.5V~5.5V。
该芯片有两个电源引脚,一个是主电源,另一个是后备电源,在关闭电源的时候可以提供充电,使时钟继续运行,当下次使用时时钟依然是准确时间。
芯片是用32.768KHZ晶振作为标准时钟来计时。
由上面的分析,DS1302的优势比较适合本系统。
2.4人数统计模块的选型和论证
方案一:
在场所的前门按一个光电开关,后门按一个,前门进后门出,分别统计显示人数,进行加减。
这种方案不好控制人员是从前门进还是从后门进。
对于人数的统计的实现比较困难。
方案二:
根据本系统功能的要求,这里选用了两个光电开关来实现人数的统计,将两个光电开关置于场所的门口,一前一后放置,当有人经过门口,会挡住光电开关,光电开关输出的电平会由高电平变为低电平,可以由电平变化的先后顺序知道人是进入场所还是出去,从而对所统计的数据进行加减,统计这时室内的总人数。
由上面的分析,方案二比较适合本系统。
2.5系统整体设计概述
本设计的核心控制芯片为89C52单片机,其功能是:
对键盘,显示模块,时钟模块,光电开关统计人数模块进行控制与运行。
不仅起到了主控作用,而且在各模块工作时起到了协调作用。
图2-1整体设计图
系统能完成以下功能。
系统设有清零按键,用户可以通过按键清除当前统计的人数,重新开始计数,但不会清除时间的显示,通过区分光电计数器1和光电计数器2的先后触发顺序就可以判断是进去还是出来从而对检测到的人数进行增减,从而统计出实时人数,将人数显示出来,本设计还具有显示实时时间的功能,并且可以使用按键来设置年、月、日、时、分、秒。
第3章系统硬件电路设计
3.1主控模块
主控模块在整个设计中起着重要的作用,是核心部分,它控制着各模块的运行,并且将各个模块之间的工作结合起来完成设计所需实现的功能。
本设计主控模块采用89C52芯片。
3.1.1STC89C52单片机主要特性
1.一个8位的微处理器(CPU),起到重要作用
2.数据存储器RAM(128B),主要存放数据,单片机最多提供1KRAM
3.程序存储器ROM(4KB),存放程序和原始数据及表格。
有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。
4.8位并行I/O接口P0-P3,与外部器件进行通信
5.两个定时器/计数器,有定时或计数功能
6.五个中断源,使用程序进行中断
7.实现串行通信的全双工串行I/O口一个。
8.振荡器和时钟产生电路,振荡频率最高为12MHz。
图3-1STC89C52单片机管脚图
部分引脚说明:
1.时钟电路引脚XTAL1(19脚)和XTAL2(18脚):
若设计用的是外部时钟,XTAL1必须接地。
有脉冲信号输出代表正常工作。
2.控制信号引脚RST,ALE,PSEN和EA:
RST/VPD(9脚):
高电平信号输入可以复位。
ALE/PROG(30脚):
地址锁存允许信号端。
PSEN(29脚):
可以作为读取程序存储器的选通端。
此引脚接EPROM的OE端。
EA/Vpp(31脚):
当此引脚为低电平时,CPU直接访问外部程序存储器,高电平时,内部不够用,才访问外部程序存储器
3.输入/输出端口P0/P1/P2/P3:
P0口(P0.0~P0.7,39~32脚
P1口(P1.0~P1.7,1~8脚)
P2口(P2.0~P2.7,21~28脚)
P3口(P3.0~P3.7,10~17脚)
P3.0:
(RXD)串行数据接收。
P3口第二功能:
P3.1:
(RXD)串行数据发送。
P3.2:
(INT0#)外部中断0输入。
P3.3:
(INT1#)外部中断1输入。
P3.4与P3.5:
代表定时/计数器T0与T1的外部计数输入。
P3.6:
外部数据存储写选通。
P3.7:
外部数据存储读选通。
3.1.2STC89C52单片机的中断系统
STC89C52中断系统有5个中断源,2个优先级,CPU响应中断请求由IE决定;各中断源的优先级由IP决定;具有相同优先级的各中断,响应前后次序由内部的查询逻辑确定。
3.1.3单片机最小系统设计
图3-2最小系统电路图
图3-2为单片机最小系统电路图,除了单片机,还有时钟、复位电路还有电源组成,在时钟电路里用12MHZ的晶振提供时间基准,复位电路中的按键按下后,电路回到刚上电的状态。
图中10K排阻为P0口的上拉电阻,由于P0口漏极开路的结构跟其他IO结构不一样,所以要加上拉电阻才能正常使用。
3.2LCD液晶显示器简介
由于本设计中要求显示界面显示一些参数,因此这里选用了LCD1602作为界面显示,可以把一些相关的参数进行显示。
3.2.1液晶原理介绍
液晶显示器主要技术是液晶控制透光度技术,运用这个技术来实现色彩。
这个技术可以解决刷新率的问题。
其通过单片机的控制来显示一些数据即数字,字符等。
本系统显示部分用的是LCD液晶模块。
点阵图形式液晶原理:
已知显示的字符,将字符对应代码送入,显示器上对应位置点亮或不点亮来将字符清晰地显示出来。
3.2.2液晶模块简介
LCD1602液晶模块与一般显示器比较,它可以将字符移动,并使其闪烁,与单片机并行通讯。
3.2.3液晶显示部分与STC89C52的接口
如图3-3所示。
用STC89C52的P0口作为数据线,用P1.2、P1.1、P1.0分别作为LCD的EN、R/W、RS。
这个电路主要设计为:
显示模块初始化:
首先要做的是清除屏幕内容,将接口数据设为8位,显示的字符行数为2行,字符的型号为5×7点阵