📄 0615.asm
字号:
RET
HIGH_S: ;超速
MOV A,51H ;
CJNE A,#1FH,BIG ;8000RPM/min?否转
O_OFF:
SETB 124
SETB 127 ;yes.置超速标志
RET
BIG: JNC O_OFF ;大于8000RPM/min
CLR 124
CLR 127 ;小于8000RPM 清标志
RET
WEAKEN: ;减速
MOV A,OIL_buf ;节气门开度?
CJNE A,#0fH,WK ;6度?否转
WK_L: SETB 125 ;YES.置减速标志
SETB 127 ;开喷油器标志并断油
RET
WK: JNC WK_GO ;大于6度转清标志开喷油器
MOV A,51H ;小于6度看转速
CJNE A,#04H,WK_H ;1000RPM? 否转
WK_H: JNC WK_L ;等于或大于1000转置标志并断油
WK_GO: CLR 125 ;小于1000则清减速标志
CLR 127 ;关喷油器标志并开喷油器
RET
SLOW_S: ;低速<1500RPM/min
mov A,51H ;
CJNE A,#05H,S_S ;不等于1500RPM/min转
S_H: CLR 123 ;等则清标志
RET
S_S: JNC S_H ;大于则转清标志
SETB 123 ;小于则置标志
RET
QUICKS: ;加速
MOV A,OIL_BUF ;
CJNE A,#7FH,QK ;节气门45度开度?否转
QK_L: CLR 126 ;YES清标志
MOV 3FH,#01H ;不加浓
RET ;
QK: JC QK_L ;小于45度转清标志
MOV A,51H ;等于大于45度看转速
CJNE A,#05H,QK_GO ;等于1500RPM/min?
QK_H: SETB 126 ;YES置加速标志
mov 3fh,#0ffh ;加浓
RET ;
QK_GO: JC QK_H ;小于1500置加浓标志并加浓
CLR 126 ;大于1500清标志
MOV 3FH,#01H ;不加浓
RET
QUICK_: DJNZ 3FH,QUICK_ ;
QK_: DJNZ 3FH,QK_ ;
RET
;===============================================
START: ;启动子程序
MOV 2EH,#1FH ;设启动加浓次数
mov 36h,#0ech ;设启动加浓宽度
mov 37h,#78h ;(10MS)
RETI ;中断返回
pump: ;油泵开关子程序
SETB P1.6 ;关油泵
POP PSW ;
POP ACC ;弹出
RETI ;中断返回
INTF0: ;喷油结束中断子程序
SETB P1.7 ;关喷油器
CLR TR0 ;清中断;
MOV TH0,4CH ;调喷油宽度
MOV TL0,4DH ;...
POP PSW
pop acc
RETI ;返回
OIL_ON:
MOV A,30H
MOV 21H,30H
CPL A
MOV 23H,A
MOV A,30H
MOV B,#10H
DIV AB
MOV 22H,A
RET
MACH_:
DJNZ 31H,MACH_
RET
MOV B,#14h
DIV AB
MOV TM,A
MOV B,#64H
MOV A,36H
CPL A
DIV AB
MOV B,TM
MUL AB
MOV 3DH,A
MOV A,36H
SUBB A,3DH
MOV 3EH,A
RET
vol:
MOV A,33h
VOL_I: INC A
cjne A,#0h,vol_I
RET
CMP2_y:
MOV CMP2,#2cH
NOP
NOP
NOP
NOP
NOP
ANL CMP2,#0FEH
RET
;======================================================
; 模数转换子程序
;======================================================
ADRead:
PUSH ACC
MOV ADC_N,#80H
MOV R1,#30H
ADNEXT: mov adcon,adc_n
MOV R0,#5
DJNZ R0,$
setb adcs
ADChk:
jnb adci,adchk
mov a,dac0
MOV @R1,A
INC R1
INC ADC_N
clr adci
CJNE R1,#34H,ADNEXT
POP ACC
ret
SIGN:
CPL P1.7
MOV R1,31H
DJNZ R1,$
CPL P1.7
RET
SIGN1:
CPL P1.7
MOV R1,31H
S1: NOP
NOP
DJNZ R1,S1
CPL P1.7
RET
;======================================================
; ...... 计算子程序 ......
;======================================================
COUNT:
ACALL COUNTX ;
ACALL COUNTY ;
MOV A,40H ;FX进A
ADD A,40H ;FX*2
MOV B,44H ;FY进B
MUL AB ;A*B
MOV 4EH,B ;查表高八位
MOV 4FH,A ;查表低八位
ACALL READ ;查表
RET
COUNTX:
MOV A,20H ;转速/200rpm进A
MOV 40H,A ;FX
DEC A ;FX-1
MOV 41H,A ;FX1
ADD A,#02H ;FX1+2
MOV 42H,A ;FX2
INC A ;FX2+1
MOV 43H,A ;FX3
RET ;
COUNTY: ;
MOV A,22H ;开度/6进A
MOV 44H,A ;YX
DEC A ;YX-1
MOV 45H,A ;YX1
ADD A,#02H ;YX1+2
MOV 46H,A ;YX2
INC A ;YX2+1
MOV 47H,A ;YX3
RET ;
READ: ;
MOV A,4EH ;查表位置高八位
ADD A,#0AH ;加表首地址
MOV DPH,A ;进DPH
MOV DPL,4FH ;低八位进DPL
CLR A ;
MOVC A,@A+DPTR ;查表
MOV 4CH,A ;查表值进缓冲RAM
MOV A,#01H ;DPTR+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -