非中断方式实现按键中断2

简介: 非中断方式实现按键中断(二)宏定义初始化按键处理延迟主函数


宏定义



#include<iocc2530.h>
#define uchar unsigned char
#define uint unsigned int
#define LED1 P1_5
#define LED2 P1_0
#define LED3 P1_3
#define LED4 P1_4


初始化



uint count=0;
void Initial(void)
{
  P1SEL&=~0x39;
  P1DIR|=0x39;
  P1SEL&=~0x04;
  P1DIR&=~0x04;
  P1INP&=~0x04; 
  P1INP&=~0x40;
  P1&=~0x39;  
}


按键处理



uchar KeyScan(void)
{
  if(P1_2==0)
  {
    if(P1_2==0)
    {
      while(!P1_2)
        return 1;   
    }
  }
  return 0;
}


延迟



void Delay(uint time)
{
  uint i;
  uchar j;
  for(i=0;i<time;i++)
    for(j=0;j<240;j++)
    {
      asm("NOP");
      asm("NOP");
      asm("NOP");
    }
}


主函数



main()
{
  Initial();
  while(1)
  {
    if(KeyScan()==1)
    {
      count++;
      if(count<=4)
      {
      switch(count)
      {
      case 1:LED1=!LED1;break;
      case 2:LED2=!LED2;break;
      case 3:LED3=!LED3;break;
      case 4:LED4=!LED4;break;
      }
      }
      if(count>4)
      {
        LED1=LED2=LED3=LED4=0;
        count=0;
      }
    }
  }
}


相关文章
|
Linux 调度
按键消抖的两种方法--中断延迟工作与定时器
按键消抖的两种方法--中断延迟工作与定时器
697 0
|
5月前
|
7月前
|
传感器
单片机定时器中断
单片机定时器中断
103 0
|
传感器 调度
什么是中断系统?
一、什么是中断系统 中断系统是计算机系统中的一种机制,它允许外部设备和程序请求处理器的注意力,以便进行特定的操作。当一个中断请求被触发时,处理器会暂停当前正在执行的程序,转而执行与中断相关的程序或服务例程。中断系统可以提高计算机系统的效率和响应速度,因为它允许处理器在等待某些事件的同时执行其他任务。常见的中断包括硬件中断(例如键盘输入、鼠标移动、网络数据传输等)和软件中断(例如操作系统调度、系统调用等)。 二、中断系统的特点 中断系统具有以下特点: 1. 实时性:中断系统能够及时响应外部设备的请求,提高计算机系统的响应速度和效率。 2. 可靠性:中断系统能够保证中断请求的可靠性,确保外部设备的
290 0
STM32中断与事件的理解
STM32中断与事件的理解
400 1
|
存储 调度
51单片机--定时器与按键控制流水灯模式
51单片机--定时器与按键控制流水灯模式
487 0
单片机:外部中断(通过K3按下产生下降沿触发,模拟程序运行时突然外部中断的场景)
单片机:外部中断(通过K3按下产生下降沿触发,模拟程序运行时突然外部中断的场景)
186 0
单片机:外部中断(通过K3按下产生下降沿触发,模拟程序运行时突然外部中断的场景)
详解中断系统
本文针对地详解了中断系统
276 0
|
芯片
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(一)
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(一)
835 0
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(一)
|
Java
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(二)
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(二)
685 0
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(二)