独立式按键.c

来自「本文件包含了使用C语言编写单片机的各种入门程序」· C语言 代码 · 共 57 行

C
57
字号
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define TRUE 1
#define FALSE 0



extern void delay_10ms(void);

bit key_flag;
uchar  key_value;
void main(void)
{
  IE=0X81;        /*中断总控制位EA,外中断0开中断*/
  IP=0x01;        /*外中断0为高中断优先级*/
  key_flag=0;     /*设置中断标志为0*/
  do{
      if(key_flag){
          switch(key_value){
             case 1:
              P2=0xaa;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                 break;
             case  2: 
                 P2=0x00;
                 break;
             case 4:
                P2=0x55;
                 break;
             default:
                break;
              }
                     key_flag=0;
          }
     } while(TRUE);
  }




/******************外中断0处理程序***************/
void int0 () interrupt 0 {
uchar   reread_key;
    IE=0x80;       /*屏蔽int0中断*/
key_flag=0;
P1=0xff;
key_value=P1&0x07;
delay_10ms();
reread_key=P1&0x07;
if (key_value==reread_key){
     key_flag=1;
   }
IE=0x81;    /*打开INT0中断*/
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?