无线传感网络实训|第二章 实验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.实验相关电路图
有源蜂鸣器是一种简单的发声器件,只要给一个高电平就可以蜂鸣。由于单片机的引脚驱动能力有限,因此使用一个三极管来驱动。由图可知,当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输入实验