物联网传感器原理与应用课程实验指导书实训3.docx

上传人:b****6 文档编号:3333986 上传时间:2022-11-21 格式:DOCX 页数:17 大小:1.62MB
下载 相关 举报
物联网传感器原理与应用课程实验指导书实训3.docx_第1页
第1页 / 共17页
物联网传感器原理与应用课程实验指导书实训3.docx_第2页
第2页 / 共17页
物联网传感器原理与应用课程实验指导书实训3.docx_第3页
第3页 / 共17页
物联网传感器原理与应用课程实验指导书实训3.docx_第4页
第4页 / 共17页
物联网传感器原理与应用课程实验指导书实训3.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

物联网传感器原理与应用课程实验指导书实训3.docx

《物联网传感器原理与应用课程实验指导书实训3.docx》由会员分享,可在线阅读,更多相关《物联网传感器原理与应用课程实验指导书实训3.docx(17页珍藏版)》请在冰豆网上搜索。

物联网传感器原理与应用课程实验指导书实训3.docx

物联网传感器原理与应用课程实验指导书实训3

实训三干黄门磁/霍尔开关传感器实验

 

1.实验环境

 

♦硬件:

ZIGBEE(CC2431)模块,ZIGBEE下载调试板,配套干黄门磁/霍尔开关传感器,USB仿真器,PC机

◆软件:

IAREmbeddedWorkbenchforMCS-51

2.实验内容

 

♦阅读UP-CUPIOT-6410系统ZIGBEE模块硬件部分文档,熟悉ZIGBEE模块相关硬件接口。

♦使用IAR开发环境设计程序,利用CC2431的IO中断来监测干黄门磁/霍尔开关传感器的状态。

3.实验原理

 

3.1硬件接口原理

 

ZIGBEE(CC2431)模块LED硬件接口

 

图4.5.1LED硬件接口

 

ZIGBEE(CC2431)模块硬件上设计有2个LED灯,用来编程调试使用。

分别连接CC2431的P1_0、P、1_1两个IO引脚。

从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。

 

♦干黄门磁/霍尔开关传感器模块硬件接口

 

图4.5.2干黄门磁/霍尔开关传感器硬件接口

 

图4.5.3ZIGBEE模块主板J5接口

 

系统配套的干黄门磁/霍尔开关传感器,与ZIGBEE模块的J5排线相连,这样我们可以知道,干黄门磁传感器模块的信号线与ZIGBEE模块的P0_0IO引脚相连,霍尔开关传感器与P0_1IO引脚相连。

因此我们需要在代码中将相应引脚配置成中断输入模式,来监测干黄门磁/霍尔开关传感器状态。

 

♦CC2431相关寄存器

表4.5.1P0DIR寄存器

 

表4.5.2P0INP寄存器

 

表4.5.3PICTL寄存器

 

表4.5.4P1寄存器

 

表4.5.5P1DIR寄存器

以上图表列出了关于CC2431处理器的P0和P1IO端口相关寄存器,其中P0DIR、P1DIR为IO方向寄存器,P0INP为P0端口输入配置寄存器,PICTL用来控制P0端口中断使能和中断触发模式寄存器。

 

表4.5.6IEN0寄存器

 

表4.5.7IEN1寄存器

 

表4.5.8P0IFG寄存器

以上为与P0端口中断控制和配置相关寄存器,其中IEN0为系统中断总开关控制寄存器,IEN1用来控制P0端口中断使能,P01FG寄存器用来监测P0端口中断状态的标志寄存器。

 

表4.5.9CLKCON寄存器

 

表4.5.10SLEEP寄存器

 

表4.5.11PERCFG寄存器

 

表4.5.12U0CSR寄存器

 

表4.5.13U0GCR寄存器

 

表4.5.14U0BUF和U0BAUD寄存器

以上图表列举了和CC2431处理器串口相关寄存器,用来初始化串口0配置的。

详情见软件代码部分。

3.2软件设计

 

源码分析:

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

//定义控制灯的端口

#defineLED1P1_0

#defineLED2P1_1

//函数声明

voidDelay(uint);

voidinitUARTtest(void);

voidUartTX_Send_String(char*Data,intlen);unsignedintswitch_flag;

unsignedintswitch2_flag;

/****************************************************************

*函数功能:

延时

*入口参数:

定性延时

*返回值:

*说明:

****************************************************************/voidDelay(uintn)

