人体感应

实验目的
1.了解人体传感器的工作原理和数据采集;
2.掌握使用CC 2530 IO口控制人体传感器的采集、显示和编程实现;
3.进一步熟悉IAR的使用;
实验需求
安装IAR和相关驱动的个人PC1台
迷你USB线mini USB1根
仿真器CC Debugger1根
串并转换线USB to UART1根
ZigBee通用节点板1块
实验原理
采用基于人体热释传感原理的人体感应传感器模块;通过检测人体感应模块的开关输出状态,通过指示灯进行指示。当有人靠近时,人体感应模块的开关输出状态为高电平,通用调试底板上的发光二极管亮;当无人靠近时,人体感应模块的开关输出状态为低电平,通用调试底板上的发光二极管灭;
实验步骤
1.创建IAR工作空间;
2.创建基于C的IAR工程;
3.配置工程;
4.编辑代码并调试[无差错;无告警];
5.试验箱上电;使用mini USB分别连接CC Debugger和PC;并将仿真器CC Debugger的另外一端和ZigBee通用节点板上的JTAG插座相连;按下仿真器CC Debugger的复位按钮,绿灯常亮表示模块连接成功,可以往芯片中烧写程序;
6.在IAR中点击,download and debug(CTRL+D)烧写程序;
7.在IAR的调试窗口中,点击开始运行;
8.人靠近或离开人体感应传感器,观察通用调试底板上的发光二极管的亮灭变化;
开发过程中,请注意CTRL+S保存项目!
参考源码

    #include "ioCC2530.h"      

    void delay(void)      //延时时间约10ms
    {
    unsigned int i;
    unsigned char j;

    for(i=0;i<1500;i++)
    {
        for(j=0;j<20;j++)
        {
        asm("NOP");
        }
    }
    } 

    void main( void )
    {
    P0DIR |= 0x01;  //设置P0.0为输出方式
    P2DIR |= 0x01;  //设置P2.0为输出方式
    P1DIR &= ~(0x1 << 5); //设置P1.0为输入方式
    
    P0_0 = 1; 
    P2_0 = 1;   //熄灭LED
    
    while(1)
    {
        if(P1_0 == 1){  //OUT=1,人体感应LED亮,存在人体感应                    
            P0_0 = 0;//底板上的D2 LED灯亮
            P2_0 = 0;//底板上的D3 LED灯亮              
        }
        else{
            P0_0 = 1;//底板上的D2 LED灯灭
            P2_0 = 1;//底板上的D3 LED灯灭              
        }
        delay();
    }
    } // end of main()

                
项目提升
请使用宏和函数优化代码,使其符合模块化开发,同时可读性更强;
实验报告
1. 根据实操部分的内容,完成数码管项目;
2. 以纸质的形式提交实验报告;
3. 论文格式请参照范文[点击下载]