СОДЕРЖАНИЕ
1. Техническое задание на разработку микропроцессорной системы управления
2. Структурная схема микропроцессорной системы управления
3. Разработка принципиальной схемы блока чтения информации с датчиков
4. Разработка принципиальных схем блоков вывода управляющих сигналов
5. Разработка принципиальной схемы блока последовательного канала связи
6. Разработка принципиальной схемы пульта управления
7. Разработка общего алгоритма управления микропроцессорной системы
8. Алгоритм работы блока чтения информации с цифровых датчиков
9. Алгоритм работы блока чтения информации с аналоговых датчиков
10. Алгоритм работы блока обмена данными по последовательному каналу связи
11. Алгоритм работы блока взаимодействия с оператором
12. Алгоритм обработки аварийных ситуаций
13. Расчет электрических параметров микропроцессорной системы управления
1. Сташин, В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин, А.В. Уросов, О.Ф.Мологонцева - М.: Энергоатомиздат, 1990. - 224 с.
. Бродин, В.Б. Системы на микроконтроллерах и БИС программируемой логики / В.Б. Бродин, А.В.Калинин - М.: Издательство ЭКОМ, 2002. - 400 c.
. Яценков, В.С. Микроконтроллеры Microchip. Практическое руководство / В.С. Яценков - М.: Горячая линии - Телеком, 2002. - 296 с.
. Тавернье,
К. PIC-микроконтроллеры. Практика
применения: Пер. с фр. /К. Тавернье - М.: ДМК Пресс., 2004. - 272 с.
Приложение
ЛИСТИНГ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ
MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT VALUE
00001 #include <p16f877a.inc>
00001 LIST
00002
00003
00004 ; MPASM PIC16F877A processor include
00005 ; 00006 ; (c) Copyright 1999-2013 Microchip Technology, All rights reserved
00007
00008
00566 LIST
00002 ;
00003 ;ОБЪЯВЛЕНИЕ КОНСТАНТ
00004 ;
00005 DEL_ADC EQU D'100'
00000044 00006 KOD_D EQU 'D'
00007 ;
;ОБЪЯВЛЕНИЕ РЕГИСТРОВ
00009 ;
CBLOCK 0x20
00000020 00011 N1; РЕГИСТР ВЕЛИЧИНЫ АНАЛОГОВОГО СИГНАЛА ОТ ДАТЧИКА N1
00000021 00012 N2; РЕГИСТР ВЕЛИЧИНЫ АНАЛОГОВОГО СИГНАЛА ОТ ДАТЧИКА N2
00000022 00013 N; РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЯ АНАЛОГОВОЙ ФУНКЦИИ N
00000023 00014 N2_TMP; РЕГИСТР ДЛЯ ХРАНЕНИЯ РЕЗУЛЬТАТА ВЫЧИСЛЕНИЯ N2-K
00000024 00015 Y2
00000025 00016 Y3; РЕГИСТРЫ УПРАВЛЯЮЩИХ СИГНАЛОВ Y2,Y3
00000026 00017 KREG;РЕГИСТР ДЛЯ ХРАНЕНИЯ 8-РАЗРЯДНОГО K
00000027 00018 Q;КОНСТАНТА ХРАНЯЩАЯСЯ ВО ВНУТРЕННЕЙ ПАМЯТИ
00000028 00019 IND1;РЕГИСТР ИНДИКАЦИИ 1
00000029 00020 IND2;РЕГИСТР ИНДИКАЦИИ 2
0000002A 00021 Y1; РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЯ ЦИФРОВОЙ ФУНКЦИИ Y1
0000002B 00022 W_TEMP;КОПИЯ АККУМУЛЯТОРА
0000002C 00023 STATUS_TEMP;КОПИЯ РЕГИСТРА СОСТОЯНИЯ
0000002D 00024 X1
0000002E 00025 X2
0000002F 00026 X3
00000030 00027 X4; Х1-Х4-ХРАНЯТ ЗНАЧЕНИЯ ЦИФРОВЫХ ДАТЧИКОВ
00000031 00028 X_BUF; ДОПОЛНИТЕЛЬНЫЙ РЕГИСТР ДЛЯ ЦИФРОВЫХ ДАТЧИКОВ
00000032 00029 IBUF; РЕГИСТР ДЛЯ ХРАНЕНИЯ ЗНАЧЕНИЙ X1-X5
00000033 00030 XAND;РЕЗУЛЬТАТ ВЫЧИСЛЕНИЯ X1*X2*X3*X4*X5 НА СЛУЧАЙ ПРЕРЫВАНИЯ
00000034 00031 XIOR;РЕЗУЛЬТАТ ВЫЧИСЛЕНИЯ X1VX2VX3VX4VX5 НА СЛУЧАЙ ПРЕРЫВАНИЯ
00000035 00032 COUNTER_ADC; СЧЁТЧИК ЗАДЕРЖКИ ДЛЯ АЦП
00000036 00033 REG_1
00000037 00034 REG_2
00000038 00035 REG_3; ДОПОЛНИТЕЛЬНЫЕ РЕГИСТРЫ ДЛЯ ФОРМИРОВАНИЯ АВАРИЙНОЙ СИГНАЛИЗИЦИИ
00036 ENDC
00037 ;
;МАКРОКОМАНДЫ
00039 ;
MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT VALUE
00040 BANC0 MACRO ; ВЫБОР БАНКА 0
00041 BCF STATUS, RP0
00042 BCF STATUS, RP1
00043 ENDM
00044 BANC1 MACRO ; ВЫБОР БАНКА 1
00045 BSF STATUS, RP0
00046 BCF STATUS, RP1
00047 ENDM
00048 RES_VECT CODE 0x0000; ВЕКТОР СБРОСА
0000 2??? 00049 GOTO START; ПЕРЕХОД НА НАЧАЛО ПРОГРАММЫ
00050 MAIN_PROG CODE
00051 ;
;ОБРАБОТКА ПРЕРЫВАНИЙ
00053 ;
00054 ORG 0x04
00055 BANC0
1283 M BCF STATUS, RP0
1303 M BCF STATUS, RP1
00AB 00056 MOVWF W_TEMP
0007 0803 00057 MOVF STATUS,W
00AC 00058 MOVWF STATUS_TEMP; СОХРАНЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА СОСТОЯНИЯ
;
;ОПРЕДЕЛЕНИЕ ИСТОЧНИКА ПРЕРЫВАНИЯ
00061 ;
188B 00062 BTFSC INTCON,INTF; ПРЕРЫВАНИЕ ПО ВХОДУ INT
A 2??? 00063 GOTO INTER_INT
B 1A8C 00064 BTFSC PIR1,RCIF; ПРЕРЫВАНИЕ ОТ USART (ПРЕРЫВАНИЯ ОТ ТЕРМИНАЛА ВНЕШНЕЙ ЭВМ)
C 2??? 00065 GOTO INTER_USART
00066 ;
;ОПРЕДЕЛЕНИЕ ПРЕРЫВАНИЙ ПО ВХОДУ INT
00068 ;
000D 00069 INTER_INT
00070 BANC0
D 1283 M BCF STATUS, RP0
000E 1303 M BCF STATUS, RP1
F 1A86 00071 BTFSC PORTB,5; ПРЕРЫВАНИЕ ПО СИГНАЛУ ОТКАЗА ИСТОЧНИКА ПИТАНИЯ
2??? 00072 GOTO INTER_PIT
1809 00073 BTFSC PORTE,0; ПРЕРЫВАНИЕ ПО СИГНАЛУ АВАРИЙНОГО ДАТЧИКА
0012 2??? 00074 GOTO INTER_AVD
1C07 00075 BTFSS PORTC,0; ПРЕРЫВАНИЕ ОТ ПУ
0014 2??? 00076 GOTO INTER_PU
00077 ;
;ПРЕРЫВАНИЕ ОТ ИСТОЧНТИКА ПИТАНИЯ
00079
0015 00080 INTER_PIT
108B 00081 BCF INTCON,INTF; СБРОС ФЛАГА5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 3OBJECT CODE LINE SOURCE TEXT VALUE
00082 BANC0
1283 M BCF STATUS, RP0
1303 M BCF STATUS, RP1
1606 00083 BSF PORTB,4; 1 НА Y5
018F 00084 CLRF TMR1H; ОЧИСТКА TMR1H
A 018E 00085 CLRF TMR1L; ОЧИСТКА TMR1L
001B 30FF 00086 MOVLW 0xFF; ЗАНЕСТИ В TMR1 30МКС ЗНАЧЕНИЕ Т1
C 008F 00087 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H
D 3069 00088 MOVLW 0x69
E 008E 00089 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L
F 1410 00090 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1
0020 00091 T5_WAIT1
1C0C 00092 BTFSS PIR1, TMR1IF
2??? 00093 GOTO T5_WAIT1
140C 00094 BSF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ TMR1
1206 00095 BCF PORTB,4; 0 НА Y5
30FF 00096 MOVLW 0xFF; ЗАНЕСТИ В TMR1 30МКС ЗНАЧЕНИЕ Т1
0025 008F 00097 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H
3069 00098 MOVLW 0x69
008E 00099 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L
1410 00100 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1
0029 00101 T5_WAIT2
1C0C 00102 BTFSS PIR1, TMR1IF
A 2??? 00103 GOTO T5_WAIT2
B 140C 00104 BSF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ TMR1
C 1606 00105 BSF PORTB,4; 1 НА Y5
D 30FF 00106 MOVLW 0xFF; ЗАНЕСТИ В TMR1 30МКС ЗНАЧЕНИЕ Т1
002E 008F 00107 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H
F 3069 00108 MOVLW 0x69
008E 00109 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L
1410 00110 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1
0032 00111 T5_WAIT3
1C0C 00112 BTFSS PIR1, TMR1IF
2??? 00113 GOTO T5_WAIT3
140C 00114 BSF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ TMR1
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-РАЗРЯДНЫЙ ПРИЕМ , ПРИЕМ РАЗРЕШЕН