Архитектура PIC16F877
Автор: 87075544979 • Октябрь 3, 2018 • Лекция • 2,060 Слов (9 Страниц) • 603 Просмотры
Тема 2. Архитектура PIC16F877
Микроконтроллеры (МК) - разновидность МПС, ориентированная на реализацию алгоритмов управления техническими устройствами и технологическими процессами.
МК имеет малый объем памяти и ограниченный состав внешних устройств, реализуют заранее известные и несложные алгоритмы. Набор внешних устройств также существенно сужается, а сами они значительно проще. МК используется в таких областях производства, как бытовая аппаратура, станкостроение, автомобильная промышленность и т. д.
В последнее время фирма Intel сосредоточила усилия на разработке сложных микропроцессоров для компьютеров и уступила сектор рынка простых МК другим фирмам, в частности, фирмам Atmel и Microchip.
Наиболее широко представлены МК фирмы Microchip серии PIC, которые будут рассмотрены более подробно (см. рисунок 2.1).
2.1 Характеристика и структурная схема PIC16F877
Характеристика микроконтроллера:
- высокоскоростная RISC архитектура;
- 35 инструкций;
- все команды выполняются за один цикл, кроме инструкций переходов, выполняемых за два цикла;
- тактовая частота: 20МГц, 200нс - один машинный цикл;
- до 8к х 14 слов FLASH памяти программ, до 368 х 8 байт памяти данных (ОЗУ), до 256 х 8 байт EEPROM памяти данных;
- система прерываний (до 14 источников);
- 8-уровневый аппаратный стек;
- прямой и косвенный режим адресации;
- сторожевой таймер WDT с собственным RC генератором;
- программируемая защита памяти программ;
- режим энергосбережения SLEEP;
- выбор параметров тактового генератора;
- высокоскоростная, энергосберегающая CMOS FLASH/EEPROM технология;
- диапазон напряжений питания от 2.0В до 5.5В;
- повышенная нагрузочная способность портов ввода/вывода (25мА);
- малое энергопотребление.
МК включает в себя следующие периферийные модули (см. рисунок 2.1):
- TMR0: 8-разрядный таймер/счетчик с 8-разрядным предделителем;
- TMR1: 16-разрядный таймер/счетчик с возможностью подключения внешнего резонатора;
- TMR2: 8-разрядный таймер/счетчик с 8-разрядным предделителем и выходным делителем;
- CCP1,2 - два модуля сравнение/захват/ШИМ: 16-разрядный захват, 16-разрядное сравнение, 10-разрядный ШИМ;
- многоканальное 10-разрядное АЦП;
- последовательный синхронный порт MSSP: ведущий/ведомый режим SPI, ведущий/ведомый режим I2C;
- последовательный синхронно-асинхронный приемопередатчик USART с поддержкой детектирования адреса;
- ведомый 8-разрядный параллельный порт PSP;
- детектор пониженного напряжения (BOD) для сброса по снижению напряжения питания (BOR).
[pic 1]
Рисунок 2.1 - Структурная схема микроконтроллера PIC16F877
2.2 Организация памяти МК
PIC16F87X имеет 2 вида памяти: память программ и память данных, которые имеют раздельные шины данных и адреса, что позволяет выполнять параллельный доступ.
2.2.1 Организация памяти программ
PIC16F87X имеет 13-разрядный счетчик команд PC, способный адресовать 8Кх14 слов памяти программ. Физически реализовано FLASH памяти программ 8Кх14 в PIC16F877. Обращение к физически не реализованной памяти программ приведет к адресации реализованной памяти. Адрес вектора сброса – 0000h. Адрес вектора прерываний – 0004h.
[pic 2]
Рисунок 2.2 - Организация памяти программ в PIC16F877
2.2.2 Организация памяти данных
Память данных разделена на четыре банка, которые содержат регистры общего и специального (SFR) назначения.
[pic 3]
Рисунок 2.3 – Карта памяти данных
Биты RP1(STATUS<6>) и RP0(STATUS<5>) предназначены для управления банками данных. В таблице 2.1 показано состояние управляющих битов при обращении к банкам памяти данных.
Таблица 2.1
RP1:RP0 | Банк |
00 | 0 |
01 | 1 |
10 | 2 |
11 | 3 |
Объем банков памяти данных до 128 байт (7Fh). В начале банка размещаются регистры специального назначения, затем регистры общего назначения выполненные как статическое ОЗУ. Все реализованные банки содержат регистры специального назначения. Некоторые, часто используемые регистры специального назначения могут отображаться и в других банках памяти.
...