|
#include<reg51.h> //51系列單片機頭文件
#define uchar unsigned char
#define uint unsigned int
sbit dula=p2^6;
sbit wela=p2^7;
uchar i=100;
uchar temp,key;
/***************延時函數**************/
void delay(unsigend char i){
uint j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/***************主函數****************/
void main(){
dula=0;
wela=0;
while(1){
p3=0xfe;
temp=p3;
temp=temp&0xf0;
if(temp!=0xf0){
delay(10); //延時消抖
if(temp!=0xf0){
temp=p3;
switch(temp){
case 0xee:key=0;break;
case 0xde:key=0;break;
case 0xbe:key=0;break;
case 0x7e:key=0;break;
}
while(temp!=0xf0){ //按鍵釋放確認
temp=p3;
temp=temp&0xf0;
}
display(key);
}
}
p3=0xfd;
temp=p3;
temp=temp&0xf0;
if(temp!=0xf0){
delay(10);
if(temp!=0xf0){
temp=p3;
switch(temp){
case 0xed:key=0;break;
case 0xdd:key=0;break;
case 0xbd:key=0;break;
case 0x7d:key=0;break;
}
while(temp!=0xf0){
temp=p3;
temp=temp&0xf0;
}
display(key);
}
}
p3=0xfb;
temp=p3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=p3;
switch(temp){
case 0xeb:key=0;break;
case 0xdb:key=0;break;
case 0xbb:key=0;break;
case 0x7b:key=0;break;
}
while(temp!=0xf0){
temp=p3;
temp=temp&0xf0;
}
display(key);
}
}
p3=0xf7;
temp=p3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=p3;
switch(temp){
case 0xe7:key=0;break;
case 0xd7:key=0;break;
case 0xb7:key=0;break;
case 0x77:key=0;break;
}
while(temp!=0xf0){
temp=p3;
temp=temp&0xf0;
}
display(key);
}
}
}
}
|
評分
-
查看全部評分
|