Материал: Микропроцессорная система управления объектом

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

0035 1206 00115 BCF PORTB, 4; 0 НА Y5 (СФОРМИРОВАНИ ИМПУЛЬС 30МКС - "1", 30МКС - "0", 30МКС - "1")

3021 00116 MOVLW "!"

0099 00117 MOVWF TXREG; ПЕРЕДАЧА В ПОСЛЕДОВАТЕЛЬНЫЙ КАНАЛ КОДА СИМВОЛА

"!"

00118 BANC1

1683 M BSF STATUS, RP0

1303 M BCF STATUS, RP1

A 1698 00119 BSF TXSTA, TXEN

00120 BANC0

B 1283 M BCF STATUS, RP0

C 1303 M BCF STATUS, RP1

D 1E0C 00121 BTFSS PIR1, TXIF

003E 2??? 00122 GOTO $-1; ПРОВЕРКА ФЛАГА ПРЕРЫВАНИЯ ОТ ПЕРЕДАТЧИКА

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 4OBJECT CODE LINE SOURCE TEXT VALUE

00123 BANC1

F 1683 M BSF STATUS, RP0

1303 M BCF STATUS, RP1

1298 00124 BCF TXSTA, TXEN

00125 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

0044 0063 00126 SLEEP; ПЕРЕХОД В РЕЖИМ ПОНИЖЕННОГО ЭНЕРГОПОТРЕБЛЕНИЯ

2??? 00127 GOTO END_INTER; ПЕРЕХОД НА ВЫХОД ИЗ ПРЕРЫВАНИЯ

00128 ;

;ПРЕРЫВАНИЕ ОТ АВАРИЙНОГО ДАТЧИКА

00130

00131 INTER_AVD

00132 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

108B 00133 BCF INTCON, INTF; СБРОС ФЛАГА

01A8 00134 CLRF IND1

A 01A9 00135 CLRF IND2

B 30A0 00136 MOVLW 0xA0

C 00B6 00137 MOVWF REG_1

D 3025 00138 MOVLW 0x25

E 00B7 00139 MOVWF REG_2

004F 3026 00140 MOVLW 0x26

00B8 00141 MOVWF REG_3; ЗАПИСЬ В РЕГИСТРЫ ЗНАЧЕНИЙ ДЛЯ ВЫРАБОТКИ ИМПУЛЬСОВ ЧАСТОТОЙ 2Гц

0051 00142 MM1

0BB6 00143 DECFSZ REG_1,f

2??? 00144 GOTO $-1

0BB7 00145 DECFSZ REG_2,F

2??? 00146 GOTO MM1

2??? 00147 GOTO MM3

00148 MM2

30FF 00149 MOVLW 0xFF

00B6 00150 MOVWF REG_1

2??? 00151 GOTO MM1

00152 MM4

30FF 00153 MOVLW 0xFF

A 00B7 00154 MOVWF REG_2

B 2??? 00155 GOTO MM1

C 00156 MM3

C 0BB8 00157 DECFSZ REG_3

005D 2??? 00158 GOTO MM4; ВЫРАБОТКА СИГНАЛА ЧАСТОТОЙ 2Гц

005E 0820 00159 MOVF N1,W

F 00A8 00160 MOVWF IND1

0060 2??? 00161 CALL WRITE_IND1; ЗАПИСЬ ЗНАЧЕНИЯ N1 В РИ1

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 5OBJECT CODE LINE SOURCE TEXT VALUE

01B2 00162 CLRF IBUF

182D 00163 BTFSC X1,0

1432 00164 BSF IBUF,0

182E 00165 BTFSC X2,0

14B2 00166 BSF IBUF,1

182F 00167 BTFSC X3,0

1532 00168 BSF IBUF,2

1830 00169 BTFSC X4,0

15B2 00170 BSF IBUF,3

006A 2??? 00171 CALL WRITE_IND2; ЗАПИСЬ ЗНАЧЕНИЙ X1-X4 В РИ2

B 0063 00172 SLEEP

C 2??? 00173 GOTO END_INTER;ПЕРЕХОД НА ВЫХОД ИЗ ПРЕРЫВАНИЯ

00174 ;

;ПРЕРЫВАНИЕ ОТ ПУ

00176 ;

D 00177 INTER_PU

00178 BANC0

D 1283 M BCF STATUS, RP0

E 1303 M BCF STATUS, RP1

