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

📄 io-key.c

📁 AT89S51单片机试验及实践教程
💻 C
字号:
/*
	键盘应用

  Study-3 51 单片机开发板 

试验现象: 	
	按下KEY1:	P20 灯亮
	按下KEY2:	P21 灯亮
	按下KEY3:	蜂鸣器响
	按下KEY4:	灯灭、蜂鸣器停
	


mail me:
zhaoliang0801@gmail.com 
zhaoliang_0801@dl.cn
*/

// *******************************************************	
// 头文件
#include "my51.h"

// *******************************************************	
// 管脚定义

sbit BUZZER = P1^3;
sbit LED1 = P2^0;
sbit LED2 = P2^1;

// *******************************************************	
// 宏声明

#define		KEY				(P3&0xf0)
#define 	KEY1			0X70
#define 	KEY2			0Xb0
#define 	KEY3			0Xd0
#define 	KEY4			0Xe0

#define 	BUZZER_ON 			BUZZER=0
#define 	BUZZER_OFF 			BUZZER=1
#define 	LED1_ON 			LED1=0
#define 	LED2_ON 			LED2=0
#define 	LED1_OFF 			LED1=1
#define 	LED2_OFF 			LED2=1

// *******************************************************	
// 函数声明
void Key_delay (void);

// *******************************************************
// 主函数
// TRUE 在头文件中应用

void main (void)
{   
	while(TRUE)
	{
		if (KEY != 0x0F) 
		{
			Key_delay ();
			
			if(KEY != 0x0F)
			{
				switch (KEY)
				{
					case KEY1:
						LED1_ON;
						
						break;
					case KEY2:  
						LED2_ON;
						
						break;
					case KEY3:
						BUZZER_ON;
						
						break;
					case KEY4: 
						BUZZER_OFF;
						LED1_OFF; 
						LED2_OFF;
						
						break;
					default:	
						break;
				}
			}
		}	
	}
}		

// *******************************************************
// 键盘延时子函数 
// 去抖延时
void Key_delay(void)
{
	unsigned char i,j;
	for (i=25; i>0; i--)
		for (j=50; j>0; j--);
}

// *******************************************************

⌨️ 快捷键说明

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