
- •Введение и постановка задачи
- •Постановка задачи Принятые в тексте сокращения:
- •Цель разработки
- •Входные данные
- •Выходные данные
- •Структурная схема радиостанции
- •Микроконтроллеры семейства pic16c7x. Свойства. Высокопроизводительное risc -подобное цпу:
- •Периферийные устройства:
- •Специфические свойства микроконтроллеров:
- •СmoSтехнология
- •Общее описание
- •Цикл выполнения инструкций.
- •Организация памяти. Память программы.
- •Память данных.
- •Специальные регистры
- •Регистр статуса status.
- •Pcl и pclath регистры
Какую работу нужно написать?
Память данных.
Память данных расположена в двух банках, которые содержат регистры общего назначения и специальные регистры для управления периферийными устройствами. Переключение между банками памяти осуществляется путем установки или снятия бита RP0 STATUS регистра. Каждый банк содержит по 128 байт:
00h-7Fh для первого банка.
80h-FFhдля второго банка.
Младшие адреса каждого банка заняты под специальные регистры. Остальные адреса - обычная статическая память. Некоторые специальные регистры одинаково доступны как в первом, так и во втором банке.
Рисунок 1-5 : карта памяти данных.
1-Логический регистр
2- Не используется в моделиPIC16C73
Специальные регистры
Специальные регистры - регистры, используемые ЦПУ и периферийными устройствами для управления и контроля за работой устройств, входящих в состав микроконтроллера. Это статическая память.
Специальные регистры можно условно разделить на две группы. Специальные регистры, используемые для управления самим процессором и специальные регистры, используемые для управления работой периферийных устройств.
Регистр статуса status.
Status registerсодержит флаги арифметических операций АЛУ,RESET флаг и биты выбора банка памяти данных.
Status registerможет быть
приемником при исполнении любой
инструкции, подобно регистрам общего
назначения. Если он является приемником
для любых инструкций, влияющих на флагиZ, DC и C,
запись в эти три бита будет заблокирована.
Рисунок 1-6 : регистр статуса
R- для чтения
для записи
IRP выбор банка для косвенной адресации (не используется)
RP1 выбор банка для непосредственной адресации
RP0 то же
TO Time-out bit
1 после включения питания, Clrwdt,Sllep
0 после переполненияWDT
PD Power down bit
1 после Clrwdt
0 послеSLEEP
Z Zero флаг
DC Digit Carry перенос из полубайта
C Carryперенос
Pcl и pclath регистры
Рисунок 1-7 :PCL
ИPCLATH регистры
Рисунок 1-8: непосредственная
и косвенная адресация
Косвенная адресация
INDF - это не физический регистр. Обращение к нему и есть косвенная адресация. Любая инструкция, обращающаяся кINDFполучает доступ к ркгистру, на который указываетFSR (File Select Register) регистр. Чтение этого регистра непосредственно возвратит в результате 00h.
Периферийные устройства.
Порты
Все порты в микроконтроллере управляютс с помощью дух регистров для каждого порта TRISx иPORTx. РегистрыTRISxрасположены во второй странице памяти данных, аPORTxв первой.TRISxуправляют направлением выводов (чтение-запись), а посредствомPORTxзадаются значения сигнала на них. В то же время все выводы портов мультиплексированы с выводами каких-либо устройств микроконтроллера.
PORTA
6-ти битный двунаправленный порт.Pin RA4 мультиплексирован с входом внешней частоты дляTMR0. Остальные биты мультиплексированы с входами каналовÀÖÏ. Управление ими происходит также с помощью регистраADCON1. Когда эти выводы работают как аналоговые входы, они читаются как «0». При стартовомresetони сконфигурированы как аналоговые входы.
PORTB
8-ми битный двунаправленный порт. Выводы<7:4> могут вызывать прерывание, которое может вывести микроконтроллер из состояния SLEEP.
PORTС
8-ми битный двунаправленный порт. Выводы порта имеют на входе триггеры Шмидта.
Таймеры
PIC16C73 имеет три модуля таймеров, каждый из которых может генерировать прерывание при переполнении. Два из них имеют еще и дополнительные модули ССР/PWM.
Тimer0
Это простой 8-ми битный счетчик. В качестве генератора тактовых импульсов он использует или Тosc/4 или внешний источник. Он может увеличиваться как по нарастающему, так и по спаду фронта. Есть программируемый предделитель. Он может работать или с этим таймером или сWDT.
Тimer1
Это простой 16-ти битный счетчик. В качестве генератора тактовых импульсов он использует или Тosc/4 или внешний источник. Он может работать даже в течение режимаSLEEP, если не синхронизирован с внутренней тактовой частотой. Он имеет программируемый предделитель.
Тimer2
Это простой 8-ми битный счетчик. В качестве генератора тактовых импульсов он использует Тosc/4 внутреннюю частоту. Он имеет программируемый предделитель и постделитель.
Модуль ШИМ
Для входа в этот режим вывод 2 порта С должен быть сконфигурирован как выход. В режиме ШИМ программист записывает 8 битное значение рабочего цикла в регистр CCPR1L(старший байт этого регистра используется как буфер для младшего регистра), а два младших бита берутся изCCP1CON<5:4>. Запись из младшего регистра в старший происходит при начале рабочего цикла.CCPR1Hдоступен по чтению, но не для записи. Период определяется регистромPR2.
PWM период ={PR2+1}*4Tosc*(TMR2 предделитель)
PWMрабочий цикл = (DC1)* Tosc*(TMR2 предделитель)
Рисунок 1-9 Модуль ШИМ
АЦП
8-ми битный АЦП имеет 5 входов, мультиплексируемых к одному модулю АЦП. Он может работать в режиме SLEEP. Он имеет три управляющих регистра:
регистр результатов A/D
регистр контроля 1A/D
регистр контроля 0A/D
Рисунок 1-10 модуль АЦП
В это режим можно войти путем выполнения инструкции SLEEP. В этом режиме для сохранения энергии все порты и таймеры, если они не зависят от внешнего источника тактовых импульсов, переходят в режим пониженного энергопотребления.
Выход из режима SLEEPпроисходит по следующим событиям:
Внешний RESET
WDT reset
Внешнее прерывание, поступившее на порт B
Прерывание от TMR1
CCP captureпрерывание
SSP start/stop условие определены
Остальные прерывания не приводят к выходу из этого режима.
После выхода из этого режима выполняется следующая после SLEEP инструкция