F 108B 00179 BCF INTCON,INTF; СБРОС ФЛАГА

01A8 00180 CLRF IND1

01A9 00181 CLRF IND2

082A 00182 MOVF Y1,W

00A8 00183 MOVWF IND1

00184 ;---РЕЗУЛЬТАТ СРАВНЕНИЯ N>Q

1C25 00185 BTFSS Y3,0

0075 10A8 00186 BCF IND1,1; ЕСЛИ N<Q, ТО IND1,1=0

14A8 00187 BSF IND1,1; ЕСЛИ N>Q, ТО IND1,1=1

00188 ;---ВЫЧИСЛЕНИЕ ФУНКЦИИ X1 AND X2 AND X3 AND X4

082D 00189 MOVF X1,W

052E 00190 ANDWF X2,W

052F 00191 ANDWF X3,W

A 0530 00192 ANDWF X4,W

B 00B3 00193 MOVWF XAND

C 1833 00194 BTFSC XAND,0

D 1528 00195 BSF IND1,2

00196 ;---ВЫЧИСЛЕНИЕ ФУНКЦИИ X1 OR X2 OR X3 OR X4

E 082D 00197 MOVF X1,W

F 042E 00198 IORWF X2,W

042F 00199 IORWF X3,W

0430 00200 IORWF X4,W

00B4 00201 MOVWF XIOR

1834 00202 BTFSC XIOR,0

15A8 00203 BSF IND1,3

0085 2??? 00204 CALL WRITE_IND1

00205 ;---ВЫДАЧА КОНСТАНЫ Q В РИ2

0086 0827 00206 MOVF Q,W

00A9 00207 MOVWF IND2

2??? 00208 CALL WRITE_IND2

2??? 00209 GOTO END_INTER

00210

00211 ;ПРЕРЫВАНИЕ ОТ USART (ПРЕРЫВАНИЕ ОТ ТЕРМИНАЛА ВНЕЩНЕЙ ЭВМ)

00212 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 6OBJECT CODE LINE SOURCE TEXT VALUE

A 00213 INTER_USART

A 081A 00214 MOVF RCREG,W; СЧИТЫВАНИЕ ДАННЫХ ИЗ БУФЕРА

B 0244 00215 SUBWF KOD_D,W

C 1D03 00216 BTFSS STATUS,Z

D 2??? 00217 GOTO END_INTER

E 082A 00218 MOVF Y1,W

008F 0099 00219 MOVWF TXREG; ПЕРЕДАЧА ЗНАЧЕНИЯ Y1

00220 BANC1

1683 M BSF STATUS, RP0

1303 M BCF STATUS, RP1

1698 00221 BSF TXSTA, TXEN

00222 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

1E0C 00223 BTFSS PIR1, TXIF

0096 2??? 00224 GOTO $-1; ПРОВЕРКА ФЛАГА ПРЕРЫВАНИЯ ОТ ПЕРЕДАТЧИКА

00225 BANC1

1683 M BSF STATUS, RP0

1303 M BCF STATUS, RP1

1298 00226 BCF TXSTA, TXEN

00227 BANC0

A 1283 M BCF STATUS, RP0

B 1303 M BCF STATUS, RP1

C 2??? 00228 GOTO END_INTER

;

;ВЫХОД ИЗ ПРЕРЫВАНИЯ

00231 ;

009D 00232 END_INTER

D 082C 00233 MOVF STATUS_TEMP,W; ВОССТАНОВИТЬ РЕГИСТР STATUS

E 0083 00234 MOVWF STATUS

F 082B 00235 MOVF W_TEMP,W; ВОСТАНОВЛЕНИЕ АККУМУЛЯТОРА

00A0 0009 00236 RETFIE

00237

00238 ;ПОДПРОГРАММА ЗАПИСИ ЗНАЧЕНИЙ РЕГИСТРА ИНДИКАЦИИ РИ1 00239

A1 00240 WRITE_IND1

00241 BANC1

A1 1683 M BSF STATUS, RP0

A2 1303 M BCF STATUS, RP1

A3 1411 00242 BSF SSPCON2, SEN

00243 BANC0

A4 1283 M BCF STATUS, RP0

A6 1D8C 00244 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

A7 2??? 00245 GOTO $-1

A8 118C 00246 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 7OBJECT CODE LINE SOURCE TEXT VALUE

A9 3040 00247 MOVLW B'01000000';ПЕРЕДАТЬ АДРЕС УСТР-ВА (DD3), ВКЛ РЕЖИМ ЗАПИСИ

AA 0093 00248 MOVWF SSPBUF

AB 1D8C 00249 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

00AC 2??? 00250 GOTO $-1

AD 118C 00251 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00AE 3002 00252 MOVLW 0x02; ПЕРЕДАТЬ НОМЕР РЕГИСТРА ("2"-ВЫХ РЕГ ПОРТА P0)

AF 0093 00253 MOVWF SSPBUF

B0 1D8C 00254 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

B1 2??? 00255 GOTO $-1

B2 118C 00256 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

B3 0828 00257 MOVF IND1,W; ВЫВОД IND1 В РИ1

B4 0093 00258 MOVWF SSPBUF ;ПЕРЕДАТЬ СОДЕРЖИМОЕ РЕГИСТРА N1

B5 1D8C 00259 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

B6 2??? 00260 GOTO $-1

B7 118C 00261 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00262 BANC1

B8 1683 M BSF STATUS, RP0

B9 1303 M BCF STATUS, RP1

BA 1511 00263 BSF SSPCON2,PEN; СФОРМИРОВАТЬ СТОПОВЫЙ БИТ 00264 BANC0

BB 1283 M BCF STATUS, RP0

BC 1303 M BCF STATUS, RP1

BD 1D8C 00265 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF 00BE 2??? 00266 GOTO $-1

BF 118C 00267 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00C0 0008 00268 RETURN; ВЕРНУТЬСЯ ИЗ ПОДПРОГРАММЫ

00269

00270 ;ПОДПРОГРАММА ЗАПИСИ ЗНАЧЕНИЙ РЕГИСТРА ИНДИКАЦИИ РИ2

00271

C1 00272 WRITE_IND2

00273 BANC1

C1 1683 M BSF STATUS, RP0

C2 1303 M BCF STATUS, RP1

C3 1411 00274 BSF SSPCON2, SEN

00275 BANC0

C4 1283 M BCF STATUS, RP0

C5 1303 M BCF STATUS, RP1

C6 1D8C 00276 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

C7 2??? 00277 GOTO $-1

C8 118C 00278 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00C9 3040 00279 MOVLW B'01000000';ПЕРЕДАТЬ АДРЕС УСТР-ВА (DD3), ВКЛ РЕЖИМ ЗАПИСИ

CA 0093 00280 MOVWF SSPBUF

CB 1D8C 00281 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

CC 2??? 00282 GOTO $-1

CD 118C 00283 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

CE 3003 00284 MOVLW 0x03; ПЕРЕДАТЬ НОМЕР РЕГИСТРА ("3"-ВЫХ РЕГ ПОРТА P1)

CF 0093 00285 MOVWF SSPBUF

D0 1D8C 00286 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

D1 2??? 00287 GOTO $-1

D2 118C 00288 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 8OBJECT CODE LINE SOURCE TEXT VALUE

D3 0829 00289 MOVF IND2,W; ВЫВОД IND2 В РИ2

00D4 0093 00290 MOVWF SSPBUF ;ПЕРЕДАТЬ СОДЕРЖИМОЕ РЕГИСТРА N1

D5 1D8C 00291 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

D6 2??? 00292 GOTO $-1

D7 118C 00293 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00294 BANC1

D8 1683 M BSF STATUS, RP0

D9 1303 M BCF STATUS, RP1

DA 1511 00295 BSF SSPCON2,PEN; СФОРМИРОВАТЬ СТОПОВЫЙ БИТ

00296 BANC0

DB 1283 M BCF STATUS, RP0

DC 1303 M BCF STATUS, RP1

DD 1D8C 00297 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

DE 2??? 00298 GOTO $-1

DF 118C 00299 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00E0 0008 00300 RETURN; ВЕРНУТЬСЯ ИЗ ПОДПРОГРАММЫ

00301

E1 00302 START

00303 ;

;ИНИЦИАЛИЗАЦИЯ 00305 ;

;---МОДУЛЬ КОМПАРАТОРА

00307 BANC1

00E1 1683 M BSF STATUS, RP0

E2 1303 M BCF STATUS, RP1

00E3 3007 00308 MOVLW B'00000111'

E4 009C 00309 MOVWF CMCON; ОТКЛЮЧЕНИЕ КОМПАРАТОРОВ

