Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
.INCLUDE LIBREG. ASM ;8051 SFR set
; ------ Constantes ------
STACK. EQU 056H ;stack location
;SYS. EQU 01EH ;RC5 system
SYS. EQU 0H ;RC5 system
VMIN. EQU 100 ;/10 V min limit
RTCVL. EQU 0E6H ;20mS timer load value
RTCVH. EQU 0BEH
V1S. EQU 50 ;program timer RTPCS value 1S/20mS=50
INDLTMV. EQU 4 ;x1S indication timer value
CYCSTMV. EQU 25 ;x20mS cycle timer
CNTSTMV. EQU 50 ;x20mS control timer
SNDSTMV. EQU 10 ;x20mS sound timer
ALSTMV. EQU 5 ;x20mS alarm sound timer
; ------ Ports ------
SER. EQU INT0 ;RC-5 Line
THERM1 .EQU P1.4 ;1-Wire thermometer 1
THERM2 .EQU P1.3 ;1-Wire thermometer 2
THERM3 .EQU P1.2 ;1-Wire thermometer 3
THERM4 .EQU T0 ;1-Wire thermometer 4
DATA. EQU RXD ;Serial Port Data
CLK. EQU TXD ;Serial Port Clock
CS1 .EQU P1.7 ;LCD-Driver 1 CS Line
CS2 .EQU P1.6 ;LCD-Driver 2 CS Line
RST. EQU INT1 ;Real Time Clock RST Line
COMP. EQU P3.6 ;Comparator Out
RC. EQU P1.5 ;RC Network
SND. EQU T1 ;Sound Beeper Line
; ------ Variables ------
; Bit addressing memory
RTPC. EQU 020H ;Real time program counter
T040M. EQU M_20H.0 ;40mS period bit
T080M. EQU M_20H.1 ;80mS period bit
T160M. EQU M_20H.2 ;160mS period bit
T320M. EQU M_20H.3 ;320mS period bit
T640M. EQU M_20H.4 ;640mS period bit
T1S28 .EQU M_20H.5 ;1.28S period bit
T2S56 .EQU M_20H.6 ;2.56S period bit
T5S12 .EQU M_20H.7 ;5.12S period bit
RTPCS. EQU 021H ;Real time program counter (1S part)
DPS. EQU 022H ;decimal points
DP1 .EQU M_22H.0 ;decimal point 1
DP2 .EQU M_22H.1 ;decimal point 2
DP3 .EQU M_22H.2 ;decimal point 3
DP4 .EQU M_22H.3 ;decimal point 4
DP5 .EQU M_22H.4 ;decimal point 5
DP6 .EQU M_22H.5 ;decimal point 6
DP7 .EQU M_22H.6 ;decimal point 7
DP8 .EQU M_22H.7 ;decimal point 8
CNT1 .EQU 023H ;control byte for LCD driver 1
SEG1 .EQU M_23H.0 ;segment 1
SEG2 .EQU M_23H.1 ;segment 2
SEG3 .EQU M_23H.2 ;segment 3
SEG4 .EQU M_23H.3 ;segment 4
CNT2 .EQU 024H ;control byte for LCD driver 2
SEG5 .EQU M_24H.0 ;segment 5
SEG6 .EQU M_24H.1 ;segment 6
SEG7 .EQU M_24H.2 ;segment 7
SEG8 .EQU M_24H.3 ;segment 8
MINUS. EQU M_25H.0 ;minus temperature
SEC. EQU M_25H.1 ;second bit
BIT_LK. EQU M_25H.2 ;bit LOCK
EDBEG. EQU M_25H.3 ;begin edit flag
TOV. EQU M_25H.4 ;T overflow flag
ALENB. EQU M_25H.5 ;alarm enable flag
ALS. EQU M_25H.6 ;alarm sound flag
VCLK. EQU M_25H.7 ;voltmeter clock
ED_FLAGS. EQU 026H
ED_TM. EQU M_26H.0 ;timer edit flag
ED_AL. EQU M_26H.1 ;alarm edit flag
ED_CL. EQU M_26H.2 ;clock edit flag
VMF. EQU M_27H.0 ;voltmeter min flag
; Internal data memory
DIG1 .EQU 030H
DIG2 .EQU 031H
DIG3 .EQU 032H
DIG4 .EQU 033H
DIG5 .EQU 034H
DIG6 .EQU 035H
DIG7 .EQU 036H
DIG8 .EQU 037H
CODE. EQU 038H
INDPH. EQU 039H ;indication phase (0-T1,1-T2,2-T3,3-TM,4-VOLT)
POS. EQU 03AH
CL1 .EQU 03BH
CL2 .EQU 03CH
CL3 .EQU 03DH
CL4 .EQU 03EH
TM1 .EQU 03FH
TM2 .EQU 040H
TM3 .EQU 041H
TM4 .EQU 042H
AL1 .EQU 043H
AL2 .EQU 044H
AL3 .EQU 045H
AL4 .EQU 046H
VL1 .EQU 047H
VL2 .EQU 048H
VL3 .EQU 049H
CTMV. EQU 04AH
VCNT. EQU 04BH
VH. EQU 04CH
VL. EQU 04DH
HR. EQU 04EH
INDLTM. EQU 04FH
CYCSTM. EQU 050H
CNTSTM. EQU 051H
SNDSTM. EQU 052H
; ------ Vectors Area ------
.ORG 0000H ;reset vector
LJMP INIT
.ORG 0003H ;INT0 vector
LJMP RC5
INIT: MOV SP,#STACK
SJMP INIT1
.ORG 000BH ;INT TIMER 0 vector
LJMP RTC
; ------ Main Program ------
INIT1: CLR RST
CLR CLK ;clock line init
CLR A
MOV VH, A
MOV VL, A
MOV R37,A
MOV CODE, A
MOV VCNT, A
MOV INDPH, A ;set indication phase 0
MOV INDLTM, A ;indication timer clear
MOV CYCSTM, A ;cycle timer clear
MOV CNTSTM, A ;control timer clear
MOV ED_FLAGS, A
CPL A
MOV CTMV, A
MOV HR, A
MOV R3,#99 ;set T limit
CLR BIT_LK ;lock off
SETB ALENB ;alarm enable
CLR ALS ;clear alarm sound flag
LCALL GET_VOLT
CLR VMF ;clear voltmeter min flag
; LCD clear
MOV A,#CH_BL
MOV DIG1,A
MOV DIG2,A
MOV DIG3,A
MOV DIG4,A
MOV CNT1,#0F0H
MOV DIG5,A
MOV DIG6,A
MOV DIG7,A
MOV DIG8,A
MOV CNT2,#0H
MOV DPS,#0H
LCALL LCD
SETB DP3
LCALL GET_CL
; Get alarm values from RTC
MOV A,#B
LCALL SHRD
MOV AL1,A
MOV A,#B
LCALL SHRD
MOV AL2,A
MOV A,#B
LCALL SHRD
MOV AL3,A
MOV A,#B
LCALL SHRD
MOV AL4,A
; Get timer values from RTC
MOV A,#B
LCALL SHRD
MOV TM1,A
MOV A,#B
LCALL SHRD
MOV TM2,A
MOV A,#B
LCALL SHRD
MOV TM3,A
MOV A,#B
LCALL SHRD
MOV TM4,A
LCALL START_T1
LCALL START_T2
LCALL START_T3
MOV TMOD,#11H ;timer 0 and timer 1 init
CLR TR0 ;timer 0 stop
CLR TR1 ;timer 1 stop
MOV TL0,#RTCVL ;timer 0 load
MOV TH0,#RTCVH
MOV RTPC,#0H ;program counter load
MOV RTPCS,#V1S ;1S value load
SETB PX0 ;high INT0 priority
SETB IT0 ;fall INT0 activating
SETB EX0 ;enable INT0
CLR PT0 ;timer 0 int low priority
SETB ET0 ;timer 0 int enable
SETB TR0 ;timer 0 start
SETB EA ;interrupts enable
MAIN: CLR EX0 ;RC int disable
MOV A, R37 ;command code load
ANL R37,#0C0H ;clear com. bits
SETB EX0 ;RC int enable
MOV R0,A
ANL A,#3FH ;control bits clear
JNZ PRESS
SJMP MAIN1 ;no press or unused code
PRESS: MOV A, R0
CJNE A, CODE, DIF ;jump if new command
SJMP MAIN1
DIF: MOV CODE, A ;new press, store code
ANL A,#3FH ;control bits clear
MOV R7,A
LCALL SOUND
;Control Functions Analysis and Processing
CJNE R7,#COD_EN, LB2
ACALL ENTER ;enter function
SJMP LB1
LB2: JNC LB1
ACALL NUM ;0..9 functions
LB1: CJNE R7,#COD_ES,$+5H
ACALL ESCAPE
CJNE R7,#COD_BK,$+5H
ACALL BACK
CJNE R7,#COD_LK,$+5H
ACALL LOCK
CJNE R7,#COD_LS,$+5H
ACALL LIST
CJNE R7,#COD_AL,$+5H
ACALL ALARM
CJNE R7,#COD_TM,$+5H
ACALL TIMER
CJNE R7,#COD_TC,$+5H
ACALL TCLEAR
CJNE R7,#COD_AD,$+5H
ACALL ALDS
CJNE R7,#COD_CL,$+5H
ACALL CLOCK
MAIN1: JNB VCLK, SKIPV
CLR VCLK
MOV A, VCNT
JZ SKIPV
; Analog to digital conversion
CLR A
CLR RC
MOV R0,#10
DJNZ R0,$
V_UP: INC A
JZ OUTOFR
JB COMP, V_UP
OUTOFR: DEC A
SETB RC
ADD A, VL
MOV VL, A
MOV A, VH
ADDC A,#0H
MOV VH, A
DEC VCNT
SKIPV: MOV A, CYCSTM
JNZ MAIN3
MOV CYCSTM,#CYCSTMV ;cycle timer load
MOV A, INDLTM
JNZ SPHASE
MOV INDLTM,#INDLTMV ;indication timer load
MOV A, INDPH
JB BIT_LK, PHM5
INC A
CJNE A,#5H, PHM5
CLR A
PHM5: MOV INDPH, A
SPHASE: CLR DP5
JB ED_TM, IDTM
MOV A, ED_FLAGS
JNZ MAIN2
MOV A, INDPH
JZ IDT1
DEC A
JZ IDT2
DEC A
JZ IDT3
DEC A
JZ IDCL
IDVL: SETB DP5
MOV A,#CH_BL
MOV DIG1,A
MOV DIG2,#CH_U
MOV DIG4,VL1
MOV DIG5,VL2
MOV DIG6,VL3
MOV DIG7,A
MOV DIG8,A
SJMP MAIN2
IDCL: CPL SEC
MOV DIG1,#CH_C
MOV DIG2,#CH_L
MOV DIG4,CL1
MOV DIG5,CL2
MOV DIG6,#CH_MN
JB SEC, INDCL1
MOV DIG6,#CH_BL
INDCL1: MOV DIG7,CL3
MOV DIG8,CL4
SJMP MAIN2
IDT3: ACALL INDT3
SJMP MAIN2
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 |


