文章目录:
实验要求
代码实现
#include "ioCC2530.h"
#define D3 P1_0
#define D4 P1_1
#define D5 P1_3
#define D6 P1_4
//两个按键
#define SW1 P1_2
#define SW0 P0_1
//延迟函数
void Delay(unsigned int t)
{
while(t--);
}
//端口初始化函数
void Init_Prot()
{
//配置4个LED灯的引擎
//选择端口的功能
P1SEL &=~0x1B;//设置通用io端口
//配置端口的方向
P1DIR |=0x1B;
//配置SW1按键引脚
P1SEL &=~0x04;
P1DIR &=0x04;//输入模式 清零
//将输入模式设置为上拉模式
P1INP &=~0x04;
P2INP &=~0x40; //第6位清零
//配置SW2按键引脚
P0SEL &=~0x02;
P0DIR &=0x02;//输入模式 清零
//将输入模式设置为上拉模式
P0INP &=~0x02;
P2INP &=~0x20; //第5位清零
//第7位对应的是P2端口
//第6位对应的是P1端口
//第5位对应的是P0端口
}
//灯光检测函数
void LED_Check()
{
D3=1;
D4=1;
D5=1;
D6=1;
Delay(60000);
Delay(60000);
D3=0;
D4=0;
D5=0;
D6=0;
}
//按键扫描函数
void Scan_Keys()
{
//按键1
if(SW1 == 0)//可能有按键按下,那么进行去抖动操作
{
Delay(200);
if(SW1 == 0)//那么就是按键触发的信号
{
//按键处理程序
while(SW1 == 0);//低电平、按下状态
D4=~D4;
}
}
//按键2
if(SW0 == 0)//可能有按键按下,那么进行去抖动操作
{
Delay(200);
if(SW0 == 0)//那么就是按键触发的信号
{
//按键处理程序
while(SW0 == 0);//低电平、按下状态
D6=~D6;
}
}
}
void main(void)
{
//端口初始化
Init_Prot();
LED_Check();
while(1)
{
Scan_Keys();
}
}