main.c

来自「扫描按键的程序」· C语言 代码 · 共 56 行

C
56
字号
#include<reg52.h>						 //包含头文件
#include"KEY.H"						
#include"beeper.h"

void SYS_Init();						 //系统初始化函数

sbit LED_KEY1=P1^0;						 //定义相应按键的LED
sbit LED_KEY2=P1^1;
sbit LED_KEY3=P1^2;
sbit LED_KEY4=P1^3;

main()									//主函数
{
 SYS_Init();
 while(1);								//进入死循环,只在中断里处理
}
void SYS_Init()
{
 TMOD=0X01;								//定时器0,工作方式1
 EA=1;									//开总中断
 ET0=1;									//开T0中断
 TL0=(65536-1000)%256;					//赋初值,1ms产生一次中断
 TH0=(65536-1000)/256;
 TR0=1;									//启动定时器0
}
void timer0() interrupt 1				//中断函数
{
 TR0=0;
 switch(KEY1_JUDGE())							  //按键1:短按时LED_KEY1亮;长按时LED_KEY1亮并且蜂鸣器响;没被按下时熄灭LED_KEY1
 {
  case SHORT_PRESS:LED_KEY1=ON;break;
  case LONG_PRESS :LED_KEY1=ON;BEEP_ON;break;
  case NO_PRESS   :LED_KEY1=OFF;break;
 }
 switch(KEY2_JUDGE())							   //按键1:短按时LED_KEY2亮;长按时LED_KEY2亮并且关掉蜂鸣器;没被按下时熄灭LED_KEY2
 {
  case SHORT_PRESS:LED_KEY2=ON;break;
  case LONG_PRESS :LED_KEY2=ON;BEEP_OFF;break;
  case NO_PRESS   :LED_KEY2=OFF;break;
 }
 switch(KEY3_JUDGE())							  //按键1:短按时LED_KEY3亮;长按时LED_KEY3亮并且蜂鸣器响;没被按下时熄灭LED_KEY3
 {
  case SHORT_PRESS:LED_KEY3=ON;break;
  case LONG_PRESS :LED_KEY3=ON;BEEP_ON;break;
  case NO_PRESS   :LED_KEY3=OFF;break;
 }
  switch(KEY4_JUDGE())							  //按键1:短按时LED_KEY4亮;长按时LED_KEY4亮并且关掉蜂鸣器;没被按下时熄灭LED_KEY4
 {
  case SHORT_PRESS:LED_KEY4=ON;break;
  case LONG_PRESS :LED_KEY4=ON;BEEP_OFF;break;
  case NO_PRESS   :LED_KEY4=OFF;break;
 }
 TL0=(65536-1000)%256;
 TH0=(65536-1000)/256;
    TR0=1;
}

⌨️ 快捷键说明

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