|
仿真负责人:张梦如
程序负责人:刘文杰
仿真图
仿真文件
程序
#include<reg52.h>
unsigned char table[]={0X80,0X04,0X20,0X40,0X01,0X02,0X08,0X10};
unsigned char aa=0;
unsigned char key3=255;
sbit P1_7=P1^7;
sbit P1_6=P1^6;
sbit P1_5=P1^5;
sbit P1_4=P1^4;
sbit P1_3=P1^3;
sbit P1_2=P1^2;
sbit P1_1=P1^1;
sbit P1_0=P1^0;
unsigned char ii=0;
void Delay(unsigned char bb)
{
while(bb--) ;
}
unsigned char Keyboard()
{
unsigned char KeyNumber=0;
P1=0xFF;// 1111 1111 全部置高电平默认
P1_3=0; // 矩阵按键第一行扫描
if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=1;}
if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=5;}
if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=9;}
if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=13;}
P1=0xFF;
P1_2=0; // 矩阵按键第二行扫描
if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=2;}
if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=6;}
if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=10;}
if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=14;}
P1=0xFF;
P1_1=0; // 矩阵按键第三行扫描
if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=3;}
if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=7;}
if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=11;}
if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=15;}
P1=0xFF;
P1_0=0; // 矩阵按键第四行扫描
if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=4;}
if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=8;}
if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=12;}
if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=16;}
return KeyNumber;
}
void main()
{
P0=0X80;
while(1)
{
key3=Keyboard();
if(key3==16&&ii==0)
{ ii++;
P0=table[ii];
}
if(key3==11&&ii==1)
{ ii++;
P0=table[ii];
}
if(key3==8&&ii==2)
{ ii++;
P0=table[ii];
}
if(key3==12&&ii==3)
{ ii++;
P0=table[ii];
}
if(key3==3&&ii==4)
{ ii++;
P0=table[ii];
}
if(key3==7&&ii==5)
{ ii++;
P0=table[ii];
}
if(key3==4&&ii==6)
{ ii++;
P0=table[ii];
}
if(key3==15&&ii==7)
{ ii=0;
P0=table[ii];
}
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|