从零开始ZigBee学习(2)——IO操作

目录

一、笔记

二、代码


一、笔记

1.cc2530所有口子都可以作为普通或对应的片上外设控制,P2有5个IO口,P2_1和P2_2口通常用来下程序,一般不用做普通IO口,所以P2SEL的低3位分别对应P2_0、P2_3、P2_4

 2.输出怎么配置:
  需要让P1_0处于普通IO口模式,非是偏上外设的模式 P1SEL 的第0位 (0为普通IO模式;1为片上外设模式)
 //管理所有IO处于普通IO还是偏上外设,由P0SEL P1SEL P2SEL 决定

  让P1_0处于输出状态,非输入状态  找到P1DIR 第0位 让它等于1
//让所有IO口处于输入状态还是输出状态由P0DIR P1DIR P2DIR 决定

P1_0=1;

  输入怎么配置:
   让P0_6处于普通IO口,非偏上外设模式 P0SEL 的第6位为0
   让P0_6处于输入状态,非输出状态    P0DIR 的第6位为0
   让P0_6处于上拉、下拉或者三态(高电阻,ADC采集时)中的一种状态

P0INP寄存器为1:三态;为0:上下拉;具体的上下拉用P2_5、6、7的三位的0、1表示

   if(1==P0_6)
{//检测到的是高电平

}
else
{//检测到的P0_6外部是低电平

}


 

 二、代码

#include<iocc2530.h>
void main()
{
 /*
    //这里看P1SEL初始为1; P1DIR初始为0; 但通电后P1SEL默认为0
    P1SEL &= 0XFE;// 1111 1110 让P1_0处于普通IO口,非片上外设模式(使某一位为0)
    P1DIR |= 0X01;// 0000 0001 让P1_0处于输出状态,非输入状态 (使某一位为1)
    P1_0 = 0;
    */
  
 /*
    P0SEL &= 0XEF;// 1110 1111
    P0DIR |= 0X10;// 0001 0000
    P0_4 = 0;
    */
    
    P0SEL &= 0XEF;// 1110 1111
    P0DIR |= 0X10;// 0001 0000  
  
    //所有IO口都是默认上拉输入,所有寄存器都是0
    P0SEL &= 0XBF;// 1011 1111
    P0DIR &= 0XBF;// 
    
    P0INP &= 0XBF;// 让P0_6处于上下拉模式
    P2INP &= 0XDF;// 1101 1111 让P0组处于上拉模式
    while(1)
    {
        if(P0_6 == 1)//拔掉跳线帽
        {
          //检测到的是高电平
            P0_4 = 0;
        }
        else
        {
          //检测到的P0_6外部是低电平
            P0_4 = 1;
        }
    }
 
}

教学视频链接:手把手教你学zigbee_哔哩哔哩_bilibili

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清园暖歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值