×
单片机 > 单片机程序设计 > 详情

LPC2103学习板-按键测试程序

发布时间:2020-05-28 发布时间:
|
/**************ARM7(LPC2103)练习程序**************************/
/*****File  Function :  KEY test                                      *****/
/*****Program Author :  ClimberWin                             *****/
/*****MCU            : LPC2103F 外部11.0592M晶振  *****/
/*****Compile Date   :  2011/04/01                            *****/
/*****Edition Info   :  V1.0                                         *****/
/******************************************************************/
//编译环境 KEIL for ARM 
//注:因为按键使用了JTAG调试引脚,所以断开调试器才可以正常运行程序  
#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的引脚

void speakertest(void);//蜂鸣器测试程序
void delayms(unsigned int count);            //延时程序
void keytest(void) ;

/*************延时程序***************/
void delayms(unsigned int count)
{
 unsigned int i,j;
 for(i=0;i  for(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();}//按键测试程序

}


关键字:LPC2103  按键测试

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用中断方式.实现PIC单片机的串口传输