【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《嵌入式流水灯c语言代码》,欢迎阅读!
流水灯实验
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; }
本文来源:https://www.wddqxz.cn/686c5ae1240c844769eaee39.html