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

📄 keyboard.c

📁 用keil51编写的可编程通用并行接口8255键盘按键识别程序,键盘3*8格式,采用行扫描方式,c语言编写
💻 C
字号:
#include <at89x51.h>
#include <absacc.h>

#define PA  XBYTE[0XE000] // 8255 port A
#define PB  XBYTE[0XE001] // 8255 port B
#define PC  XBYTE[0XE002] // 8255 port C
#define CMD XBYTE[0XE003] // 8255 configuration word

#define byte unsigned char
#define word unsigned int

byte key_row;
byte key_column;

void delay20ms(void);
void display(void);
void calc_key(void);

void display(void)
{
    // display
}

void delay20ms(void)
{
	byte i,j,k;
    for(i=10; i>0; i--)
	    for(j=4; j>0; j--)
	        for(k=248; k>0; k--);
}

void calc_key(void)
{
    byte tdata,i,j;

    PA = 0x8F;
    tdata = PB;
    if (0xFF != tdata){
        delay20ms();
        tdata = PB;
        if (0xFF != tdata){
            for (i=0; i<8; i++){
                if (tdata == ~(1<<i)){
                    key_column = i+1;
                    for (j=4; j<7; j++){
                        PA = 0x8F | (1<<j);
                        tdata = PB;
                        if (0xFF != tdata){
                            key_row = j-3;
                            display();
                            return;
                        }
                    }
                    key_column = 0;
                    return;
                }
            }
        }
    }
}

void main(void)
{
    CMD = 0x82; //10000010
    for (;;){
        calc_key();
    }
}

⌨️ 快捷键说明

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