📄 dirkeyboard_4.c
字号:
/**********************************************
* File: DirKeyboard_4.C
* Description: Direct Keyboard Interface Example
* Created Date: 2007-10-01
* Last Modified: 2007-10-01
* Author: Jeffrey - Schicksal@126.com
* Notes: None
**********************************************/
#include <REGX51.h>
unsigned char Read_Keyboard();
/**********************************************
* Function: delay(unsigned int t)
* Input Variables: t
* Return Variables: None
* Usage: Common Delay Routine, t as the delay time ticks
**********************************************/
void delay(unsigned int t)
{
for(;t>0;t--); // 延时循环
}
/**********************************************
* Function: main()
* Input Variables: None
* Return Variables: None
* Usage: Program Entry
*********************************************/
void main()
{
unsigned char LED_Status = 0xff; // 定义键值
unsigned char Keyboard_OLD = 0xff;
unsigned char Keyboard_Status[5] = {0xff,0xff,0xff,0xff,0xff}; // 定义键值
unsigned char jTemp; // 临时变量
unsigned char iTemp; // 临时变量
unsigned char BStatus;
while(1)
{
for(iTemp=0;iTemp<5;iTemp++)
{
Keyboard_Status[iTemp] = Read_Keyboard(); //连续5次读取按键值
}
BStatus = Keyboard_Status[0]| \
Keyboard_Status[1]| \
Keyboard_Status[2]| \
Keyboard_Status[3]| \
Keyboard_Status[4]; // 处理0值
for(iTemp = 1;iTemp<129;iTemp<<1) // 扫描状态位
{
if(iTemp&Keyboard&(~BStatus)) // 按键被按下一次
{
LED_Status ^= iTemp; // Toggle LED
}
}
Keyboard_OLD &= BStatus; // 存储状态
BStatus = Keyboard_Status[0]& \
Keyboard_Status[1]& \
Keyboard_Status[2]& \
Keyboard_Status[3]& \
Keyboard_Status[4]; // 处理1值
Keyboard_OLD |= BStatus; // 存储状态
P0 = ~LED_Status; // 点亮相应的LED灯
//********************主程序部分*********************//
// Add your code here
//********************主程序部分*********************//
}
}
/**********************************************
* Function: Read_Keyboard
* Input Variables: None
* Return Variables: Keys Value
* Usage: Read Keyboard Status
*********************************************/
unsigned char Read_Keyboard()
{
unsigned char Keys_Value; // 定义键值变量
P2 = 0xff; // P2口置高,准备读取按键状态
Keys_Value = P2; // 读取按键状态
return Keys_Value; // 返回按键状态值
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -