教室人数自动计数装置.docx
《教室人数自动计数装置.docx》由会员分享,可在线阅读,更多相关《教室人数自动计数装置.docx(14页珍藏版)》请在冰豆网上搜索。
![教室人数自动计数装置.docx](https://file1.bdocx.com/fileroot1/2023-1/1/3fc9dd6c-bc57-4a0c-b504-6b0c5de1e2c8/3fc9dd6c-bc57-4a0c-b504-6b0c5de1e2c81.gif)
教室人数自动计数装置
摘要
近来在主要的大城市还有一些规模较大的学校中,人口流动量非常大,在一定程度上给生活带来不便。
本文主要介绍了教室人数自动计数装置的工作原理,在对各种计数方法进行分析后提出了基于光电传感器和单片机系统的计数测量控制装置,并给出了智能计数器控制的硬件电路设计、软件电路设计和系统程序流程图。
本文详细分析了系统的组成及工作原理,给出了系统各个硬件、软件的设计方法。
该计数系统安装方便,维护简单,工作稳定,运行可靠,对于学校、商场、会议室等人员流动很大的公共场所有很高的使用价值,方便对于人员流动的管理及配送、具有很高的使用价值和经济价值。
关键词:
单片机;光电传感器;智能计数器
第1章绪论
1.1设计背景
在学校等人员流动较大的地方,如果对人数的变动没有有效的管理和控制,那么对工作和学习的效率是有害的。
如何对于人员流动进行实时的、有效的、精确的计数成为学校等场所十分关注的问题,因此设计一款实用有效的人数计数器是很必要的。
电子计数器是一种多功能的电子测量仪器,至今已有30多年的发展历史。
早期设计师们追求的目标主要是扩展计数范围,提高计数精度、稳定度等,这些也是衡量一款计数器的主要指标。
目前这些计数日趋完善,现代的应用技术可以让计数器的范围扩展到无限大。
当今,单片机技术迅速发展,基于单片机技术开发的计数设备也广泛应用到各个领域。
单片机以体积小、功能强、可靠性高、性价比高等特点,已成为实现现代工业生产技术进步和开发机电一体化智能测控产品的重要手段。
如今的自动计数器大多采用非接触式的计数触发方式,早已开发出多种型号的专用检测芯片,利用MCS51系列的单片机作为控制核心的计数器成为了计数应用领域的潮流。
1.2设计内容及解决问题
如何构成检测电路、MCS51系列单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示模块的选择、单片机的扩展、提高单片机抗干扰能力和系统的稳定性。
第2章系统方案设计
2.1设计任务及要求
设计可实现教室内人数自动计数、显示的装置。
通过在教室门上安装的检测装置检测进出教室的人数,计算出教室内的实际人数,当按下显示按键、数据通信按键和数据清除按键时,可分别实现人数的显示、通信和数据清除,其中显示应在教室外显示,以便学生查询。
此外,装置还设有上课/自习状态按键和相应的指示装置。
2.2系统设计思路
由于教室前后门应用相同的设备,故只介绍其中一个;
使用器件:
光电传感器2个,数码管3个,AT89C51单片机一个,控制按键1组。
设计思路:
门上装有两个光电传感器,并排架设,一前一后,若传感器1先有信号而传感器2后有信号,则表示有人进入教室;若传感器2先有信号而传感器1后有信号,则表示有人出了教室。
传感器信号经过放大滤波传给单片机,单片机经过数据处理输出信号,传给8位数码管,数码管放在教室外面,方便学生查看。
按键电路设置复位及清零,数码管上还可以显示上课、自习的状态。
设备利用CAN总线进行远程通信,连接到控制中心。
2.3光电传感器简介
光电传感器是利用光电元件作为检测元件的传感器。
它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换为电信号。
光电传感器一般有光源,光电元件,转换电路三部分组成。
光电检测法具有精度高、反应快、非接触等特点,而且可测参数多,传感器结构简单,形式灵活多样。
红外发光二极管是一种把电能转换成光能的半导体器件。
它具有体积小、功耗低、寿命长、响应快、机械强度高等优点,并能和集成电路相匹配。
因此,广泛的应用于计算机、仪器仪表的自动控制系统中。
光电转换部分与单片机的连接框图如下:
传感器
整形驱动
计数脉冲
89C51
图2.1观点转换部分与单片机得连接示意图
2.4方案1设计
原理图:
原理阐述:
RT1072红外检测芯片形成计数脉冲以后送给控制单元AT89C51单片机,通过对它片内计数、显示编程。
PS7219是专用的LED显示驱动芯片,可以同时驱动8个数码管。
X2504P是一块具有电源电压监控、EEPROM和看门狗定时器电路三种功能于一体的芯片,它保证在电源接通、关断、瞬间电源电压不稳的时候不会造成系统死机、数据误写或误操作,大大提高了系统的稳定性和抗干扰能力。
2.5方案2设计
原理图:
红外发射电路
红外接收电路
MCS51
显示驱动
LED显示
电源供电电路
原理阐述:
红外发射电路和红外接收电路构成红外检测单元以及形成计数脉冲、经过AT89C51外部中断对其片内计数、显示编程、最后通过显示驱动芯片连接上LED显示器就完成最后的显示。
2.6方案论证
方案1即可完美的实现人数的计数功能,并且能让系统处于异常状态和抗干扰时通过外围专用芯片得到非常好的解决,外围电路架设相对简单,在市场上属于高端自动计数产品。
同时它也暴露出一个重大问题:
由于成本太贵的原因此类产品没有得到普及,如果用此方案进行设计只需要了解各专用芯片的引脚功能以及外围连接方法就可以实现自动计数。
方案2是这次设计所选用的最终方案,之所以选用是因为这个方案能够达到精确、稳定的自动计数。
但也有致命缺点,就是整个系统抗干扰能力较弱,系统掉电以后不能保存数据,在系统处于异常状态下容易出现误操作或者死机,这也是此次设计着重解决的课题。
2.7系统总体框图及原理
根据方案2进行了局部的修改,以达到稳定系统的目的,具体框图如下:
原理阐述:
本电路的指导思想是利用类似红外发光管的光电传感器检测人员进出,接收器接收到信号,并将其放大、整流形成高电平信号。
当人或物品挡住红外光时,接收器没有接收到信号,放大器输出低电平信号。
这个便是外部计数脉冲信号。
这个脉冲信号送到AT89C51单片机中进行计数控制,完成显示。
第3章硬件电路设计
3.1单片机最小系统设计
图3.1单片机最小系统
3.2键盘显示模块设计
图3.2键盘显示模块
上图为键盘电路图,按键功能分别为:
K0键:
复位清零;
K1键:
显示上课\自习状态;
K2键:
显示计数脉冲数;
此按键电路为低电平有效,当无按键按下的时候,单片机输入引脚P1.0、P1.1、P1.2、P1.3端口均为高电平。
当其中任何一个按键按下的时候,其对应的端口变为低电平。
3.3电源电路设计
电源电路示意图如下:
图3.3电源电路
3.4外部检测设备设计
这个部分主要是由NE555组成的红外发射电路和LM567构成的红外接收电路组成。
工作原理为当红外发射二极管发出红外光,检测是否有人或者物品遮挡,然后由红外接收二极管将调制信号通过锁相环鉴频后输出CP计数脉冲以便单片机进行计数控制。
红外线发射电路如下图:
图3.4.1红外线发射电路
红外线接收电路如下图:
图3.4.2红外线接收电路
3.5显示模块设计
显示部分由单片机AT89C51控制完成。
显示驱动由74HC241完成。
示意图如下:
图3.5显示电路
第4章系统软件设计
系统流程图:
图4.1程序流程图
系统程序设计:
**************************************
CPUAT89C51
XTAL12M
**************************************
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
**************************************
bittime_10ms_ok=0,time_50ms_ok=0;//定义时间标识
uchartime_counter1;//软件时间计数器
ucharbuff[3];//显示缓冲区
ucharcodenumber[10]="0123456789";//显示字符
/******************************************
按键读取子程序,四个按键依次返回1,2,3,4
******************************************/
ucharread_key(void)
{
staticucharkey_state;
ucharkey_press,key_return=0;
key_press=P3&0xf0;//读取按键I/O口
switch(key_state)//判断按键状态
{
case0:
//状态0
if(key_press!
=0xf0)//不等,表示有键按下
key_state=1;//状态置1
break;
case1:
if(key_press!
=0xf0)//确实不等,判断是哪个键按下
{
switch(key_press)
{
case0xe0:
//00001110第一个按下
key_return=1;
break;
case0xd0:
//00001101第二个按下
key_return=2;
break;
case0xb0:
//00001011第三个按下
key_return=3;
break;
case0x70:
//00000111第四个按下
key_return=4;
break;
}
key_state=2;//状态置2
}
else//否则是抖动,状态置0
key_state=0;
break;
case2:
//状态2,等待按键释放
if(key_press==0xf)
key_state=0;
break;
}
returnkey_return;
}
********************************************************************
LCD显示子函数,显示之前需要将要显示的数按个,十,百依次放入显示缓冲区
*********************************************************************
voiddisplay(ucharadd,uchardat)
{
uchari;
for(i=0;i<3;i++)//将要显示的数分解送显示缓冲区
{
buff[2-i]=dat%10;
dat=dat/10;
}
write_lcd_cmd(add);//显示在lcd上
for(i=0;i<3;i++)
{
write_lcd_dat(number[buff[i]]);
}
}
/*********
主函数
**********/
voidmain(void)
{
ucharup_limit_in=20,low_limit_in=5;//定义进出门人数要设置的上下限
ucharup_limit_out=20,low_limit_out=5;
ucharnumber_in,number_out;//定义进出门人数
ucharkey_input;
ucharset_state=0;//定义设置键状态(第四个键)
uchari;
********************************************************************
CAN总线通信模块
*********************************************************************
#include"CAN_TOUWENJIAN.h"//包含相关寄存器定
//初始化SJA1000主控制器子函数
voidInit_CAN(void){
MODE=0x01;
CDR=0x88;
IER=0x0D;
AMR=0xFF;
ACR=0x00;
BTR0=0x05;
BTR1=0xFF;
OCR=0xAA;
TXERR=0x00;
Reg_LINSHI=ECC;
MODE=0x09;
}
//主程序
voidcan(void)
{SCON=0x50;
PCON=0x00;
TMOD=0x21;
TL1=0xfd;
TH1=0xfd;
TR1=1;
EA=1;
ES=1;
Init_CAN();
while
(1){
TX_DATA_CAN();//发送子程序
REC_DATA_CAN();//接收子程序
SERIAL();//串行通信子程序
}
第5章设计总结
本次设计选用AT89C51单片机作为控制核心,利用数码管来显示人数,利用CAN总线进行远程数据通信,从分利用所学的智能仪器的知识,使本系统成功的对教室人数进行计数,具有良好的实用性和经济性,为学校更方便的进行学生人数的管理提供了很好的帮助。
整个系统结构简单,操作方便、灵活,经济性好、维护方便,具有良好的使用价值和市场经济价值。
本次设计的系统仍然有不足之处,比如在掉电的时候无法对数据进行保护,如果学校在晚上进行人员清点的时候,系统再次上电则没有了数据,如果学校经济允许,可以采用方案论证中的第一种方案,在掉电的时候可以对数据进行保护;本系统使用的单片机只是入门级产品,整个51系列在市面上已经极少流通,取而代之的是更小型、更方便、功能更丰富的单片机。
若使用新型的、更优秀的单片机,系统的性能必然会上升一个台阶;由于教室有两个门,两个门上的两套系统要进行实时的显示和互动,两套系统之间的联系也要非常密切,如果单纯的使用电压或者电流的连接,则没有很好的抗干扰的能力,如果经济允许,在两台系统之间最好选择一款无线通信装置,这样可以使两台系统更好的进行连接。
本次设计遵循经济适用的原则,所以没有考虑这些可以系统的提升设备性能的方案。
虽然本次课程设计是要求自己独立完成,但是,彼此还是脱离不了集体的力量,遇到问题和同学互相讨论交流。
多和同学讨论。
我们在做课程设计的过程中要不停的讨论问题,这样,我们可以尽可能的统一思想,这样就不会使自己在做的过程中没有方向,并且这样也是为了方便最后设计和在一起。
讨论不仅是一些思想的问题,还可以深入的讨论一些技术上的问题,这样可以使自己的处理问题要快一些,少走弯路。
多改变自己设计的方法,在设计的过程中最好要不停的改善自己解决问题的方法,这样可以方便自己解决问题。
参考文献
[1]丁英丽.智能光电计数系统的设计.哈尔滨:
黑龙江人民出版社,2003
[2]陆永超.电子测量技术.北京:
清华大学出版社,2004
[3]王煜东.传感器及应用.北京:
机械工业出版社,2005
[4]郝建国.单片机在电子电路设计中的应用.北京:
清华大学出版社,2006.
[5]李文仲.短距离无线数据通信入门与实战.北京:
北京航空航天大学出版社,2006.
附录Ⅰ基本使用器件
电阻
5.1K、10K、4.7K、120K、15K等
二极管
6个
LED
3个
电容
1000pF
三极管
6个
开关
6个
晶振
1个
数码管
3个
附录Ⅱ芯片型号
单片机
AT89C51
红外接收电路
NE555
红外接收电路
LM567
显示驱动
74HC241