інію , відповідальну за тактові
; імпульси рівний 1 (9 імпульсний такт) PORTC, 0; встановлюємо лінію, що відповідає за тактові
; імпульси рівний 0PORTC, 0; 10 тактовий імпульсPORTC, 0: PINC, 3; перевіряємо третій біт з порту С, якщо він дорівнює 1,
; то наступну команду не виполнятьcheckThreeBit2; перейти на мітку checkThreeBit2PORTC, 0; 11 тактовий імпульсPORTC, 0Two: PINC, 3; перевіряємо третій біт з порту С, якщо він дорівнює 1,
; то наступну команду не виполнятьcheckThreeBitTwo; перейти на мітку checkThreeBitTwo: r22, 0x0C; створюємо лічильник циклу для тактових імпульсів - це для
; 12 разрядногоr20; очищаємо регістри під код ацпr21: PORTC, 0; такт ГТІr16, PINC; копіюємо дані в r16 з порту C МК.
; Але нам потрібен тільки третій біт (PC3),
; так як інші дані є керуючими
; від мк до ацпr16; витягаємо останній біт, що надійшов з порту С (sData) r16; витягаємо 1 бітr16; витягаємо 2 бітr16; отримуємо 3 біт даннихr20; записуємо в регістри r20 і r21 дані, r21; ; які приходять з 3 біта в порте СPORTC, 0; тактовий імпульс робимо рівним 0r22; зменшуємо лічильник на 1mADC22; якщо лічильник не дорівнює 0, то перейти на мітку mADC2PORTC, 0; 24 тактовий імпульсPORTC, 0PORTC, 4; встановлюємо лінію cs в 1 , щоб вимкнути АЦП; вихід з підпрограми опитування АЦП
; ********* закінчилася підпрограма опитування АЦП ***********
; ****************** невикористовуваних ПЕРЕРИВАННЯ ********************
INT_0: reti_1: reti_CAPT: reti_COMPA: reti_COMPB: reti_OVF: reti_OVF: reti_STC: reti_RxC: reti_UDRE: reti_TxC: reti_COMP: reti_2: reti_COMP: reti_RDY: reti_RDY: reti
; ********************* Таблиця коефіцієнтів K і b *************** ***:
. db 0x00,0x00; k 0 інтервал
. db 0x06,0x6f
. db 0x00,0x00; b 0 інтервал
. db 0x00,0x00
. db 0x00,0x00; k 1 інтервал
. db 0x06,0x40
. db 0x00,0x66; b 1 інтервал
. db 0xf0,0x95
. db 0x00,0x00; k 2 інтервал
. db 0x06,0x1b
. db 0x00,0xca; b 2 інтервал
. db 0xed, 0x98
. db 0x00,0x00; k 3 інтервал
. db 0x05,0xfe
. db 0x01,0x2c; b 3 інтервал
. db 0x97,0x3f
. db 0x00,0x00; k 4 інтервал
. db 0x05,0xe7
. db 0x01,0x8c; b 4 інтервал
. db 0x70,0x62
. db 0x00,0x00; k 5 інтервал
. db 0x05,0xd7
. db 0x01,0xea; b 5 інтервал
. db 0xe7,0x98
. db 0x00,0xa6; k 6 інтервал
. db 0x10,0x6d
. db 0x02,0x48; b 6 інтервал
. db 0x5d, 0x7b
. db 0x00,0x00; k 7 інтервал
. db 0x05,0xc7
. db 0x02,0xa5; b 7 інтервал
. db 0x29,0x39
. db 0x00,0x00; k 8 інтервал
. db 0x05,0xc7
. db 0x03,0x01; b 8 інтервал
. db 0x9c, 0x14
. db 0x00,0x00; k 9 інтервал
. db 0x05,0xcb
. db 0x03,0x5e; b 9 інтервал
. db 0x04,0x55
. db 0x00,0x00; k 10 інтервал
. db 0x05,0xd4
. db 0x03,0xba; b 10 інтервал
. db 0xaf, 0xe9
. db 0x00,0x00; k 11 інтервал
. db 0x05,0xe2
. db 0x04,0x17; b 11 інтервал
. db 0xee, 0xfe
. db 0x00,0x00; k 12 інтервал
. db 0x05,0xf7
. db 0x04,0x76; b 12 інтервал
. db 0x16,0xd1
. db 0x00,0x00; k 13 інтервал
. db 0x06,0x12
. db 0x04,0xd5; b 13 інтервал
. db 0x85,0x04
. db 0x00,0x00; k 14 інтервал
. db 0x06,0x35
. db 0x05,0x36; b 14 інтервал
. db 0xa3,0xd3
. db 0x00,0x00; k 15 інтервал
. db 0x06,0x61
. db 0x05,0x99; b 15 інтервал
. db 0xef, 0xcc