原理图分析
当按键没有按下的时候是高电平;按下的时候VCC
通过10K
的限流电阻接地是低电平。要知道引脚的状态,需要把引脚配置为输入模式,然后读取引脚的状态即可。
寄存器分析
P0SEL
配置为输入/输出模式(0为IO模式,1为外设模式)。P0DIR
配置引脚为输入模式(0为输入,1为输出)P0INP
配置为上拉或者下拉模式(0为上拉或下拉模式,1为三态模式)P2INP
的高三位决定整个P0
,P1
,P2
端口是上拉还是下拉。
编写测试
#include <ioCC2530.h>
void main(void)
{
//配置P0_1引脚的按键1
P0SEL &= ~0x02; //普通GPIO模式<0为IO模式,1为外设模式>
P0DIR &= ~0x02; //输入功能<0为输入,1为输出>
P0INP &= ~0x02; //上拉或下拉模式<0为上拉或下拉模式,1为三态模式>
//配置P1_0引脚的LED1
P1SEL &= ~0x01; //普通GPIO模式<0为IO模式,1为外设模式>
P1DIR |= 0x01; //输出功能<0为输入,1为输出>
P1INP &= ~0x01; //上拉或下拉模式<0为上拉或下拉模式,1为三态模式>
P2INP |= 0xe0; //P0,P1,P2都设置为上拉模式
while (1)
{
//如果按键按下则LED亮,否则LED灭
if (0 == P0_1) {
P1_0 = 0;
}
else {
P1_0 = 1;
}
}
}
注意事项
注意:
P2INP
这个寄存器的高三位。
原文地址:https://www.cnblogs.com/iotplus/p/12681661.html
时间: 2024-11-19 16:17:18