;
; TEMP SPEED DS18B20
;
SPAC: DS 48
DP01: DS 1
DP02: DS 1
DP03: DS 1
DP04: DS 1
DP11: DS 1
DP12: DS 1
DP13: DS 1
DP14: DS 1
DP21: DS 1
DP22: DS 1
DP23: DS 1
DP24: DS 1
TRUN: DS 1
SPD1: DS 1
SPD2: DS 1
SPD3: DS 1
CT01: DS 1
CT02: DS 1
DCNT: DS 1
MENU: DS 1
EECN EQU 96H
KLOC BIT 00H
CLON BIT 01H
ORG 0000H
LJMP INIT
ORG 000BH
LJMP TIME
ORG 0030H
INIT: MOV P0,#00
MOV P2,#0FFH
MOV P1,#0FFH
MOV P3,#0FFH
MOV DCNT,#00
MOV MENU,#00
MOV CT01,#128
MOV CT02,#32
MOV TMOD,#22H ; Timer 0-1 8 Bit Auto Reload
MOV TH0,#256-225 ; 11.0592 MHz
MOV TL0,#256-225
CLR TR0
SETB IE.1
SETB IE.7
MOV SCON,#50H ; Serial Mode 1
MOV TH1,#0FDH ; 9600 Bps
MOV TL1,#0FDH
SETB TR1 ; Start Timer
CLR RI ; Clear Receive Bit
CLR TI ; Clear Transmitt Bit
LJMP MAIN
;---> Timer 0 Interrupt ---------------------------------------------
TIME: DJNZ CT01,ETIM ; 1 Sec
MOV CT01,#128
DJNZ CT02,ETIM
MOV CT02,#32
ETIM: RETI
;---> Main Loop -----------------------------------------------------
MAIN: LCALL CVTM ; Read Temp
MN10: MOV A,R2 ; ---- ---- ----.XXXX
ANL A,#00001111B
MN11: CJNE A,#00,MN12 ; 0.0000
MOV DP13,#00
MN12: CJNE A,#01,MN13 ; 0.0625
MOV DP13,#00
MN13: CJNE A,#02,MN14 ; 0.1250
MOV DP13,#01
MN14: CJNE A,#03,MN15 ; 0.1875
MOV DP13,#01
MN15: CJNE A,#04,MN16 ; 0.2500
MOV DP13,#02
MN16: CJNE A,#05,MN17 ; 0.3125
MOV DP13,#03
MN17: CJNE A,#06,MN18 ; 0.3750
MOV DP13,#03
MN18: CJNE A,#07,MN19 ; 0.4375
MOV DP13,#04
MN19: CJNE A,#08,MN1A ; 0.5000
MOV DP13,#05
MN1A: CJNE A,#09,MN1B ; 0.5625
MOV DP13,#05
MN1B: CJNE A,#10,MN1C ; 0.6250
MOV DP13,#06
MN1C: CJNE A,#11,MN1D ; 0.6875
MOV DP13,#06
MN1D: CJNE A,#12,MN1E ; 0.7500
MOV DP13,#07
MN1E: CJNE A,#13,MN1F ; 0.8125
MOV DP13,#08
MN1F: CJNE A,#14,MN1G ; 0.8750
MOV DP13,#08
MN1G: CJNE A,#15,MN1H ; 0.9375
MOV DP13,#09
MN1H: NOP
EMN1: NOP
MN20: MOV A,R2 ; ---- ---- XXXX.----
SWAP A
ANL A,#00001111B
MOV R2,A
MOV A,R3 ; ---- XXXX ----.----
SWAP A
ANL A,#11110000B
ORL A,R2
MOV TRUN,A
MN21: MOV B,#10
DIV AB
MOV DP11,A
MOV A,B
MOV DP12,A
MOV DP14,#11
MN22: NOP
EMN2: NOP
MN30: JNB P1.0,MN31 ; Key Set
JNB P1.1,MN31
JNB P1.2,MN31
JNB P1.3,MN31
CLR KLOC
LJMP EMN3
MN31: JB KLOC,EMN3
SETB KLOC
LCALL KEYS
MN32: NOP
EMN3: NOP
MN40: LCALL DISP ; Display
LCALL CONT ; Speed Control
MN41: CLR C ; Alarm
MOV A,TRUN
MOV B,#50
SUBB A,B
JC MN42
CLR P0.5
LJMP EMN4
MN42: SETB P0.5 ; Off
EMN4: NOP
LJMP MAIN ; End Main
พี่ครับ ช่วยแปลโปรแกรม ภาษา assembly ให้หน่อยคับ
; TEMP SPEED DS18B20
;
SPAC: DS 48
DP01: DS 1
DP02: DS 1
DP03: DS 1
DP04: DS 1
DP11: DS 1
DP12: DS 1
DP13: DS 1
DP14: DS 1
DP21: DS 1
DP22: DS 1
DP23: DS 1
DP24: DS 1
TRUN: DS 1
SPD1: DS 1
SPD2: DS 1
SPD3: DS 1
CT01: DS 1
CT02: DS 1
DCNT: DS 1
MENU: DS 1
EECN EQU 96H
KLOC BIT 00H
CLON BIT 01H
ORG 0000H
LJMP INIT
ORG 000BH
LJMP TIME
ORG 0030H
INIT: MOV P0,#00
MOV P2,#0FFH
MOV P1,#0FFH
MOV P3,#0FFH
MOV DCNT,#00
MOV MENU,#00
MOV CT01,#128
MOV CT02,#32
MOV TMOD,#22H ; Timer 0-1 8 Bit Auto Reload
MOV TH0,#256-225 ; 11.0592 MHz
MOV TL0,#256-225
CLR TR0
SETB IE.1
SETB IE.7
MOV SCON,#50H ; Serial Mode 1
MOV TH1,#0FDH ; 9600 Bps
MOV TL1,#0FDH
SETB TR1 ; Start Timer
CLR RI ; Clear Receive Bit
CLR TI ; Clear Transmitt Bit
LJMP MAIN
;---> Timer 0 Interrupt ---------------------------------------------
TIME: DJNZ CT01,ETIM ; 1 Sec
MOV CT01,#128
DJNZ CT02,ETIM
MOV CT02,#32
ETIM: RETI
;---> Main Loop -----------------------------------------------------
MAIN: LCALL CVTM ; Read Temp
MN10: MOV A,R2 ; ---- ---- ----.XXXX
ANL A,#00001111B
MN11: CJNE A,#00,MN12 ; 0.0000
MOV DP13,#00
MN12: CJNE A,#01,MN13 ; 0.0625
MOV DP13,#00
MN13: CJNE A,#02,MN14 ; 0.1250
MOV DP13,#01
MN14: CJNE A,#03,MN15 ; 0.1875
MOV DP13,#01
MN15: CJNE A,#04,MN16 ; 0.2500
MOV DP13,#02
MN16: CJNE A,#05,MN17 ; 0.3125
MOV DP13,#03
MN17: CJNE A,#06,MN18 ; 0.3750
MOV DP13,#03
MN18: CJNE A,#07,MN19 ; 0.4375
MOV DP13,#04
MN19: CJNE A,#08,MN1A ; 0.5000
MOV DP13,#05
MN1A: CJNE A,#09,MN1B ; 0.5625
MOV DP13,#05
MN1B: CJNE A,#10,MN1C ; 0.6250
MOV DP13,#06
MN1C: CJNE A,#11,MN1D ; 0.6875
MOV DP13,#06
MN1D: CJNE A,#12,MN1E ; 0.7500
MOV DP13,#07
MN1E: CJNE A,#13,MN1F ; 0.8125
MOV DP13,#08
MN1F: CJNE A,#14,MN1G ; 0.8750
MOV DP13,#08
MN1G: CJNE A,#15,MN1H ; 0.9375
MOV DP13,#09
MN1H: NOP
EMN1: NOP
MN20: MOV A,R2 ; ---- ---- XXXX.----
SWAP A
ANL A,#00001111B
MOV R2,A
MOV A,R3 ; ---- XXXX ----.----
SWAP A
ANL A,#11110000B
ORL A,R2
MOV TRUN,A
MN21: MOV B,#10
DIV AB
MOV DP11,A
MOV A,B
MOV DP12,A
MOV DP14,#11
MN22: NOP
EMN2: NOP
MN30: JNB P1.0,MN31 ; Key Set
JNB P1.1,MN31
JNB P1.2,MN31
JNB P1.3,MN31
CLR KLOC
LJMP EMN3
MN31: JB KLOC,EMN3
SETB KLOC
LCALL KEYS
MN32: NOP
EMN3: NOP
MN40: LCALL DISP ; Display
LCALL CONT ; Speed Control
MN41: CLR C ; Alarm
MOV A,TRUN
MOV B,#50
SUBB A,B
JC MN42
CLR P0.5
LJMP EMN4
MN42: SETB P0.5 ; Off
EMN4: NOP
LJMP MAIN ; End Main