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

📄 main.c

📁 这是一段启动代码
💻 C
字号:
#include  "config.h"


// 定义LED控制口 (输出高电平时点亮LED)
#define  LED1_CON       (1<<11)     /* GPE11口 */
#define  LED2_CON       (1<<12)     /* GPE12口 */
#define  LED3_CON       (1<<4)      /* GPH4口  */
#define  LED4_CON       (1<<6)      /* GPH6口  */


// 定义蜂鸣器控制口
#define     BEEP		    (1<<10)     /* GPH10口 */	
#define     BEEP_MASK	    (~BEEP)


void  DelayNS(uint32  dly)
{  
	uint32  i;

   	for(; dly>0; dly--) 
       for(i=0; i<50000; i++);
}



void  RunBeep(void)
{  
    rGPHDAT = rGPHDAT & BEEP_MASK;	    // BEEP = 0
    DelayNS(5);
    rGPHDAT = rGPHDAT | BEEP;		    // BEEP = 1 
    DelayNS(5);
}


void  LED_DispAllOn(void)
{  
    rGPEDAT = rGPEDAT | (0x03<<11);  
    rGPHDAT = rGPHDAT | (0x05<<4);  
}



void  LED_DispAllOff(void)
{  
    rGPEDAT = rGPEDAT & (~(0x03<<11));  
    rGPHDAT = rGPHDAT & (~(0x05<<4));  
}


void  LED_DispNum(uint32 dat)
{
    dat = dat & 0x0000000F;     // 参数过滤
    
    // 控制LED4、LED3显示(d3、d2位)
    if(dat & 0x08) rGPHDAT = rGPHDAT | (0x01<<6); 
      else  rGPHDAT = rGPHDAT & (~(0x01<<6)); 
    if(dat & 0x04) rGPHDAT = rGPHDAT | (0x01<<4); 
      else  rGPHDAT = rGPHDAT & (~(0x01<<4)); 
        
    // 控制LED2、LED1显示(d1、d0位)
    rGPEDAT = (rGPEDAT & (~(0x03<<11))) | ((dat&0x03) << 11); 
}


int  main(void)
{		
    int  i;
    
    // 初始化I/O
    rGPECON = (rGPECON & (~(0x0F<<22))) | (0x05<<22);   // rGPECON[25:22] = 0101b,设置GPE11、GPE12为GPIO输出模式
    rGPHCON = (rGPHCON & (~(0x33<<8))) | (0x11<<8);     // rGPHCON[13:8] = 01xx01b,设置GPH4、GPH6为GPIO输出模式
    rGPHCON = (rGPHCON & (~(0x03<<20))) | (0x01<<20);   // rGPHCON[21:20] = 01b,设置GPH10为GPIO输出模式
    
    // LED显示控制
    while(1)
    {
        RunBeep();              // 蜂鸣器响一声
        
        // LED全闪烁5次
        for(i=0; i<5; i++)
        {   
            LED_DispAllOff();   // LED全熄灭
            DelayNS(5);
            LED_DispAllOn();    // LED全点亮
            DelayNS(5);            
        }        
        
        // 控制LED指示0~F的16进制数值
        for(i=0; i<16; i++)
        {
            LED_DispNum(i);     // 显示数值i
            DelayNS(5);
        }
    }  
    
   	return(0);
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -