辜渝傧

13037102709

027-87870986

教学实训

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

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

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

1.实验目的

1)、通过实验掌握CC2530芯片GPIO的配置方法,带你一步步走进嵌入式大门
2)、掌握蜂鸣器驱动电路及开关蜂鸣器的原理

2.实验设备

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

3.实验相关电路图

实验2.1 GPIO输出实验
有源蜂鸣器是一种简单的发声器件,只要给一个高电平就可以蜂鸣。由于单片机的引脚驱动能力有限,因此使用一个三极管来驱动。由图可知,当P1.3输出低电平时三极管截止,蜂鸣器关闭;当P1.3输出高电平时,三极管导通,蜂鸣器开启。
 

4.实验相关寄存器

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

按照表格寄存器的内容,对P1.3口进行配置,当P1.3输出高电平时蜂鸣器被开启。所以配置如下:
P1SEL &=~0x08;        //配置P1.3为通用IO口,默认为 0 的,可以不设
P1DIR |= 0x08;          //P1.3定义为输出
由于CC2530寄存器初始化时默认值为(参考 CC2530 数据手册(中).pdf):
P1SEL = 0x00;
P1DIR |= 0xff;
P1INP = 0x00;
所以 IO 口初始化我们可以简化初始化指令:
P1DIR |= 0x08;          //配置 P1.3 为输出
 
 

5.源码分析

#include                    //包含头文件
#define BUZZER         P1_3             //定义BUZZER为P13口控制
 
void Delay(unsigned int);                    //延时函数
void Initial(void);                                 //初始化P0口
 
void main(void)
{
       Initial();                                         //调用初始化函数
       while(1)
       {
        BUZZER = !BUZZER;
        Delay(1000);
       }
}
 
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 Initial(void)
{
       P1DIR |= 0x08;                        //P13定义为输出
       BUZZER = 0;
       BUZZER = 1;
       BUZZER = 0;
}
 

6.实验现象

       蜂鸣器每隔1S蜂鸣。


上一篇:无线传感网络实训|唯众物联网实验箱CC2530介绍

下一篇:无线传感网络实训|实验2.2 GPIO输入实验