; designed by Engr. Tarique R. Memon ;electronixforu.com ; counter counts upto 99 on 7 seg display ; dated 18-12-2009 Friday, 2:19 PM ORG 00 ;******************************LOCATION INITIALIZING SEG EQU P0 LOC1 EQU 41h LOC2 EQU 42h LOC3 EQU 43h LOC4 EQU 44h ;**************TEMPERAROY LOCATION******************* TLOC1 EQU 45h TLOC2 EQU 46h TLOC3 EQU 47h TLOC4 EQU 48h ;******************BIT SETTING FOR 7 SEG*********** DISP1 BIT P2.4 DISP2 BIT P2.5 ;******************SENDING 0 to last digit*********** mov LOC2, #0C0h ;**********************MAIN\BODY PROG********************** MOV TLOC1, #00 REST: MOV DPTR, #DATA START: CLR A MOVC A,@A+DPTR cjne a, #00H, new SJMP REST1 new: ACALL LAMP1 ACALL DISPLAY INC DPTR SJMP START REST1: MOV DPTR, #DATA CLR A ACALL RETURN INC A CJNE A, #0AH, CONTINUE MOV TLOC1, #00H MOV LOC2, #0C0H SJMP REST CONTINUE: ACALL GET MOVC A,@A+DPTR ACALL LAMP2 SJMP REST DATA: DB 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h,00h LAMP1: MOV LOC1, A RET LAMP2: MOV LOC2, A RET RETURN: MOV A, TLOC1 RET GET: MOV TLOC1, A RET ;******************Displays ON*************************** DISPLAY: MOV R0, #128 LOOP: acall DIGIT1 acall DIGIT2 DJNZ R0, LOOP RET ;********************DIGIT CONTROL*********************** DIGIT1: SETB DISP1 MOV SEG, LOC1 ACALL DELON CLR DISP1 ACALL DELOF RET DIGIT2: SETB DISP2 MOV SEG, LOC2 ACALL DELON CLR DISP2 ACALL DELOF RET DELON: MOV R1,#0AH AGA: MOV R2,#0FFH DJNZ R2,$ DJNZ R1,AGA RET DELOF: AGA1: MOV R2,#07H DJNZ R2,$ RET