Professional Documents
Culture Documents
ORG 0000H
SELECTCIRCUIT:
CLR A
CALL DELAY
MOV A, P2
RCIRCUIT:
JMP $
RLCIRCUIT:
JMP $
RCCIRCUIT:
JMP $
DCIRCUIT:
JMP $
DELAY:
DJNZ R0, $
RET
END
INTERFACING ADC
ORG 0
JMP main
ORG 3
JMP ext0ISR
ORG 0BH
JMP timer0ISR
ORG 30H
main:
SETB IT0
SETB EX0
CLR P0.7
MOV TMOD, #2
SETB TR0
SETB ET0
SETB EA
JMP $
timer0ISR:
CLR P3.6
SETB P3.6
RETI
ext0ISR:
CLR P3.7
MOV R0, P2
SETB P3.7
RETI
DIODE
MOV A, R0
Diode:
MOV 40H, A
SUBB A, #34
JC diodeLessThan
diodeGreaterThan:
MOV A, #64
diodeLoopB:
DEC A
INC R1
JNZ diodeLoopB
CALL DONE
diodeLessThan:
MOV A, #125
diodeLoopA:
DEC A
INC R1
JNZ diodeLoopA
CALL DONE
DONE:
JMP $
MORE VOLTAGE A
MOREVOLTAGEA:
CLR C
MOV A, R0
MOV @R1, A
INC R1
SUBB A, #24
MOV @R1, A
INC R1
SUBB A, #22
MOV @R1, A
INC R1
SUBB A, #20
MOV @R1, A
INC R1
SUBB A, #18
MOV @R1, A
INC R1
SUBB A, #16
MOV @R1, A
INC R1
SUBB A, #15
MOV @R1, A
INC R1
SUBB A, #13
MOV @R1, A
INC R1
SUBB A, #12
MOV @R1, A
INC R1
SUBB A, #11
MOV @R1, A
INC R1
SUBB A, #10
MOV @R1, A
INC R1
SUBB A, #9
MOV @R1, A
INC R1
MOV R2, #2
VOLTAGEA_LOOPA:
SUBB A, #8
MOV @R1, A
INC R1
MOV R2, #3
VOLTAGEA_LOOPB:
SUBB A, #6
MOV @R1, A
INC R1
SUBB A, #5
MOV @R1, A
INC R1
MOV R2, #3
VOLTAGEA_LOOPC:
SUBB A, #4
MOV @R1, A
INC R1
MOV R2, #3
VOLTAGEA_LOOPD:
SUBB A, #3
MOV @R1, A
INC R1
MOV R2, #7
VOLTAGEA_LOOPE:
SUBB A, #2
MOV @R1, A
INC R1
VOLTAGEA_LOOPF:
SUBB A, #1
MOV @R1, A
INC R1
JNZ VOLTAGEA_LOOPF
RL AND RC CIRCUIT
RLCIRCUIT:
CALL VOLTAGERANGE ;selects the suitable voltange range for simluating Vin
;already includes storing 64 plot points of Vin*e^-t at memory positions 30H to 7FH
RET
RCCIRCUIT:
MOV A, @R1
MOV @R1, A
INC R1
CJNE R1, #7FH, RCLOOP ; process repeats until all 64 points are converted.
CALL SHOWIN_SCOPE
RET
RESISTOR
MOV A, R0
Resistor:
MOV 40H, A
MOV A, #64
LoopResistor:
DEC A
INC R1
JNZ LoopResistor
CALL DONE
DONE:
JMP $
VOLTAGE RANGE
VOLTAGERANGE:
VOLTAGEA:
JMP MOREVOLTAGEA
NOT_EQUALA:
JC VOLTAGEB
MOREVOLTAGEA:
VOLTAGEB:
JMP MOREVOLTAGEB
NOT_EQUALB:
JC VOLTAGEC
MOREVOLTAGEB:
VOLTAGEC:
JMP MOREVOLTAGEC
NOT_EQUALC:
JC VOLTAGED
MOREVOLTAGEC:
VOLTAGED:
JMP MOREVOLTAGED
NOT_EQUALD:
JC VOLTAGEE
MOREVOLTAGED:
VOLTAGEE:
JMP MOREVOLTAGEE
NOT_EQUALE:
JC VOLTAGEF
MOREVOLTAGEE:
VOLTAGEF:
JMP MOREVOLTAGEF
NOT_EQUALF:
JC VOLTAGEG
MOREVOLTAGEF:
VOLTAGEG:
JMP MOREVOLTAGEG
NOT_EQUALG:
JC VOLTAGEH
MOREVOLTAGEG:
VOLTAGEH:
JMP MOREVOLTAGEH
NOT_EQUALH:
JC VOLTAGEI
MOREVOLTAGEH:
JMP $ ;Vin = 3.40- 3.59
VOLTAGEI:
JMP MOREVOLTAGEI
NOT_EQUALI:
JC VOLTAGEJ
MOREVOLTAGEI:
VOLTAGEJ:
JMP MOREVOLTAGEJ
NOT_EQUALJ:
JC VOLTAGEK
MOREVOLTAGEJ:
VOLTAGEK:
JMP MOREVOLTAGEK
NOT_EQUALK:
JC VOLTAGEL
MOREVOLTAGEK:
VOLTAGEL:
JMP MOREVOLTAGEL
NOT_EQUALL:
JC VOLTAGEM
MOREVOLTAGEL:
JMP MOREVOLTAGEM
NOT_EQUALM:
JC VOLTAGEN
MOREVOLTAGEM:
VOLTAGEN:
JMP MOREVOLTAGEN
NOT_EQUALN:
JC VOLTAGEO
MOREVOLTAGEN:
VOLTAGEO:
JMP MOREVOLTAGEO
NOT_EQUALO:
JC VOLTAGEP
MOREVOLTAGEO:
VOLTAGEP:
JMP MOREVOLTAGEP
NOT_EQUALP:
JC VOLTAGEQ
MOREVOLTAGEP:
VOLTAGEQ:
CJNE R0, #82, NOT_EQUALQ
JMP MOREVOLTAGEQ
NOT_EQUALQ:
JC VOLTAGER
MOREVOLTAGEQ:
VOLTAGER:
JMP MOREVOLTAGER
NOT_EQUALR:
JC VOLTAGES
MOREVOLTAGER:
VOLTAGES:
JMP MOREVOLTAGES
NOT_EQUALS:
JC VOLTAGET
MOREVOLTAGES:
VOLTAGET:
JMP MOREVOLTAGET
NOT_EQUALT:
JC VOLTAGEU
MOREVOLTAGET:
VOLTAGEU:
NOT_EQUALU:
JC VOLTAGEV
MOREVOLTAGEU:
VOLTAGEV:
JMP MOREVOLTAGEV
NOT_EQUALV:
JC VOLTAGEW
MOREVOLTAGEV:
VOLTAGEW:
JMP MOREVOLTAGEW
NOT_EQUALW:
JC VOLTAGEX
MOREVOLTAGEW:
VOLTAGEX:
JMP MOREVOLTAGEX
NOT_EQUALX:
JC VOLTAGEY
MOREVOLTAGEX:
VOLTAGEY:
JMP MOREVOLTAGEY
NOT_EQUALY:
JC VOLTAGEZ
MOREVOLTAGEY:
JMP $
END