• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: 其他
  • 标签: mini2440  按键裸机  

资源简介

我用的是256M的mini2440,这是不使用中断的裸机程序,完成功能是按下四个按键对应的4个led灯亮,

资源截图

代码片段和文件信息

/*
*按键所对应的的GPIO,K1->GPG0K2->GPG3K3->GPG5K4->GPG6K5->GPG7K6->GPG11
*函数功能:通过按键扫描函数Key_Scan()判断出是哪一个键被按下
*注意这里将6个按键对应的IO口都设置为输入功能,如果只使用几个按键的时候要注意修改
*/



#include“s3c2440addr.h“
#include“key.h“

#define KEY1_C (3<<0)
#define KEY2_C (3<<6)
#define KEY3_C (3<<10)
#define KEY4_C (3<<12)
#define KEY5_C (3<<14)
#define KEY6_C (3<<22)

#define KEY1 (3<<0)
#define KEY2 (3<<6)
#define KEY3 (3<<10)
#define KEY4 (3<<12)
#define KEY5 (3<<14)
#define KEY6 (3<<22)

void Key_Init(void)
{
GPGCON&=~(KEY1_C|KEY2_C|KEY3_C|KEY4_C|KEY5_C|KEY6_C);
GPGCON|=KEY1|KEY2|KEY3|KEY4|KEY5|KEY6;
GPGUP&=~((1<<0)|(1<<3)|(1<<5)|(1<<6)|(1<<7)|(1<<11));
GPGDAT|=(1<<0)|(1<<3)|(1<<5)|(1<<6)|(1<<7)|(1<<11);
}

int Key_Scan(void)
{
int keynum=0;
GPGDAT=0xfff;
if((GPGDAT&(1<<0))==0)
{
keynum=1;
}
if((GPGDAT&(1<<3))==0)
{
keynum=2;
}
if((GPGDAT&(1<<5))==0)
{
keynum=3;
}
if((GPGDAT&(1<<6))==0)
{
keynum=4;
}

if((GPGDAT&(1<<7))==0)
{
keynum=5;
}
if((GPGDAT&(1<<11))==0)
{
keynum=6;
}
return keynum;

}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        919  2013-04-12 14:58  head.S

     文件       1157  2013-04-12 20:18  key.c

     文件        147  2013-04-12 18:56  key.h

     文件        329  2013-04-12 18:46  led.c

     文件        422  2013-04-12 19:07  led.h

     文件        737  2013-04-12 20:06  main.c

     文件        403  2013-04-12 19:01  Makefile

     文件       9071  2013-04-12 16:51  s3c2440addr.h

----------- ---------  ---------- -----  ----

                13185                    8


评论

共有 条评论