?? fang2.asm
字號:
;**********摩托車電控噴油系統*****************
;
; 程序設計:游4 1/2001
;=============================================
;
; 一 初始化程序
;---------------------------------------------
;
OILCTRL EQU P1.7 ;噴油器控制位
KINDLE EQU P1.2 ;點火脈沖位
OILPUMP EQU P1.6 ;油泵開關位
TXD_ EQU P1.0 ;RS232發
RXD_ EQU P1.1 ;RS232收
MOTOR EQU P1.3 ;啟動馬達位
SPEED EQU P1.4 ;轉速測試位
REST_ EQU P1.5 ;外部復位位
OSC_X1 EQU P2.1 ;外部振蕩1
OSC_X2 EQU 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_BUF EQU 31H ;空氣量緩沖寄存器
AIR_T EQU 32H ;進氣溫度緩沖寄存器
MACH_BF EQU 33H ;機器溫度緩沖寄存器
VOL_BUF EQU 34H ;電壓補償緩沖寄存器
ADC_N EQU 3AH ;模數轉換器編號
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 ;開關量輸入寄存器
BASICH EQU 36H ;基本噴油量寄存器H
BASICL EQU 37H ;基本噴油量寄存器L
Tv EQU 3DH ;電壓補償噴油量寄存器
TM EQU 3EH ;溫度補償噴油量RAM
COOL_ EQU 3FH ;冷啟動噴油量寄存器
;
TABEL equ 0480H ;表首地址
;
;============================================================
;
org 0000h
REST: aJMP MAIN ;復位轉主程序
ORG 0003H
PUSH ACC
PUSH PSW
AJMP START
org 000bh ;噴油定時器0中斷000BH
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 PTOAD,#78H
ANL POM2,#87H
ORL POM1,#78H
mov adc_n,#80h
MOV IP0H,#02H
MOV IP0,#02H
MOV WDRST,#1EH
MOV WDRST,#0E1H
SETB EWD
SETB IT0
SETB ET0
CLR P1.3
; SETB EX0
setb EA
MOV WDCON,#00010111B
LOOP:
MOV TH1,#00H
MOV TL1,#00H
CLR P1.6
WAIT: JB P1.4,WAIT
MOV WDRST,#1EH
MOV WDRST,#0E1H
SETB EWD
MOV WDCON,#00010111B
SETB TR1
LOOP1: JNB P1.4,LOOP1
SETB TR0
CPL P1.7
ACALL ADREAD
ACALL SIGN
AFANG: JB P1.4,AFANG
CLR TR1
MOV 3BH,TH1
MOV 3CH,TL1
AJMP LOOP
START:
NOP
CPL P1.6
CLR IE0
SETB P1.3
POP PSW
POP ACC
RETI
pump:
SETB P1.6
POP PSW
POP ACC
RETI
INTF0:
CLR TR0
MOV TL0,#80H
MOV TH0,#0AFH
SETB P1.7
mov r2,3bh
djnz R2,$
ACALL sign1
RETI
;======================================================
ADRead:
ACALL SIGN
PUSH ACC
MOV ADC_N,#80H
MOV R1,#30H
ADNEXT: mov adcon,adc_n
MOV R0,#5
DJNZ R0,$
setb adcs
ADChk:
jnb adci,adchk
mov a,dac0
MOV @R1,A
INC R1
INC ADC_N
clr adci
CJNE R1,#33H,ADNEXT
POP ACC
ACALL SIGN
ret
SIGN:
CPL P1.7
MOV R1,31H
DJNZ R1,$
CPL P1.7
RET
SIGN1:
CPL P1.7
MOV R1,3bH
DJNZ R1,$
CPL P1.7
RET
;======================================================
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -