You are on page 1of 3

Session 4: 7-Segment

Seven-Segment Display

The display consists of seven active low segments (A, B, C, D, E, F, G) and an active low
decimal point (P).
The segments and P are driven by the 82C55 Port-A signals as follow:

Segment 82C55 Port-A


A PA0
B PA1
C PA2
D PA3
E PA4
F PA5
G PA6
P PA7

The following schematic shows the interface circuitry between the 82C55 and the 7-
segment display. The interconnection is done by connecting pins 2-9 of P3 connector to
pins 2-9 of P4 connector.
TO DO #1

Write an assembly code that will count from 0 to 9 and wraps back to 0. Use the 7-
segment display to demo your code. It should look something like this:

Hint: use the following partial set of data to turn on/off certain segments for every
displayed digit:
Note:
PPIC_C EQU 1FH
PPIC EQU 1DH
PPIB EQU 1BH
PPIA EQU 19H

DATA: DB 11000000B ; “P G F E D C B A” values for number 0


DB 11111001B
DB 10100100B
DB 10110000B
DB 10011001B
DB 10010010B
DB 10000010B
DB 11111000B
DB 10000000B
DB 10010000B
DB 00H
;***********************************************
;* MDA-8086 7-Segment EXPERIMENT *
;* *
;* *
;***********************************************
;

; PROCESSOR : I8086
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
PPIC_C EQU 1FH ; control register
PPIC EQU 1DH
PPIB EQU 1BH
PPIA EQU 19H
;
ORG 1000H
MOV AL,80H ; Task-2: write the value of the control word
OUT PPIC_C,AL
L1: MOV SI,OFFSET DATA
L2: MOV AL,[SI]
CMP AL,00H
JE L1
OUT PORTA,AL
CALL TIMER
INC SI
JMP L2
INT 3
;
TIMER: MOV CX,0H;
TIMER1: NOP
NOP
NOP
NOP
LOOP TIMER1
RET
DATA: DB 11000000B ; “P G F E D C B A” values for number 0
DB 11111001B
DB 10100100B
DB 10110000B
DB 10011001B
DB 10010010B
DB 10000010B
DB 11111000B
DB 10000000B
DB 10010000B
DB 00H
CODE ENDS
END

You might also like