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

📄 bataint.asm

📁 用LPC764制作的摩托车电喷系统程序源码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;
;*****************摩托车电控喷油系统*******************
;
;                   程序设计:游仕俊     1/2001
;
;                     电话:023-72233384   13609464958
;======================================================
;
;       COMP2 1|P0.0--P0.1|20  Cin2B
;             2|P1.7     2|19  Cin2A
;             3|P1.6     3|18  A/D0
;       RST   4|P1.5     4|17  A/D1
;       VSS   5|      P0.5|16  A/D2
;       X1    6|P2.1   VDD|15
;       X2    7|P2.0  P0.6|14  A/D3
;       INT1  8|P1.4  P0.7|13  T1
;       INT0  9|P1.3  P1.0|12  TXD
;       TO   10|P1.2--P1.1|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              ;十六位转速高八位
WDCONS  EQU     0A7H
WDRSTS  EQU     0A6H
DAC0S   EQU     0C5H
EWDS    BIT     0AEH
ADCSS   BIT     0C3H
ADCIS   BIT     0C4H
ADCONS   EQU     0C0H
CMP2S   EQU     0ADH
;
;
;
;============================================================
;
        org     0000h
BEIGN:  aJMP    MAIN                    ;复位转主程序
        ORG     0003H                   ;启动中断入口
        ;AJMP    START                   ;转启动子程序
        org     000bh                   ;喷油定时器0中断000BH
        push    acc
        PUSH    PSW
        AJMP    INTF0                   ;溢出转
        ORG     0013H
        AJMP    LOOP2
        ORG     001BH
        AJMP    START
        ORG     0053H                   ;看门狗
        PUSH    acc
        PUSH    PSW
        AJMP    PUMP                    ;转油泵子程序
        ORG     0060H
MAIN:   MOV     SP,#60H                 ;设栈底
        mov     TMOD,#00010001b         ;设定时器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     0B7H,#06H               ;中断级别,定时器0最高
        MOV     0B8H,#06H                ;(IP0H,IP0)
        CLR     P1.7
        MOV     WDRSTS,#1EH              ;看门狗初始化
        MOV     WDRSTS,#0E1H             ;看门狗初始化
        SETB    EWDS                     ;开看门狗中断
        SETB    ET0                      ;开定时器0中断
        SETB    ET1                      ;开计数器1溢出中断
        ;SETB    EX0                      ;开0中断
        SETB    P1.3                     ;中断0可输入
        ;CLR     IT0                      ;设中断0 位低电平触发
        setb    EA                       ;开总体中断
        SETB    EX1                      ;
        SETB    P1.4                     ;
        SETB    IT1                      ;
        SETB    126                      ;
        MOV     WDCONS,#00010111B        ;开看门狗,设定时2.1s
        ACALL   ADREAD                   ;调模数转换子程序
        ACALL   OIL_ON                   ;节气门开度计算
        ACALL   DIV1                     ;调除法子程序
        ACALL   DIV2
        ACALL   COUNT                    ;计算
        ACALL   IGN_S                    ;计算点火角
;===============================================
LOOP1:  AJMP      LOOP1                    ;等第一负脉冲
LOOP2:
        CPL       126
        JB        126,A_FAN
        SETB      TR1                     ;开测速定时器
        MOV       C,127
        MOV       P1.6,C                 ;开喷油器
        SETB      TR0                    ;开喷油定时器
        ACALL     IGNIS                  ;调点火脉冲子程序
        DJNZ      2EH,LOOP3              ;启动加浓延时
        MOV       2EH,#01H               ;初值
        ACALL     ADREAD
        ACALL     OIL_ON
        ;ACALL     DIV1                   ;调除法子程序
        ;ACALL     DIV2
        ;ACALL     COUNT
        ACALL     IGN_S
        JNB       P1.3,ST
        CLR       SLOW
        RETI
ST:     SETB     SLOW                     ;置低速启动标志
        MOV      A,33H
        CPL      A
        SWAP     A
        ANL      A,#0FH
        MOV      2EH,a                    ;设启动加浓次数
        mov      4Ch,#0eCh                ;设启动加浓宽度
        mov      4Dh,#78h                 ;(8MS)
LOOP3:  RETI                              ;返回
A_FAN:                                    ;等曲轴第二脉冲来
        CLR       TR1                     ;计数器1停测速
        MOV       3BH,TH1                 ;测速值进RAM
        MOV       3CH,TL1                 ;...
        ACALL     IGNIS                    ;点火
        JNB        SLOW,DOWN
        ACALL     SIGN
DOWN:   MOV       TH1,#00H                 ;清测速计数器
        MOV       TL1,#00H                 ;......
        ;ACALL      HIGH_S                  ;超速
        ;ACALL      WEAKEN                  ;减速
        ;ACALL      SLOW_S                  ;低速
        ;ACALL      QUICKS                  ;加速
        ;ACALL      F200                    ;200RPM/分
        ACALL    ADREAD                   ;调模数转换子程序
        ACALL    OIL_ON                   ;节气门开度计算
        ACALL    DIV1                     ;调除法子程序
        ACALL    DIV2
        ACALL    COUNT                    ;计算
        ACALL    IGN_S                    ;计算点火角
        ACALL    WD                       ;喂狗
        RETI
;===========================================================
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               ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -