240 likes | 403 Views
7-Segment Displays. Lecture L6.1 Section 6.3. Turning on an LED. Turning on an LED. This is what we use in Lab. 7-Segment Display. a. f. b. g. e. c. d. 7-Segment Display. a b c d e f g 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 2 1 1 0 1 1 0 1 3 1 1 1 1 0 0 1 4 0 1 1 0 0 1 1
E N D
7-Segment Displays Lecture L6.1 Section 6.3
Turning on an LED This is what we use in Lab
a f b g e c d 7-Segment Display a b c d e f g 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 2 1 1 0 1 1 0 1 3 1 1 1 1 0 0 1 4 0 1 1 0 0 1 1 5 1 0 1 1 0 1 1 6 1 0 1 1 1 1 1 7 1 1 1 0 0 0 0
a f b g e c d 7-Segment Display a b c d e f g 8 1 1 1 1 1 1 1 9 1 1 1 1 0 1 1 A 1 1 1 0 1 1 1 b 0 0 1 1 1 1 1 C 1 0 0 1 1 1 0 d 0 1 1 1 1 0 1 E 1 0 0 1 1 1 1 F 1 0 0 0 1 1 1
D1 & !D0 D3 & D2 !D2 & !D0 D3 & D1 K-Map for Segment e e = D3 & D2 # !D2 & !D0 # D3 & D1 # D1 & !D0 D1 D0 00 01 11 10 D3 D2 00 1 1 01 1 11 1 1 1 1 10 1 1 1
Makes this module available in higher-level modules hex7seg.abl MODULE hex7seg INTERFACE ([D3..D0] -> [a,b,c,d,e,f,g]); TITLE 'hex to seven segment display decoder' " a " --- hex-to-seven-segment decoder " f| g |b " --- " e| d |c " --- DECLARATIONS " Input Pins " D3..D0 PIN; D = [D3..D0]; " 4-bit input vector " Output Pins " [a,b,c,d,e,f,g] PIN ISTYPE 'com'; " 7-segment LED display segs = [a,b,c,d,e,f,g];
hex7seg.abl (cont.) HEX @radix 16; EQUATIONS when (D == 0) then segs = 7E; when (D == 1) then segs = 30; when (D == 2) then segs = 6D; when (D == 3) then segs = 79; when (D == 4) then segs = 33; when (D == 5) then segs = 5B; when (D == 6) then segs = 5F; when (D == 7) then segs = 70; when (D == 8) then segs = 7F; when (D == 9) then segs = 7B; when (D == 0A) then segs = 77; when (D == 0B) then segs = 1F; when (D == 0C) then segs = 4E; when (D == 0D) then segs = 3D; when (D == 0E) then segs = 4F; when (D == 0F) then segs = 47; END hex7seg a b c d e f g 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 2 1 1 0 1 1 0 1 3 1 1 1 1 0 0 1 4 0 1 1 0 0 1 1 5 1 0 1 1 0 1 1 6 1 0 1 1 1 1 1 7 1 1 1 0 0 0 0 8 1 1 1 1 1 1 1 9 1 1 1 1 0 1 1 A 1 1 1 0 1 1 1 b 0 0 1 1 1 1 1 C 1 0 0 1 1 1 0 d 0 1 1 1 1 0 1 E 1 0 0 1 1 1 1 F 1 0 0 0 1 1 1
ON,OFF = 1,0; " for common cathode LEDs @radix 16; EQUATIONS "[ a , b , c , d , e , f , g ] when (D == 0) then segs = [ ON, ON, ON, ON, ON, ON, OFF]; when (D == 1) then segs = [OFF, ON, ON, OFF,OFF,OFF,OFF]; when (D == 2) then segs = [ ON, ON, OFF,ON, ON, OFF, ON]; when (D == 3) then segs = [ ON, ON, ON, ON, OFF,OFF, ON]; when (D == 4) then segs = [OFF, ON, ON, OFF,OFF,ON, ON]; when (D == 5) then segs = [ ON, OFF,ON, ON, OFF,ON, ON]; when (D == 6) then segs = [ ON, OFF,ON, ON, ON, ON, ON]; when (D == 7) then segs = [ ON, ON, ON, OFF,OFF,OFF,OFF]; when (D == 8) then segs = [ ON, ON, ON, ON, ON, ON, ON]; when (D == 9) then segs = [ ON, ON, ON, ON, OFF,ON, ON]; when (D == 0A) then segs = [ ON, ON, ON, OFF,ON, ON, ON]; when (D == 0B) then segs = [OFF, OFF,ON, ON, ON, ON, ON]; when (D == 0C) then segs = [ ON, OFF,OFF,ON, ON, ON, OFF]; when (D == 0D) then segs = [OFF, ON, ON, ON, ON, OFF, ON]; when (D == 0E) then segs = [ ON, OFF,OFF,ON, ON, ON, ON]; when (D == 0F) then segs = [ ON, OFF,OFF,OFF,ON, ON, ON]; END hex7seg Alternate form of EQUATIONS
Compiled Equations a = (D0 & D2 & !D3 # !D1 & !D2 & D3 # !D0 & !D2 # D1 & !D3 # !D0 & D3 # D1 & D2); b = (D0 & D1 & !D3 # D0 & !D1 & D3 # !D0 & !D1 & !D3 # !D0 & !D2 # !D2 & !D3); c = (D2 & !D3 # !D2 & D3 # D0 & !D1 # !D1 & !D2 # D0 & !D2); Note they are reduced
Compiled Equations (cont.) d = (D1 & !D2 & !D3 # D0 & !D1 & D2 # !D0 & D1 & D2 # D0 & !D2 & D3 # !D0 & !D1 & !D2 # !D1 & D3); e = (!D0 & !D2 # D2 & D3 # !D0 & D1 # D1 & D3); f = (!D1 & D2 & !D3 # !D2 & D3 # !D0 & !D1 # !D0 & D2 # D1 & D3); g = (!D1 & D2 & !D3 # D1 & !D2 # !D0 & D1 # !D2 & D3 # D0 & D3); Note that d is NOT completely reduced Make Karnaugh map for d
EQUATIONS @radix 16; truth_table (D -> [ a , b , c , d , e , f , g ]) 0 -> [ ON, ON, ON, ON, ON, ON, OFF]; 1 -> [OFF, ON, ON, OFF, OFF, OFF, OFF]; 2 -> [ ON, ON, OFF, ON, ON, OFF, ON]; 3 -> [ ON, ON, ON, ON, OFF, OFF, ON]; 4 -> [OFF, ON, ON, OFF, OFF, ON, ON]; 5 -> [ ON, OFF, ON, ON, OFF, ON, ON]; 6 -> [ ON, OFF, ON, ON, ON, ON, ON]; 7 -> [ ON, ON, ON, OFF, OFF, OFF, OFF]; 8 -> [ ON, ON, ON, ON, ON, ON, ON]; 9 -> [ ON, ON, ON, ON, OFF, ON, ON]; 0A -> [ ON, ON, ON, OFF, ON, ON, ON]; 0B -> [OFF, OFF, ON, ON, ON, ON, ON]; 0C -> [ ON, OFF, OFF, ON, ON, ON, OFF]; 0D -> [OFF, ON, ON, ON, ON, OFF, ON]; 0E -> [ ON, OFF, OFF, ON, ON, ON, ON]; 0F -> [ ON, OFF, OFF, OFF, ON, ON, ON]; END hex7seg Another alternate form of EQUATIONS
a = (D3 & D2 & D1 & D0 # !D3 & D2 & D1 & D0 # !D3 & !D2 & D1 & D0 # !D3 & D2 & !D1 & D0 # D3 & !D2 & !D1 & D0 # D3 & D2 & D1 & !D0 # !D3 & D2 & D1 & !D0 # D3 & !D2 & D1 & !D0 # !D3 & !D2 & D1 & !D0 # D3 & D2 & !D1 & !D0 # D3 & !D2 & !D1 & !D0 # !D3 & !D2 & !D1 & !D0); b = (!D3 & D2 & D1 & D0 # !D3 & !D2 & D1 & D0 # D3 & D2 & !D1 & D0 # D3 & !D2 & !D1 & D0 # !D3 & !D2 & !D1 & D0 # D3 & !D2 & D1 & !D0 # !D3 & !D2 & D1 & !D0 # !D3 & D2 & !D1 & !D0 # D3 & !D2 & !D1 & !D0 # !D3 & !D2 & !D1 & !D0); Compiled Equations Note they are NOT reduced Sum of all minterms
c = (!D3 & D2 & D1 & D0 # D3 & !D2 & D1 & D0 # !D3 & !D2 & D1 & D0 # D3 & D2 & !D1 & D0 # !D3 & D2 & !D1 & D0 # D3 & !D2 & !D1 & D0 # !D3 & !D2 & !D1 & D0 # !D3 & D2 & D1 & !D0 # D3 & !D2 & D1 & !D0 # !D3 & D2 & !D1 & !D0 # D3 & !D2 & !D1 & !D0 # !D3 & !D2 & !D1 & !D0); d = (D3 & !D2 & D1 & D0 # !D3 & !D2 & D1 & D0 # D3 & D2 & !D1 & D0 # !D3 & D2 & !D1 & D0 # D3 & !D2 & !D1 & D0 # D3 & D2 & D1 & !D0 # !D3 & D2 & D1 & !D0 # !D3 & !D2 & D1 & !D0 # D3 & D2 & !D1 & !D0 # D3 & !D2 & !D1 & !D0 # !D3 & !D2 & !D1 & !D0);
e = (D3 & D2 & D1 & D0 # D3 & !D2 & D1 & D0 # D3 & D2 & !D1 & D0 # D3 & D2 & D1 & !D0 # !D3 & D2 & D1 & !D0 # D3 & !D2 & D1 & !D0 # !D3 & !D2 & D1 & !D0 # D3 & D2 & !D1 & !D0 # D3 & !D2 & !D1 & !D0 # !D3 & !D2 & !D1 & !D0); f = (D3 & D2 & D1 & D0 # D3 & !D2 & D1 & D0 # !D3 & D2 & !D1 & D0 # D3 & !D2 & !D1 & D0 # D3 & D2 & D1 & !D0 # !D3 & D2 & D1 & !D0 # D3 & !D2 & D1 & !D0 # D3 & D2 & !D1 & !D0 # !D3 & D2 & !D1 & !D0 # D3 & !D2 & !D1 & !D0 # !D3 & !D2 & !D1 & !D0);
g = (D3 & D2 & D1 & D0 # D3 & !D2 & D1 & D0 # !D3 & !D2 & D1 & D0 # D3 & D2 & !D1 & D0 # !D3 & D2 & !D1 & D0 # D3 & !D2 & !D1 & D0 # D3 & D2 & D1 & !D0 # !D3 & D2 & D1 & !D0 # D3 & !D2 & D1 & !D0 # !D3 & !D2 & D1 & !D0 # !D3 & D2 & !D1 & !D0 # D3 & !D2 & !D1 & !D0);
MODULE main7seg TITLE 'hex to seven segment display decoder' DECLARATIONS hex7seg INTERFACE([D3..D0] -> [a,b,c,d,e,f,g]); d7L FUNCTIONAL_BLOCK hex7seg; d7R FUNCTIONAL_BLOCK hex7seg; " Input Pins " L3..L0 PIN 11,7,6,5; " Left Switches S6 - 1..4 L = [L3..L0]; " 4-bit input vector R3..R0 PIN 4,3,2,1; " Right Switches S7 - 1..4 R = [R3..R0]; " 4-bit input vector
" Output Pins " [aa,bb,cc,dd,ee,ff,gg] PIN 57,58,61,62,63,65,66 ISTYPE 'com'; "Leftmost (tens) 7-segment LED display [a,b,c,d,e,f,g] PIN 15,18,23,21,19,14,17 ISTYPE 'com'; " Rightmost (units) 7-segment LED display EQUATIONS [aa,bb,cc,dd,ee,ff,gg] = d7L.[a,b,c,d,e,f,g]; d7L.[D3..D0] = L; [a,b,c,d,e,f,g] = d7R.[a,b,c,d,e,f,g]; d7R.[D3..D0] = R; END main7seg