|
电路图:http://www.51hei.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;
}
|
|