基于zigbee的教室人数统计系统.docx

上传人:b****0 文档编号:8970027 上传时间:2023-05-16 格式:DOCX 页数:22 大小:70.45KB
下载 相关 举报
基于zigbee的教室人数统计系统.docx_第1页
第1页 / 共22页
基于zigbee的教室人数统计系统.docx_第2页
第2页 / 共22页
基于zigbee的教室人数统计系统.docx_第3页
第3页 / 共22页
基于zigbee的教室人数统计系统.docx_第4页
第4页 / 共22页
基于zigbee的教室人数统计系统.docx_第5页
第5页 / 共22页
基于zigbee的教室人数统计系统.docx_第6页
第6页 / 共22页
基于zigbee的教室人数统计系统.docx_第7页
第7页 / 共22页
基于zigbee的教室人数统计系统.docx_第8页
第8页 / 共22页
基于zigbee的教室人数统计系统.docx_第9页
第9页 / 共22页
基于zigbee的教室人数统计系统.docx_第10页
第10页 / 共22页
基于zigbee的教室人数统计系统.docx_第11页
第11页 / 共22页
基于zigbee的教室人数统计系统.docx_第12页
第12页 / 共22页
基于zigbee的教室人数统计系统.docx_第13页
第13页 / 共22页
基于zigbee的教室人数统计系统.docx_第14页
第14页 / 共22页
基于zigbee的教室人数统计系统.docx_第15页
第15页 / 共22页
基于zigbee的教室人数统计系统.docx_第16页
第16页 / 共22页
基于zigbee的教室人数统计系统.docx_第17页
第17页 / 共22页
基于zigbee的教室人数统计系统.docx_第18页
第18页 / 共22页
基于zigbee的教室人数统计系统.docx_第19页
第19页 / 共22页
基于zigbee的教室人数统计系统.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于zigbee的教室人数统计系统.docx

《基于zigbee的教室人数统计系统.docx》由会员分享,可在线阅读,更多相关《基于zigbee的教室人数统计系统.docx(22页珍藏版)》请在冰点文库上搜索。

基于zigbee的教室人数统计系统.docx

基于zigbee的教室人数统计系统

 

题目:

基于zigbee的教室人数统计系统

 

目录

摘要:

3

1.系统简介4

1.1系统方案4

1.1.2控制器模块4

1.1.3显示模块4

1.1.4光电对管5

1.1.5串口通信5

1.1.6zigbee无线网络通信5

1.1.7上位机5

1.2功能与指标6

1.2.1光电对管6

1.2.2LCD12864显示屏6

1.2.3串口通信6

1.2.4zigbee无线网络通信6

1.2.5上位机6

1.3实现原理6

1.4硬件框图7

1.5软件流程8

2.特色举例9

3.技术说明9

4.系统适用范围9

5源程序9

 

摘要:

本系统采用AT89S52为控制中心,能够实时自动的显示教室的使用情况,并可以通过上位机远程设置教室的使用情况,系统包括了光电对管,LCD12864和上位机,通信采用了串口通信和zigbee无线网络通信。

关键字:

AT89S52,光电对管,上位机,串口通信,zigbee无线网络通信。

 

Abstract:

ThissystemadoptstheAT89S52asthecontrolcenter,canreal-timedisplayautomaticallytheusageoftheclassroom,andcanbesetbyPCremoteclassroomusage,systemconsistsofthephotoelectrictube,LCD12864andsuperordinationmachine,serialportcommunicationadoptedcommunicationandzigbeewirelessnetworkcommunication.

Keywords:

AT89S52,Photoelectrictotube,Uppermachine,Aserialportcommunication,Zigbeewirelessnetworkcommunication。

 

1.系统简介

1.1系统方案

系统采用AT89S52芯片,整个系统分为三个部分,分别是教室部分,教学楼公示部分和总控制室部分。

教室部分采集教室信息将其用LED12864显示并且会将信息通过串口通信传输到教学楼公示部分。

教学楼公示部分会接受每间教室的使用情况并将其整体显示出,同时会通过zigbee无线网络通信将信息传输到总控室部分。

