📄 key_scan.c
字号:
/**********************************************************************************
* *
* 文 件 名:key_scan.c *
* MCU Type:STC89C51 Fosc:11.0592MHz *
* 功 能:4×4矩阵键盘的扫描 *
* 创 建 者:www.eldiy.net *
* 创建日期:2006-11-10 *
* 其他说明:有什么问题欢迎来我们的学习论坛,祝你成功! *
* *
**********************************************************************************/
#include <reg51.h> // 引用头文件,里面包含了一些对51单片机内部寄存器的定义
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar key;
extern void delay_ms(uint s);
extern void test_send(uchar dat);
sbit P3_0 = P3^0;
sbit P3_4 = P3^4;
sbit P3_5 = P3^5;
sbit P3_6 = P3^6;
sbit P3_7 = P3^7;
//========= 键盘扫描函数 ==============
uchar key_scan()
{
bit exit_f = 0;
uchar temp = 0;
P3_0 = 0;
if(P3_4==0)
{
delay_ms(20);
if(P3_4==0)
{
while(exit_f==0)
{
if(P3_4==1)
{
delay_ms(20);
if(P3_4)
{
temp = 1;
exit_f = 1;
}
}
}
}
}
else if(P3_5==0)
{
delay_ms(20);
if(P3_5==0)
{
while(exit_f==0)
{
if(P3_5==1)
{
delay_ms(20);
if(P3_5)
{
temp = 5;
exit_f = 1;
}
}
}
}
}
else if(P3_6==0)
{
delay_ms(20);
if(P3_6==0)
{
while(exit_f==0)
{
if(P3_6==1)
{
delay_ms(20);
if(P3_6)
{
temp = 9;
exit_f = 1;
}
}
}
}
}
else if(P3_7==0)
{
delay_ms(20);
if(P3_7==0)
{
while(exit_f==0)
{
if(P3_7==1)
{
delay_ms(20);
if(P3_7)
{
temp = 0x13;
exit_f = 1;
}
}
}
}
}
P3_0 = 1;
return temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -