#define DELAY 100000
#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 ddisnum0 0x3f//dd with dot
#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
volatile char ddisnum[4][8] = {{ddisnum1, ddisnum2, e,ddisnum3,e,e,e,A},
{ddisnum4, ddisnum5,e,ddisnum6,e,e,e,B},
{ddisnum7, ddisnum8,e,ddisnum9,e,e,e,C},
{H,ddisnum0,e,H,e,e,e,O_D}};
void delay(){
for(volatile long i =0; i<DELAY;i++);
}
void setup() {
volatile unsigned char *dirf, *dirk, *dirl;
dirf = (volatile unsigned char *)0x30; *dirf = 0x0f;
dirl = (volatile unsigned char *)0x10a; dirl = 0xff;
dirk = (volatile unsigned char *)0x107; *dirk = 0x00;
}
void loop() {
volatile unsigned char *outf, *ink, *outl;
outl = (volatile unsigned char *)0x10b;
outf = (volatile unsigned char *)0x31;
ink = (volatile unsigned char *)0x106;
while (1) {
for (volatile long i = 0; i < 4; i++) { // red - row, green - column
*outf = 1 << i;
volatile int x =*outf;
volatile int y = *ink;
if(y!=0){
*outl = ddisnum[i][y-1];
// delay();
// *outl = 0x00;
}
}
}
}