新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > LPC2103學(xué)習(xí)板-按鍵測試程序

LPC2103學(xué)習(xí)板-按鍵測試程序

作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
/**************ARM7(LPC2103)練習(xí)程序**************************/
/*****File Function : KEY test *****/
/*****Program Author : ClimberWin *****/
/*****MCU : LPC2103F 外部11.0592M晶振 *****/
/*****Compile Date : 2011/04/01 *****/
/*****Edition Info : V1.0*****/
/******************************************************************/
//編譯環(huán)境 KEIL for ARM
//注:因為按鍵使用了JTAG調(diào)試引腳,所以斷開調(diào)試器才可以正常運行程序
#include
#include
#define uint unsigned int
#define uchar unsigned char

#define speak (1<<21) ////蜂鳴器引腳定義
#define K1 (1<<27) //定義按鍵1的引腳
#define K2 (1<<28) //定義按鍵2的引腳
#define K3 (1<<30) //定義按鍵3的引腳

本文引用地址:http://m.butianyuan.cn/article/201611/316025.htm

void speakertest(void);//蜂鳴器測試程序
void delayms(unsigned int count); //延時程序
void keytest(void) ;

/*************延時程序***************/
void delayms(unsigned int count)
{
unsigned int i,j;
for(i=0;ifor(j=0;j<5000;j++);
}

/***************************************************/
void speakertest(void)//蜂鳴器測試程序
{
uchar i;
for(i=0;i<100;i++)
{
IO0CLR=0x00200000;
delayms(1);
IO0SET=0x00200000;
delayms(1);
}
}
/*****************************************/

void keytest(void) //按鍵測試程序
{
uchar i1,i2,i3;
if((IO0PIN&K1)==0x00) //判斷是否有按鍵按下
{
//按鍵去抖
while((IO0PIN&K1)==0x00) //判斷是否有按鍵放開
{
speakertest();
i1=!i1;
}

if(i1==0)
{IO0CLR=(1<<10);}
else
{IO0SET=(1<<10);}
}
if((IO0PIN&K2)==0x00) //判斷是否有按鍵按下
{
//按鍵去抖
while((IO0PIN&K2)==0x00) //判斷是否有按鍵放開
{
speakertest();
i2=!i2;
}

if(i2==0)
{IO0CLR=(1<<11);}
else
{IO0SET=(1<<11);}
}
if((IO0PIN&K3)==0x00) //判斷是否有按鍵按下
{
//按鍵去抖
while((IO0PIN&K3)==0x00) //判斷是否有按鍵放開
{
speakertest();
i3=!i3;
}

if(i3==0)
{IO0CLR=(1<<12);}
else
{IO0SET=(1<<12);}
}
else
{;}
}


/////////////主程序///////////////////
int main(void)
{

IO0DIR=0x0027fc00; //配置P10-P18為輸出
IO0SET=0x0003fc00; //初始化LED
while(1)
{keytest();}//按鍵測試程序

}




關(guān)鍵詞: LPC2103按鍵測

評論


技術(shù)專區(qū)

關(guān)閉