uint keyval; //定义键内码传递参数;
uint time; //定义延时参数;
void delay(uint time);
void key(void);
void main()
{
delay(1300); //开机延时
COM8279 = 0xD3; //清除RAM和FIFO
delay(1);
EA=1;
EX1=1; //开总中断,开外部中断1;
IT1=1; //外部中断1选用下降沿
COM8279=0x00; //8279键盘双键互锁,编码扫描,左端入口
COM8279=0x32; //时钟分频设置,分频数为18
COM8279=0x70; //设置读显示命令
COM8279=0x90; //设置写显示命令
while(1);
}
void delay (uint time) //传递参数为time
{
uchar j;
while (time--) //用time-1来进行循环/
{
for (j=100;j> 0;j--) //用j来进行125次循环,大约8us
{;}
}
}
void intsvr1(void) interrupt 2 using 1
{
keyval=DATA8279;
key();
}
//按键确认程序
void key(void)
{
switch(keyval)
{
case 0xC3: //0号键赋值;
{
P0=0x3F;
DATA8279=P0;
break;
}
case 0xC2: //1号键赋值;
{
P0=0x06;
DATA8279=P0;
break;
}
case 0xC1: //2号键赋值;
{
P0=0x5B;
DATA8279=P0;
break;
}
case 0xc0: //3号键赋值;
{
P0=0x4F;
DATA8279=P0;
break;
}
case 0xCB: //4号键赋值;
{
P0=0x66;
DATA8279=P0;
break;
}
case 0xCC: //5号键赋值;
{
P0=0x6D;
DATA8279=P0;
break;
}
case 0xC9: //6号键赋值;
{
P0=0x7D;
DATA8279=P0;
break;
}
case 0xC8: //7号键赋值;
{
P0=0x07;
DATA8279=P0;
break;
}
case 0xD3: //8号键赋值;
{
P0=0x7F;
DATA8279=P0;
break;
}
case 0xD2: //9号键赋值;
{
P0=0x6F;
DATA8279=P0;
break;
}
case 0xD1: //A号键赋值;
{
P0=0x77;
DATA8279=P0;
break;
}
case 0xD0: //B号键赋值;
{
P0=0x7C;
DATA8279=P0;
break;
}
case 0xE3: //C号键赋值;
{
P0=0x39;
DATA8279=P0;
break;
}
case 0xE1: //D号键赋值;
{
P0=0x5E;
DATA8279=P0;
break;
}
case 0xE2: //E号键赋值;
{
P0=0x79;
DATA8279=P0;
break;
}
case 0xE0: //F号键赋值;
{
P0=0x71;
DATA8279=P0;
break;
}
default:
break;
}
}
直接就能输出?
后面得有写命令吧