; Измеритель емкости и ESR электролитических конденсаторов
; Переделка под графический дисплей от тлф. Trium (или Nokia)
; питание от 2х батареек АА, авто запоминание параметров,
; изменены алгоритмы замеров, калибровки, вывода ЖКИ и др.
;======================================================================
           ORG   0x2100   ; Область EEPROM начало
;======================================================================
           DE    .0       ; режим (0-> ESR-metr, 1-> LC-metr, 2-> F-metr, 3-> Termo)
;======================================================================
; корректирующие коэффициенты (127-условный нуль) для расчётов:
EE_Cx_max  DE    0x7d     ; предел > 20 мкФ
EE_Cx2_20  DE    0xAF     ; предел 2 ... 20 мкФ
EE_Cx0_2   DE    0x62     ; предел < 2-х мкФ
EE_Rx1     DE    0x15     ; предел до 2х Om
EE_Rx10    DE    0x77     ; предел до 20х Om
EE_Rx100   DE    0x84     ; предел до 100х Om
Rz_2_OFF   DE    0, 0     ; Установка "0". при Ky=17.5 I=2mA (сумма 50 замеров)
Rz_10_OFF  DE    0, 0     ; Установка "0". при Ky=17.5 I=10mA (сумма 50 замеров)
Rz_10_ON   DE    0, 0     ; Установка "0". при Ky=174 I=10mA (сумма 50 замеров)
;======================================================================
           ORG   0x2110   ; (далее старался менять по минимуму)
;Емкость конденсатора для измерителя LxСх
C_Lx       DE    0x1B, 0x8A, 0 ;(1AB8h=.6840/10=684пФ) конд. Co 
;Поправочная индуктивность для измерителя Lx---/100
L_Lx:      DE    0x26, 0xD5, 0 ; (26D4h=.9940/100=99,4 мкГн) Lo+Ls 
Lx_p:      DE    0x7D, 0x00    ; корр. кофф. для Lx (Подстройка в MENU_Lx_1p)
;***********************************************************************
           ORG   0x2120
;Поправочная ёмкость конденсатора для измерителя Cx---/10
C_Cx       DE    0x1F, 0xEE    ;(1D14h=.7444)(вычислено и записано)
Cx_p:      DE    0x04, 0x1D    ; корр. коэфф. для Cx (Подстройка в MENU 873+127=1000)
;======================================================================
           ORG   0x2130
EE_N_corr: DE    .122, .1 ; Коррект. Fx (погрешн. кварца чтобы не подбирать емкость)
;======================================================================
           ORG   0x2140
MODE_REG:  DE B'00001111' ; Все режимы включены
;          DE B'00001110' ; ESR/C измеритель отключен
;          DE B'00001101' ; LxCx метр отключен
;          DE B'00001011' ; частотомер отключен
;          DE B'00000111' ; термометр отключен
Termo_Ku:  DE    .60      ; (0x2141) Кус. термопары (процент)
           DE    0        ; (0x2142) не исп.
;======================================================================
; Далее настройки пищалки. Меняются из меню.
R_Buzz:    DE    0x01, 0xF4 ;(0x2143)  Порог писка на прозвонке. Rх<0.5 (01F4h)
Freq_Buzz: DE    .100     ; (0x2145) Частота писка, (период/4 для TMR0)
;======================================================================
           ORG   0x2147   ; Контроль батареи
Bat_EEPROM:               ; и режимы управления пит. отображением
;          DE    0x01     ; Uоткл.=1.99В ~ 2B (индикации U и автоотключения нет)
;          DE    0x02     ; Для Li-ion Uоткл.=2.99В ~ 3B (инд.U и автооткл. нет)
;          DE    0x11     ; Uоткл.=2B (инд.U есть, а автоотключения нет)
;          DE    0x12     ; Для Li-ion Uоткл.=3B (инд.U есть, а автоотключения нет)
;          DE    0x21     ; Uоткл.=2B (инд.U нет, а автоотключение есть)
;          DE    0x22     ; Для Li-ion Uоткл.=3B (инд.U нет, а автоотключение есть)
           DE    0x31     ; Uоткл.=2B (инд.U и автоотключение есть)
;          DE    0x32     ; Для Li-ion Uоткл.=3B (инд.U и автоотключение есть)
;======================================================================
LCD_Select:               ; по адресу 0x2148 хранится код выбора типа ЖКИ 
           DE    0xFF     ; Автовыбор через меню
;          DE    0x00     ; B'00000000' ЖКИ Trium 
;          DE    0x01     ; B'00000001' ЖКИ Nokia_1110i_1112
;          DE    0x02     ; B'00000010' ЖКИ Nokia_1100_1101_2300
;          DE    0x04     ; B'00000100' ЖКИ Nokia_3410
; Далее возможно аналогично наращивать выбор, но ст. бит не трогать:
; B'0XXXXXXX' SPI 8 бит, сигнал D/C на ножку ЖКИ
; B'1XXXXXXX' SPI 9 бит, сигнал D/C в коде посылки байта.
;======================================================================
           ORG   0x2150   ; с этого адреса начинается последовательность
Cod_Trium:                ; кодов инициализации ЖКИ Trium
           DE    0x21     ; расширенные интсрукции Н=1
           DE    0xCF     ; напряжение на LCD
           DE    0x06     ; температурный коэффициент
           DE    0x14     ; BIAS контраст.(0x10-бледно...0x15-темно) зависит от Uпит. (3,2В контр. макс.)
           DE    0x20     ; базовые инструкции H=0
           DE    0x0C     ; норм. режим отображения D=1 E=0 
           DE    0x1B     ; специфич команда / lcd trium aria  dont touch
           DE    0xFF     ; конец блока инициализации
;======================================================================
           ORG   0x2160   ; с этого адреса начинается последовательность
Cod_Nokia_1110i:          ; кодов инициализации ЖКИ Nokia_1110i_1112 (работает, проверено)
                          ; или совместимые на контроллере STE2007
           DE    0x24     ; уст. питания  (V0R   24h  8.12 V (Default))
           DE    0xE1     ; Настройка контрастности
           DE    0x1F     ;  write Vop register 
           DE    0xC0     ; Common driver direction select (C0 normal)
        ;  DE    0xC8     ; Common driver direction select (C8 reverse)
           DE    0xA4     ; очистить все пиксели жки 
           DE    0x2F     ; режим питания 
           DE    0xB0     ; первая строка экрана
           DE    0x10     ; начальная позиция по Х
           DE    0x00     ;
           DE    0xA1     ; направление LSB -> MSB Заполнение с лева на право
        ;  DE    0xA0     ; направление MSB -> LSB Заполнение с права на лево
        ;  DE    0xAC     ; //Начальное значение курсора строка 0 
        ;  DE    0x07     ; 
           DE    0xA6     ; позитивное изображение (0xA7 негативное) 
           DE    0xAF     ; включить дисплей 
           DE    0xFF     ; конец блока инициализации
;======================================================================
           ORG    0x2170  ; с этого адреса начинается последовательность
Cod_Nokia_1100:           ; кодов иниц. ЖКИ Nokia_1100_1101_2300 или
                          ; совместимые на контроллере PCF8814 (работает, проверено)
           DE     0x20    ; Set Vop  
           DE     0x90    ; Vop = 90h ... 9Fh (контраст)
           DE     0xA4    ; Display mode (DAL 0=normal display)
           DE     0x2F    ; Power control ( 1 = charge pump on)
           DE     0x40    ; Set initial display line ( set start row address)
           DE     0xB0    ; Vertical addressing (set Y-address =0)
           DE     0x10    ; Horizontal addressing (set X-address, upper 3 bits)
           DE     0x00    ; ( set X-address=0 , lower 4 bits)
           DE     0xC8    ; Vertical mirroring  (mirror Y axis (about X axis))  1 = Y mirroring
           DE     0xA1    ; Set MX //Invert screen in horizontal axis
           DE     0xAC    ; Partial display position ( set initial row (R0) of the display)
           DE     0x07    ; C[2:0] (sets the initial R0 of the display) = 111
           DE     0xAF    ; Display mode ( display ON)
        ;  DE     0xA7    ; Display mode ( E=1  inverse video mode)
           DE     0xA6    ; Display mode ( E=0   normal display video mode)
           DE     0xFF    ; конец блока инициализации
;======================================================================
           ORG    0x2180  ; с этого адреса начинается последовательность
Cod_Nokia_3410:           ; кодов инициализации ЖКИ Nokia_3410 ( контроллер PCD8812, работает)
           DE     0x21    ; расширенные интсрукции Н=1
           DE     0x11    ; напряжение на LCD
           DE     0x9C    ; 
        ;  DE     0x13    ; BIAS=3 контраст. 
        ;  DE     0xC8    ; включить внутренний источник, Vop=0x48;
           DE     0x20    ; базовые инструкции H=0
           DE     0x0C    ; норм. режим отображения D=1 E=0 
           DE     0xFF    ; конец блока инициализации
;======================================================================