Код: Выделить всё
gpasm-1.5.2 #1325 (Mar 29 2024) pic-uoz-016.a 13.07.2024 14:53:31 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 list p=16f627a
00002 #include p16f627a.inc
00001 LIST
00002
00003 ;====================
00004 ; Build date : Oct 21 2015
00005 ; MPASM PIC16F627A processor include
00006 ;
00007 ; (c) Copyright 1999-2015 Microchip Technology, All rights reserved
00008 ;====================
00009
00386 LIST
00003
00004 #define Bank0 bcf STATUS,RP0
0000 1303 00005 bcf STATUS,RP1
00006 #define Bank1 bsf STATUS,RP0
0001 1303 00007 bcf STATUS,RP1
00008 #define Bank2 bcf STATUS,RP0
0002 1703 00009 bsf STATUS,RP1
00010 #define Bank3 bsf STATUS,RP0
0003 1703 00011 bsf STATUS,RP1
00012
2007 3F10 00013 __CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKO
UT & _LVP_OFF
00014
00015 ;; адреса
00016 CBLOCK 0x20
00000058 00017 ; AL AM BL BM CL CM DL DM
00000020 00018 hiAA.L,hiAA.H,loDPZ.L,loDPZ.H,loAA.L,loAA.H,hiDPZ.L,hiDPZ.H,xDPZ.L,xDPZ.H
0000002A 00019 AB.L,AB.M,AB.H,AB.U,CD.L,CD.M,CD.H,CD.U,CD.UL
00000033 00020 RES.L,RES.M,RES.H,RES.U,REG.AL,REG.AM,REG.AH ; REG.AH - лишний?
0000003A 00021 Q.REG.L,Q.REG.M,Q.REG.H,REZ.L,REZ.M,REZ.H,REZ.U,REZ.UL
0000003A 00022 ; loT.H:loT.L период в точке графика, соотв меньшим оборотам hi-l
o относительно оборотов, на самом деле период больше, чем
hiT
0000003A 00023 ; hiT.H:hiT.L период в точке графика, соотв большим оборотам hi-l
o относительно оборотов, на самом деле период меньше, чем
loT
00000042 00024 loT.H,loT.L,hiT.H,hiT.L
00000046 00025 cnt_loop ; регистр проходов антидребезга
00000047 00026 T.H,T.L ; Время полуоборота в тиках TMR OSC/4
00000049 00027 ton.H,ton.L ; время накопления в тиках TMR OSC/4
0000004B 00028 toff.H,toff.L ; время ожидания, выдержка, в тиках TMR OSC/4
0000004D 00029 Dact ; RA2-3 D1 || D2 актив лог0, активный канал
0000004E 00030 Stsflg ; флаги состояния: 2:_AA.0, 1:AA.0, 0:ICflg
0000004F 00031 Dlvl ; моментальный реальный уровень датчиков, д.
.я обнаружения инверсии
00000050 00032 pTMRoff,TMRoff,pTMRon,TMRon,_pTMRoff,_TMRoff,_pTMRon,_TMRon ; время вкл бобин вычи.
.ленная для загруза в TMRA, _подчерк актив
00000058 00033 Rtmp2,Rtmp1 ; вспом регистры 56 штук
00034 ENDC
00035 ;; адреса
00000070 00036 w_sav equ 0x70
.gpasm-1.5.2 #1325 (Mar 29 2024) pic-uoz-016.a 13.07.2024 14:53:31 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00000071 00037 stat_sav equ 0x71
00000072 00038 pclath_sav equ 0x72
00000073 00039 AA.L equ 0x73 ; AA.H:AA.L вычисляемый УОЗ в тиках TMR OSC/4, отступ
до зад фронта RearFront
00000074 00040 AA.H equ 0x74
00041 ;; wghtMSB
00042
00000000 00043 ICflg equ 0 ; флаг вкл/выкл бобин Dflg 0бит, сигнализирует .
. вкл состоянии бобин
00000002 00044 _AA.0 equ 0x2 ; флаг состояния AA=0 в Stsflg в предыдущем перио.
.е
00000001 00045 AA.0 equ 0x1 ; флаг состояния AA=0 в Stsflg в текущем периоде
00000007 00046 RBPU EQU 0x7 ; Бит подтяжек глобально
00000005 00047 IC1 equ 0x5 ; бобина 1Ц RB5
00000006 00048 IC2 equ 0x6 ; бобина 2Ц RB6
00000000 00049 TAHO equ 0 ; тахометр RB0
00000001 00050 TMRA EQU 0x1 ; TMR0 отсчёт toff ton AA (УОЗ)
0000000E 00051 TMRT EQU 0xE ; TMR1 измерение периода
0000000E 00052 TMRT.L EQU 0xE
0000000F 00053 TMRT.H EQU 0xF
00000002 00054 D1 equ 0x2 ; RA2 sense in, active LOW ↓↑
00000003 00055 D2 equ 0x3 ; RA3 sense in, active LOW ↓↑
00000075 00056 m1T.H equ 0x75 ; ======КОНСТАНТЫ==================
==========
00000030 00057 m1T.L equ 0x30 ; период 1/2 оборота в тиках TMR OSC/4 LimitRPMin ниже У
ОЗ=0
0000003A 00058 m2T.H equ 0x3A
00000098 00059 m2T.L equ 0x98 ; период в точке 2000 об/мин
00000027 00060 m3T.H equ 0x27
00000010 00061 m3T.L equ 0x10 ; КОНТРОЛЬНЫЕ ПЕРЕЛОМНЫЕ ТОЧКИ крив.
.й УОЗ
0000001D 00062 m4T.H equ 0x1D ; НЕ ПОДЛЕЖАТ ИЗМЕНЕНИЮ НЕ П.
.ДЛЕЖАТ ИЗМЕНЕНИЮ
0000004C 00063 m4T.L equ 0x4C
00000017 00064 m5T.H equ 0x17 ; период в точке 5000 об/мин
00000070 00065 m5T.L equ 0x70
00000013 00066 m6T.H equ 0x13
00000088 00067 m6T.L equ 0x88
00000012 00068 m7T.H equ 0x12 ; LimitRPMax огр макс обороты, выше УОЗ=0, в тиках TM
R OSC/4
00000099 00069 m7T.L equ 0x99 ; 6300 RPM
00000000 00070 m1AA.H equ 0 ; ==========КОНСТАНТЫ==============
==========
00000000 00071 m1AA.L equ 0 ; 0° УОЗ в точке 1000 об/мин
00000004 00072 m2AA.H equ 0x4
000000E2 00073 m2AA.L equ 0xE2 ; 15° УОЗ в точке 2000 об/мин
00000004 00074 m3AA.H equ 0x4
00000057 00075 m3AA.L equ 0x57 ; 20° УОЗ в точке 3000 об/мин
00000003 00076 m4AA.H equ 0x3
000000BE 00077 m4AA.L equ 0xBE ; 23° УОЗ в точке 4000 об/мин ПОДЛЕЖАТ ИЗМ.
.НЕНИЮ, УОЗ В КОНТРОЛЬНЫХ ТОЧКАХ
00000003 00078 m5AA.H equ 0x3
00000041 00079 m5AA.L equ 0x41 ; 25° УОЗ в точке 5000 об/мин ПЕРЕЛОМА КРИ.
.gpasm-1.5.2 #1325 (Mar 29 2024) pic-uoz-016.a 13.07.2024 14:53:31 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
.ОЙ УОЗ
00000002 00080 m6AA.H equ 0x2
000000D2 00081 m6AA.L equ 0xD2 ; 26° УОЗ в точке 6000 об/мин
00000002 00082 m7AA.H equ 0x2
000000AF 00083 m7AA.L equ 0xAF ; 26° УОЗ в точке 6300 об/мин
00000005 00084 loop_drbzg equ 0x5 ; число проходов антидребезга
000000FF 00085 fTMRT.L equ 0xff ; для первого полуоборота TMRT=FFFF, эмуляция пе.
.иода ≈65мс
000000FF 00086 fTMRT.H equ 0xff ; f - значит FIRST! stage
00000007 00087 fpTMRoff equ 0x7 ; toff=T-ton=C000
0000003F 00088 fTMRoff equ 0x3F ; для первого полуоборота
00000005 00089 fpTMRon equ 0x5 ; ton=T/4=3FFF
00000000 00090 fTMRon equ 0 ; для первого полуоборота ГТО
00091
0000 00092 org 0
Error[118] : Overwriting previous address contents: 0x0000
0000 282C 00093 Start: goto Init
00094
0004 00095 org 4
0004 00F0 00096 movwf w_sav ; save context
0005 0E03 00097 swapf STATUS,w
0006 00F1 00098 movwf stat_sav
0007 080A 00099 movf PCLATH,w ; only required if using more than first page
0008 00F2 00100 movwf pclath_sav
0009 018A 00101 clrf PCLATH