include <pic.h>
//预定义
#define uch unsigned char
//显示用码表
const uch shu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0xff};
//变量
int data,temp1,temp2,temp3,temp;
uch flag,keylock;
uch point,buffer[3];
//初始化
void init()
{
TRISB=0;
PORTB=0;
TRISC=0;
PORTC=0;
keylock=1;//初始化键盘按键标志位,用于锁定按键
if(key==0)keylock=0;//保证每次只按一次键
if(keylock==0)
{
if(key!=0)keylock=1;
switch(key)//查找键值
{
case 0x11:temp=3;flag++;break;
case 0x12:temp=2;flag++;break;
case 0x14:temp=1;flag++;break;
case 0x21:temp=4;flag++;break;
case 0x22:temp=5;flag++;break;
case 0x24:temp=6;flag++;break;
case 0x41:temp=9;flag++;break;
case 0x42:temp=8;flag++;break;
case 0x44:temp=7;flag++;break;
case 0x82:temp=0;flag++;break;
case 0x81:flag=4;send_usart();break;//发送
case 0x84:flag=0;data=0;break;//清零键
}
}
if(flag==1)//第一次按键
{
if(temp==0)flag=0;//若按0,则忽略
temp1=temp;
data=temp1;
}
if(flag==2)//第二次按键
{
temp2=temp;
data=temp1*10+temp2;//原来的个位变成十位
}
if(flag==3)//第三次按键
{
temp3=temp;
data=temp1*100+temp2*10+temp3;//原来的十位变成百位
flag=4;//屏蔽按键
}
}