//本程序实现K7I的4颗LED流水灯,外加蜂鸣
#include "config.h"
/* LED0~LED3 4个LED分别由P1.16~P1.19控制 */
const uint32 LEDS4 = (0x0F << 16); // P1[19:16]控制LED4~LED1,低电平点亮
#define BEEP 1 << 7 // P0.7控制蜂鸣器,低电平蜂鸣
/*
*********************************************************************************************************
** 函数名称 :DelayNS()
** 函数功能 :长软件延时
** 入口参数 :dly 延时参数,值越大,延时越久
** 出口参数 :无
*********************************************************************************************************
*/
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}
/*
*********************************************************************************************************
** 函数名称 :main()
** 函数功能 :LED流水灯显示实验。
** 调试说明 :跳线JP12连接LED8~LED1。
*********************************************************************************************************
*/
int main (void)
{
uint8 i;
PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO P1[31-26]连接JTAG
IO1DIR = LEDS4; // 设置LED1控制口为输出
PINSEL1 = 0x00000000; // 设置管脚连接GPIO
IO0DIR = BEEP; // 设置BEEP控制口为输出
while (1)
{
IO0CLR = BEEP; // BEEP 蜂鸣
for (i=0; i<4; i++)
{ /*流水灯花样显示*/
IO1SET = ~(LEDS4 & (7 << (16+i)));
DelayNS(50);
IO1CLR = LEDS4 & (7 << (16+i));
DelayNS(50);
}
IO0SET = BEEP; // BEEP停止蜂鸣
for (i=0; i<4; i++)
{ /*流水灯花样显示 */
IO1SET = ~(LEDS4 & (7 << (20+i)));
DelayNS(20);
IO1CLR = LEDS4 & (7 << (20+i));
DelayNS(20);
}
}
return 0;
}
//GPIO输出,单个LED实验,程序实现单个LED闪亮
#include "config.h"
const uint32 LED1 = (1<<18); //P1.18控制LED1,低电平亮
void DelayNS(uint32 dly)
{
uint32 i;
for( ; dly>0; dly-- )
for(i=0; i<50000; i++);
}
int main (void)
{
IO1DIR = LED1; //设置LED1控制口为输出
PINSEL1 = 0x00000000; //设置管脚连接GPIO
while (1)
{
IO1SET = LED1;
DelayNS(50);
IO1CLR = LED1;
DelayNS(50);
}
return 0;
} |