辜渝傧

13037102709

027-87870986

教学实训

您当前的位置:首页 > 教学资源 > 实训方案 >

无线传感网络实训|实验2.2 GPIO输入实验

发布者:唯众    布时间:2020-11-27 15:17:03    点击量:

1. 实验目的

1)、通过实验掌握CC2530芯片GPIO的配置方法,带你一步步走进嵌入式大门
3)、掌握检测按键的方法

2.实验设备

硬件:PC机1台、ZIGBEE节点板1套(底板、核心板、仿真器、USB 线)
软件:2000/XP/win7 系统,IAR 8.10 集成开发环境

3.实验相关电路图

实验2.2 GPIO输入实验
由图可知,当按键按下时,P2.0被拉低;当松开按键时,P2.0被拉高。

4.实验相关寄存器

操作 P2.0 我们需要掌握相关寄存器的作用和配置方法。如下表所示:

按照表格寄存器的内容,对P2.0口进行配置,当P2.0检测到低电平时表示按键按下。所以配置如下:
P2SEL &=~0x01;        //配置P2.0为通用IO口
P2DIR &= ~0x01;       //P2.0定义为输出

5.源码分析

#include                    //包含头文件
 
#define BUZZER         P1_3             //定义BUZZER为P13口控制
#define KEY                P2_0             //定义KEY为P20口
 
void uDelay(unsigned int l);
void Delay(unsigned int);                //延时函数
void InitBuzzer(void);              
void InitKey(void);
void Buzzer(char);
 
void main(void)
{
       InitBuzzer();                              //调用初始化函数
       InitKey();
       while(1)
       {
        if(KEY == 0)
              {
                     uDelay(40000);
                     if(KEY == 0)
                     {
                            BUZZER = !BUZZER;
                            KEY = 1;
                     }
              }
       }
}
 
void Buzzer(char flag)
{
       BUZZER = flag;
}
 
//*==============================================|=================*
//*函数原型:   
//*功能描述:  延时函数
//*==============================================|=================*
void uDelay(unsigned int l)
{
       unsigned int i;
       for( i = 0;i < l;i ++ );    
}
void Delay(unsigned int n)
{
       unsigned int i,j,k;
       for(k=0;k        {
              for(i=0;i<131;i++)
              {
                     for(j=0;j<15;j++)
                     {
                            uDelay(203);
                     }
              }
       }
}
//*==============================================|=================*
//*函数原型:
//*功能描述: 初始化引脚
//*==============================================|=================*
void InitBuzzer(void)
{
       P1DIR |= 0x08;                                                    //P13定义为输出
       BUZZER = 0;
}
 
void InitKey(void)
{
       P2DIR &= ~0x01;                                                  //P20定义为输入
       KEY = 1;
}
 

6.实验现象:

       当按键按下时,蜂鸣器开启;松开按键时,蜂鸣器关闭。


上一篇:无线传感网络实训|第二章 实验2.1 GPIO输出实验

下一篇:无线传感网络实训|实验2.3 串口收发实验