总空室部分会接受信息并将信息显示在上位机上,同时还可以通过上位机内部的课程表设置教室的使用状态。

教室部分

总控制室

教学楼公示部分

教室部分

教室部分

 

图一整体结构图

1.1.2控制器模块

方案一:

采用现在比较通用的AT89S52单片机。

AT89S52单片机的发展已经有比较长的时间,应用比较广泛,各种技术都比较成熟,而且价格低廉,耗能较低。

方案二:

采用ATMEL公司的ATMEGA16A单片机系统。

ATMEGA16A单片机是8位微处理器,具有体积小、集成度高、易扩展、可靠性高、结构简单、中断处理能力强等特点,内存16kb,处理速度高,内部自带A/D使用方便,性价比高,广泛应用于工业领域。

但是价钱过高,本系统所用功能无需这些功能。

综合考虑后,我们选择方案一。

1.1.3显示模块

方案一:

1602液晶显示。

由于1602液晶自身特性决定其不能显示汉字,不能很好的配合系统工作,所以我们不选它做显示器件。

方案二:

12864液晶显示。

12864液晶作为一款应用十分广泛显示设备,其自身有着许多优点。

它内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字.,能够很好的显示系统的工作状态。

且应用价格也不高,是本设计的理想显示器件。

根据我们的需要,我们决定采用第二种方案,采用12864液晶显示。

1.1.4光电对管

光电对管是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的。

物体不限于金属,所有能反射光线的物体均可被检测。

光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。

安防系统中常见的光电开关烟雾报警器,工业中经常用它来记数机械臂的运动次数。

1.1.5串口通信

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

1.1.6zigbee无线网络通信

Zigbee是一组基于IEEE批准通过的802.15.4无线标准研制开发的有关组网、安全和应用软件方面的技术标准。

IEEE仅处理低级MAC层和物理层协议,Zigbee联盟对其网络层协议和API进行了标准化。

Zigbee联盟还开发了安全层,以保证这种便携设备不会意外泄漏其标识,而且这种利用网络的远距离传输不会被其他节点获得。

完整的Zigbee协议套件由层应用规范、应用会聚层、网络层、数据链路层和物理层组成。

网络层以上协议由Zigbee联盟制定,IEEE802.15.4负责物理层和链路层标准。

1.1.7上位机

上位机可以显示各个教学楼的教室使用情况,并且需要远程控制教室的使用情况显示。

1.2功能与指标

1.2.1光电对管

光电对管的功能是检测学生出入教室的次数,每个门会有两对光电对管。

塑料或金属外壳,有圆柱形、方形、叉型、玻璃或塑料光纤等直射系统检测距离长,最大100m,检测不透明物体准确、可靠,抗恶劣条件好(灰尘、散射光导)反射系统检测距离中等,最大15m,易于安装,检测不透明物体或非反射性透明物体;极性反射系统可以检测反射物体漫射系统检测距离短,最大2m。

1.2.2LCD12864显示屏

显示屏的功能是显示教室的使用情况。

指标是要求实时显示。

1.2.3串口通信

串口通信的功能是在教室部分和教学楼公示部分之间构建信息连接。

指标是要求连接保持畅通。

1.2.4zigbee无线网络通信

Zigbee无线网络通信的功能是连接上位机与教学楼公示部分。

指标是保持信息连接畅通。

1.2.5上位机

上位机的功能是显示各个教学楼的教室使用情况,并且需要远程控制教室的使用情况显示。

指标是需要智能化控制与显示。

1.3实现原理

本系统通过达盛科技开发板控制教室部分,通过串口通信传送和接受教学楼公示部分的信息。

教学楼公示部分通过zigbee无线网络与上位机保持信息传输。

图二实物图

光电对管

1.4硬件框图

LED12864

AT89S52

通信串口

 

LED12864

Zigbee模块

无线网络

 

上位机

Zigbee模块

图三硬件框图

开始

1.5软件流程

程序初始化

上位机设置

教学楼公示

