;---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
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#0
;---CZYSZCZENIE STEROWNIKA---------------------------------------------
MOV A,#00H
MOV A,#01H
MOV A,#02H
MOV A,#03H
;---WYPISANIE TEKSTU-------------------------------------------------------
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
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
STAN31INK:
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:
LJMP STAN41
STAN31DEC:
;---STAN 4+---------------------------------------------------------------------
STAN41:
CJNE R3,#1,STAN51INK
CJNE R2,#0,STAN41DEC
STAN51INK:
LJMP STAN51
STAN41DEC:
;---STAN 5+--------------------------------------------------------------------
STAN51:
INC R7
MOV R6,#5
;---NALICZANIE W DOL---------------------------------------------------------
STAN22INK:
LJMP STAN22
;---STAN 2- -----------------------------------------------------------------------------
STAN22:
CJNE R2,#0,STAN32INK
CJNE R3,#1,STAN22DEC
STAN32INK:
LJMP STAN32
STAN22DEC:
;---STAN 3- -------------------------------------------------------------------
STAN32:
CJNE R3,#1,STAN42INK
CJNE R2,#1,STAN32DEC
STAN42INK:
LJMP STAN42
STAN32DEC:
;---STAN 4- ---------------------------------------------------------------------
STAN42:
CJNE R2,#1,STAN52INK
CJNE R3,#0,STAN42DEC
STAN52INK:
LJMP STAN52
STAN42DEC:
;---STAN 5- -----------------------------------------------------------------------
STAN52:
DEC R7
;---PRZERWANIE------------------------------------------------------------------------
PRZERWANIE:
CJNE R1,#2,TE1
LJMP TE2
;---LAMPKA T1----------------------------------------------------------------
TE1:
MOV ACC,R2
CPL ACC.0
MOV R2,ACC
RET
;---LAMPKA T2---------------------------------------------------------------------
TE2:
MOV ACC,R3
MOV R3,ACC
TEXT:
DB ‘WELCOME’,0
bojar10