📄 led_display.h
字号:
//*------------------------------------------------------------------------------------------------
//* 函数名称 : DELAY
//* 功能描述 : 按指定次数延时(指令周期)
//* 入口参数 : <UINT32 times>[in]
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void DELAY(unsigned int times)
{
unsigned int i;
for(i = 0;i < times;i++);
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : LED_DISPLAY
//* 功能描述 : 指定数码管(1-6)显示指定数值(0-9)
//* 入口参数 : <unsigned int Pio>[in] 待显示数码管的使能引脚
//* : <unsigned int Num>[in] 待显示数字
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void LED_DISPLAY(unsigned int Pio, unsigned int Num)
{
switch(Pio)
{
case 18: AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB18);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << Pio);
break;
case 26: AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, 1 << Pio);
break;
case 27: AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA27);
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, 1 << Pio);
break;
case 28: AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA28);
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, 1 << Pio);
break;
case 29: AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA29);
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, 1 << Pio);
break;
case 30: AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA30);
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, 1 << Pio);
break;
}
//*使能八段数码管各段引脚
AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB19|AT91C_PIO_PB20|AT91C_PIO_PB21|\
AT91C_PIO_PB22|AT91C_PIO_PB23|AT91C_PIO_PB24|AT91C_PIO_PB25|AT91C_PIO_PB26);
switch(Num)
{
case 0:
//Set Output Data Register,显示数字0
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 20| 1 << 23);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 19| 1 << 21|1 << 22|1 << 24|1 << 25|1 << 26);
break;
case 1:
//Set Output Data Register,显示数字1
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 19|1 << 20|1 << 21|1 << 23|1 << 24|1 << 26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 22|1 << 25);
break;
case 2:
//Set Output Data Register,显示数字2
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 19|1 << 22|1 << 23);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 21|1 << 20|1 << 24|1 << 25|1 << 26);
break;
case 3:
//Set Output Data Register,显示数字3
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 19|1 << 23|1 << 26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 20|1 << 21|1 << 22|1 << 24|1 << 25);
break;
case 4:
//Set Output Data Register,显示数字4
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 21|1 << 23|1 << 24|1 << 26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 19|1 << 20|1 << 22|1 << 25);
break;
case 5:
//Set Output Data Register,显示数字5
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 23| 1 << 25|1 << 26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 19|1 << 21|1 << 22|1 << 24|1 << 20);
break;
case 6:
//Set Output Data Register,显示数字6
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 23|1 << 25);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 19|1 << 21|1 << 22|1 << 24|1 << 20|1 << 26);
break;
case 7:
//Set Output Data Register,显示数字7
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 19|1 << 20|1 << 21|1 << 23|1 << 26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 22|1 << 24|1 << 25);
break;
case 8:
//Set Output Data Register,显示数字8
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 23);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 19|1 << 20|1 << 21|1 << 22|1 << 24|1 << 25|1 << 26);
break;
case 9:
//Set Output Data Register,显示数字9
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 23|1 << 26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 19|1 << 21|1 << 22|1 << 24|1 << 25|1 << 20);
break;
default:
//Set Output Data Register,显示小数点
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, 1 << 19|1 << 20|1 << 21|1 << 22|1 << 24|1 << 25|1 << 26);
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, 1 << 23);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -