物联网传感器原理与应用课程实验指导书实训3.docx
- 文档编号:3333986
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:17
- 大小:1.62MB
物联网传感器原理与应用课程实验指导书实训3.docx
《物联网传感器原理与应用课程实验指导书实训3.docx》由会员分享,可在线阅读,更多相关《物联网传感器原理与应用课程实验指导书实训3.docx(17页珍藏版)》请在冰豆网上搜索。
物联网传感器原理与应用课程实验指导书实训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供电。 ♦备注说明: 干黄门磁和霍尔开关可以使用磁铁来测试状态。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 联网 传感器 原理 应用 课程 实验 指导书