Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
IDT2: ACALL INDT2
SJMP MAIN2
IDT1: ACALL INDT1
SJMP MAIN2
IDTM: ACALL INDTM
MAIN2: LCALL LCD
MAIN3: MOV A, CNTSTM
JNZ MAIN4
MOV CNTSTM,#CNTSTMV
CLR TOV
MOV R3,#55 ;set T1 limit 55
LCALL READ_T1
MOV R3,#99 ;set T2,T3 limits 99
LCALL READ_T2
LCALL READ_T3
LCALL GET_VOLT
LCALL GET_CL ;get time from clock
LCALL TINC ;timer INC and alarm check
MAIN4: JNB ALS, MAIN5
MOV A, SNDSTM
JNZ MAIN5
MOV SNDSTM,#ALSTMV
SJMP DOSND
MAIN5: MOV C, TOV
ORL C, VMF
JNC MAIN6
MOV A, SNDSTM
JNZ MAIN6
MOV SNDSTM,#SNDSTMV
DOSND: CLR A
LCALL SOUND
MAIN6: LJMP MAIN
; ------ Subroutines Area ------
; ------ Keys Functions ------
; Numeric keys
NUM: MOV C, ED_CL
ORL C, ED_AL
JNC NUM1
MOV R00,R7
DEC R0 ;perform digit value
MOV A, POS ;position check
DEC A
JZ ND1
DEC A
JZ ND2
DEC A
JZ ND3
DEC A
JZ ND4
JB EDBEG, NUM1
SETB EDBEG
MOV DIG6,#CH_BL
MOV A,#CH_MN
MOV DIG4,A
MOV DIG5,A
MOV DIG7,A
MOV DIG8,A
MOV POS,#1H
ND1: MOV A, R0 ;POS=1
ADD A,#0FDH
JC NUM1 ;jump if R0>2
MOV DIG4,R0
SJMP NUME
ND2: MOV A, DIG4 ;POS=2
XRL A,#2H
JNZ ND21 ;jump if DIG4<2
MOV A, R0
ADD A,#0FCH
JC NUM1 ;jump if DIG4=2 and R0>3
ND21: MOV DIG5,R0
SJMP NUME
ND3: MOV A, R0 ;POS=3
ADD A,#0FAH
JC NUM1 ;jump if R0>5
MOV DIG7,R0
SJMP NUME
ND4: MOV DIG8,R0 ;POS=4
NUME: INC POS ;next position
NUM1: MOV CYCSTM,#0H ;display changes
RET
; Clock set function
CLOCK: MOV A, ED_FLAGS
JNZ CLRET
SETB ED_CL ;set clock edit flag
CLR EDBEG
MOV DIG1,#CH_P ;perform DIGs
MOV DIG2,#CH_C
MOV DIG3,#CH_BL
MOV DIG4,CL1
MOV DIG5,CL2
MOV DIG6,#CH_MN
MOV DIG7,CL3
MOV DIG8,CL4
MOV POS,#5H
MOV CYCSTM,#0H ;display changes
LCALL SET_CL
CLRET: RET
; Alarm time set function
ALARM: MOV A, ED_FLAGS
JNZ ALRET
SETB ED_AL
CLR EDBEG
MOV DIG1,#CH_P
MOV DIG2,#CH_A
MOV DIG3,#CH_BL
MOV DIG4,AL1
MOV DIG5,AL2
MOV DIG6,#CH_MN
MOV DIG7,AL3
MOV DIG8,AL4
MOV POS,#5H
MOV CYCSTM,#0H
ALRET: RET
; Backspace function
BACK: MOV C, ED_CL
ORL C, ED_AL
JNC BRET
SETB EDBEG
MOV DIG6,#CH_BL
MOV A, POS
DEC A
JZ BRET ;jump if POS=1
DEC POS
DEC A
JNZ BPN2
MOV DIG4,#CH_MN
BPN2: DEC A
JNZ BPN3
MOV DIG5,#CH_MN
BPN3: DEC A
JNZ BPN4
MOV DIG7,#CH_MN
BPN4: MOV DIG8,#CH_MN
MOV CYCSTM,#0H ;display changes
BRET: RET
; Enter function
ENTER: JBC ED_TM, ENTM
MOV A, POS
CJNE A,#5H, ENRET
JBC ED_CL, ENCL
JBC ED_AL, ENAL
ENRET: RET
ENCL: MOV CL1,DIG4
MOV CL2,DIG5
MOV CL3,DIG7
MOV CL4,DIG8
LCALL SET_CL ;set clock
MOV CYCSTM,#0H
MOV INDLTM,#0H
RET
ENAL: MOV AL1,DIG4
MOV AL2,DIG5
MOV AL3,DIG7
MOV AL4,DIG8
SET_AL: MOV R0,AL1 ;save alarm values in RTC
MOV A,#B
LCALL SHWR
MOV R0,AL2
MOV A,#B
LCALL SHWR
MOV R0,AL3
MOV A,#B
LCALL SHWR
MOV R0,AL4
MOV A,#B
LCALL SHWR
SETB ALENB
SETB DP3
ENTM: MOV CYCSTM,#0H
RET
; Escape function
ESCAPE: JBC ED_TM, ES1
JBC ED_AL, ES1
JBC ED_CL, ES1
RET
ES1: MOV CYCSTM,#0H
RET
; Timer function
TIMER: SETB ED_TM
MOV CYCSTM,#0H
RET
; Timer clear function
TCLEAR: JNB ED_TM, TCRET
SET_TM: MOV R0,CL1 ;save timer values in RTC
MOV TM1,R0
MOV A,#B
LCALL SHWR
MOV R0,CL2
MOV TM2,R0
MOV A,#B
LCALL SHWR
MOV R0,CL3
MOV TM3,R0
MOV A,#B
LCALL SHWR
MOV R0,CL4
MOV TM4,R0
MOV A,#B
LCALL SHWR
MOV CYCSTM,#0H
TCRET: RET
; Alarm disable function
ALDS: CLR ALENB
CLR ALS
CLR DP3
RET
; Lock function
LOCK: CPL BIT_LK
MOV CYCSTM,#0H
RET
; List function
LIST: CLR BIT_LK
MOV CYCSTM,#0H
MOV INDLTM,#0H
RET
; ------ End Of Keys Functions ------
; T1 indication
INDT1: ACALL INDT
MOV DIG2,#1
LCALL READ_T1
ACALL INDTA
LCALL ST_T1 ;start T1 conversion
RET
INDT2: ACALL INDT
MOV DIG2,#2
LCALL READ_T2
ACALL INDTA
LCALL ST_T2 ;start T2 conversion
RET
INDT3: ACALL INDT
MOV DIG2,#3
LCALL READ_T3
ACALL INDTA
LCALL ST_T3 ;start T3 conversion
RET
INDTA: JNC FAIL
JNB MINUS, TPL1
MOV DIG4,#CH_MN
TPL1: MOV DIG5,R2
MOV DIG6,R1
RET
FAIL: MOV DIG4,#CH_BL
MOV DIG5,#CH_F
MOV DIG6,#CH_A
MOV DIG7,#CH_I
MOV DIG8,#CH_L
RET
INDT: MOV DIG1,#CH_T
MOV DIG4,#CH_BL
MOV DIG7,#CH_GR
MOV DIG8,#CH_C
RET
INDTM: MOV DIG1,#CH_BL
MOV DIG2,#CH_C
MOV DIG6,#CH_MN
CLR C
MOV A, CL4
SUBB A, TM4
JNC IDMT1
SUBB A,#5H
ANL A,#0FH
SETB C
IDMT1: MOV DIG8,A
MOV A, CL3
SUBB A, TM3
JNC IDMT2
SUBB A,#9H
ANL A,#0FH
SETB C
IDMT2: MOV DIG7,A
MOV A, CL2
SUBB A, TM2
JNC IDMT3
SUBB A,#5H
ANL A,#0FH
SETB C
IDMT3: MOV R0,A
MOV A, CL1
SUBB A, TM1
JNC IDMT4
SUBB A,#0CH
ANL A,#0FH
SWAP A
ORL A, R0
ADD A,#094H
DA A
MOV R0,A
ANL A,#0FH
XCH A, R0
SWAP A
ANL A,#0FH
IDMT4: MOV DIG5,R0
MOV DIG4,A
RET
; ------ 1-Wire thermometers support ------
; Start conversion in 1-wire thermometer DS1821.
; 1-wire port line called as THERM1.
; Calls TRESET1, TOUCHBY1
START_T1: LCALL TRESET1 ;Issue reset pulse.
JNC ACSRET1 ;Fail if no part on bus.
MOV A,#0CH ;Write status command.
LCALL TOUCHBY1 ;Send command byte.
MOV A,#00H ;Continuously conversion.
LCALL TOUCHBY1 ;Send command byte.
ST_T1: LCALL TRESET1 ;Issue reset pulse.
JNC ACSRET1 ;Fail if no part on bus.
MOV A,#0EEH ;Start convert command.
LCALL TOUCHBY1 ;Send command byte.
SETB C
ACSRET1: RET
; This procedure transmits the Reset signal to the 1-Wire
; device and watches for a presence pulse. On return,
; the Carry bit is set if a presence pulse was detected,
; otherwise the Carry is cleared. The code is timed for
; an 10 MHz crystal.
TRESET1: MOV A,#4 ;Load outer loop variable.
CLR THERM1 ;Start the reset pulse.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 |


