您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 图书馆出入人员计数器设计技术报告
1图书馆出入人员计数器设计技术报告院系名称:电子通信与物理学院专业名称:电子与通信工程队员姓名:队员1:卢兴队员2:队员3:完成日期2016年05月16日2图书馆出入人员计数器设计技术报告1设计目的图书馆出入人员数是图书馆管理不可缺少的数据,通过它可以获得图书馆的运行状况。红外传输技术是广范应用的短距离传输技术,利用它的反射原理便可以对图书馆的出入人员进行统计。因此为了精确的统计图书馆的出入人员,我们设计了一个基于红外传输技术的图书馆出入人员计数器2设计要求1)任何一红外对管能够检测到有人走过,并将计数显示出来;2)当障碍物依次从红外发射管1到2走过的时候,人员数加1;3)当障碍物依次从红外发射管2到1走过的时候,人员数减1;4)要求分别统计和显示进去的人员人次、出来的人员人次、里面逗留的人员人数;5)当逗留人员超限时报警(如100人)。6)充分发挥两对红外对管的功能,实现当人员走到一半再返回,则计数不变功能;7)为保证系统稳定性,连续两次及以上只经过红外对管1或2时,不计数。待再次从第1、2对红外管经过时,正常计数。3设计内容本文设计一种基于stc89c52单片机的红外线图书馆出入人员计数器,利用2组红外发射接收对管对进入图书馆的出入人员进行计数,然后把计数值送入单片机进行分析,计算出进入、出去以及逗留人数信息,并将相关数据送到显示器显示。以达到实时统计进入图书馆的总人数的作用。并且能够在图书馆逗留人数超过一定数目时进行报警。4设计方案该人流量统计器包含以下结构:单片机数据处理系统,红外线传感模块,LCD1602显示器和报警装置组成。34.1系统框图51单片机红外对管1红外对管2LCD1602显示器报警装置4.2硬件设计系统硬件电路图:4.3红外线发射和接收原理红外线传输是以红外光作为传输媒体来传输信号的,使用的红外发光二极管和红外接受管是只有一个PN结的半导体器件,它与普通发光二极管(如:红、绿、黄发光二极管)结构原理与制作工艺基本相同,只是所用的材料不同。制造红外线发光二极管材料有砷化镓、砷铝化镓等,其中应用最多的是砷化镓。红外对管中,发射管用于发射一定波长的红外线,肉眼不可见。接收管是一个光敏二极管,无光照时饱和反向漏电流很小,当有光照时,饱和反向漏电流增4加,在一定的范围内它随入射光强度的变化而变化,当发射管和接收管平行安放时,当有障碍物放置在两管前面时,发射管发射的红外线经障碍物反射后就能够被接收管所接收,进而可以判断出有障碍物。4.4单片机系统单片机最小系统是此设计的核心部件,红外传感器所产生的外部脉冲经单片机外部中断进行计数,并且通过对单片机的内部编译,使计数通过LCD显示出来,。一个典型的单片机最小系统一般由时钟电路、复位电路、片外RAM、片外ROM、等组成。对于这次设计的单片机最小系统基本电路见系统硬件电路图。4.5显示电路的设计在本文设计的显示单元中使用了1602液晶,也叫1602字符型液晶。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。因为其微功耗、体积小、显示内容丰富、超薄轻巧的特点,常用在袖珍式仪表和低功耗应用系统中。一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。如图1所示LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。图1LCD1602正面图它的背面如图2所示:图2LCD1602背面图5它的16条引脚定义如下:表1LCD1602引脚定义引脚号符号引脚说明引脚号符号引脚说明1VSS电源地9D2数据端口2VDD电源正极10D3数据端口3VO偏压信号11D4数据端口4RS命令/数据12D5数据端口5RW读/写13D6数据端口6E使能14D7数据端口7D0数据端口15A背光正极8D1数据端口16K背光负极对这个表的说明:1.VSS接电源地。2.VDD接+5V。3.VO是液晶显示的偏压信号,可接10K的3296精密电位器。或同样阻值的RM065/RM063蓝白可调电阻。见图3。图3液晶显示的偏压信号4.RS是命令/数据选择引脚,接单片机的一个I/O,当RS为低电平时,选择命令;当RS为高电平时,选择数据。5.RW是读/写选择引脚,接单片机的一个I/O,当RW为低电平时,向LCD1602写入命令或数据;当RW为高电平时,从LCD1602读取状态或数据。如果不需要进行读取操作,可以直接将其接VSS。6.E,执行命令的使能引脚,接单片机的一个I/O。7.D0—D7,并行数据输入/输出引脚,可接单片机的P0—P3任意的8个I/O口。如果接P0口,P0口应该接4.7K—10K的上拉电阻。如果是4线并行驱动,只须接4个I/O口。8.A背光正极,可接一个10—47欧的限流电阻到VDD。9.K背光负极,接VSS。见图4所示。6图4LCD1602接线图4.6报警装置报警装置我们采用红灯亮作为图书馆逗留人数过多的报警。5程序设计程序设计流程如下:1)启动系统2)判断红外对管是否有人经过3)红外对管1有人经过奇数次则进行标记4)红外对管2有人经过奇数次则进行标记5)两个红外对管都有标记,则判断标记的先后6)红外对管1先标记则进入和逗留人数加一7)否则出去人数加一,逗留人数减一8)显示进入、出去和逗留人数9)判断逗留人数是否超限,启动报警装置否则停止报警10)清除标记继续监测程序见附录。6总结:我们设计的图书馆出入人员计数器实现了基本要求和发挥部分具体功能如7下:1)当人员依次从红外发射管1到2走过的时候,人员数加1;2)当人员依次从红外发射管2到1走过的时候,人员数减1;3)用LCD1602作为显示器,in表示进入人数,out表示出来人数;stay表示逗留人数;4)当逗留人员超限时报警(10人),红灯亮。5)当人员走到一半再返回,则计数不变功能;6)连续两次及以上只经过红外对管1或2时,不计数。待再次从第1、2对红外管经过时,正常计数。7附录程序如下:/*---------------------------------------------------------------*//*---图书馆出入人员计数器程序------------------------------------*//*---功能:LCD1602显示进出以及停留人数-----------------------------*//*------------------------------------------------------------------*/#includereg52.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintucharcodedisp1[]=In:0Out:0;ucharcodedisp2[]=Stay:0;ucharcodedisp3[]=Welcometo;ucharcodedisp4[]=thelibrary;intLedNumVal_1=0;//中断1计数intLedNumVal_2=0;//中断2计数sbitRS=P2^6;sbitRW=P2^5;sbitCS=P2^7;#defineLCDDATAP0//数据传输端口#definelightP1//报警控制端口低电平有效//功能:延时1毫秒voidDelay_xms(uintx){uinti,j;for(i=0;ix;i++)for(j=0;j122;j++);}//功能:12us延时voidDelay_xus(uintt){for(;t0;t--)8{_nop_();}}//控制LCD写时序voidLCD_en_write(void){CS=1;//EN端产生一个高电平脉冲,控制LCD写时序Delay_xus(20);CS=0;Delay_xus(20);}//写指令函数voidWrite_Instruction(ucharcommand){RS=0;RW=0;CS=1;LCDDATA=command;LCD_en_write();//写入指令数据}//写数据函数voidWrite_Data(ucharWdata){RS=1;RW=0;CS=1;LCDDATA=Wdata;LCD_en_write();//写入数据}//字符显示初始地址设置voidLCD_SET_XY(ucharX,ucharY){ucharaddress;if(Y==0)address=0x80+X;//Y=0,表示在第一行显示,地址基数为0x80elseaddress=0xc0+X;//Y非0时,表时在第二行显示,地址基数为0xC0Write_Instruction(address);//写指令,设置显示初始地址}9//在第X行Y列开始显示,指针*S所指向的字符串voidLCD_write_str(ucharX,ucharY,uchar*s){LCD_SET_XY(X,Y);//设置初始字符显示地址while(*s)//逐次写入显示字符,直到最后一个字符/0{Write_Data(*s);//写入当前字符并显示s++;//地址指针加1,指向下一个待写字符}}//在第X行Y列开始显示Wdata所对应的单个字符voidLCD_write_char(ucharX,ucharY,ucharWdata){LCD_SET_XY(X,Y);//写地址Write_Data(Wdata);//写入当前字符并显示}//清屏函数voidLCD_clear(void){Write_Instruction(0x01);Delay_xms(5);}//显示屏初始化函数voidLCD_init(void){Write_Instruction(0x38);//8bitinterface,2line,5*7dotsDelay_xms(5);Write_Instruction(0x38);Delay_xms(5);Write_Instruction(0x38);Write_Instruction(0x08);//关显示,不显光标,光标不闪烁Write_Instruction(0x01);//清屏Delay_xms(5);Write_Instruction(0x04);//写一字符,整屏显示不移动Delay_xms(5);Write_Instruction(0x0C);//开显示,光标、闪烁都关闭}/*********************************************************INT0中断函数*********************************************************/voidcounter0(void)interrupt0using1{EX0=0;10if(LedNumVal_1==1)LedNumVal_1=0;elseLedNumVal_1=1;}/*********************************************************INT1中断函数*********************************************************/voidcounter1(void)interrupt2using2{EX1=0;if(LedNumVal_2==1)LedNumVal_2=0;elseLedNumVal_2=1;}/********************************************************/voidmain(void){uchari;intaa;intin=0;intout=0;intstay=0;intstep;//计数IT0=1;//下降沿触发EX0=1;IT1=1;//下降沿触发
本文标题:图书馆出入人员计数器设计技术报告
链接地址:https://www.777doc.com/doc-7230322 .html