嵌入式流水灯c语言代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

流水灯实验

1.实验内容

使用GPIO口控制8个LED流水灯显示。

2.实验步骤

①启动ADS1.2IDE集成开发环境,选择ARM Executable Image for lpc2131工程模板建立一个工程LedDisp_C。

②在user组里编写主程序代码main.c。

③选用DebugInRam生成目标,然后编译链接工程。

④将EasyARM教学实验开发平台上的P1.[18:25]管脚对应与LED[1:8]跳线短接。

⑤选择Project->Debug,启动AXD进行JTAG仿真调试。

3.实验参考程序

程序清单错误!文档中没有指定样式的文字。-1 GPIO输出控制实验2的参考程序

#include "config.h"

/* LED8~LED1 8个LED分别由P1.25~P1.18控制*/

const uint32 LEDS8=(0XFF<<18); //p1[25:18]控制LED8~LED1低电平点亮

/********************************************************************

函数DelayNS()

进行长软件延时

*********************************************************************/

void DelayNS(uint32 dly)

{

uint32 i;

for(;dly>0;dly--)

for(i=0;i<50000;i++);

}

const uint32 LED_TBL[]={

0X00,0XFF, //全部熄灭后,点亮

0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80, //逐次逐个点亮

0X01,0X03,0X07,0X0F,0X1F,0X3F,0X7F,0XFF, //逐次逐个叠加

0XFF,0X7F,0X3F,0X1F,0X0F,0X07,0X03,0X01, //逐次逐个递减

0X81,0X42,0X24,0X18,0X18,0X24,0X42,0X81, //两个靠拢后分开

0X81,0XC3,0XE7,0XFF,0XFF,0XE7,0XC3,0X81 //两边叠加后递减

};

int main (void)

{ uint8 i;

PINSEL2=PINSEL2&(~0X08); //p1[25:16]链接GPIO

IO1DIR=LEDS8; //设置为LED输出口

while(1)

{ for(i=0;i<42;i++)

{

IO1SET=~((LED_TBL[i])<<18);

DelayNS(20);

IO1CLR=((LED_TBL[i])<<18);

DelayNS(20);

}

}

return 0;

}

相关文档
最新文档