本帖最后由 hujj 于 2019-6-26 21:19 编辑
刚开始接触新的单片机,第一件事情当然就是点亮LED灯。开发平台建立并下载测试成功后便开始尝试点灯,起初有点舍近求远,到厂家论坛上查找参考资料,几天过去了都没有成效,就是不知道该如何控制引脚的电平。后来忽然想到应该从厂家提供的范例里找,在GPIO的目录里发现了控制LED灯的范例,其实很简单,按照提供的范例,第一步先将GOPI.C添加到项目中(当然也可以直接打开范例中的项目文件)。第二步将范例中MAIN.C的代码添加到项目中的main.c中,涉及到点灯的代码主要是:
1、添加包含的头文件
#include ".\GPIO\GPIO.H"
2、定义LED对应的引脚(位)
sbit LED2 = P2^2;
sbit LED3 = P2^3;
sbit LED4 = P2^4;
sbit LED5 = P2^5;
3、在main函数中对引脚进行配置
/* 配置GPIO */
GPIO_Init( PORT1,PIN0,MODE3); //P1.0上拉输入
GPIO_Init( PORT1,PIN4,MODE1); //P1.4推挽输出
/* 配置外部中断 */
GPIO_Init( PORT0,PIN3,MODE3); //P03上拉输入
GPIO_Init( PORT1,PIN5,MODE3); //P15上拉输入
GPIO_Init( PORT3,PIN2,MODE3); //P32(INT0)上拉输入
GPIO_Init( PORT3,PIN3,MODE3); //P33(INT1)上拉输入
GPIO_INT_Init( (INT_P03_L|INT_P15_L|INT_INT0_L|INT_INT1_L),INT_EDGE,Enable); //外部中断配置
4、引脚默认是高电平,因此在主循环之前先让第一个LED灯亮起
LED2 = ~LED2;
5、定义一个变量LEDS,在主循环中根据这个变量值来确定各个LED灯亮灭
while(1)
{
ledx++;
switch(ledx){
case 1:
LED2 = ~LED2;
LED3 = ~LED3;
break;
case 2:
LED3 = ~LED3;
LED4 = ~LED4;
break;
case 3:
LED4 = ~LED4;
LED5 = ~LED5;
break;
case 4:
LED5 = ~LED5;
LED2 = ~LED2;
ledx = 0;
}
mDelaymS(100);
}
下载到开发板上,复位后LED流水灯便欢快地跑起来了,下图是测试情况:
|