成绩信息工程学院
课程设计说明书(论文)
题目: GPIO程序设计
课程名称: ARM嵌入式系统基础教程
专业: 电子信息工程
一、设计功能要求
通过不同的四个按键(K1、K2、K3、K4)分别控制LED灯的亮灭和LCD的图片显示:
1.按下K1,四个灯间隔亮灭两次;
2.按下K2,流水灯显示一次;
3.按下K3,LCD显示一幅图片;
4.按下K4,LCD显示下一个图片;
5.K1=P0.17;K2=P0.18;K3=P0.12;K4=P0.29。
二、流程图
三、源码清单
#include "nxp/iolpc2378.h"
#include "type.h"
//#include "hw.h"
void delay(uint32 dly);
int main()
{
LCDInit( );//初始化
DisPicture(0);
PINSEL7=0;
PINSEL1=0;
FIO3DIR=15<<23;//P3.23左移23位
FIO0DIR=0;//0输入
while(1)
{
FIO3SET=15<<23;//P3.23、24、25、26置1输出 delay(300);
/*按下K1键4个灯间隔亮灭2次*/
if((FIO0PIN&(1<<17))==0)
{
uint16 i;
i=2;
while(i--)
{
FIO3SET=15<<23;
delay(500);
FIO3CLR=15<<23;
delay(500);
}
}
/*按下K2流水灯显示一次*/
if((FIO0PIN&(1<<18))==0)
{
uint8 j;
for(j=23;j<=26;j++)
{
FIO3SET=1< delay(200); FIO3CLR=1< delay(200); } } /*按下K3LCD显示一幅图片*/ if((FIO0PIN&(1<<12))==0) { uint8 p; p+=2; DisPicture(p); } /*按下K4LCD显示所有图片*/ if((FIO0PIN&(1<<29))==0) { uint8 q; for(q=0;q<6;q++) { DisPicture(q); } } } } /*延时子程序*/ void delay(uint32 dly) { uint32 i; for(;dly>0;dly--) for(i=0;i<3000;i++); }