⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch8-1.c

📁 单片机接口技术(C51版)例程源代码
💻 C
字号:
#include <reg52.h>
unsigned char key,key_h,kpush;
unsigned int key_i;

//按键连接到P1.0、P1.1、P1.2、P1.3、P1.4
 void int_t0 (void) interrupt 1
   {
   	TL0=0x00;TH0=0x40;//教材中此处未填写具体数值
   	if(P1&0x1f==0x1f) //识别有无按键
   	  {
   	  	  if (key_i>30&&key_i<800&&key_h>30)//释放按键,如果之前按键时间少于1s,读入键值
   	  	     key=kpush;
   	  	  if(++key_h>200) key_h=200;
   	  	  key_i=0;
   	  	  if(key>=0x80)   key=0;  //如果之前按键时间为长按1s,键值清0
   	  }
   	  else
   	   {
   	   	 kpush=P1&0x1f;
   	   	 key_i++;
   	   	 if (key_i>800&&key_h>30)
   	   	    {
   	   	    	key=kpush|0x80; //按键时间超过1s,键值加0x80作为长按标志
   	   	    	key_h=0;
   	   	    	key_i=0;
   	   	    }
   	   	}
   }
   
 void main(void)
   {
   	TMOD=0x01;        //设置定时器0工作于方式1
    TH0=0x40;TL0=0x00 ;//定时 ms,设置时间常数
   	TR0=1;ET0=1;EA=1;
   	while(1)
   	   {
   	   	 while(!key) ;
   	   	 switch(key)
   	   	    {
   	   	    	case 1:  break;
   	   	    	case 2:  break;
   	   	    	default: break;
   	   	    }
   	   }
   }

⌨️ 快捷键说明

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