00310 ;---МОДУЛЬ АЦП

E5 3004 00311 MOVLW B'00000100'

E6 009F 00312 MOVWF ADCON1; ЛЕВОЕ ВЫРАВНИВАНИЕ, RA0,RA1 - АНАЛОГОВЫЕ ВХОДЫ

00313 BANC0

E7 1283 M BCF STATUS, RP0

E8 1303 M BCF STATUS, RP1

E9 3081 00314 MOVLW B'10000001'

EA 009F 00315 MOVWF ADCON0; ТАКТОВЫЙ СИГНАЛ FOSC/32, МОДУЛЬ АЦП ВКЛЮЧЕН

00316 ;---ИНИЦИАЛИЗАЦИЯ ПОРТОВ

00317 BANC1

EB 1683 M BSF STATUS, RP0

00EC 1303 M BCF STATUS, RP1

ED 0185 00318 CLRF TRISA

EE 0186 00319 CLRF TRISB

EF 0187 00320 CLRF TRISC

F0 0189 00321 CLRF TRISE

F1 3037 00322 MOVLW B'00110111'

F2 0085 00323 MOVWF TRISA; RA0,RA1,RA2,RA4,RA5 - IN5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 9OBJECT CODE LINE SOURCE TEXT VALUE

F3 3021 00324 MOVLW B'00100001'

F4 0086 00325 MOVWF TRISB; RB0,RB5-IN RB1,RB2,RB3,RB4-OUT

F5 301B 00326 MOVLW B'00011011'

F6 0087 00327 MOVWF TRISC; RC0,RC1,RC3,RC4-IN

F7 3005 00328 MOVLW B'00000101'

F8 0089 00329 MOVWF TRISE; RE0,RE2-IN RE1-OUT

00330 ;---ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА

00331 BANC0

F9 1283 M BCF STATUS, RP0

FA 1303 M BCF STATUS, RP1

FB 0190 00332 CLRF T1CON; ОЧИСТИТЬ РЕГИТР T1CON

FC 018F 00333 CLRF TMR1H; ОЧИСТИТЬ СТАРШИЙ БИТ РЕГИСТРА TMR1

FD 018E 00334 CLRF TMR1L; ОЧИСТИТЬ МЛАДШИЙ БИТ РЕГИСТРА TMR1

00335 ;---ИНИЦИАЛИЗАЦИЯ МОДУЛЯ USART

00336 BANC0

FE 1283 M BCF STATUS, RP0

00FF 1303 M BCF STATUS, RP1

0198 00337 CLRF RCSTA

0101 3090 00338 MOVLW B'10010000'

0098 00339 MOVWF RCSTA; МОДУЛЬ ВКЛЮЧЕН, 8-РАЗРЯДНЫЙ ПРИЕМ , ПРИЕМ РАЗРЕШЕН

00340 BANC1

1683 M BSF STATUS, RP0

1303 M BCF STATUS, RP1

0105 0198 00341 CLRF TXSTA

3014 00342 MOVLW B'00010100'

0098 00343 MOVWF TXSTA; 8-РАЗРЯДНАЯ ПЕРЕДАЧА, АСИНХРОННЫЙ РЕЖИМ, ПЕРЕДАЧА РАЗРЕШЕНА, ВЫСОКОСКОРОСТНАЯ ПЕРЕДАЧА

300B 00344 MOVLW D'11'; СКОРОСТЬ 115200 БИТ/С

0099 00345 MOVWF SPBRG

00346 ;---ИНИЦИАЛИЗАЦИЯ МОДУЛЯ MSSP

00347 BANC0

010A 1283 M BCF STATUS, RP0

B 1303 M BCF STATUS, RP1

C 3028 00348 MOVLW B'00101000'

D 0094 00349 MOVWF SSPCON; ВЕДУЩИЙ I2C РЕЖИМ, ТАКУТОВЫЙ СИГНАЛ = FOSC/(4*(SSPADD+1))

00350 BANC1

E 1683 M BSF STATUS, RP0

F 1303 M BCF STATUS, RP1

30C0 00351 MOVLW B'11000000'; SMP,CKE

0094 00352 MOVWF SSPSTAT

0191 00353 CLRF SSPCON2

3032 00354 MOVLW D'50'

0114 0093 00355 MOVWF SSPADD; ЗАГРУЗИТЬ КОНСТАНТУ ОПРЕДЕЛЯЮЩУЮ ЧАСТОТУ СИНХ

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 10OBJECT CODE LINE SOURCE TEXT VALUE

РОНИЗАЦИИ В РЕГИСТР АДРЕСА

00356 ;---УСТАНОВКА НАПРАВЛЕНИЙ РАБОТЫ ЛИНИЙ ПОРТОВ

00357 ;--DD3

1411 00358 BSF SSPCON2,SEN; СФОРМИРОВАТЬ СТАРТОВЫЙ БИТ

00359 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

0118 1D8C 00360 BTFSS PIR1, SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВАНИЯ SSPIF

2??? 00361 GOTO $-1

A 3040 00362 MOVLW B'01000000' ;ПЕРЕДАТЬ АДРЕС УСТРОЙСТВА DD3(ИНДИКАЦИЯ

ПУЛЬТА УПРАВЛЕНИЯ)

B 0093 00363 MOVWF SSPBUF

C 1D8C 00364 BTFSS PIR1,SSPIF ;ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВАНИЯ SSPIF

D 2??? 00365 GOTO $-1

E 118C 00366 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

F 3006 00367 MOVLW 0x06; ПЕРЕДАТЬ НОМЕР РЕГИСТРА ("6" - РЕГИСТР КОНФИГУРАЦИИ ПОРТА P0)

0093 00368 MOVWF SSPBUF

1D8C 00369 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00370 GOTO $-1

118C 00371 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

3000 00372 MOVLW 0x00; ВСЕ ЛИНИИ ПОРТА P0 НА ВЫВОД

0093 00373 MOVWF SSPBUF

1D8C 00374 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00375 GOTO $-1

118C 00376 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

3007 00377 MOVLW 0x07; ПЕРЕДАТЬ НОМЕР РЕГИСТРА ("7" - РЕГИСТР КОНФИГУРАЦИИ ПОРТА P1)

A 0093 00378 MOVWF SSPBUF

B 1D8C 00379 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

C 2??? 00380 GOTO $-1

D 118C 00381 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

E 3000 00382 MOVLW 0x00; ВСЕ ЛИНИИ ПОРТА P1 НА ВЫВОД

F 0093 00383 MOVWF SSPBUF

1D8C 00384 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00385 GOTO $-1

118C 00386 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00387 BANC1

1683 M BSF STATUS, RP0

1303 M BCF STATUS, RP1

0135 1511 00388 BSF SSPCON2,PEN; СФОРМИРОВАТЬ СТОПОВЫЙ БИТ

00389 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

0138 1D8C 00390 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00391 GOTO $-1

A 118C 00392 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00393 ;--DD4

B 3047 00394 MOVLW B'01000111'; ПЕРЕДАТЬ АДРЕС УСТРОЙСТВА DD4

C 0093 00395 MOVWF SSPBUF

D 1D8C 00396 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВАНИЯ SSPIF

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 11OBJECT CODE LINE SOURCE TEXT VALUE

E 2??? 00397 GOTO $-1

F 118C 00398 BCF PIR1,SSPIF;СБРОСИТЬ ФЛАГ

0140 3006 00399 MOVLW 0x06; ПЕРЕДАТЬ НОМЕР РЕГИСТРА ("6" - РЕГИСТР КОНФИГУРАЦИИ ПОРТА P0)

0093 00400 MOVWF SSPBUF

1D8C 00401 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВАНИЯ SSPIF

2??? 00402 GOTO $-1

118C 00403 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

30FF 00404 MOVLW 0xFF; ВСЕ ЛИНИИ ПОРТА P0 НАСТРОИТЬ НА ВВОД

0093 00405 MOVWF SSPBUF

1D8C 00406 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВАНИЯ SSPIF

2??? 00407 GOTO $-1

00408 ;---ИНИЦИАЛИЗАЦИЯ ПРЕРЫВАНИЙ

30D0 00409 MOVLW B'11010000'; РАЗРЕШЕНИЕ ГЛОБАЛЬНЫХ ПРЕРЫВАНИЙ, ПРЕРЫВАНИЙ ОТ ПЕРЕФЕРИЙНЫХ МОДУЛЕЙ И ПО ВХОДУ INT

A 008B 00410 MOVWF INTCON

00411 ;

;ЧТЕНИЕ КОНСТАНТЫ К

00413 ;

