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

📄 0520.asm

📁 用LPC764制作的摩托车电喷系统程序源码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;**********摩托车电控喷油系统*****************
;
;                         程序设计:游4  1/2001
;---------------------------------------------
;
;		一  初始化程序
;---------------------------------------------
;
OILCTRL EQU	P1.0		;喷油器控制位
KINDLE  EQU     P1.1            ;点火脉冲位
OILPUMP EQU     P1.6            ;油泵开关位
MOTOR   EQU     P1.7            ;启动马达位
;
OIL_BUF EQU     30H              ;油门开度缓冲寄存器
AIR_BUF EQU     31H              ;空气量缓冲寄存器
AIR_T   EQU     32H              ;进气温度缓冲寄存器
MACH_BF EQU     33H              ;机器温度缓冲寄存器
VOL_BUF EQU     34H              ;电压补偿缓冲寄存器
;
SPEEDH  EQU     3BH              ;转速计数器高八位RAM
SPEEDL  EQU     3CH              ;转速计数器低八位RAM
m_i     EQU     38H              ;数据表下标(i)
M_j     EQU     39H              ;数据表下标(j)
;
OIL_T   EQU     28H             ;油泵定时器循环值
COOL_X  EQU     2DH             ;冷启动加浓次数寄存器
STA_X   EQU     2EH             ;启动加浓次数寄存器
ON_OFF  EQU     2FH             ;开关量输入寄存器
BASIC   EQU     36H             ;基本喷油量寄存器
Tm      EQU     37H             ;补偿喷油量寄存器
Tv      EQU     3DH             ;电压补偿喷油量寄存器
TABVOL  EQU     3EH             ;根据转速查表值
COOL    EQU     3FH             ;冷启动喷油量寄存器
;
TABEL   equ     0480H          ;表首地址
;
;
;
;---------------------------------------------
;
        org     0000h
RESET:  aJMP    MAIN            ;复位转主程序
;       org     0003h
        org     000bh           ;定时器0中断000BH
        AJMP    INT_2           ;溢出转
        ORG     0013H           ;启动中断
        AJMP    START
;=============================================
        ORG    80H
;_____________________________________________
MAIN:   MOV     SP,#60H         ;设栈底
        mov     TMOD,#00000001b       ;设定时器1为模式1,GATE=1
       ; ACALL   COUNT                   ;调计算子程序
loop:   MOV     TL0,#78H                ;曲轴一周入口,转速计数器清零
        MOV     TH0,#0ecH                ;转速计数器清零
        setb     ea
        setb     et0
WAIT1:  jb      p1.3,wait1
;-------------------------------------------
   nop
   nop
   nop
        acall   SIGN
loop1:  jnb     p1.3,loop1        ;P1.3高,开始计数
        SETB    tr0               ;转速计数器开
        clr    p1.0              ;开喷嘴
loop2:      jb      p1.3,loop2
 
        ljmp    loop
START:  MOV     2EH,#1FH
        MOV     36H,#0ECH
        MOV     37H,#78H
        RETI
int_2:  clr     tr0        ;喷油定时器溢出
        setb    p1.0              ;关喷油器
        reti
intf0:  setb    tr0               ;自动重装并启动定时器0
        djnz    28h,X_0F          ;油泵定时器延时循环
        clr     tr0               ;关油泵定时器0
        clr     p1.6              ;关油泵
X_0F:   reti
;..............................................
;               计算子程序                    .
;..............................................
count:  ACALL   adc
        ACALL   AIR_L
        ACALL   OIL_J
        ACALL   VOL_M
        ACALL   AIR_M
        MOV     A,3BH           ;计数器高八位
        SWAP    A
        ANL     A,#0FH
        MOV     38H,A           ;计数器高八位除16后,结果进38H,作下标(i)
        MOV     A,3CH           ;计数器低八位
        ANL     A,#0F0H
        SWAP    A
        MOV     39H,A           ;计数器低八位除16后,结果进39H,作下标(j)
        MOV     A,3BH           ;计数器高八位进ACC
        SWAP    A               ;高低四位互换
        ANL     A,#0F0H         ;屏蔽低四位
        ORL     39H,A           ;与直接地址39H相或进39H
        ACALL   READ_T
        ACALL   MACH_M
        RET
;
OIL_J:  MOV     DPH,#08H
        MOV     DPL,#00H
        MOV     A,OIL_BUF
        MOVC    A,@A+DPTR
        MOV     30H,A
        RET
;
AIR_L:  MOV     DPH,#09H
        MOV     DPL,#00H
        MOV     A,AIR_BUF
        MOVC    A,@A+DPTR
        MOV     31H,A
        RET
;
AIR_M:  MOV     DPH,#0AH
        MOV     DPL,#00H
        MOV     A,AIR_T
        MOVC    A,@A+DPTR
        MOV     32H,A
        RET
;
MACH_M: NOP
        MOV     DPH,#0BH
        MOV     DPL,#00H
        MOV     A,MACH_BF
        MOVC    A,@A+DPTR
        DJNZ    35H,M_M
        MOV     35H,#0FH
M_M:    XCH     A,37H
        SUBB    A,37H
        MOV     37H,A
        RET
;
VOL_M:  MOV     DPH,#0CH
        MOV     DPL,#00H
        MOV     A,VOL_BUF
        MOVC    A,@A+DPTR
        MOV     34H,A
        RET
;
        mov     30h,#128
        mov     31h,#128
        mov     32h,#128
        mov     33h,#128
adc:    ret
;
;=============================================
READ_T: mov     a,38h
        jz      done
done1:  cjne    a,#01h,done2
        ajmp    done
done2:  cjne    a,#02h,done3
        ajmp    done
done3:  cjne    a,#03h,done4
        ajmp    done
done4:  dec     a
        ajmp    done3
done:   add     a,#04h
        mov     dph,#00
        MOV     DPL,39h
        MOVc    A,@a+DPTR
        MOV     36H,A
        mov     a,38h
        add     a,#08h
        mov     dph,#00
        MOV     DPL,39h
        MOVc    A,@a+DPTR
        MOV     37H,A
        RET
SIGN:   CPL     P1.0
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        CPL    P1.0
        RET
;============================================
;
;************  数模查询模块  ****************
;
;============================================
A_Dc:	MOV	R1,#30H 	       ;油门开度,进气量,温度....
        MOV     DPTR,#0feF8H
        MOV     R7,#05H
LOOPP:   MOVX    @DPTR,A
	MOV	R5,#0fH
DLAY1:	NOP
	NOP
	nop
	nop
	nop
	DJNZ	R5,DLAY1
	MOVX	A,@DPTR
	MOV	@R1,A

⌨️ 快捷键说明

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