ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:209.69KB ,
资源ID:5354316      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5354316.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书馆出入人员计数器设计技术报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书馆出入人员计数器设计技术报告.docx

1、图书馆出入人员计数器设计技术报告图书馆出入人员计数器设计技术报告院系名称: 电子通信与物理学院 专业名称: 电子与通信工程 队员姓名:队员1:卢兴 队员2: 队员3: 完成日期 2016年05月16日图书馆出入人员计数器设计技术报告1设计目的图书馆出入人员数是图书馆管理不可缺少的数据,通过它可以获得图书馆的运行状况。红外传输技术是广范应用的短距离传输技术,利用它的反射原理便可以对图书馆的出入人员进行统计。因此为了精确的统计图书馆的出入人员,我们设计了一个基于红外传输技术的图书馆出入人员计数器2设计要求1)任何一红外对管能够检测到有人走过,并将计数显示出来;2)当障碍物依次从红外发射管1到2走过

2、的时候,人员数加1;3)当障碍物依次从红外发射管2到1走过的时候,人员数减1;4)要求分别统计和显示进去的人员人次、出来的人员人次、里面逗留的人员人数;5)当逗留人员超限时报警(如100人)。6)充分发挥两对红外对管的功能,实现当人员走到一半再返回,则计数不变功能;7)为保证系统稳定性,连续两次及以上只经过红外对管1或2时,不计数。待再次从第1、2对红外管经过时,正常计数。3设计内容本文设计一种基于stc89c52单片机的红外线图书馆出入人员计数器,利用2组红外发射接收对管对进入图书馆的出入人员进行计数,然后把计数值送入单片机进行分析,计算出进入、出去以及逗留人数信息,并将相关数据送到显示器显

3、示。以达到实时统计进入图书馆的总人数的作用。并且能够在图书馆逗留人数超过一定数目时进行报警。4设计方案该人流量统计器包含以下结构:单片机数据处理系统,红外线传感模块,LCD1602显示器和报警装置组成。4.1 系统框图4.2硬件设计系统硬件电路图:4.3红外线发射和接收原理红外线传输是以红外光作为传输媒体来传输信号的,使用的红外发光二极管和红外接受管是只有一个PN结的半导体器件,它与普通发光二极管(如:红、绿、黄发光二极管)结构原理与制作工艺基本相同,只是所用的材料不同。制造红外线发光二极管材料有砷化镓、砷铝化镓等,其中应用最多的是砷化镓。红外对管中,发射管用于发射一定波长的红外线,肉眼不可见

4、。接收管是一个光敏二极管,无光照时饱和反向漏电流很小,当有光照时,饱和反向漏电流增加,在一定的范围内它随入射光强度的变化而变化,当发射管和接收管平行安放时,当有障碍物放置在两管前面时,发射管发射的红外线经障碍物反射后就能够被接收管所接收,进而可以判断出有障碍物。4.4单片机系统单片机最小系统是此设计的核心部件,红外传感器所产生的外部脉冲经单片机外部中断进行计数,并且通过对单片机的内部编译,使计数通过LCD显示出来,。一个典型的单片机最小系统一般由时钟电路、复位电路、片外RAM、片外ROM、等组成。对于这次设计的单片机最小系统基本电路见系统硬件电路图。4.5显示电路的设计在本文设计的显示单元中使

5、用了1602液晶,也叫1602字符型液晶。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个57或者511等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。 因为其微功耗、体积小、显示内容丰富、超薄轻巧的特点,常用在袖珍式仪表和低功耗应用系统中。一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。如图1所示LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。图1 LCD1602正面图它的背面如图2所示:图2 LC

6、D1602背面图它的16条引脚定义如下: 表1 LCD1602引脚定义引脚号符号引脚说明引脚号符号引脚说明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为低电

7、平时,选择命令;当RS为高电平时,选择数据。5.RW是读/写选择引脚,接单片机的一个I/O,当RW为低电平时,向LCD1602写入命令或数据;当RW为高电平时,从LCD1602读取状态或数据。如果不需要进行读取操作,可以直接将其接VSS。6.E,执行命令的使能引脚,接单片机的一个I/O。7.D0D7,并行数据输入/输出引脚,可接单片机的P0P3任意的8个I/O口。如果接P0口,P0口应该接4.7K10K的上拉电阻。如果是4线并行驱动,只须接4个I/O口。8.A背光正极,可接一个1047欧的限流电阻到VDD。9.K背光负极,接VSS。见图4所示。图4 LCD1602接线图4.6 报警装置报警装置

8、我们采用红灯亮作为图书馆逗留人数过多的报警。5程序设计程序设计流程如下:1)启动系统2)判断红外对管是否有人经过3)红外对管1有人经过奇数次则进行标记4)红外对管2有人经过奇数次则进行标记5)两个红外对管都有标记,则判断标记的先后6)红外对管1先标记则进入和逗留人数加一7)否则出去人数加一,逗留人数减一8)显示进入、出去和逗留人数9)判断逗留人数是否超限,启动报警装置否则停止报警10)清除标记继续监测程序见附录。6总结:我们设计的图书馆出入人员计数器实现了基本要求和发挥部分具体功能如下:1)当人员依次从红外发射管1到2走过的时候,人员数加1;2)当人员依次从红外发射管2到1走过的时候,人员数减

9、1;3)用LCD1602作为显示器,in表示进入人数,out表示出来人数;stay表示逗留人数;4)当逗留人员超限时报警(10人),红灯亮。5)当人员走到一半再返回,则计数不变功能;6)连续两次及以上只经过红外对管1或2时,不计数。待再次从第1、2对红外管经过时,正常计数。7附录程序如下:/* - - -*/* - 图书馆出入人员计数器程序 -*/* - 功能:LCD1602显示进出以及停留人数-*/*-*/#include #include #define uchar unsigned char#define uint unsigned intuchar code disp1=In: 0 O

10、ut: 0;uchar code disp2=Stay: 0;uchar code disp3=Welcome to;uchar code disp4=the library;int LedNumVal_1=0; / 中断1计数int LedNumVal_2=0; / 中断2计数sbit RS=P26;sbit RW=P25;sbit CS=P27;#define LCDDATA P0 /数据传输端口#define light P1 /报警控制端口 低电平有效/功能:延时1毫秒void Delay_xms(uint x) uint i,j; for(i=0;ix;i+) for(j=0;j0;

11、t-) _nop_(); /控制LCD写时序void LCD_en_write(void) CS=1;/EN端产生一个高电平脉冲,控制LCD写时序 Delay_xus(20); CS=0; Delay_xus(20); /写指令函数void Write_Instruction(uchar command) RS=0; RW=0; CS=1; LCDDATA=command; LCD_en_write();/写入指令数据/写数据函数void Write_Data(uchar Wdata) RS=1; RW=0; CS=1; LCDDATA=Wdata; LCD_en_write();/写入数据/

12、字符显示初始地址设置void LCD_SET_XY(uchar X,uchar Y) uchar address; if(Y=0) address=0x80+X;/Y=0,表示在第一行显示,地址基数为0x80 else address=0xc0+X;/Y非0时,表时在第二行显示,地址基数为0xC0 Write_Instruction(address);/写指令,设置显示初始地址/在第X行Y列开始显示,指针*S所指向的字符串void LCD_write_str(uchar X,uchar Y,uchar *s) LCD_SET_XY(X,Y);/设置初始字符显示地址 while(*s)/逐次写入

13、显示字符,直到最后一个字符/0 Write_Data(*s);/写入当前字符并显示 s+;/地址指针加1,指向下一个待写字符 /在第X行Y列开始显示Wdata所对应的单个字符void LCD_write_char(uchar X,uchar Y,uchar Wdata) LCD_SET_XY(X,Y);/写地址 Write_Data(Wdata);/写入当前字符并显示/清屏函数void LCD_clear(void) Write_Instruction(0x01); Delay_xms(5);/显示屏初始化函数void LCD_init(void) Write_Instruction(0x38

14、); /8bit interface,2line,5*7dots Delay_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中断函数 */

15、void counter0(void) interrupt 0 using 1 EX0=0; if(LedNumVal_1=1) LedNumVal_1=0; else LedNumVal_1=1; /* INT1中断函数 */void counter1(void) interrupt 2 using 2 EX1=0; if(LedNumVal_2=1) LedNumVal_2=0; else LedNumVal_2=1; /*/void main(void) uchar i; int aa; int in=0; int out=0; int stay=0; int step; /计数 IT0

16、=1; /下降沿触发 EX0=1; IT1=1; /下降沿触发 EX1=1; EA=1; Delay_xms(50);/等待系统稳定 LCD_init(); /LCD初始化 LCD_clear(); /清屏 LCD_write_str(0,0,disp3);/显示开机信息 LCD_write_str(0,1,disp4); Delay_xms(2000);/保持显示2秒钟 LCD_clear(); /清屏 LCD_write_str(0,0,disp1);/显示预设信息 LCD_write_str(0,1,disp2); light=0xff; /关灯 while(1) if(LedNumVa

17、l_1=0&LedNumVal_2=0) step=0; if(LedNumVal_1=1&LedNumVal_2=0) step=1; if(LedNumVal_1=0&LedNumVal_2=1) step=-1; if(LedNumVal_1=1&LedNumVal_2=1) LedNumVal_1=0; / 中断1计数 LedNumVal_2=0; / 中断2计数 if(stay=0&step=-1) step=0; else stay=stay+step; /两个中断变化则计数加一次 if(step0) in=in+1; if(step=10000) LCD_write_char(i

18、,0,0x30+aa%100000/10000); i+; if (aa=1000) LCD_write_char(i,0,0x30+aa%10000/1000); i+; if (aa=100) LCD_write_char(i,0,0x30+aa%1000/100); i+; if (aa=10) LCD_write_char(i,0,0x30+aa%100/10); i+; if (aa=0) LCD_write_char(i,0,0x30+aa%10); aa=out; i=11; if (aa=10000) LCD_write_char(i,0,0x30+aa%100000/1000

19、0); i+; if (aa=1000) LCD_write_char(i,0,0x30+aa%10000/1000); i+; if (aa=100) LCD_write_char(i,0,0x30+aa%1000/100); i+; if (aa=10) LCD_write_char(i,0,0x30+aa%100/10); i+; if (aa=0) LCD_write_char(i,0,0x30+aa%10); aa=stay; i=5; if (aa=10000) LCD_write_char(i,1,0x30+aa%100000/10000); else LCD_write_cha

20、r(i,1,32); /写入空格 i+; if (aa=1000) LCD_write_char(i,1,0x30+aa%10000/1000); else LCD_write_char(i,1,32); i+; if (aa=100) LCD_write_char(i,1,0x30+aa%1000/100); else LCD_write_char(i,1,32); i+; if (aa=10) LCD_write_char(i,1,0x30+aa%100/10); else LCD_write_char(i,1,32); i+; if (aa=0) LCD_write_char(i,1,0x30+aa%10); if(stay10) /报警控制 light=0; else light=0xff; Delay_xms(30);/延时 EX0=1; EX1=1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1