Файл: Архитектура и основы программирования однокристальных микроконтроллеров.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.11.2023
Просмотров: 1049
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА PIC16F84
Особенности программирования портов
Использование TMR0 с внешним сигналом
Сохранение состояния при прерываниях
Режим пониженного энергопотребления (SLEEP)
Защита программы от копирования
ОСНОВЫ ПРОГРАММИРОВАНИЯ PIC16F84 НА АССЕМБЛЕРЕ
Пример простейшей программы управления портами
АРХИТЕКТУРА И ОСНОВЫ ПРОГРАММИРОВАНИЯ ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ PIC16F84
Примечание.R—толькочтение,R/W— чтениеи запись.Если регистр STATUS используетсяв качестве регистра операнда длякоманд, изменяющих биты Z, DC и С, то непосредственная запись в эти трибита запрещается. Биты устанавливаются в соответствии с внутренней логикойконтроллера.
Таблица 1.3
Примечание. R/W—чтениеизапись.Регистр OPTION доступен для чтения и записи и содержит управляющиебиты,которыеопределяюткоэффициентделенияииспользованиепредварительногоделителя,источниквнешнихпрерываний,атакжеподтягивающиерезисторынаPORTB.ЕслипредварительныйделительустановленнасторожевойтаймерWDT(PSA='1'),тотаймерTMR0имееткоэффициентделения1:1.
Таблица 1.4
Примечание.R/W— чтение изапись. РегистрINTCONдоступендлячтенияизаписиисодержитбитыразрешения прерываний и флаги прерываний от различных источников. Флагипрерыванийустанавливаютсяпривозникновенииусловияпрерываниянезависимо от состояния соответствующих бит разрешения прерываний и битаобщего разрешенияпрерываний GIE(INTCON).
- 1 2 3 4 5 6 7 8 9 ... 27
Регистр OPTION
Описаниеразрядоврегистраприведеновтабл. 1.3.| R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| | | | | | | | |
| RBPU | INTEDG | T0CS | T0SE | PSA | PS2 | PS1 | PS0 |
| бит 7 | | | | | | | бит 0 |
Таблица 1.3
| Регистр: | OPTION | Адрес: | 81h | Состояние по включению питания: | 1111 1111 |
| | | PS2 | PS1 | PS0 | Коэффициент | Коэффициент |
| | | деления TMR0 | деления WDT | |||
| | | 0 | 0 | 0 | 1:2 | 1:1 |
| PS0, | (Prescaler Value) | 0 | 0 | 1 | 1:4 | 1:2 |
| PS1, | Значение | 0 | 1 | 0 | 1:8 | 1:4 |
| PS2 | предварительного | 0 | 1 | 1 | 1:16 | 1:8 |
| | делителя | 1 | 0 | 0 | 1:32 | 1:16 |
| | | 1 | 0 | 1 | 1:64 | 1:32 |
| | | 1 | 1 | 0 | 1:128 | 1:64 |
| | | 1 | 1 | 1 | 1:256 | 1:128 |
| PSA | (Prescaler Assigment) Назначение предварительного делителя | 1 — предварительный делитель включен после WDT 0 — предварительный делитель включен перед TMR0 | ||||
| T0SE | (TMR0 source edge select) Выбор фронта переключения TMR0 | 1 —TMR0 увеличивается по перепаду 1/0 на входе T0CKI 0 — TMR0 увеличивается по перепаду 0/1 на входе T0CKI | ||||
| T0CS | (TMR0 clock source select) Выбор источника тактирования TMR0 | 1 — сигнал со входа T0CKI. 0 — внутренняя тактовая частота CLKOUT=CLKIN/4 | ||||
| INTEDG | (Interrupt Edge select) Выбор фронта переключения RB0/INT | 1 — прерывание по перепаду 0/1 на входе RB0/INT 0 — прерывание по перепаду 1/0 на входе RB0/INT | ||||
| RBPU | (PORTB Pull-Up enable) Разрешение подтягивающих резисторов на PORTB | 1 — подтягивающие резисторы на PORTB отклю- чены 0 — подтягивающие резисторы на PORTB подклю- чены на всех разрядах, запрограммированных как входы | ||||
Примечание. R/W—чтениеизапись.Регистр OPTION доступен для чтения и записи и содержит управляющиебиты,которыеопределяюткоэффициентделенияииспользованиепредварительногоделителя,источниквнешнихпрерываний,атакжеподтягивающиерезисторынаPORTB.ЕслипредварительныйделительустановленнасторожевойтаймерWDT(PSA='1'),тотаймерTMR0имееткоэффициентделения1:1.
- 1 2 3 4 5 6 7 8 9 ... 27
Регистр INTCON
Описаниеразрядоврегистраприведеновтабл. 1.4.| R/W | R/W | R/W | R | R | R/W | R/W | R/W |
| GIE | EEIE | T0IE | INTE | RBIE | T0IF | INTF | RBIF |
| бит 7 | | | | | | | бит 0 |
Таблица 1.4
| Регистр INTCON | Адрес: 0Bh, 8Bh | Состояние по включению питания: 0000 000X |
| RBIF | (RB port change Interrupt Flag bit). Флаг прерывания по изменению состояния порта В | Устанавливается в ‘1’ по изменению состояния хотя бы на одном из входов RB7:RB4.Сбрасывается программно |
| INTF | (RB0/INT Interrupt Flag bit). Флаг прерывания INT | Устанавливается в ‘1’ по прерыванию INT. Сбрасывается программно |
| T0IF | (TMR0 Oferflow Interrupt Flag bit). Флаг прерывания по переполнению таймера TMR0 | Устанавливается в ‘1’ при переполнении таймера TMR0. Сбрасывается программно |
| RBIE | (RB port change Interrupt enable bit) Маска прерывания RBIF | RBIE=0: запрещает прерывания от RBIF; RBIE=1: разрешает прерывания от RBIF |
| INTE | (RB0/INT Interrupt Enable bit). Маска прерывания INT | INTE=0: запрещает прерывания от INTF; INTE=1: разрешает прерывания от INTF |
| Т0IЕ | (TMR0 Oferflow Interrupt Enable bit). Маска прерывания TMR0 | Т0IЕ=0: запрещает прерывания от T0IF; Т0IЕ=1: разрешает прерывания от T0IF |
| ЕЕIЕ | (ЕЕ write complete Interrupt Enable bit). Маска прерывания от записи в ЭППЗУ | ЕЕIЕ=0: запрещает прерывания от EEIF; ЕЕIЕ=1: разрешает прерывания от EEIF |
| GIE | (Global Interrupt Enable bit). Флаг разрешения прерываний | GIE=0: прерывания запрещены; GIE=1: разрешены все немаскированные прерывания |
Примечание.R/W— чтение изапись. РегистрINTCONдоступендлячтенияизаписиисодержитбитыразрешения прерываний и флаги прерываний от различных источников. Флагипрерыванийустанавливаютсяпривозникновенииусловияпрерываниянезависимо от состояния соответствующих бит разрешения прерываний и битаобщего разрешенияпрерываний GIE(INTCON).
- 1 2 3 4 5 6 7 8 9 10 ... 27