版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Zigbee无线传感网技术与应用智能家居传感网0601了解ZigbeeOSAL运行原理03掌握Zigbee网络串口编程方法04了解Zigbee无线传感网传输方式02了解Zigbee协议栈原理学习目标Learningobjectives任务三:智能家居传感网任务要求要求读者掌握使用Z-Stack组网结合所有所学zigbee知识,完成一个多块zigbee设备的组网,包含温湿度、火焰、光照度、继电器风扇控制。同时可以在智能家居控制上位中控制接收各个节点设备。任务目标Missionobjectives01了解Zigbee组网的通道、网络号03掌握Zigbee综合组网编程02了解Zigbee组网设备类型、地址分配知识储备知识1.深入学习组网开发设备类型Zigbee无线传感网中存在有三种逻辑设备类型:协调器(Coordinator)路由器(Router)终端节点(End-Device)协调器协调器是Zigbee网络的一个核心设备,它是一个Zigbee网络的需要第一个启动的设备,是zigbee网络的启动或建立网络的设备。协调器节点选择一个信道和网络标志符,然后开始建立一个网络。储备知识1.深入学习组网开发路由器终端节点负责加入已建立的指定网络即可,终端节点不具有网络维护功能。它的存储容量要求最少,所以它可以根据自己的功能需要休眠或唤醒,因此为电池供电设备。其可以实现Zigbee低功耗设计。设备需要的内存较少。路由器允许节点加入网络,负责数据的转发功能、一个路由器可以与若干个路由器或终端节点通信。Zigbee星型网络不支持Zigbee路由。一般路由器需要一直处于工作状态,功耗较高,需要一个连续的电源供电(非电池供电)。储备知识1.深入学习组网开发设备参数设备在网络还有其他的作用如建立安全机制、网络中绑定建立等。设备组网启动时:根据定义的搜索信道Chinalid(DDEFAULT_CHANLIST)和PANID(DZDAPP_CONFIG_PAN_ID)建立网络;如果PANID定义为0xFFFF,则随机产生PANID。对每个节点有两个任务,具体如下:①执行指定的网络功能函数。②配置确定的参数到指定的值。网络功能的设置确定了该节点的类型,参数配置和指定的值确定了堆栈的模式。储备知识1.深入学习组网开发信道ChanelZigBee协议定义了26个信道,分别为868MHz1个,915MHz10个,2.4GHz11个。但由于CC2530芯片只支持2.4G,因此这里只能设置2.4G频段,即11信道到26信道。信道选择zigbee布网最大的障碍就是干扰,也就是来自于wifi的干扰。wifi与zigbee都处于2.4G频段,信道高度重合。而且无论是功率还是抗干扰能力zigbee都敌不过wifi。因此在部署zigbee网络时要考虑当前环境中wifi信号的干扰频段,并尽可能避开这些频段。如上图,wifi在2.4g频段具有14个信道,且信道之间相互重叠。但在中国,无线ap最常用的信道是1、6、11,几乎所有的民用无线AP默认都是这三个信道。自己观察可以发现这三个信道前后与之间有细微的间隔,分别为f<2.401、2.4232.473。让我们再来看看zigbee的信道分布:对比可以看出,15、20、25、26这四个zigbee信道完全避开了常用的wifi信道1、6、11。是zigbee布网的最佳选择。储备知识1.深入学习组网开发配置Chanel文件为f8w2530.cxl如图所示:该文件包含了CC2530单片机的链接控制指令,包括堆栈的大小、内存分配等,一般情况下不需要修改。f8wConfig.cfg:该文件包含了信道选择、网络ID号等有关的链接命令。每一个设备都有一个DEFFAULT_CHANLIST的默认信道集。要选择哪个信道,把前面的“//”注释删除,其余的保留即可。例如我们的信道默认为-DDEFAULT_CHANLIST=0x00000800//11-0x0B,只需删除前面“//”注释符即可。图:配置文件储备知识1.深入学习组网开发PANID网络编号描述符Zigbee网络中的所有设备都有一些描述符,用来描述设备类型和应用方式。描述符包含节点描述符、电源描述符和默认用户描述符等,通过改变这些描述符可以定义自己的设备。描述符的定义和创建配置项在文件ZDOConfig.h和ZDOConfig.c中完成,描述符信息可以被网络中的其他设备读取。PANID指网络编号,用于区分不同的Zigbee网络。设备的PANID值由DZDAPP_CONFIG_PAN_ID来设置,如果DZDAPP_CONFIG_PAN_ID设置为0xFFFF,则协调器将产生一个随机的PAN_ID。储备知识2.ZigBeeNV编程非易失性存储器(NonVolatile,NV):即使系统断电后,存储在存储器中的数据也不会丢失。在Zigbee协议栈中NV存储器主要用于保存网络的配置参数(如网络地址等)。非易失性存储器是指能够永久保存信息的存储器,设备在意外复位或者断电的情况下不会丢失信息。协议栈在OSAL文件夹下有OSAL_Nv.h和OSAL_Nv.c文件。一般做为存储PANID、CHINALID等信息。Z-Stack将一些网络相关的重要信息都存储到非易失性存储器,保证在Zigbee设备意外复位或者断电后重新启动时,设备能够自动恢复到原来网络中。储备知识2.ZigBeeNV编程为了启用这个功能,需要包含NV_RESTORE编译选项。注意,在一个最终的Zigbee网络中,这个选项必须始终启用。关闭这个选项的功能主要是为了开发调试。NV除了用于保存网络信息,也可以用来保存应用程序的特定信息,用户描述符就是一个很好的例子。NV中用户描述符ID项是ZDO_NV_UserDesc(在ZComDef.h定义)。在ZDApp_Init()函数中,调用函数Osal_nv_item_init()来初始化用户描述符所需要的NV空间。如果之前还没有建立这个NV空间,这个初始化函数将为用户描述符保留空间,并且将它设置为默认值ZDO_DefaultUserDescriptor。储备知识3.智能家居上位机现教材制作了一套上位机软件,用来模拟窗帘控制,使用串口与电脑通信,软件使用波特率57600、无奇偶校验位、默认COM连接COM10接口(需要手动设置COM口为COM10)。其具体通信协议如下表所示。表:上位机通信指令集合功能指令备注接收光照值
0xF10x110x10xF1表示为光照值0x11、0x10为数据8位和低8位接收火焰0XF20x00xF2表示为火焰0x00:表示无火0x01:表示有火接收温度值0xF30x110x10xF3表示为温度值0x11、0x10为数据8位和低8位接收湿度值0xF40x110x100xF4表示为湿度值0x11、0x10为数据8位和低8位发送控制风扇0xf50x010xF5表示控制风扇0x00:表示关闭0x01:表示开启储备知识3.智能家居上位机表:智能家居4.温湿度传感器节点本任务所需硬件:下载器、1块Zigbee开发板、温湿度传感器、5V电源适配器、USB下载线。环境准备任务实施任务实施
打开“Zstack”工程,编写节点代码,在组网过程中LED1、LED2闪烁;
如果组网成功后停止闪烁表示成功;
同时开始每秒上发一次温度与湿度数据至协调器中。任务要求4.温湿度传感器节点编写代码步骤1:根据“任务二\最简单的Z-Stack”步骤编写一个简单的Z-Stack工程,并将节点文件命名为“Temp.c”表示为温度、湿度发送节点。如图所示。图:Temp文件任务实施步骤2:在Temp.c文件下App_Init()初始化处理函数中,加入LED1、LED2闪烁代码表示开始组网。代码如下所示。4.温湿度传感器节点voidApp_Init(uint8task_id){app_taskid=task_id;AppDesc.endPoint=20;//端点号AppDesc.task_id=&app_taskid;//任务IDAppDesc.simpleDesc=(SimpleDescriptionFormat_t*)&App_SimDesc;AppDesc.latencyReq=noLatencyReqs;//延时策略afRegister(&AppDesc);//注册组网HalLedBlink(HAL_LED_1,0,50,500);HalLedBlink(HAL_LED_2,0,50,500);}任务实施步骤3:在Temp.c文件下App_Event()事件处理函数中,成功后停止闪烁,代码如下所示。4.温湿度传感器节点uint16App_Event(uint8task_id,uint16events){afIncomingMSGPacket_t*msg;
//系统事件定义
if(events&SYS_EVENT_MSG){msg=(afIncomingMSGPacket_t*)osal_msg_receive(app_taskid);//接收数据
while(msg){
switch(msg->hdr.event){
caseZDO_STATE_CHANGE://组网发送改变
if(msg->hdr.status==DEV_ZB_COORD||
任务实施4.温湿度传感器节点msg->hdr.status==DEV_ROUTER||msg->hdr.status==DEV_END_DEVICE){HalLedBlink(HAL_LED_1,1,50,500);HalLedBlink(HAL_LED_2,1,50,500);}
break;}osal_msg_deallocate((uint8*)msg);//清除缓存空间msg=(afIncomingMSGPacket_t*)osal_msg_receive(app_taskid);//接收数据}
return(events^SYS_EVENT_MSG);}
return
0;}任务实施4.温湿度传感器节点代码小贴士:代码:HalLedBlink(HAL_LED_1,1,50,500);HalLedBlink(HAL_LED_2,1,50,500);说明:LED闪烁函数中,参数2为“0”表示不断闪烁,1表示闪烁一次即停止。任务实施步骤4:在Temp.c文件下App_Event()事件处理函数中,添加一个定时事件、事件判断事件事件到达后发送数据至协调器,代码如下所示。4.温湿度传感器节点uint16App_Event(uint8task_id,uint16events){…
caseZDO_STATE_CHANGE://组网发送改变
if(msg->hdr.status==DEV_ZB_COORD||msg->hdr.status==DEV_ROUTER||msg->hdr.status==DEV_END_DEVICE){HalLedBlink(HAL_LED_1,1,50,500);HalLedBlink(HAL_LED_2,1,50,500);osal_start_timerEx(app_taskid,0x0001,1000);}
break;…
//接收事件
if(events&0x0001){App_Send();osal_start_timerEx(app_taskid,0x0001,1000);}
return
0;}任务实施步骤5:复制文件SHT11.c、SHT11.h、hal_types.h、hal_defs.h文件至source目录下,并添加至工程文件APP目录下,如图所示。4.温湿度传感器节点图:复制调用文件任务实施步骤6:在Temp.c中添加头文件#include"SHT11.h",添加文件至项目中,如图所示。4.温湿度传感器节点图:添加文件任务实施步骤7:在定时事件处理函数App_Send中调用获取温度、湿度代码,并发送至协调器,代码如下所示。4.温湿度传感器节点voidApp_Send(void){
unsigned
chartmp[4];
inttemp,hum;call_sht11(&temp,&hum);tmp[0]=temp/0x100;tmp[1]=temp%0x100;tmp[2]=hum/0x100;tmp[3]=hum%0x100;afAddrType_tmyaddr;myaddr.addrMode=(afAddrMode_t)Addr16Bit;//地址模式为16位模式myaddr.endPoint=20;myaddr.addr.shortAddr=0x0000;//表示发送给协调器AF_DataRequest(&myaddr,&AppDesc,0x0001,4,tmp,0,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);}任务实施代码小贴士:代码:AF_DataRequest(&myaddr,&AppDesc,0x0001,4,tmp,0,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);说明:注意在多块zigbee设备组网的过程中,参数3表示发送数据包的ID号0x0001表示为温湿度发送,协调器通过该数据来区分设备。4.温湿度传感器节点步骤7:温湿度代码编写完成,由于没有编写好协调器代码,故先不调试代码。任务实施一、将温度、湿度分开发送,需要如何修改代码。技能拓展4.温湿度传感器节点5.火焰传感器节点本任务所需硬件:下载器、1块Zigbee开发板、火焰传感器、5V电源适配器、USB下载线。环境准备任务实施任务实施
打开“Zstack”工程,编写节点代码,在组网过程中LED1、LED2闪烁;
如果组网成功后停止闪烁表示成功;
同时开始每秒上发一次火焰数据至协调器中。任务要求编写代码步骤1:复制Temp.c文件并重命名为flame.c文件,屏蔽Temp.c,添加至工程APP目录下,如图所示。5.火焰传感器节点图:添加文件任务实施步骤2:在flame.c文件中App_Init()函数代码,添加IO初始化代码将火焰传感器P0_0设置为输入,代码如下所示。5.火焰传感器节点voidApp_Init(uint8task_id){app_taskid=task_id;AppDesc.endPoint=20;//端点号AppDesc.task_id=&app_taskid;//任务IDAppDesc.simpleDesc=(SimpleDescriptionFormat_t*)&App_SimDesc;AppDesc.latencyReq=noLatencyReqs;//延时策略afRegister(&AppDesc);//注册组网HalLedBlink(HAL_LED_1,0,50,500);HalLedBlink(HAL_LED_2,0,50,500);P0DIR&=~(0x01);}任务实施步骤3:修改flame.c代码App_Send()函数代码,获取火焰传感器信号,代码如下所示。5.火焰传感器节点voidApp_Send(void){
unsigned
chartmp=0;
if(P0_0==1){tmp=0x01;}
else{tmp=0x00;}afAddrType_tmyaddr;myaddr.addrMode=(afAddrMode_t)Addr16Bit;//地址模式为16位模式myaddr.endPoint=20;myaddr.addr.shortAddr=0x0000;AF_DataRequest(&myaddr,&AppDesc,0x0002,1,&tmp,0,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);}任务实施代码小贴士:代码:if(P0_0==1){tmp=0x01;}else{tmp=0x00;}说明:判断是否有火焰,有火则输出0x01,反之输出0x00。5.火焰传感器节点任务实施代码小贴士:代码:V_ROUTE,AF_DEFAULT_RADIUS);说明:注意在多块zigbee设备组网的过程中,参数3表示发送数据包的ID号0x0002表示为火焰发送,协调器通过该数据来区分设备。5.火焰传感器节点步骤4:火焰节点代码编写完成,由于没有编写好协调器代码,故先不调试代码。任务实施一、如果将获取火焰数据放在另外一个事件中,单独一个事件发送数据。代码如何修改。技能拓展5.火焰传感器节点6.光照传感器节点本任务所需硬件:下载器、1块Zigbee开发板、光照传感器、5V电源适配器、USB下载线。环境准备任务实施任务实施
打开“Zstack”工程,编写节点代码,在组网过程中LED1、LED2闪烁;
如果组网成功后停止闪烁表示成功;
同时开始每秒上发一次光照数据至协调器中。任务要求编写代码步骤1:复制Temp.c文件并重命名为light.c文件,屏蔽flame.c文件,添加至工程APP目录下,如图所示。6.光照传感器节点图:添加文件任务实施步骤2:在light.c文件中编写AdcInit()ADC初始化代码,AdcGet()获取Adc数据函数,代码如下所示。6.光照传感器节点voidAdcInit(){APCFG|=0x01;//设置P0_0为ADC使用P0SEL|=0x01;//设置P0_0为外设口}unsigned
intAdcGet(){
unsigned
inttmp=0;
//参考电压AVDD5引脚、12位精度ADC、P0_0通道
//启动转换ADCCON3=(0x80|0x30|0x00);ADCIF=0;//清除标志
while(!ADCIF);//等待完成tmp=ADCL;//提取低位tmp|=(unsigned
int)(ADCH<<8);//提取高位tmp=tmp>>3;//转换为12位
returntmp;}任务实施步骤3:在mycoordinator.h中加入函数声明,代码如下所示。6.光照传感器节点extern
voidAdcInit(void);extern
unsigned
intAdcGet(void);步骤4:在light.c文件中App_Init()函数代码,添加AdcInit()初始化代码,代码如下所示。voidApp_Init(uint8task_id){app_taskid=task_id;AppDesc.endPoint=20;//端点号AppDesc.task_id=&app_taskid;//任务IDAppDesc.simpleDesc=(SimpleDescriptionFormat_t*)&App_SimDesc;AppDesc.latencyReq=noLatencyReqs;//延时策略afRegister(&AppDesc);//注册组网HalLedBlink(HAL_LED_1,0,50,500);HalLedBlink(HAL_LED_2,0,50,500);AdcInit();//调用ADC初始化}任务实施步骤5:修改light.c代码App_Send()函数代码,获取光照传感器信号AdcGet(),拆解数据进行发送,代码如下所示。6.光照传感器节点voidApp_Send(void){
unsigned
chartmp[2];
unsigned
intdata=0;data=AdcGet();tmp[0]=data/100;tmp[1]=data%100;afAddrType_tmyaddr;myaddr.addrMode=(afAddrMode_t)Addr16Bit;//地址模式为16位模式myaddr.endPoint=20;myaddr.addr.shortAddr=0x0000;AF_DataRequest(&myaddr,&AppDesc,0x0003,2,tmp,0,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);}任务实施代码小贴士:代码:AF_DataRequest(&myaddr,&AppDesc,0x0003,2,tmp,0,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);说明:注意在多块zigbee设备组网的过程中,参数3表示发送数据包的ID号0x0003表示为光照传感器发送,协调器通过该数据来区分设备。步骤6:光照传感器节点代码编写完成,由于没有编写好协调器代码,故先不调试代码。6.光照传感器节点任务实施一、编写如果发送成功中LED进行2次闪烁操作,每2秒发送数据。技能拓展6.光照传感器节点7.风扇控制节点本任务所需硬件:下载器、1块Zigbee开发板、继电器、风扇、5V电源适配器、USB下载线。环境准备任务实施任务实施
打开“Zstack”工程,编写节点代码,在组网过程中LED1、LED2闪烁;
如果组网成功后停止闪烁表示成功;
接收协调器中的数据,开或关风扇。任务要求编写代码步骤1:复制Temp.c文件并重命名为fan.c文件,屏蔽light.c文件,添加至工程APP目录下,如图所示。7.风扇控制节点图:添加文件任务实施步骤2:在fan.c文件中删除App_Send()函数,风扇控制不需要发送数据删除App_Send()函数,编写接收函数App_Msg()函数,代码如下所示。7.风扇控制节点voidApp_Msg(afIncomingMSGPacket_t*m){
switch(m->clusterId){ case0x0008:
if(m->cmd.Data[0]==0x01){P2_0=1;//开启}
else
if(m->cmd.Data[0]==0x00){P2_0=0;//开启} break;}}任务实施代码小贴士:节点设备接收协调器的广播包信号,故需要使用App_Msg函数进行接收。步骤3:在fan.c文件中App_Event函数中加入消息接收代码,代码如下所示。7.风扇控制节点uint16App_Event(uint8task_id,uint16events){…
while(msg){…
caseAF_INCOMING_MSG_CMD://接收到数据App_Msg();
break; …}任务实施一、修改开启指令为“0xff”,关闭指令为“0x00”。技能拓展7.风扇控制节点步骤4:风扇控制节点代码编写完成,由于没有编写好协调器代码,故先不调试代码。8.智能家居协调器本任务所需硬件:下载器、1块Zigbee开发板、5V电源适配器、串口线、USB下载线。环境准备任务实施任务实施
打开“Zstack”工程,编写协调器代码;
接收温湿度节点数据并发送指令上位机;
接收火焰节点数据并发送指令上位机;
接收光照节点数据并发送指令上位机;
接收电脑控制数据,发送控制指令至风扇节点控制风扇。任务要求8.智能家居协调器编写代码步骤1:切换模式为协调器模式CoordinatorEB,屏蔽所有节点代码,如图所示。任务实施8.智能家居协调器图:切换模式任务实施步骤2:在mycoordinator.c文件中,加入串口初始化函数、发送字符串、字符代码,代码如右所示。8.智能家居协调器voidUartInit(void){P0SEL|=0x0c;//设置外设PERCFG=0x00;//设置I/O位置U0CSR|=0x80;//设置UART模式U0BAUD=216;//设置波特率为57600U0GCR=10;//设置波特率为57600EA=1;//开启总中断}voidsend(unsigned
chars){U0DBUF=s;//发送a
while(!UTX0IF);UTX0IF=0;}voidsendstr(unsigned
char*s,unsigned
charlen){
intcount=0;
while(len--){send(*(s+count));count++;}}任务实施步骤3:在mycoordinator.c文件中,加入串口中断接收代码,如下所示。8.智能家居协调器unsigned
charCommand[2];unsigned
charCommand_count=0;#pragmavector=URX0_VECTOR__interruptvoidUART(void){Command[Command_count++]=U0DBUF;//接收缓存数据到dataURX0IF=0;//清中断标志
if(Command_count==2){Command_count=0;}}任务实施代码小贴士:接收数据缓存为2位,接收位即重新接收。步骤4:在mycoordinator.h文件中,加入串口初始化函数、发送字符串、字符代码,接收中断函数代码如下所示。8.智能家居协调器externvoidUartInit(void);externvoidsend(unsigned
chars);externvoidsendstr(unsigned
char*s,unsigned
charlen);extern__interruptvoidUART(void);步骤5:在mycoordinator.c文件中,App_Init()函数中调用串口初始化函数UartInit()。任务实施步骤6:在mycoordinator.c文件中,App_Msg()函数中编写消息处理函数,代码如下所示。8.智能家居协调器voidApp_Msg(afIncomingMSGPacket_t*m){
switch(m->clusterId){
case
0x0001://接收温湿度数据
//发送给电脑send(0xF3);//头send(m->cmd.Data[0]);send(m->cmd.Data[1]);send(0xF4);//头send(m->cmd.Data[2]);send(m->cmd.Data[3]);
break;
case
0x0002://接收火焰
//发送给电脑send(0xF2);//头send(m->cmd.Data[0]);
break;
case
0x0003://接收光照
//发送给电脑send(0xF1);//头send(m->cmd.Data[0]);send(m->cmd.Data[1]);
break;}}任务实施代码小贴士:代码:case0x0001://接收温湿度数据//发送给电脑send(0xF3);//头send(m->cmd.Data[0]);send(m->cmd.Data[1]);send(0xF4);//头send(m->cmd.Data[2]);send(m->cmd.Data[3]);break;说明:如果标志为0x0001,则表示接受为温湿度数据,根据上位机协议发送数据头为0xF3与数据,0xF4数据头与数据。8.智能家居协调器任务实施步骤7:在mycoordinator.c文件中,添加一个头文件#include"ZDApp.h",该头文件包含“DEV_ZB_COORD”等标志。8.智能家居协调器步骤8:在mycoordinator.c文件中,App_Event()函数中添加事件当组网成功后添加时间事件接收数据,负责接收电脑控制风扇数据,代码如下所示。uint16App_Event(uint8task_id,uint16events){afIncomingMSGPacket_t*msg;
if(events&SYS_EVENT_MSG){msg=(afIncomingMSGPacket_t*)osal_msg_receive(app_taskid);//接收数据
while(msg){
switch(msg->hdr.event)任务实施8.智能家居协调器{
caseZDO_STATE_CHANGE://组网发送改变
if(msg->hdr.status==DEV_ZB_COORD||msg->hdr.status==DEV_ROUTER||msg->hdr.status==DEV_END
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年云南省泸水市高三生物上册期末考试模拟卷及答案【夺冠】
- 2026年黑龙江省北安市高三生物上册期末考试模拟检测卷附答案【考试直接用】
- 2026年河北省黄骅市高三生物上册期末考试模拟卷带答案(夺分金卷)
- 2026年浙江省瑞安市高三生物上册期末考试模拟考试卷含答案(B卷)
- 2025年江西省瑞金市高三生物上册期末考试模拟卷【夺冠】附答案
- 2026年中考一轮复习(地理)专题04 地图(讲义)(原卷版)
- 2026年浙江省慈溪市高三生物上册期末考试模拟考试卷附答案(研优卷)
- 2025年甘肃省玉门市高三生物上册期末考试模拟考试卷含答案(新)
- 2026年河南省邓州市高三生物上册期末考试模拟试卷(突破训练)附答案
- 2025年辽宁省新民市高三生物上册期末考试模拟考试卷附答案(培优B卷)
- 第三章 现代心理学的基本理论课件
- JT-T-537-2018钢筋混凝土阻绣剂
- DL-T573-2021电力变压器检修导则
- 美的集团第-级公司分权手册
- 在灿烂阳光下混声合唱简谱
- 2024年湖北交通投资集团有限公司招聘笔试参考题库含答案解析
- 210Pb沉积物定年方法简介
- 旅行社公司章程
- 国开电大本科《理工英语4》机考总题库
- 中风病人的饮食宣教
- 管理者如何带好团队
评论
0/150
提交评论