void setup() {
// put your setup code here, to run once:
volatile *portf, *portk, *portc_s, *portb, *porta, *portd;
portf = 0x30; *portf = 0x0F;
portk = 0x107; *portk = 0x00;
portc_s = 0x27; *portc_s = 0xFF;
portb = 0x24; *portb = 0xFF;
porta = 0x21; *porta = 0x0F;
portd = 0x2A; *portd = 0xFF;
}
void readin(char row,char coloumn)
{
volatile char i;
volatile long j;
volatile char *outf,*inpk,*outa,*outd;
outd=0x2B;
outa=0x22;
outf=0x31;
inpk=0x106;
while(1)
{
for(i=0;i<4;i++)
{
*outf=1<<i;
*outa=*inpk;
coloumn=*inpk;
if(*inpk!=0)
{
*outd=1<<i;
row=*outd;
for(j=0;j<200000;j++);
*outd=0;
}
volatile char z;
screen1(row,coloumn,z);
/*volatile char *outb,*outc,y;
outb=0x25;
outc=0x28;
if(row==0x01 && coloumn==0x02)
{
*outb=0xff;
*outc=0x00;
*outb=0x0b;
*outc=z;
*outb=0xFF;
*outc=0x00;
*outb=0x07;
*outc=0x5B;y=*outc;
*outb=0xff;
*outc=0x00;
}
if(row==0x01 && coloumn==0x04)
{
*outb=0xff;
*outc=0x00;
*outb=0x07;
*outc=0x4F;
delay(5);
*outb=0xFF;
*outc=0x00;
*outb=0x0B;
*outc=y;
delay(10);
*outb=0xff;
*outc=0x00;
*outb=0x0D;
*outc=z;
*outb=0xff;
*outc=0x00;
}*/
}
}
}
void loop() {
volatile char row1,coloumn1;
readin(row1,coloumn1);
}
void screen1(char row,char coloumn,char z)
{
volatile char *outb,*outc;
outb=0x25;
outc=0x28;
switch(row)
{
case 1:
switch(coloumn)
{
case 1:
*outb=0x07;
*outc=0x06;z=*outc;break;
case 2:
*outb=0x07;
*outc=0x5B;z=*outc;break;
case 4:
*outb=0x07;
*outc=0x04F;z=*outc;break;
case 8:
*outb=0x07;
*outc=0x77;z=*outc;break;
}
break;
case 2:
switch(coloumn)
{
case 1:
*outb=0x07;
*outc=0x66;z=*outc;break;
case 2:
*outb=0x07;
*outc=0x6D;z=*outc;break;
case 4:
*outb=0x07;
*outc=0x7D;z=*outc;break;
case 8:
*outb=0x07;
*outc=0x7F;z=*outc;break;
}
break;
case 4:
switch(coloumn)
{
case 1:
*outb=0x07;
*outc=0x07;z=*outc;break;
case 2:
*outb=0x07;
*outc=0xFF;z=*outc;break;
case 4:
*outb=0x07;
*outc=0x67;z=*outc;break;
case 8:
*outb=0x07;
*outc=0x39;z=*outc;break;
}
break;
case 8:
switch(coloumn)
{
case 2:
*outb=0x07;
*outc=0x3F;z=*outc;break;
case 8:
*outb=0x07;
*outc=0x3F;z=*outc;break;
}
break;
}
}