{

uinti,t;

for(i=0;i<5;i++)for(t=0;t

}

/****************************************************************

*函数功能:

初始化串口

*入口参数:

*返回值:

*说明:

57600-8-n-1

****************************************************************/voidinitUART(void)

{

CLKCON&=~0x40;//晶振while(!

(SLEEP&0x40));//等待晶振稳定

CLKCON&=~0x47;//TICHSPD128分频,CLKSPD不分频

SLEEP|=0x04;//关闭不用的RC振荡器

PERCFG=0x00;//位置1P0口

P0SEL=0x3c;//P0用作串口

P2DIR&=~0XC0;//P0优先作为串口0

U0CSR|=0x80;//UART方式

U0GCR|=10;//baud_e

U0BAUD|=216;//波特率设为57600

UTX0IF=0;

}

/****************************************************************

*函数功能:

串口发送字符串函数

*入口参数:

data:

数据

*len:

数据长度

*返回值:

*说明:

****************************************************************/voidUartTX_Send_String(char*Data,intlen)

{

intj;

for(j=0;j

{

U0DBUF=*Data++;while(UTX0IF==0);

UTX0IF=0;

}

}

voidUartTX_Send_word(charword)

{

U0DBUF=word;while(UTX0IF==0);

UTX0IF=0;

}

/*****************************************

//IOP0_0中断模式初始化

*****************************************/voidInit_IO(void)

{

P1DIR=0X03;//设置LED

LED1=1;

LED2=1;

P0DIR&=~(0X03<<0);//P0_0输入模式P0INP&=~0X03;//P0_0开开上拉、下拉PICTL|=0X08;//P0_0中断使能

//PICTL&=~(0X01<<0);//P0上升沿触发

PICTL|=0X01;//P0下降沿触发

IEN0|=0x80;//全局允许中断IEN1|=0x20;//P0端口中断允许

P0IFG&=~(0x03<<0);//P0_0中断标志清0

};

 

/****************************************************************

*函数功能:

主函数

*入口参数:

*返回值:

*说明:

****************************************************************/voidmain(void)

{

switch_flag=0;

switch2_flag=0;

initUART();

Init_IO();//P1_0IO初始化

while

(1)

{

LED1=1;

LED2=1;

//麦克声感中断处理

if((1==switch_flag)&&(P0IFG==0)){switch_flag=0;

LED1=0;

//LED2=0;

UartTX_Send_String("SWITCHWarning!

",14);

UartTX_Send_word(0x0A);UartTX_Send_word(0x0D);

Delay(10000);//延时

}

//光感传感器中断处理

if((1==switch2_flag)&&(P0IFG==0)){switch2_flag=0;

//LED1=0;

LED2=0;

UartTX_Send_String("SWITCH2Warning!

",14);

UartTX_Send_word(0x0A);UartTX_Send_word(0x0D);

Delay(10000);//延时

}

}

}

/*********************************************************************

//中断服务程序(P0_0端口)

*********************************************************************/

#pragmavector=P0INT_VECTORinterruptvoidP0_ISR(void)

{

if(P0IFG&0x01)//麦克声感中断

{

P0IFG=0;

switch_flag=1;

}

if(P0IFG&0x02)//光感中断

{

P0IFG=0;

switch2_flag=1;

}

P0IF=0;//清中断标志

}

程序通过配置CC2431处理器的IOP0_0、P0_1引脚为输入中断引脚,用来监测干黄门磁/霍尔开关传感器传感器的状态,如果干黄门磁关闭或霍尔开关开关监测到磁力信号则产生相应中断,则将分别点亮LED1和LED2,并向串口输出“SWITCHWarning!

”和“SWITCH2Warning!

”字符串。

 

4.实验步骤

 

♦使用USB仿真器连接PC机和ZIGBEE(CC2431)模块,将ZIGBEE调试板的电源拨到3.3V段,打开ZIEBEE模块开关供电。

将系统配套串口线一端连接PC机,一端连接ZIGBEE调试板的串口上。

将系统配套干黄门磁/霍尔开关传感器连接到ZIGBEE模块的主板上,连接J5线排端,且保证RJ1电阻跳线跳至5V供电端。

勿要连接错!

♦启动IAR开发环境,新建工程,将Exp5实验工程中代码拷贝到新建工程中。

♦在IAR开发环境中编译、运行、调试程序。

♦使用PC机自带的超级终端连接串口,将超级终端设置为串口波特率57600、8位、无奇偶奇校验、无硬件流模式,当干黄门磁开关检测到磁力,则点亮ZIGBEE模块的LED1灯、且串口输出“SWITCHWarning!

”。

当霍尔开关监测到磁力则点亮ZIGBEE模块的LED2灯、且串口输出“SWITCH2Warning!

”字符串。

♦备注:

所有传感器实验,在运行测试时候,请使用5V电源给ZIGBEE供电,否则传感器供电将不足。

即使用仿真器下载万程序后,将ZIGBEE调试板电源开关拨至5V供电,下载调试时候再改回3.3V供电。

♦备注说明:

干黄门磁和霍尔开关可以使用磁铁来测试状态。

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

当前位置:首页 > 外语学习 > 韩语学习

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

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