014B 00414 MAIN_PROG

00415 BANC1

B 1683 M BSF STATUS, RP0

C 1303 M BCF STATUS, RP1

D 1411 00416 BSF SSPCON2,SEN ;СФОРМИРОВАТЬ СТАРТОВЫЙ БИТ

00417 BANC0

E 1283 M BCF STATUS, RP0

F 1303 M BCF STATUS, RP1

1D8C 00418 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00419 GOTO $-1

118C 00420 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

0153 3041 00421 MOVLW B'01000001'; ПЕРЕДАТЬ АДРЕС УСТРОЙСТВА (DD6), ВКЛЮЧИТЬ РЕЖИМ ЗАПИСИ

0093 00422 MOVWF SSPBUF

1D8C 00423 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00424 GOTO $-1

118C 00425 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

3001 00426 MOVLW 0x01; ПЕРЕДАТЬ НОМЕР РЕГИСТРА ("1"-ВХОДНОГО РЕГИСТРА ПОРТА P1)

0093 00427 MOVWF SSPBUF

A 1D8C 00428 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

B 2??? 00429 GOTO $-1

C 118C 00430 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00431 BANC1

D 1683 M BSF STATUS, RP0

015E 1303 M BCF STATUS, RP1

F 1491 00432 BSF SSPCON2,RSEN; СФОРМИРОВАТЬ ПОВТОРНЫЙ СТАРТОВЫЙ БИТ

00433 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

0162 1D8C 00434 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 12OBJECT CODE LINE SOURCE TEXT VALUE

2??? 00435 GOTO $-1

118C 00436 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

0165 3043 00437 MOVLW B'01000011';ПЕРЕДАТЬ АДРЕС УСТРОЙСТВА (DD4), ВКЛЮЧИТЬ РЕЖИМ ЧТЕНИЯ

0093 00438 MOVWF SSPBUF

1D8C 00439 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00440 GOTO $-1

118C 00441 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00442 BANC1

A 1683 M BSF STATUS, RP0

B 1303 M BCF STATUS, RP1

C 1591 00443 BSF SSPCON2,RCEN; РАЗРЕШИТЬ ПРИЕМ ДАННЫХ

00444 BANC0

D 1283 M BCF STATUS, RP0

E 1303 M BCF STATUS, RP1

F 1D8C 00445 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВАНИЯ SSPIF

2??? 00446 GOTO $-1

118C 00447 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

0172 0813 00448 MOVF SSPBUF,W

00A6 00449 MOVWF KREG; СОХРАНИТЬ ПРИНЯТЫЙ БАЙТ(К)

1691 00450 BSF SSPCON2,ACKDT; СФОРМИРОВАТЬ БИТ "НЕТ ПОДТВЕРЖДЕНИЯ"

0175 1611 00451 BSF SSPCON2,ACKEN

00452 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

1D8C 00453 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00454 GOTO $-1

A 118C 00455 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00456 BANC1

B 1683 M BSF STATUS, RP0

C 1303 M BCF STATUS, RP1

D 1511 00457 BSF SSPCON2,PEN; СФОРМИРОВАТЬ СТОПОВЫЙ БИТ

00458 BANC0

E 1283 M BCF STATUS, RP0

F 1303 M BCF STATUS, RP1

1D8C 00459 BTFSS PIR1,SSPIF; ОЖИДАТЬ УСТАНОВКУ ФЛАГА ПРЕРЫВ SSPIF

2??? 00460 GOTO $-1

118C 00461 BCF PIR1,SSPIF; СБРОСИТЬ ФЛАГ

00462

00463 ;ЧТЕНИЕ И ОБРАБОТКА ИНФОРМАЦИИ С АНАЛОГОВЫХ ДАТЧИКОВ

00464

00465 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

119F 00466 BCF ADCON0,CHS0

121F 00467 BCF ADCON0,CHS1

129F 00468 BCF ADCON0,CHS2 ; ВЫБОР КАНАЛА AN0

3064 00469 MOVLW DEL_ADC

00B5 00470 MOVWF COUNTER_ADC5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 13OBJECT CODE LINE SOURCE TEXT VALUE

A 0BB5 00471 DECFSZ COUNTER_ADC

018B 2??? 00472 GOTO $-1; РЕАЛИЗАЦИЯ ЗАДЕРЖКИ ДЛЯ АЦП

