#define DELAY 200
#define A 0x77//A WIHOUT DOT
#define B 0x7f //b without dot
#define C 0x39 //c WIHOUT DOT
#define O_D 0x3f //o,d WIHOUT DOT
#define e 0x79
#define disoff 0x00
#define ddisnum0 0x3f
#define ddisnum1 0x06
#define ddisnum2 0x5b
#define ddisnum3 0x4f
#define ddisnum4 0x66
#define ddisnum5 0x6d
#define ddisnum6 0x7d
#define ddisnum7 0x07
#define ddisnum8 0x7f
#define ddisnum9 0x6f
#define zero 0x01
#define one 0x02
#define two 0x04
#define three 0x08
#define four 0x10
#define five 0x20
#define six 0x40
#define seven 0x80
#define eight 0x01
#define nine 0x02
#define disnum0 0xbf
#define disnum1 0x86
#define disnum2 0xdb
#define disnum3 0xcf
#define disnum4 0xe6
#define disnum5 0xed
#define disnum6 0xfd
#define disnum7 0x87
#define disnum8 0xff
#define disnum9 0xef
#define H 0x76//h WIHOUT DOT
#define pos4 0x07
#define pos1 0x0e
#define pos2 0x0d
#define pos3 0x0b
volatile char dddisnum[11] = {ddisnum0, ddisnum1, ddisnum2, ddisnum3, ddisnum4, ddisnum5,
ddisnum6, ddisnum7, ddisnum8, ddisnum9};
volatile char position[4]={pos1,pos2,pos3,pos4};
volatile char ddisnum[8][8] = {{ddisnum1, ddisnum2, e,ddisnum3,e,e,e,A},
{ddisnum4, ddisnum5,e,ddisnum6,e,e,e,B},
{e},
{ddisnum7, ddisnum8,e,ddisnum9,e,e,e,C},
{e},{e},{e},
{H,ddisnum0,e,H,e,e,e,O_D}};
void delay(){
for(volatile long i =0; i<DELAY;i++);
}
void keypress_displayatspecific_position(volatile unsigned long pos){
volatile unsigned char *outf, *ink, *outl,*outc;
outl = (volatile unsigned char *)0x10b;
outf = (volatile unsigned char *)0x31;
ink = (volatile unsigned char *)0x106;
outc = (volatile unsigned char *)0x28;
*outc = pos;
while (1) {
for (volatile long i = 0; i < 4; i++) {
*outf = 1 << i;
volatile int x =*outf;
volatile int y = *ink;
if(y!=0){
*outl = ddisnum[x-1][y-1];
// delay();
// *outl = 0x00;
}
}
}
}
void setup() {
volatile unsigned char *dirf, *dirk, *dirl,*dirc;
dirf = (volatile unsigned char *)0x30; *dirf = 0x0f;
dirl = (volatile unsigned char *)0x10a; dirl = 0xff;
dirk = (volatile unsigned char *)0x107; *dirk = 0x00;
dirc = (volatile unsigned char *)0x27; *dirc = 0xff;
}
void loop() {
// while(1){
// keypress_displayatspecific_position(pos2);
// keypress_displayatspecific_position(pos1);
// }
volatile unsigned char *outf, *ink, *outl,*outc;
outl = (volatile unsigned char *)0x10b;
volatile char pos = pos1;
*outl = dddisnum[0];
pos = pos2;
delay(DELAY);
*outl = dddisnum[1];
delay(DELAY);
pos = pos3;
*outl = dddisnum[2];
delay(DELAY);
pos = pos4;
*outl = dddisnum[4];
delay(DELAY);
}