;---USTAWIENIE STALYCH---------------------------------------------
START_8255 EQU 10010011B
LED EQU P1.7
LJMP START
;---OBSŁUGA PRZERWANIA---------------------------------------------
ORG 13H
MOV R1,#CSIC
MOVX A,@R1
ANL A,#03H
MOVX @R1,A
MOV R1,A
LCALL LCD_CLR
LCALL PRZERWANIE
RETI
;---INICJACJA---------------------------------------------------------
ORG 100H
START:
MOV R0,#CS55D
MOV A,#START_8255
MOVX @R0,A
MOV A,#11101111B
MOV R0,#CS55C
MOVX @R0,A
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#0
;---CZYSZCZENIE STEROWNIKA---------------------------------------------
MOV R1,#CSIC
MOV A,#00H
MOVX @R1,A
MOV A,#01H
MOVX @R1,A
MOV A,#02H
MOVX @R1,A
MOV A,#03H
MOVX @R1,A
;---WYPISANIE TEKSTU-------------------------------------------------------
LCALL LCD_CLR
MOV DPTR,#TEXT
MOV A,#0
MOVC A,@A+DPTR
LCALL WRITE_TEXT
PUSH ACC
MOV A,#10
LCALL DELAY_100MS
POP ACC
;---USTAWIENIE PRZERWAN-----------------------------------------------------
MOV R1,#CSAD
MOVX A,@R1
CLR P1.1
SETB IT1
SETB EA
SETB EX1
;---GŁÓWNA PĘTLA-----------------------------------------------------------
PETLAGLOWNA:
CJNE R2,#0,STAN21INK
CJNE R3,#0,STAN22INK
LJMP PETLAGLOWNA
;---NALICZANIE W GORE--------------------------------------------------------
STAN21INK:
INC R6
LJMP STAN21
;---STAN 2+ -----------------------------------------------------------------------------
STAN21:
CJNE R3,#0,STAN31INK
CJNE R2,#1,STAN21DEC
LJMP STAN21
STAN31INK:
INC R6
LJMP STAN 31
STAN 21DEC:
DEC R6
MOV A,R7
LCALL WRITE_HEX
LJMP PETLA GLOWNA
;---STAN 3+ -----------------------------------------------------------------
STAN31:
CJNE R2,#1,STAN41INK
CJNE R3,#1,STAN31DEC
LJMP STAN31
STAN41INK:
INC R6
LJMP STAN41
STAN31DEC:
DEC R6
LJMP STAN21
;---STAN 4+---------------------------------------------------------------------
STAN41:
CJNE R3,#1,STAN51INK
CJNE R2,#0,STAN41DEC
LJMP STAN41
STAN51INK:
INC R6
LJMP STAN51
STAN41DEC:
DEC R6
LJMP STAN31
;---STAN 5+--------------------------------------------------------------------
STAN51:
INC R7
MOV R6,#5
MOV A,R7
LCALL WRITE_HEX
LJMP PETLAGLOWNA
;---NALICZANIE W DOL---------------------------------------------------------
STAN22INK:
INC R6
LJMP STAN22
;---STAN 2- -----------------------------------------------------------------------------
STAN22:
CJNE R2,#0,STAN32INK
CJNE R3,#1,STAN22DEC
LJMP STAN22
STAN32INK:
INC R6
LJMP STAN32
STAN22DEC:
DEC R6
MOV A,R7
LCALL WRITE_HEX
LJMP PETLAGLOWNA
;---STAN 3- -------------------------------------------------------------------
STAN32:
CJNE R3,#1,STAN42INK
CJNE R2,#1,STAN32DEC
LJMP STAN32
STAN42INK:
INC R6
LJMP STAN42
STAN32DEC:
DEC R6
LJMP STAN22
;---STAN 4- ---------------------------------------------------------------------
STAN42:
CJNE R2,#1,STAN52INK
CJNE R3,#0,STAN42DEC
LJMP STAN42
STAN52INK:
INC R6
LJMP STAN52
STAN42DEC:
DEC R6
LJMP STAN32
;---STAN 5- -----------------------------------------------------------------------
STAN52:
DEC R7
MOV R6,#5
MOV A,R7
LCALL WRITE_HEX
LJMP PETLAGLOWNA
;---PRZERWANIE------------------------------------------------------------------------
PRZERWANIE:
CJNE R1,#2,TE1
LJMP TE2
MOV A,#0
;---LAMPKA T1----------------------------------------------------------------
TE1:
MOV ACC,R2
CPL ACC.0
MOV R2,ACC
RET
;---LAMPKA T2---------------------------------------------------------------------
TE2:
MOV ACC,R3
CPL ACC.0
MOV R3,ACC
RET
TEXT:
DB ‘WELCOME’,0