📄 0801.asm
字号:
;
;*****************摩托车电控喷油系统*******************
;
; 程序设计:游仕俊 1/2001
;
; 电话:023-72233384 13609464958
;======================================================
;
; COMP2 1|P00--P01|20 Cin2B
; 2|P17 2|19 Cin2A
; 3|P16 3|18 A/D0
; RST 4|P15 4|17 A/D1
; VSS 5| P05|16 A/D2
; X1 6|P21 VDD|15
; X2 7|P20 P06|14 A/D3
; INT1 8|P14 P07|13 T1
; INT0 9|P13 P10|12 TXD
; TO 10|P12--P11|11 RXD
;
;------------------------------------------------------
; 一 常量、变量、RAM AND BIT位定义表 ;
;------------------------------------------------------
;
OILCTRL BIT P1.7 ;喷油器控制位
KINDLE BIT P1.1 ;点火脉冲位
OILPUMP BIT P1.6 ;油泵开关位
TXD_ EQU P1.0 ;ERR发送
MOTOR EQU P1.3 ;启动马达位
SPEED BIT P1.4 ;转速测试位
REST_ BIT P1.5 ;外部复位位
OSC_X1 BIT P2.1 ;外部振荡1
OSC_X2 BIT P2.0 ;外部振荡2
COMPOUT EQU P0.0 ;比较器输出
COMPINA EQU P0.1 ;比较器输入1
COMPINB EQU P0.2 ;比较器输入2
AD_0 EQU P0.3 ;模数转换0,电压补偿
AD_1 EQU P0.4 ;模数转换1,缸温
AD_2 EQU P0.5 ;模数转换2,空温
AD_3 EQU P0.6 ;模数转换3,节气门
JSQ_1 EQU P0.7 ;计数器1
VSS DATA 'P5' ;接地脚
VDD DATA 'P15' ;正电源+5V
PTOAD DATA 0F6H ;模数转换控制寄存器
POM2 DATA 85H ;输出口定义设置
POM1 DATA 84H ;输出口定义设置
;
OIL_BUF EQU 31H ;节气门开度缓冲寄存器
AIR_T EQU 32H ;进气温度缓冲寄存器
MACH_BF EQU 33H ;机器温度缓冲寄存器
VOL_BUF EQU 30H ;电压补偿缓冲寄存器
AIR_BUF EQU 34H ;空气量缓冲寄存器
FIRST_ EQU 35H ;转数寄存器
BASICH EQU 36H ;基本喷油量寄存器H
BASICL EQU 37H ;基本喷油量寄存器L
m_i EQU 38H ;数据表下标(i)
M_j EQU 39H ;数据表下标(j)
ADC_N EQU 3AH ;模数转换器编号
COUNTH EQU 3BH ;转速计数器高八位RAM
COUNTL EQU 3CH ;转速计数器低八位RAM
Tv EQU 3DH ;电压补偿喷油量寄存器
TM EQU 3EH ;温度补偿喷油量RAM
COOL_ EQU 3FH ;冷启动喷油量寄存器
;
SPEED_S EQU 20H ;速度标定点0-6900 RPM/min
OIL_s EQU 21H ;节气门A/D转换量
Oangle EQU 22H ;节气门开度0,6,...,84,90度
OANGLE_ EQU 23H ;节气门开度减怠速量
OIL_1 EQU 24H ;处理后的节气门A/D转换量
vol_L equ 25H ;小节气门开度缓存
TABEL equ 26H ;表首地址缓存
pump_T EQU 28H ;油泵定时器循环值
COOL_X EQU 2DH ;冷启动加浓次数寄存器
STA_X EQU 2EH ;启动加浓次数寄存器
ON_OFF EQU 2FH ;开关量标志寄存器
OIL BIT 127 ;喷油器开关位
QUICK BIT 126 ;加速标志
WEAK BIT 125 ;减速标志
HIGH_ BIT 124 ;超速标志
SLOW BIT 123 ;低速启动标志
FIRSTB BIT 122 ;200RPM标志
SENSOR BIT 121 ;氧传感器过浓标志
O_min BIT 120 ;节气门开度小标志
;
FX EQU 40H ;插值点X1坐标
FX2 EQU 42H ;插值点X2坐标
FX3 EQU 43H ;插值点X3坐标
FY EQU 44H ;插值点Y坐标
FY1 EQU 45H ;插值点Y1坐标
FY2 EQU 46H ;插值点Y2坐标
FY3 EQU 47H ;插值点Y3坐标
X EQU 4AH
Y EQU 4BH
FZX_H EQU 4CH ;点X插值高八位
FZX_L EQU 4DH ;点X插值低八位
FZ_Yh EQU 4EH ;点Y插值高八位
FZ_YL EQU 4FH ;点Y插值低八位
;
SPEEDL EQU 50H ;十六位转速低八位
SPEEDH EQU 51H ;十六位转速高八位
;
;
;
;============================================================
;
org 0000h
ST: aJMP MAIN ;复位转主程序
ORG 0003H ;启动中断入口
AJMP START ;转启动子程序
org 000bh ;喷油定时器0中断000BH
push acc
PUSH PSW
AJMP INTF0 ;溢出转
ORG 001BH
AJMP START0
ORG 0053H ;看门狗
PUSH acc
PUSH PSW
AJMP PUMP ;转油泵子程序
ORG 0080H
MAIN: MOV SP,#60H ;设栈底
mov TMOD,#10010001b ;设定时器1为模式1,GATE=1
;设定时器0为模式1,GATE=0
;mov 0A2H,#08H ;内部复位
mov 2eh,#01H
MOV 2FH,#00H
MOV 35H,#00H
MOV 50H,#0b6h
MOV 51H,#03h
mov TH0,#0eFH
mov TL0,#78H
mov th1,#75h
mov tl1,#30h
MOV PTOAD,#7eH ;定义模拟口作输入
ANL POM2,#80H ;关P0口数字输入
ORL POM1,#7eH ;关P0口数字输入
mov adc_n,#80h ;开通道号00
MOV IP0H,#02H ;中断级别,定时器0最高
MOV IP0,#02H ;
MOV WDRST,#1EH ;看门狗初始化
MOV WDRST,#0E1H ;看门狗初始化
SETB EWD ;开看门狗中断
SETB ET0 ;开定时器0中断
SETB ET1
SETB EX0 ;开0中断
SETB P1.3 ;中断0可输入
CLR IT0 ;设中断0 位低电平触发
setb EA ;开总体中断
MOV WDCON,#00010111B ;开看门狗,设定时2.1s
LOOP:
ACALL ADREAD ;调模数转换子程序
MOV TH1,#00H ;清测速计数器
MOV TL1,#00H ;......
CLR P1.7 ;开开油泵
ACALL OIL_ON ;节气门开度计算
ACALL DIV1 ;调除法子程序
ACALL DIV2
ACALL COUNT ;计算
WAIT: JB P1.4,WAIT ;
MOV WDRST,#1EH ;
MOV WDRST,#0E1H ;
SETB EWD ;
MOV WDCON,#00010111B ;开看门狗定时器
SETB TR1 ;开测速定时器
LOOP1: JNB P1.4,LOOP1 ;等第一负脉冲
;===============================================
MOV C,127
MOV P1.6,C ;开喷油器
SETB TR0 ;开喷油定时器
ACALL IGNIS ;调点火脉冲子程序
DJNZ 2EH,AFAN ;启动加浓延时
MOV 2EH,#01H ;初值
; ACALL DIV1 ;调除法子程序
;ACALL DIV2
AFAN: JB P1.4,AFAN ;等曲轴第二脉冲来
CLR TR1 ;计数器1停测速
MOV 3BH,TH1 ;测速值进RAM
MOV 3CH,TL1 ;...
ACALL IGNIS ;点火
;ACALL HIGH_S ;超速
;ACALL WEAKEN ;减速
;ACALL SLOW_S ;低速
;ACALL QUICKS ;加速
;ACALL F200 ;200RPM/分
down: AJMP LOOP ;循环返回
;===========================================================
F200: ;200转检测
INC 35H
MOV A,35H
CJNE A,#200,GO ;200转返回
MOV 35H,#00H
;jB p0.0,SS ;置位转移
;CLR 121 ;氧传感器
GO: RET
SS:
SETB 121 ;送氧浓标志到标志位
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_ ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -