文章目录
一、硬件连接
LED灯阴极接地,通过三极管控制阳极导通状态。按钮电平检测引脚接上拉电阻,当按键按下时电平被拉低。
二、寄存器描述(外部中断)
(一)、睡眠模式设置
睡眠模式通过寄存器**SLEEPCMD的[1:0]**来设置。
其中各个模式的作用如图所示。
- PM0 16/32M高速晶振启动 32768晶振启动,数字核心模块正常工作
- PM1 16/32M高频晶振关闭 32768晶振启动,数字核心模块正常工作
- PM2 16/32M高速晶振关闭 32768晶振启动,数字核心模块关闭,系统通过RESET/External Interrupt/SLEEP TIMER唤醒
- PM3 晶振全部关闭,数字核心模块关闭,系统只能通过RESET/External Interrupt唤醒
(二)、电源模式控制设置
开启SLEEPCMD.MODE设置的电源睡眠模式,通过置位PCON的bit0设备进入电源模式。当该位设置为0时唤醒设备。
三、示例代码(外部中断)
#include <ioCC2530.h>
#define LED P0_1
void delay_ms(int xms)
{
int i,j;
for(i=xms;i>0;i--)
for(j=587;j>0;j--);
}
void LED_Init(void)
{
P0SEL &= ~0X02;
P0DIR |= 0X02;
}
void Key_Init(void)
{
P0IEN |= 0X04;//使能P0.2中断
PICTL |= 0X01;//设置全部端口中断方式为下降沿触发
IEN1 |= 0X20;//允许P0口中断
P0IFG = 0X00;//初始化中断标志位
EA = 1;//开中断
}
/*
PM0 16/32M高速晶振启动 32768晶振启动,数字核心模块正常工作
PM1 16/32M高频晶振关闭 32768晶振启动,数字核心模块正常工作
PM2 16/32M高速晶振关闭 32768晶振启动,数字核心模块关闭,系统通过RESET/External Interrupt/SLEEP TIMER唤醒
PM3 晶振全部关闭,数字核心模块关闭,系统只能通过RESET/External Interrupt唤醒
*/
void SysPowerMode(char mode