- •1.1 Цель работы
- •1.2 Общие сведения
- •1.3 Области применения
- •1.4 Номенклатура микроконтроллеров семейства pic16f8хх
- •1.5 Технические характеристики микроконтроллера pic16f877
- •1.6 Архитектура микроконтроллера pic16f877
- •1.7 Основные регистры специального назначения
- •1.7.1 Регистр status
- •1.7.2 Регистр option_reg
- •1.7.3 Регистр intcon
- •1.7.4 Регистр pie1
- •1.7.5 Регистр pir1
- •1.7.6 Регистр pie2
- •1.7.7 Регистр pir2
- •1.7.8 Регистр pcon
- •1.7.9 Регистры pclath и pcl
- •1.7.10 Вычисляемый переход
- •1.7.11 Стек
- •1.7.12 Страницы памяти программ
- •1.7.13 Косвенная адресация, регистры indf и fsr
- •1.8 Порты ввода/вывода
- •1.8.1 Регистры portа и trisa
- •1.8.2 Регистры portb и trisb
- •1.8.3 Регистры portc и trisc
- •1.8.4 Регистры portd и trisd
- •1.8.5 Регистры porte и trise
- •1.9 Eeprom память данных и flash память программ
- •1.9.1 Регистры eecon1, eecon2
- •1.9.2 Чтение из eeprom памяти данных
- •1.9.3 Запись в eeprom память данных
- •1.10 Модуль таймера tmr0
- •1.10.1 Прерывания от tmr0
- •1.10.2 Использование внешнего источника тактового сигнала для tmr0
- •1.10.3 Предделитель
- •1.11 Модуль таймера tmr1
- •1.11.1 Работа tmr1 в режиме таймера
- •1.11.2 Работа tmr1 в режиме счетчика
- •1.11.3 Работа tmr1 в режиме синхронного счетчика
- •1.11.4 Работа tmr1 в режиме асинхронного счетчика
- •1.11.5 Чтение/запись tmr1 в асинхронном режиме
- •1.11.6 Генератор tmr1
- •1.11.7 Сброс tmr1 триггером модуля сср
- •1.11.8 Сброс регистров tmr1 (tmr1h, tmr1l)
- •1.11.9 Предделитель tmr1
- •1.12 Прерывания
- •1.12.1 Внешнее прерывание с входа rb0/int
- •1.12.2 Прерывание по переполнению tmr0
- •1.12.3 Прерывание по изменению уровня сигнала на входах rb7:rb4
- •1.13 Система команд
1.7.6 Регистр pie2
Регистр PIE1 доступен для чтения и записи, содержит биты разрешения прерываний от модуля ССР2, возникновения коллизий на шине и окончания записи в EEPROM память данных.
Ниже приводится назначение каждого из 8 битов регистра. Здесь и далее используются следующие обозначения:
R – чтение бита;
W – запись бита;
U – не реализовано, читается как «0»;
-n – значение после POR;
-x – неизвестное значение после POR.
Регистр PIE2 (адрес 8Dh)
U–0 |
R/W–0 |
U–0 |
R/W–0 |
R/W–0 |
U–0 |
U–0 |
R/W–0 |
– |
Резерв |
– |
EEIE |
BCLIE |
– |
– |
CCP2IE |
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит З |
Бит 2 |
Бит 1 |
Бит 0 |
Бит 7: |
Не реализован: читается как '0' |
Бит 6: |
Резерв: всегда должен равняться нулю |
Бит 5: |
Не реализован: читается как '0' |
Бит 4: |
EEIE: Разрешение прерывания по окончанию записи в EEPROM данных 0 = прерывание запрещено 1 = прерывание разрешено |
Бит 3: |
BCLIE: Разрешение прерывания при возникновении коллизий на шине 0 = прерывание запрещено 1 = прерывание разрешено |
Бит 2: Бит 1: |
Не реализованы: читаются как '0' |
Бит 0: |
CCP2IE: Разрешение прерывания от модуля ССР2 0 = прерывание запрещено 1 = прерывание разрешено |
1.7.7 Регистр pir2
Регистр PIR2 доступен для чтения и записи, содержит флаги прерываний от модуля ССР2, возникновения коллизий на шине и окончания записи в EEPROM память данных.
Примечание: Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>). Программное обеспечение пользователя должно сбрасывать соответствующие флаги при обработке прерываний от периферийных модулей.
Ниже приводится назначение каждого из 8 битов регистра. Здесь и далее используются следующие обозначения:
R – чтение бита;
W – запись бита;
U – не реализовано, читается как «0»;
-n – значение после POR;
-x – неизвестное значение после POR.
Регистр PIR2 (адрес 0Dh)
U–0 |
R/W–0 |
U–0 |
R/W–0 |
R/W–0 |
U–0 |
U–0 |
R/W–0 |
– |
Резерв |
– |
EEIF |
BCLIF |
– |
– |
CCP2IF |
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит З |
Бит 2 |
Бит 1 |
Бит 0 |
Бит 7: |
Не реализован: читается как '0' |
Бит 6: |
Резерв: всегда должен равняться нулю |
Бит 5: |
Не реализован: читается как '0' |
Бит 4: |
EEIF: Флаг прерывания по окончанию записи в EEPROM данных 0 = запись в EEPROM данных не завершена или не была начата 1 = запись в EEPROM данных завершена (сбрасывается программно) |
Бит 3: |
BCLIF: Флаг прерывания возникновения коллизий на шине 1 = на шине обнаружены коллизии (только в режиме ведущего I2C) 0 = коллизий не обнаружено |
Бит 2: Бит 1: |
Не реализованы: читаются как '0' |
Бит 0: |
CCP2IF: Флаг прерывания от модуля ССР2 Режим захвата 0 = захвата значения TMR1 не происходило 1= выполнен захват значения TMR1 (сбрасывается программно) Режим сравнения 0 = значение TMR1 не достигло указанного в регистрах CCPR2H:CCPR2L 1 = значение TMR1 достигло указанного в регистрах ССРР2Н:ССРР2L (сбрасывается программно) ШИМ режим Не используется |
