环境:
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