⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0801.asm

📁 用LPC764制作的摩托车电喷系统程序源码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;
;*****************摩托车电控喷油系统*******************
;
;                   程序设计:游仕俊     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 + -