?? 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 + -