74HC154D-LED
一、引脚说明
1-11 13-17 :输出端。(outputs (active LOW))
12:Gnd电源地 (ground (0 V))
18-19:使能输入端、低电平有效 (enable inputs (active LOW))
20-23:地址输入端 (address inputs)
24:VCC电源正 (positive supply voltage)
二、真值表
A0,A1,A2,A3连接MCU的四个引脚
三、 代码
main.c
void led_output_init(void)
{
rcu_periph_clock_enable(RCU_GPIOG);
gpio_mode_set(GPIOG, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
gpio_output_options_set(GPIOG, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
}
int main()
{
int led_test=0;
//初始化A0,A1,A2,A3,将E1,E2使能,置低电平
led_output_init();
while(1)
{
if(led_test < 16)
{
led_test++;
}
else
{
led_test = 0;
}
switch(led_test)
{
case 0:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 1:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 2:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 3:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 4:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 5:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 6:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 7:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_reset(GPIOG, GPIO_PIN_7);
break;
case 8:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
case 9:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
case 10:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
case 11:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_reset(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
case 12:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
case 13:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_reset(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
case 14:
gpio_bit_reset(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
case 15:
gpio_bit_set(GPIOG, GPIO_PIN_4);
gpio_bit_set(GPIOG, GPIO_PIN_5);
gpio_bit_set(GPIOG, GPIO_PIN_6);
gpio_bit_set(GPIOG, GPIO_PIN_7);
break;
}
}
}