📄 main.c
字号:
//CD WXL 电池板开关小灯
#include <ioCC2430.h>
#define uint unsigned int
#define uchar unsigned char
#define ON 0 //LED状态
#define OFF 1
//定义控制灯的端口
#define RLED P1_0 //定义LED1为P10口控制
#define YLED P1_1 //定义LED2为P11口控制
#define K1 P1_2 //控制红灯
#define K2 P1_3
//函数声明
void Delay(uint); //延时函数
void Initial(void); //初始化P0口
void InitKey(void);
uchar KeyScan(void);
char i = 0;
uchar Keyvalue = 0 ;
/****************************
//延时
*****************************/
void Delay(uint n)
{
uint tt;
for(tt = 0;tt<n;tt++);
for(tt = 0;tt<n;tt++);
for(tt = 0;tt<n;tt++);
for(tt = 0;tt<n;tt++);
for(tt = 0;tt<n;tt++);
}
/*****************************************
//按键初始化
*****************************************/
void InitKey(void)
{
P1SEL &= ~0X0C;
P1DIR &= ~0X0C; //按键在P12 P13
P1INP |= 0x0c; //三态
}
/****************************
//初始化程序
*****************************/
void Initial(void)
{
P1DIR |= 0x03; //P10、P11定义为输出
RLED = 1;
YLED = 1; //LED
}
/*****************************************
//读键值
*****************************************/
uchar KeyScan(void)
{
if(K1 == 0) //低电平有效
{
Delay(100); //检测到按键
if(K1 == 0)
{
while(!K1); //直到松开按键
return(1);
}
}
if(K2 == 0)
{
Delay(100);
if(K2 == 0)
{
while(!K2);
return(2);
}
}
return(0);
}
/***************************
//主函数
***************************/
void main(void)
{
Initial(); //调用初始化函数
InitKey();
RLED = ON; //LED1
YLED = OFF; //LED2
while(1)
{
Keyvalue = KeyScan();
if(Keyvalue == 1)
{
RLED = !RLED; //red
Keyvalue = 0; //清除键值
}
if(Keyvalue == 2)
{
YLED = !YLED; //green
Keyvalue = 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -