Таблица 5.2
Адрес | Метка | Мнемонический код | Комментарии | Циклы |
ORG 0x00E | Директива | |||
000Eh | MOVLW 0xFF | Пересылка 0xFF в аккумулятор | 1 | |
000Fh | BSF STATUS, RP0 | Выбор банка 1 | 1 | |
0010h | MOVWF TRISA | Порт А – Вход | 1 | |
0011h | CLRF TRISB | Порт В – Выход | 1 | |
0012h | MOVLW 0x18 | Организация счетчика СOUNT | 1 | |
0013h | BCF STATUS, RP0 | Выбор банка 0 | 1 | |
0014h | MOVWF COUNT | Организация счетчика | 1 | |
0015h | MOVLW 0x0C | Адрес начальной ячейки в ОЗУ | 1 | |
0016h | MOVWF FSR | Пересылка адреса начальной ячейки в FSR | 1 | |
0017h | M1: | CLRF INDF | Обнуление текущей ячейки памяти | 1 |
0018h | INCF FSR, 1 | Адрес + 1 | 1 | |
0019h | DECF COUNT | Счетчик – 1 | 1 | |
001Ah | BTFSS STATUS, Z | Условный переход по 1 значению флага нулевого результата | 1(2) | |
001Bh | GOTO M1 | 2 | ||
001Ch | M2: | BSF STATUS,RP0 | Выбор банка 1 | 1 |
001Dh | CLRF ADCON1 | RA0-RA3 Входы АЦП | 1 | |
001Eh | MOVLW 0xC1 | 1 | ||
001Fh | BCF STATUS,RP0 | Выбор банка 0 | 1 | |
0020h | MOVWF ADCON0 | АЦП включен, работает канал0 (RA0), частота 32Tosc. | 1 | |
0021h | BSF INTCON ADIE | Разрешить прерывание АЦП | 1 | |
0022h | BSF INTCON GIE | Разрешить глобальное прерывание | 1 | |
0023h | BSF ADCON0, GO | Запустить АЦП | 1 | |
0024h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0025h | RRF UM1, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0026h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0027h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0028h | MOVWF A11UM1 | W® A11UM1 | 1 | |
0029h | BCF STATUS, C | Очистка триггера переноса | 1 | |
002Ah | RRF YN1, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
002Bh | BCF STATUS, C | Очистка триггера переноса | 1 | |
002Ch | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
002Dh | BCF STATUS, C | Очистка триггера переноса | 1 | |
002Eh | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
Продолжение таблицы 5.2 | ||||
002Fh | BCF STATUS, C | 1 | ||
0030h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0031h | MOVWF B11YN1 | W® B11YN1 | 1 | |
0032h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0033h | RRF YN1, 0 | Циклический сдвиг вправо через триггер переноса | ||
0034h | ADDWF W, 0 | W=W+W | 1 | |
0035h | ADDWF W, 0 | W=W+W | 1 | |
0036h | ADDWF B11YN1 | W=W+ B11YN1 | 1 | |
0037h | SUBWF A11UM1, 0 | W= A11UM1- W | 1 | |
0038h | MOVWF YNN | W® YNN | 1 | |
0039h | BCF STATUS, C | Очистка триггера переноса | 1 | |
003Ah | RRF UM1, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
003Bh | MOVWF A21UM1 | W® A21UM1 | 1 | |
003Ch | BCF STATUS, C | Очистка триггера переноса | 1 | |
003Dh | RRF YK1, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
003Eh | BCF STATUS, C | Очистка триггера переноса | 1 | |
003Fh | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0040h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0041h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0042h | SUBWF A21UM1, 0 | W= A21UM1- W | 1 | |
0043h | MOVWF YK | W® YK | 1 | |
0044h | MOVF YN1, 0 | YN1®W | 1 | |
0045h | ADDWF YK1 | W=W+ YK1 | 1 | |
0046h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0047h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0048h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0049h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
004Ah | BCF STATUS, C | Очистка триггера переноса | 1 | |
004Bh | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
004Ch | BCF STATUS, C | Очистка триггера переноса | 1 | |
004Dh | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
004Eh | MOVWF A31YN1YK1 | W® A31YN1YK1 | 1 | |
004Fh | MOVF YN2, 0 | YN2®W | 1 | |
0050h | ADDWF YK2 | W=W+ YK2 | 1 | |
0051h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0052h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0053h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0054h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0055h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0056h | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0057h | MOVWF A32YN2YK2 | W® A32YN2YK2 | 1 | |
0058h | BCF STATUS, C | Очистка триггера переноса | 1 | |
0059h | RRF YL1, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
Продолжение таблицы 5.2 | ||||
005Ah | ADDWF W, 0 | W=W+W | 1 | |
005Bh | ADDWF W, 0 | W=W+W | 1 | |
005Ch | SUBWF A32YN2YK2, 0 | W= A32YN2YK2- W | 1 | |
005Dh | ADDWF A31YN1YK1 | W=W+ A31YN1YK1 | 1 | |
005Eh | MOVWF YLL | W® YLL | 1 | |
005Fh | BCF STATUS, C | Очистка триггера переноса | 1 | |
0060h | NOP | Ничего не выполнять | 1 | |
0061h | NOP | 1 | ||
0062h | NOP | 1 | ||
0063h | NOP | 1 | ||
0064h | NOP | 1 | ||
0065h | NOP | 1 | ||
0066h | NOP | 1 | ||
0067h | NOP | 1 | ||
0068h | NOP | 1 | ||
0069h | NOP | 1 | ||
006Ah | NOP | 1 | ||
006Bh | NOP | 1 | ||
006Ch | NOP | 1 | ||
006Dh | NOP | 1 | ||
006Eh | NOP | 1 | ||
006Fh | NOP | 1 | ||
0070h | NOP | 1 | ||
0071h | NOP | 1 | ||
0072h | NOP | 1 | ||
0073h | NOP | 1 | ||
0074h | MOVF YK1, 0 | YK1®W | 1 | |
0075h | MOVWF YK2 | W® YK2 | 1 | |
0076h | MOVF YK, 0 | YK ®W | 1 | |
0077h | MOVWF YK1 | W® YK1 | 1 | |
0078h | RRF UM, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
0079h | ADDWF YNN | W=W+ YNN | 1 | |
007Ah | MOVWF YN | W® YN | 1 | |
007Bh | ADDWF YK | W=W+ YK | 1 | |
007Ch | BCF STATUS, C | Очистка триггера переноса | 1 | |
007Dh | RRF W, 0 | Циклический сдвиг вправо через триггер переноса | 1 | |
007Eh | ADDWF W, 0 | W=W+W | 1 | |
007Fh | ADDWF YLL | W=W+ YLL | 1 | |
0080h | MOVWF YL | W® YL | 1 | |
0081h | MOVWF PORTB | W® PORTB | 1 | |
0082h | MOVF YN1, 0 | YN1®W | 1 | |
0083h | MOVWF YN2 | W® YN2 | 1 | |
0084h | MOVF YN, 0 | YN ®W | 1 | |
0085h | MOVWF YN1 | W® YN1 | 1 | |
0086h | MOVF YL, 0 | YL ®W | 1 | |
0087h | MOVWF YL1 | W® YL1 | 1 | |
0088h | MOVF UM, 0 | UM ®W | 1 | |
0089h | MOVWF UM1 | W® UM1 | 1 | |
008Ah | GOTO M2 | Безусловный переход на метку | 1 | |
END | ||||
Всего вместе с программой обработки прерывания | 283 |
Время выполнения программы 56 мкс.