【单片机原理及应用日志】用二进制控制七段数码管的显示。

初始化管脚

void LED_Init(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure; 								//ÉùÃ÷½á¹¹Ìå±äÁ¿
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	//ʹÄÜPB¶Ë¿ÚʱÖÓ 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;

	//ÐèÒª³õʼ»¯µÄ¹Ü½Å
	
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 			//ÍÆÍìÊä³ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 	//IO¿ÚËÙ¶ÈΪ50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure);					 			//¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOB.12
}

对着原理图,对管脚初始化

 

#define LED_A PBout(0)
#define LED_B PBout(1)
#define LED_C PBout(2)
#define LED_D PBout(3)
#define LED_1 PBout(12)
#define LED_2 PBout(13)
#define LED_3 PBout(14)
#define LED_4 PBout(15)

并且在led.h中也需要进行初始化。

LE为锁定控制端,当 LE=1时,译码器是锁定保持状态。当LE=0时,允许译码输出。这就是每段需要写一下LED_1=0的原因,即允许译码输出。

LED_1 = 1;
			LED_2 = 1;
			LED_3 = 1;
			LED_4 = 1;
	 
			delay_ms(1);
	 
			LED_1 = 0;
			LED_A = 1;
			LED_B = 0;
			LED_C = 0;
			LED_D = 0;						//µÚÒ»¸öÏÔʾ1
			LED_1 = 1;
	 
			delay_ms(1);
	 
			LED_2 = 0;
			LED_A = 0;
			LED_B = 1;
			LED_C = 0;
			LED_D = 0;						//µÚ¶þ¸öÏÔʾ2
			LED_2 = 1;
			
			delay_ms(1);
	 
			LED_3 = 0;
			LED_A = 0;
			LED_B = 1;
			LED_C = 0;
			LED_D = 0;					//µÚÈý¸öÏÔʾ2
			
			LED_3 = 1;
			
			delay_ms(1);
	 
			LED_4 = 0;
			LED_A = 1;
			LED_B = 0;
			LED_C = 0;
			LED_D = 0;						//µÚËĸöÏÔʾ7
			
			LED_4 = 1;
			delay_ms(1);

结果如图所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值