求大神給注釋一下各個語言的含義,跪謝大神!!!!
HICOUNT EQU 72H
LOWCOUNT EQU 71H
TOCOUNT EQU 70H
SCOUNT EQU 60H
ADC EQU 35H
ST BIT P1.2
OE BIT P1.4
EOC BIT P1.3
PWM BIT P3.7
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INSERO
主程序
ORG 0030H
MAIN:
SETB EA
SETB EX0
MOV P0,#00H
MOV P1,#00H
SETB P1.0
MOV TH1,#3CH
MOV TL1,#0B0H
WAIT:
JB P1.1,LOWPOWER
JNB TF1,GOON1
INC R0
GOON1:
CJNE R0,#0FEH,GOON2
MOV 71H,#00H
MOV 72H,#00H
GOON2:
LJMP OUTPUTSPEED
JNB P1.0,STOP
CLR ST
SETB ST
CLR ST
JNB EOC,$
SETB OE
MOV ADC,P2
CLR OE
SETB PWM
MOV A,ADC
LCALL DELAY
CLR PWM
MOV A,#255
SUBB A,ADC
LCALL DELAY
SJMP WAIT
延時子程序
DELAY:
MOV: R6,#1
D1: DJNZ R6,D1
DJNZ ACC,D1
RET
剎車時停止pwm輸出子程序
STOP: CLR PWM
RET
電池電壓過低警示子程序
LOWPOWER: MOV P1,#0FEH
RET
電動車時速顯示子程序
OUTPUTSPEED:
PUSH PSW
PUSH ACC
LJMP TOSPEED
MOV R1,LOWCOUNT
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SBUF,A
KLO:
JNB TI,KLO
CLR TI
INC R1
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SBUF,A
POP ACC
PUSH PSW
RET
求時速子程序
TOSPEED:
PUSH PSW
PUSH ACC
MOV R6,#02H
MOV R5,#0D0H
DV: MOV R7,#08H
SO:
CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R6
RLC A
MOV 07H,C
CLR C
SUBB A,TOCOUNT
JB 07H,S1
JNC S1
ADD A,TOCOUNT
SJMP S2
S1:
INC R5
S2:
MOV R6,A
DJNZ R7,SO
MOV A,R5
DA A
MOV R5,A
ANL A,#0FH
MOV LOWCOUNT,A
MOV A,R5
SWAP A
ANL A,#0FH
MOV HICOUNT,A
POP ACC
POP PSW
RET
外部中斷0中服務子程序
INSERO:
PUSH PSW
PUSH ACC
INC SCOUNT
MOV A,SCOUNT
CJNE A,#01H,LOOP1
SETB TR1
SJMP LOOP2
LOOP1:
MOV A,SCOUNT
CJNE A,#0BH,LOOP2
CLR TR1
CLR TF1
MOV TH1,#3CH
MOV TL1,#0B0H
MOV TOCOUNT,R0
MOV R0,#00H
MOV SCOUNT,#00H
LOOP2:
POP ACC
POP PSW
RETI
TAB:
DB 11H,77H,92H,32H,74H
DB 38H,18H,73H,10H,30H,0FEH
END
|