C 151F 00473 BSF ADCON0,GO; НАЧАТЬ ПРЕОБРАЗОВАНИЕ AN0

D 191F 00474 BTFSC ADCON0,GO; ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ

018E 2??? 00475 GOTO $-1

F 081E 00476 MOVF ADRESH, W

0190 00A0 00477 MOVWF N1; СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ

0191 159F 00478 BSF ADCON0,CHS0

121F 00479 BCF ADCON0,CHS1

129F 00480 BCF ADCON0,CHS2 ; ВЫБОР КАНАЛА AN1

3064 00481 MOVLW DEL_ADC

00B5 00482 MOVWF COUNTER_ADC

0196 0BB5 00483 DECFSZ COUNTER_ADC

2??? 00484 GOTO $-1; РЕАЛИЗАЦИЯ ЗАДЕРЖКИ ДЛЯ АЦП

151F 00485 BSF ADCON0,GO; НАЧАТЬ ПРЕОБРАЗОВАНИЕ AN0

191F 00486 BTFSC ADCON0,GO; ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ

019A 2??? 00487 GOTO $-1

B 081E 00488 MOVF ADRESH, W

019C 00A1 00489 MOVWF N2; СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ

019D 0180 00490 CLRF W

E 300B 00491 MOVLW 0x0B

019F 00A7 00492 MOVWF Q; ЗАГРУЗКА КОНСТАНТЫ Q В ПАМЯТЬ МК

01A0 0826 00493 MOVF KREG,W

A1 0221 00494 SUBWF N2,W; W=N2-K

A2 00A3 00495 MOVWF N2_TMP

A3 0220 00496 SUBWF N1,W;

A4 1D03 00497 BTFSS STATUS,Z

A5 2??? 00498 GOTO M1

A6 1C03 00499 BTFSS STATUS,C

A7 2??? 00500 GOTO M1

A8 0823 00501 MOVF N2_TMP,W

A9 00A2 00502 MOVWF N

AA 2??? 00503 GOTO M2

AB 00504 M1

AB 0820 00505 MOVF N1,W

AC 00A2 00506 MOVWF N; ВЫЧИСЛЕНИЕ ФУНКЦИИ N=min(N1,N2-K)

AD 00507 M2

AD 0822 00508 MOVF N,W

01AE 0227 00509 SUBWF Q,W; СРАВНЕНИЕ N И Q

01AF 1C03 00510 BTFSS STATUS,C

B0 2??? 00511 GOTO M3

00512 ;N<Q

B1 1424 00513 BSF Y2,0

B2 1506 00514 BSF PORTB, 2; 1 НА Y2

B3 1186 00515 BCF PORTB, 3; 0 НА Y3

01B4 30FA 00516 MOVLW 0xFA; ЗАНЕСТИ В TMR1 260МКС ЗНАЧЕНИЕ Т2

B5 008F 00517 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H

B6 30EB 00518 MOVLW 0xEB

B7 008E 00519 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 14OBJECT CODE LINE SOURCE TEXT VALUE

B8 1410 00520 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1

B9 00521 T2_WAIT

B9 1C0C 00522 BTFSS PIR1, TMR1IF

BA 2??? 00523 GOTO T2_WAIT

BB 100C 00524 BCF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ

BC 1106 00525 BCF PORTB, 2; 0 НА Y2

00526 ;N>Q

BD 00527 M3

BD 1425 00528 BSF Y3,0

BE 1106 00529 BCF PORTB,2; 0 НА Y2

BF 1586 00530 BSF PORTB,3; 1 НА Y3

C0 30F6 00531 MOVLW 0xF6; ЗАНЕСТИ В TMR1 390МКС ЗНАЧЕНИЕ T3

01C1 008F 00532 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H

C2 3086 00533 MOVLW 0x86

C3 008E 00534 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L

C4 1410 00535 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1

C5 1C0C 00537 BTFSS PIR1,TMR1IF

C6 2??? 00538 GOTO T3_WAIT

C7 100C 00539 BCF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ

C8 1186 00540 BCF PORTB,3; 0 НА Y3

00541

00542 ;ЧТЕНИЕ И ОБРАБОТКА ИНФОРМАЦИИ С ЦИФРОВЫХ ДАТЧИКОВ

00543

C9 1905 00544 BTFSC PORTA,2

CA 142D 00545 BSF X1,0

CB 1909 00546 BTFSC PORTE,2