The task was to;
- Display an Alphabet using a 7 segment display (common cathode and common)interfaced with an At89c51 microcontroller and programmed in assembly language.
- Create a counter using 7 segment display interfaced with an At89c51 microcontroller and programmed in assembly language to count from 0-9
For common cathode:
Circuit diagram:
Code:
Results:
For Common Anode:
Circuit diagram:
Code:
Results:
The link below is the simulation file for both common cathode and common anode on Proteus:
Common Cathode:
https://drive.google.com/file/d/19IpwIHLemsC7s_CIEAHTVeJf6axDF6G-/view?usp=drivesdk
https://drive.google.com/file/d/19IVHOIyIhEj9wG_pZAcIXilZQYZxkWRR/view?usp=drivesdk
For the counter:
Code
ORG 000H
START:
MOV A, #00001001B
MOV B, A
MOV R0, #0AH
LABEL:
MOV A, B
INC A
MOV B, A
MOVC A, @A+PC
MOV P2, A
CALL DELAY
DEC R0
MOV A, R0
JZ START
SJMP LABEL
DB 3FH
DB 06H
DB 5BH
DB 4FH
DB 66H
DB 6DH
DB 7DH
DB 07H
DB 7FH
DB 6FH
DELAY:
MOV R4, #05H
WAIT1: MOV R3, #00H
WAIT2: MOV R2, #00H
WAIT3: DJNZ R2, WAIT3
DJNZ R3, WAIT2
DJNZ R4, WAIT1
RET
END.
Below is a link to the Proteus simulation and code used:
Simulation;
https://drive.google.com/file/d/19KWIgE1wfpv-rI6sgvuAasKJgpBbl4n5/view?usp=drivesdk
Code;
https://drive.google.com/file/d/19P5iDe12r8jpzX1GVZFDzwbEd5uz_Gda/view?usp=drivesdk