📄 键盘._c
字号:
//ICC-AVR application builder : 2008-10-16 19:41:41
// Target : M16
// Crystal: 8.0000Mhz
#include <iom16v.h>
#include <macros.h>
unsigned char A[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x5f,0x3f,0x79,0x71};
void delay(unsigned int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<8000;j++)
;
}
unsigned char read_key(unsigned char i)
{
unsigned char j,k,l,key_value=0;
PORTD=0x0F;
//DDRD=0xF0;
if((PIND&0X0f)==0x0f) return 0xff;
else
{delay(5);
if((PIND&0x0f)==0x0f) return 0xff;
else
for(i=4;i<8;i++)
{
PORTD=~(1<<i)| 0x0f;
for(j=0;j<4;j++)
{
if((PIND&(1<<j))==0)
key_value=(i-4)*4+j;
}
}
return key_value;
}
}
void main()
{
unsigned char m;
PORTA=0xFF;
DDRA=0xFF;
PORTD=0x0F;
DDRD=0xF0;
while(1)
{
m=read_key(4);
switch(m)
{
case 0:PORTA=A[0];break;
case 1:PORTA=A[1];break;
case 2:PORTA=A[2];break;
case 3:PORTA=A[3];break;
case 4:PORTA=A[4];break;
case 5:PORTA=A[5];break;
case 6:PORTA=A[6];break;
case 7:PORTA=A[7];break;
case 8:PORTA=A[8];break;
case 9:PORTA=A[9];break;
case 10:PORTA=A[10];break;
case 11:PORTA=A[11];break;
case 12:PORTA=A[12];break;
case 13:PORTA=A[13];break;
case 14:PORTA=A[14];break;
case 15:PORTA=A[15];break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -