/* Seven segment decoder 0->abcdef 1-> bc 2->ab de g 3->a defg 4-> bc fg 5->a cd g 6->a cdefg 7->abc 8->abcdefg 9->abc fg A->abc efg B-> cdefg C->a def D-> bcde g E->a defg F->a efg copyright (c) 2001 by Jim Patchell */ decode7( in i3..0; /* inputs to be decoded */ out inverted a,b,c,d,e,f,g; /* output pins */ ) { group i[i3..0]; switch(i[]) { case 0: /* 0->abcdef */ a = 1; b = 1; c = 1; d = 1; e = 1; f = 1; break; case 1: /* 1-> bc */ b = 1; c = 1; break; case 2: /* 2->ab de g */ a = 1; b = 1; d = 1; e = 1; g = 1; break; case 3: /* 3->a defg */ a = 1; d = 1; e = 1; f = 1; g = 1; break; case 4: /* 4-> bc fg */ b = 1; c = 1; f = 1; g = 1; break; case 5: /* 5->a cd g */ a = 1; c = 1; d = 1; g = 1; break; case 6: /* 6->a cdefg */ a = 1; c = 1; d = 1; e = 1; f = 1; g = 1; break; case 7: /* 7->abc */ a = 1; b = 1; c = 1; break; case 8: /* 8->abcdefg */ a = 1; b = 1; c = 1; d = 1; e = 1; f = 1; g = 1; break; case 9: /* 9->abc fg */ a = 1; b = 1; c = 1; f = 1; g = 1; break; case 10: /* A->abc efg */ a = 1; b = 1; c = 1; e = 1; f = 1; g = 1; break; case 11: /* B-> cdefg */ c = 1; d = 1; e = 1; f = 1; g = 1; break; case 12: /* C->a def */ a = 1; d = 1; e = 1; f = 1; break; case 13: /* D-> bcde g */ b = 1; c = 1; d = 1; e = 1; g = 1; break; case 14: /* E->a defg */ a = 1; d = 1; e = 1; f = 1; g = 1; break; case 15: /* F->a efg */ a = 1; e = 1; f = 1; g = 1; break; } putpart("p16l8","7segl8", i0,i1,i2,i3,_ ,_ ,_ ,_ ,_ ,GND, _ ,_ ,g,f,e,d,c,b,a,VCC); putpart("p22v10","7segv10", i0,i1,i2,i3,_ ,_ ,_ ,_ ,_ ,_ ,_ ,GND, _ ,_ ,_ ,_ ,g,f,e,d,c,b,a,VCC); }