Приложение 2. Текст программы
MPASM 01.50 Released DET.ASM 6-23-1999 21:01:07 PAGE 1
LOC OBJECT CODE SOURCE TEXT
VALUE
LIST P=16C84, F=INHX8M
; регистры контроллера
00000000 _ind0 equ 0x00
00000001 _tmr0 equ 0x01
00000002 _pcl equ 0x02
00000003 _status equ 0x03
00000004 _fsr equ 0x04
00000005 _porta equ 0x05
00000006 _portb equ 0x06
00000008 _eedata equ 0x08
00000009 _eeadr equ 0x09
0000000A _pclath equ 0x0A
0000000B _intcon equ 0x0B
;
00000001 _option set 0x01
00000005 _trisa set 0x05
00000006 _trisb set 0x06
00000008 _eecon1 set 0x08
00000009 _eecon2 set 0x09
;
00000000 _ResetVector set 0x00
00000004 _IntVector set 0x04
00000000 w equ 0
00000001 f equ 1
00000000 rd equ 0
; _status
00000000 c equ 0 ; перенос
00000001 dc equ 1 ; десятичный перенос
00000002 z equ 2 ; ноль
00000004 fsr equ 4
00000005 rp0 equ 5
00000006 rp1 equ 6
00000007 irp0 equ 7
;
00000000 inpb equ 0 ; RB0 вход "зажигание"
00000001 outc equ 1 ; RB1 выход "зажигание"
00000004 inpd equ 4 ; RB4 вход "топливо"
00000002 inj1 equ 2 ; RB2 выход "топливо" 1,4 форсунки
00000003 inj2 equ 3 ; RB3 выход "топливо" 2,3 форсунки
00000004 idl equ 4 ; RA4 IDL
00000001 det equ 1 ; RA1 knock sensor (invers)
00000000 Dat equ 0 ; RA0 сигнал с одновибратора
00000002 E_A equ 2 ; RA2 1-EEPROM, 0-knock sensor
00000003 S_A equ 3 ; RA3 1-синхр. впрыск, 0-асинхр. впрыск
;
0000000C flag equ 0x0C ; регистр флагов
;0 fuel _
;1
MPASM 01.50 Released DET.ASM 6-23-1999 21:01:07 PAGE 2
LOC OBJECT CODE SOURCE TEXT
VALUE
;2 idl_i-1
;3 начали выдавать импульс "зажигание"
;4 выдали tay2
;5 сложили момент выдачи "топлива"
;6 скорректировали tay2
;7 приняли tay2
0000000D flagh equ 0x0D ; регистр флагов
;0 - выбрали в этом периоде
;1 - выдали 1,3
;2 - выдали 2,4
;3 - 0x10000 Inj1
;4 - 0x10000 Inj2
;5 - 0x10000 перебор
;6 - 0x10000 for tay2
;7 - 1-2,3 пара форсунок, 0-1,4
0000000E _tmr0h equ 0x0E ; ср таймера
0000000F owh equ 0x0F ; ср начала отсчета
00000010 ow equ 0x10 ; мр
00000011 tmp_w equ 0x11 ; для хранения W во время прерывания
00000012 tmp_st equ 0x12 ; для хранения STATUS
00000013 tmp equ 0x13 ; рабочий регистр
00000014 adrk equ 0x14 ; рабочий регистр
00000015 t2h equ 0x15 ; ср скорректированный
00000016 t2 equ 0x16 ; мр импульс "зажигание"
00000017 tay2h equ 0x17 ; ср принятый импульс
00000018 tay2 equ 0x18 ; мр "зажигание"
00000019 suml equ 0x19 ; рабочий регистр
0000001A perh equ 0x1A ; ср период
0000001B per equ 0x1B ; мр импульсов "зажигание"
0000001C tmr_st equ 0x1C ; для хранения W во время прерывания таймера
0000001D tmr_w equ 0x1D ; для хранения STATUS
0000001E temph equ 0x1E ; ср для сохранения времени
0000001F templ equ 0x1F ; мр во время прерывания
00000020 tj0h equ 0x20 ; ср задержка относ. начала отсчета
00000021 tj0 equ 0x21 ; мр сигнала "топливо"
00000022 tnh equ 0x22 ; ср начало отсчета имп. "топливо"
00000023 tn equ 0x23 ; мр относительно (tj0h,tj0)
00000024 tjdh equ 0x24 ; ср длительность имп. "топливо"
00000025 tjd equ 0x25 ; мр измеренное прерыванием
00000026 tj1h equ 0x26 ; ср длительность импульса для
00000027 tj1 equ 0x27 ; мр (1,4) форсунок
00000028 tj2h equ 0x28 ; ср длительность импульса для
00000029 tj2 equ 0x29 ; мр (2,3) форсунок
0000002A o_inj_h equ 0x2A ; ср предыдущее значение
0000002B o_inj equ 0x2B ; мр длительности впрыска
0000002C dblh equ 0x2C ; ср значение перехода на
0000002D dbl equ 0x2D ; мр двойной счет
0000002E sumh equ 0x2E ; рабочий регистр
0000002F delta equ 0x2F ; количестко шагов коррекции
00000028 _fsrh equ 0x28 ; ср счетчика времени для сигнала "топливо"
00000004 count equ 0x04 ;
0000 org _ResetVector
MPASM 01.50 Released DET.ASM 6-23-1999 21:01:07 PAGE 3
LOC OBJECT CODE SOURCE TEXT
VALUE
0000 2940 goto start ; переход к
0001 2940 goto start ; началу
0002 2940 goto start ; программы
0003 2940 goto start ;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.