最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Zigbee

运维笔记admin58浏览0评论

Zigbee

Zigbee

文章目录

    • CC2530-I/O相关寄存器
      • 寄存器PxSEL
      • 寄存器PxDIR
      • 寄存器PxINP(本文并不使用,默认值就可以)
    • LED闪烁实验
    • 蜂鸣器实验

CC2530-I/O相关寄存器

这里只是简单介绍本次实验用到的I/O寄存器。

寄存器PxSEL

PxSEL 介绍:控制I/O口引脚为通用引脚或外设。
PxSEL中x为端口的标号0~2,用来设置端口的每个引脚为通用I/O或者是外部设备I/O。默认时,当复位之后所有的数字都输入输出引脚都设置为通用输入引脚。
P0SEL寄存器

名称复位R/W描述
7:0SELP0_[7:0]0X00R/WP0_7到P0_0功能选择;0:通用I/O;1:外设功能

寄存器PxDIR

PxDIR介绍:用来设置每个端口引脚为输入或输出。
知道设置PxDIR中指定位为1,其对应的引脚就会被设置为输出了。
P0DIR寄存器

名称复位R/W描述
7:0DIRP0-[7:0]0X00R/WP0_7到P0_0的I/O方向;0:输入;1:输出

寄存器PxINP(本文并不使用,默认值就可以)

PxINP介绍:用来在通用I/O端口用作输入时将其设置为上拉、下拉和三态操作模式。
复位后,所对应的端口均设置为带上拉的输入。要取消输入的上拉或下拉功能,就要将PxINP中的对应位设置为1。I/O端口引脚P1_0和P1_1即使外设功能是输入,也没由上拉/下拉功能。
注意
(1)配置位外设I/O信号的引脚没有上拉/下拉功能。
(2)在电源模式PM1、PM2和PM3下I/O引脚保留当进入PM1\PM2\PM3时设置为I/O模式和输出值。

名称复位R/W描述
7:0MDP0-[7:0]0X00R/WP0_7到P0_0的I/O功能选择;0:上拉/下拉;1:三态

LED闪烁实验

原理图:

实验要求
LED灯自动闪烁实验。

实验分析
通过原理图可以看到,两个LED灯是共阳极,分别连接CC2530的P0.0和P2.0引脚上的。这里只需要让P0.0、P2.0输出低电平,就会使LED电路导通。

代码流程
1、设置I/O的是通用I/O还是外设。

通过PxSEL寄存器设置P0.0、P2.0为通用IO口
通过PxDIR寄存器设置P0.0、P2.0为输出模式
这里不需要设置PxINP寄存器,因为此寄存器默认为上拉/下拉模式

2、控制LED灯的亮灭

设置完P0.0、P2.0后,只需给P0.0、P2.0引脚输入低电平即可点亮LED

LED闪烁代码

#include<iocc2530.h>
/*
@名称:delay()
@参数:无
@介绍:延时函数
*/
void delay(){
int i,j;
for(i=0;i<1200;i++)
for(j=0;j<500;j++)
}
int main(){
/*设置为通用IO口*/
P0SEL &= 0XFE;
P2SEL &= 0XFE;
/*设置P0.0、P2.0位为输出模式*/
P0DIR |= 0X01;
P2DIR |= 0X01;
P0.0 = 1;
P2.0 = 1;while(1){
P0.0=~P0.0;
P2.0=~P2.0;
delay();
}
}

蜂鸣器实验

原理图

实验要求
根据原理图,实现每隔一段时间LED灯闪烁,蜂鸣器鸣叫。

要求分析
从原理图中看到,蜂鸣器连接在三极管上,三极管的基极连接在CC2530的P0.5引脚上。这就说明我们只需给P0.5引脚为高电平就可以使蜂鸣器发声。
LED灯的控制上一个实验已经说明过了。

代码实现

#include<iocc2530.h>
/*
@名称:delay()
@参数:无
@介绍:延时函数
*/
void delay(){
int i,j;
for(i=0;i<1200;i++)
for(j=0;j<500;j++)
}
int main(){
/*设置为通用IO口*/
P0SEL &= 0XDE;  //这里我们让P0.0和P0.5同时设置
P2SEL &= 0XFE;
/*设置P0.0、P2.0位为输出模式*/
P0DIR |= 0X21; //这里我们让P0.0和P0.5同时设置
P2DIR |= 0X01;
/*默认状态下灯是熄灭的,蜂鸣器不发声*/
P0.0 = 1;
P2.0 = 1;
P0.5 = 0;while(1){
P0.5=~P0.5;
P0.0=~P0.0;
P2.0=~P2.0;
delay();
}
}

如编译错误,或其它报错,请留言我将尽快改正。goodbye!

END!

发布评论

评论列表(0)

  1. 暂无评论