📄 4x4.c
字号:
#include <pic.h>
char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char m;
__CONFIG(0x1832);
delay()
{int j;
for(j=50;j>0;j--);
}
delay1()
{unsigned int j;
for(j=5000;j--;);
}
keyscan()
{char temp,key;
PORTC=0XFE;
asm("nop");
temp=PORTC;
temp=temp&0xf0;
if(temp!=0xf0)
{if(temp==0xe0)
key=13;
if(temp==0xd0)
key=17;
if(temp==0xb0)
key=21;
if(temp==0x70)
key=25;
}
else
{PORTC=0xfd;
asm("nop");
temp=PORTC;
temp=temp&0xf0;
if(temp!=0xf0)
{if(temp==0xe0)
key=12;
if(temp==0xd0)
key=16;
if(temp==0xb0)
key=20;
if(temp==0x70)
key=24;
}
else
{ PORTC=0xfb;
asm("nop");
temp=PORTC;
temp=temp&0xf0;
if(temp!=0xf0)
{if(temp==0xe0)
key=11;
if(temp==0xd0)
key=15;
if(temp==0xb0)
key=19;
if(temp==0x70)
key=23;
}
else
{PORTC=0XF7;
asm("nop");
temp=PORTC;
temp=temp&0xf0;
if(temp!=0xf0)
{if(temp==0xe0)
key=10;
if(temp==0xd0)
key=14;
if(temp==0xb0)
key=18;
if(temp==0x70)
key=22;
}
else
key=m;
}
}
}
return key;
}
initport()
{ADCON1=0x7f;
PORTA=0X3F;
TRISC=0xf0;
TRISD=0x00;
TRISA=0x00;
PORTD=0XFF;
INTCON=0x00;
}
disp(s)
{char s0,s1;
s0=s%10;
s1=s/10;
PORTD=tab[s0];
PORTA=0X1F;
delay();
PORTD=tab[s1];
PORTA=0X2F;
delay();
}
main()
{
initport();
while(1)
{m=keyscan();
disp(m);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -