⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led_display.h

📁 按键驱动程序
💻 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 + -