环境:
Cortex-M0
LPC1114FBD48/301
数码管 7SEG-COM-ANODE
1 在数码管上显示指定的数字
将数码管的7个引脚对应连接到控制器的PIO2_0~PIO2_6引脚上
原理图:

源代码:
/* Main.c file generated by New Project wizard * * Created: 周日 2月 16 2020 * Processor: LPC1114FBD48/301 * Compiler: GCC for ARM */#include <LPC11xx.h>int main (void) { // Write your code here LPC_SYSCON->SYSAHBCLKCTRL |=(1<<6); LPC_GPIO2->DIR=0x7F; while (1) { LPC_GPIO2->DATA=0x24;//0010 0100 2,5号高点平,不亮 } return 0; }
仿真后结果如图

7数码管引脚图,在网上找的图,脚的分布位置不一样,但对应关系是一样的

2 给数码管加一个开关
代码:
/* Main.c file generated by New Project wizard
*
* Created: 周日 2月 16 2020
* Processor: LPC1114FBD48/301
* Compiler: GCC for ARM
*/
#include <LPC11xx.h>
void Delay(unsigned i)
{
while(i!=0)
i--;
}
int main (void)
{
// Write your code here
LPC_SYSCON->SYSAHBCLKCTRL |=(1<<6);
LPC_GPIO2->DIR=0xFF;
LPC_GPIO3->DIR=0x01;
LPC_GPIO3->DATA=0x01; //数码管开关
while (1)
{
LPC_GPIO2->DATA=0x40; Delay(80000);
LPC_GPIO2->DATA=0xF9; Delay(80000);
LPC_GPIO2->DATA=0x24; Delay(80000);
LPC_GPIO2->DATA=0x30; Delay(80000);
LPC_GPIO2->DATA=0x19; Delay(80000);
LPC_GPIO2->DATA=0x12; Delay(80000);
LPC_GPIO2->DATA=0x02; Delay(80000);
LPC_GPIO2->DATA=0x78; Delay(80000);
LPC_GPIO2->DATA=0x00; Delay(80000);
LPC_GPIO2->DATA=0x10; Delay(80000);
}
return 0;
}
将NPN晶体管,连接到电源和数码管的公共电极之间 NPN晶体管的基极,通过一个上拉电阻,连接到PIO3_0引脚上
原理图

仿真结果,数码管循环出现1-9

至于那个上拉电阻,是得加的,防止短路,当PIO3_0输出0的时候,若不加,则短路,也起不到控制开关的作用。
第四步完成
来源:https://www.cnblogs.com/caishunzhe/p/12315752.html