找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4218|回復(fù): 0
收起左側(cè)

矩陣鍵盤的新算法(程序運(yùn)行效率超高)

[復(fù)制鏈接]
ID:76556 發(fā)表于 2015-4-10 02:51 | 顯示全部樓層 |閱讀模式
電路圖:http://www.torrancerestoration.com/f/ks51.pdf

#include<reg52.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
sbit KEY_IN1 = P2^4;
sbit KEY_IN2 = P2^5;
sbit KEY_IN3 = P2^6;
sbit KEY_IN4 = P2^7;
sbit KEY_OUT1 = P2^3;
sbit KEY_OUT2 = P2^2;
sbit KEY_OUT3 = P2^1;
sbit KEY_OUT4 = P2^0;

static unsigned ss=0;
void main()
{
EA = 1;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 0;
ADDR1 = 0;
ADDR0 = 0;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
ET0 = 1;
TR0 = 1;
KEY_IN1=0;
while(1)
        {
        unsigned char code LedChar[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};
        P0 = LedChar[ss];
        }
}
void Interrupt_T0() interrupt 1
{
static unsigned char Keys={0xff};
static bit f=0;
TMOD = 0x01;
TH0 = 0xFC;
Keys=(Keys<<1)|KEY_OUT1;
if(Keys!=0x00)
        {
        f=1;
        }
if(Keys==0x00&f==1)
        {ss++;f=0;}
ss=ss&0x0f;
}



回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表