ZigBee-CC2530单片机 - LED呼吸灯
程序源码
#include "ioCC2530.h"
#define LED1 P1_0 // P1_0定义为P1_0
#define LED2 P1_1 // P1_0定义为P1_1
#define LED3 P1_3 // P1_0定义为P1_3
#define LED4 P1_4 // P1_0定义为P1_4
#define SW1 P1_2 //SW1端口宏定义
unsigned char h;
/*******************LED1初始化部分*****************/
void InitLed()
{
P1SEL &= ~0x01; //设置P1_0口为普通I/O口
P1DIR |= 0x01; //设置P1_0口为输出口
LED1 = 0; //熄灭LED1
}
/***************************************************/
/*****************定时器1初始化部分****************/
void InitT1()
{
T1CTL |= 0x01; //定时器1时钟频率1分频,自动重装0x0000-0xFFFF
PERCFG=0x40; //定时器1选择外设位置2
P1SEL|=0x01; //P1_0选择外设功能
T1CCTL2=0x64; //定时器1通道2向上比较,比较模式
T1CC2L=0xFF; //
T1CC2H=h;
}
/***************************************************/
void main(void)
{
unsigned char js=0;
unsigned char a=1; //a=1为渐亮,a=2为渐灭
InitLed(); //调用初始化函数
InitT1();
while(1)
{
if((T1STAT&0x04)>0)
{
T1STAT=T1STAT&0xfb; //清除中断标志
js++;
if(js>=1) //改变亮度的时间
{
js=0; //清零
if(a==1) //渐亮
h=h+1;
else //渐灭
h=h-1;
T1CC2L=0xff; //重装比较值
T1CC2H=h;
if(h>=254) //最大亮度
a=2; //设为渐灭
if(h==0) //最小亮度
a=1; //设为渐亮
}
}
}
}