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

📄 0615.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  EQU     P1.2            ;点火脉冲位
OILPUMP BIT     P1.6            ;油泵开关位
TXD_    EQU     P1.0            ;RS232发
RXD_    EQU     P1.1            ;RS232收
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     30H              ;油门开度缓冲寄存器
AIR_T   EQU     31H              ;进气温度缓冲寄存器
MACH_BF EQU     32H              ;机器温度缓冲寄存器
VOL_BUF EQU     33H              ;电压补偿缓冲寄存器
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-12K RPM/min
OIL_S   EQU     21H             ;节气门A/D转换量
Oangle  EQU     22H             ;节气门开度0,6,...,84,90度
NOT_O   EQU     23H             ;节气门A/D转换量求反
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             ;氧传感器过浓标志
COOL_M  BIT     120             ;发动机低温标志
;
FX      EQU     40H             ;插值点X坐标
FX1     EQU     41H             ;插值点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坐标
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             ;十六位转速高八位
;
TABEL   equ     0a00H           ;表首地址
;
;============================================================
;
        org     0000h
ST:     aJMP    MAIN                      ;复位转主程序
        ORG     0003H                   ;启动中断入口
        AJMP    START                   ;转启动子程序
        org     000bh                   ;喷油定时器0中断000BH
        push    acc
        PUSH    PSW
        AJMP    INTF0                   ;溢出转
        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     2eh,#01H
        MOV     2FH,#00H
        MOV     35H,#00H
        mov     th0,#0ecH
        mov     tl0,#78H
        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    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.6                   ;开开油泵
        ACALL   COUNT

WAIT:   JB       P1.4,WAIT             ;等负脉冲
;       ACALL    IGNITION              ;调点火脉冲子程序
        MOV     WDRST,#1EH             ;
        MOV     WDRST,#0E1H            ;
        SETB    EWD                    ;
        MOV     WDCON,#00010111B       ;开看门狗定时器
        SETB     TR1                   ;开测速定时器
      ;  ACALL    SIGN
LOOP1:  JNB      P1.4,LOOP1            ;等正脉冲
;===============================================
;      ACALL    INGNITION             ;调点火脉冲子程序
        MOV     C,127
        MOV     P1.7,C                 ;开喷油器
        ACALL   VOL
        ACALL   QUICK_
        ACALL   OIL_ON
        ACALL   MACH_

        SETB    TR0                  ;开喷油定时器
        DJNZ    2EH,AFAN              ;启动加浓延时
        MOV     2EH,#01H              ;初值
        ;setb    p1.7
        ACALL   DIV1                 ;调除法子程序
       ; acall   count1               ;调计算子程序
        ACALL   DIV2
        ACALL   COUNT2
        ACALL   cmp2_y
AFAN:   JB      P1.4,AFAN             ;等曲轴正脉冲完
        CLR     TR1                  ;计数器1停测速
       ; ACALL   IGNITION            ;点火
        MOV     3BH,TH1              ;测速值进RAM
        MOV     3CH,TL1              ;...
        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                     ;送氧浓标志到标志位

⌨️ 快捷键说明

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