教室显示

占用状态

空闲状态

教室显示

教学楼公示

上位机显示

图四程序流程图

2.特色举例

1.系统可以通过串口和PC上位机连接,实现计算机对教室使用情况的监视与管理。

2.我们使用单片机串口通信,串口通信适合长距离通信,有一定的纠错能力,信息传输快并且稳定。

3.zigbee无线网络通信近距离、低复杂度、低功耗、低成本的无线网络技术。

3.技术说明

系统使用的ZigBee无线通信技术是一种新兴的近距离、低复杂度、低功耗、低成本的无线网络技术,通讯距离从标准的75m到几百米、几公里,并且支持无限扩展。

系统的红外发射和接收都是采用软件编码硬件电路简单稳定。

我们还使用了串口通信,对教室进行了更加快速和更加方便的信息同步。

4.系统适用范围

本系统是一种教室管理系统,他的功能是对所有的教室进行集中安排和管理,本系统的优点是易于管理教室,且方便同学寻找自习教室。

系统适用于所有的高校,它将会更加方便学校管理教室,学生寻找自习教室。

如果把本系统和因特网连接,就可以通过手机或网络随时随地的对学校的教室情况进行了解。

随着科学技术和人们生活水平的提高,我相信本系统将会有更加广阔的发展前景。

5源程序

教室部分

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineLCD_dataP0//数据口

#definesend_dataP1//通讯口

sbitLCD_RS=P1^5;//寄存器选择输入

sbitLCD_RW=P1^6;//液晶读/写控制

sbitLCD_EN=P1^4;//液晶使能控制

sbitLCD_PSB=P1^7;//串/并方式控制

sbitwela=P2^6;

sbitdula=P2^7;

sbitC1=P1^0;//对管1

sbitC2=P1^1;//对管2

sbitE1=P3^2;

sbitE2=P3^3;

ucharcodedis1[]="教室座位";

ucharcodedis2[]="90";//="90";

ucharcodedis3[]="当前状况";

uchardis4[30];

uintnum=0;//按键计数

uintzj=1;//自家(zj)循环用数

voiddelay_1ms(uintx)

{uinti,j;

for(j=0;j

for(i=0;i<110;i++);

}

voidsend_init()

{

TMOD=0x20;

TH1=0Xfd;

TL1=0Xfd;

TR1=1;

SM0=0;

SM1=1;

//EA=1;

//ES=1;

}

voidwrite_cmd(ucharcmd)

{LCD_RS=0;

LCD_RW=0;

LCD_EN=0;

P0=cmd;

delay_1ms(5);

LCD_EN=1;

delay_1ms(5);

LCD_EN=0;

}

voidwrite_dat(uchardat)

{LCD_RS=1;

LCD_RW=0;

LCD_EN=0;

P0=dat;

delay_1ms(5);

LCD_EN=1;

delay_1ms(5);

LCD_EN=0;

}

voidlocate(uinty,uintk,uchar*s)

{if(k==0)

{k=0x80;}

elseif(k==1)

{k=0x90;}

elseif(k==2)

{k=0x88;}

elseif(k==3)

{k=0x98;}

write_cmd(y+k);//显示地址

while(*s)

{write_dat(*s);

s++;

}

}

voidsend()

{SBUF=dis4[0];

while(!

TI);

TI=0;}

//voidafter()

//{if(C1==0)

//{num++;

//delay_1ms(3000);}

//elseif(C2==0)

//{num--;

//delay_1ms(3000);}

//dis4[0]=num;

//P2=num;}

//voidup()

//{if(C1==0)

//zj=zj+1;

//if(zj==100)

//zj=0;

//while(!

C1);}

//voiddown()

//{if(C2==0)

//

//zj=zj2;

//if(zj==100)

//zj=0;

//while(!

C2);

//

//

//}

//

//voidafter()

//{up();

//down();

//if(zj==20)

//{num++;

//zj=0;}

//elseif(zj==2)

//{num--;

//zj=0;}

////dis2[0]=zj;

//dis4[0]=num;}

