CC2530 人体红外传感器
2022-03-06 本文已影响0人
Charles2018
1.实验目的
- 通过实验掌握 CC2530 芯片 GPIO 的配置方法
- 掌握HC-SR501传感器的使用
2.实验设备
硬件:PC 机一台、 ZB2530(底板、核心板、仿真器、USB 线) 一套、HC-SR501传感器一个
软件:2000/XP/win7 系统,IAR 8.10 集成开发环境
3.实验相关电路图

HC-SR501 人体红外感应模块是基于红外线技术的自动控制产品。灵敏度高、可靠性强、超
低功耗,超低电压工作模式。接线方式(实验是接到 J10 上):
VCC:接电源正极(5V)
OUT:检测引脚
GND:接电源负极
自己购买的模块请仔细核对一下引脚,确保连接正确。
4.实验相关寄存器
实验中使用 P0_6 作为检测引脚, 人进入其感应范围模块输出高电平,点亮 LED1,人离开感应
范围 LED1 熄灭 P0.6 口为 HC-SR501 传感器的输入端。具体 HC-SR501 人体感应模块 OUT 输
出电平由模块决定,不同厂家可能不一样,不一样关系也不大,改动非常的小。
5.源码分析
/****************************************************************************
* 文 件 名: main.c
* 描 述: 人进入其感应范围模块输出高电平,点亮LED1,人离开感应范围LED1熄灭,
* P0.6口为HC-SR501传感器的输入端
****************************************************************************/
#include <ioCC2530.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define LED1 P1_0 //定义P1.0口为LED1控制端
#define DATA_PIN P0_6 //定义P0.6口为传感器的输入端
/****************************************************************************
* 名 称: DelayMS()
* 功 能: 以毫秒为单位延时 16M时约为535,系统时钟不修改默认为16M
* 入口参数: msec 延时参数,值越大,延时越久
* 出口参数: 无
****************************************************************************/
void DelayMS(uint msec)
{
uint i,j;
for (i=0; i<msec; i++)
for (j=0; j<535; j++);
}
/****************************************************************************
* 名 称: InitGpio()
* 功 能: 设置LED灯和P0.4相应的IO口
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitLed(void)
{
P1DIR |= 0x01; //P1.0定义为输出口
P0SEL = 0x00;
P0DIR &= ~0x40; //P0.6定义为输入口
P2INP |= 0x20;
}
void main(void)
{
InitLed(); //设置LED灯和P0.6相应的IO口
while(1) //无限循环
{
if(DATA_PIN == 1)
{
DelayMS(10);
if(DATA_PIN == 1)
{
LED1 = 0; //有人时LED1亮
}
}
else
LED1=1; //无人时LED1熄灭
}
}