//voidcheck()

//{if(!

C1)

//num++;

//dis4[0]=num;

//}

/*LCD初始化设定*/

voidlcd_init()

{LCD_PSB=1;//并口方式

write_cmd(0x30);//基本指令操作

delay_1ms(5);

write_cmd(0x0C);//显示开,关光标

delay_1ms(5);

write_cmd(0x01);//清除LCD的显示内容

delay_1ms(5);

write_cmd(0x02);

delay_1ms(5);

write_cmd(0x06);

delay_1ms(5);

}

voidmain()

{

EA=1;

wela=0;

dula=0;

delay_1ms(5);//延时

lcd_init();//初始化LCD

delay_1ms(5);

while

(1)

{

//after();

send_init();

if(E1==0)

{

EX1=1;

IT1=0;

}

elseif(E2==0)

{

EX0=1;

IT0=0;

}

locate(0,0,dis1);

delay_1ms(5);

locate(0,1,dis2);

locate(0,2,dis3);

delay_1ms(5);

write_cmd(0x98);

write_dat(dis4[0]+0x30);

delay_1ms(1000);

send();

}

}

voidint1()interrupt2

{num++;

dis4[0]=num;

EX1=0;

delay_1ms(500);

}

voidinit0()interrupt1

{num--;

dis4[0]=num;

EX0=0;

delay_1ms(500);

}

教学楼部分

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineLCD_dataP0//数据口

#definesend_dataP1//通讯口

sbitLCD_RS=P1^5;//寄存器选择输入

sbitLCD_RW=P1^6;//液晶读/写控制

sbitLCD_EN=P1^4;//液晶使能控制

sbitLCD_PSB=P1^7;//串/并方式控制

sbitwela=P2^6;

sbitdula=P2^7;

ucharcodedis1[]="一楼教室";

ucharcodedis2[]="有课";

ucharcodedis3[]="二楼教室";

uchardis4[30];

uintnum=0;//按键计数

voiddelay_1ms(uintx)

{uinti,j;

for(j=0;j

for(i=0;i<110;i++);

}

voidreceive_init()

{

TMOD=0X20;

TH1=0Xfd;

TL1=0Xfd;

TR1=1;

REN=1;

SM0=0;

SM1=1;

EA=1;

ES=1;

}

voidwrite_cmd(ucharcmd)

{LCD_RS=0;

LCD_RW=0;

LCD_EN=0;

P0=cmd;

delay_1ms(5);

LCD_EN=1;

delay_1ms(5);

LCD_EN=0;

}

voidwrite_dat(uchardat)

{LCD_RS=1;

LCD_RW=0;

LCD_EN=0;

P0=dat;

delay_1ms(5);

LCD_EN=1;

delay_1ms(5);

LCD_EN=0;

}

voidlocate(uinty,uintk,uchar*s)

{if(k==0)

{k=0x80;}

elseif(k==1)

{k=0x90;}

elseif(k==2)

{k=0x88;}

elseif(k==3)

{k=0x98;}

write_cmd(y+k);//显示地址

while(*s)

{write_dat(*s);

s++;

}

}

/*LCD初始化设定*/

voidlcd_init()

{LCD_PSB=1;//并口方式

write_cmd(0x30);//基本指令操作

delay_1ms(5);

write_cmd(0x0C);//显示开,关光标

delay_1ms(5);

write_cmd(0x01);//清除LCD的显示内容

delay_1ms(5);

write_cmd(0x02);

delay_1ms(5);

write_cmd(0x06);

delay_1ms(5);

}

voidmain()

{

wela=0;

dula=0;

delay_1ms(5);//延时

lcd_init();//初始化LCD

delay_1ms(5);

receive_init();

while

(1)

{

receive_init();

locate(0,0,dis1);

locate(0,1,dis2);

locate(0,2,dis3);

write_cmd(0x98);

write_dat(dis4[0]+0x30);

delay_1ms(1000);

 

}

}

voidcut()interrupt4

{RI=0;

dis4[0]=SBUF;

//RI=1;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2