Общая характеристика PIC16F87X. Таймер ожидания запуска генератора после включения питания. Организация памяти программ

Страницы работы

40 страниц (Word-файл)

Фрагмент текста работы

6. Общая хар-ка PIC16F87X:


1) высокоскор. RISC-архитектура

2) 35 команд

3) Fтакт 0-20Мгц

4) сторожевой таймер с собств.

RS-генератором

5) сброс по включению питания

6) таймер сброса PWRT

7) таймер ожидания запуска генератора после включения питания

8) режим внутрисхемной отладки

9) широкий диапазон Uпит. От 2 до 5.5В

10) высокая нагрузочная способность портов ввода/вывода до25мА

11) малое энергопотребление

12) широкий набор периферийных модулей


Основные параметры:


1)  FLASH-память программ

2)  Память данных(байт)

3)  EEPROMданных (байт)

4)  Число источников прерываний

5)  Порты ввода/вывода

6)  Модуль 10-разрядного АЦП

7)  Корпус (кол-во выводов)


Организация памяти программ:

3 вида памяти: 1) ПП (типа FLASH )

2) ПД (АЗУ)

3) EEPROM (ПД)-8к-слов

INDF-признак косвенной адресации.

INTCON-регистр управления прерываниями:

7

6

5

4

3

2

1

0

GIE

PEIE

TOIE

INTE

RBIE

TOIF

INTF

RBIF

GIE=1-все прерывания разрешены

PEIE-разрешен. прерываний от периферийных устройств (=1-разрешены).

Запись и чтение EEPROMданных и FLASH-память программ:

Используется 6 регистров спец. функций:

EEDATA    регистр данных                                          EECON1                    регистр управления

EEDATH                                                                        EECON2

EEADR        регистр адреса

EEADRH

Запись/чтение EEPROMданных: в EEADR 128-бит EEPROM. Старший бит =0.

Запись/чтение FLASH-память программ - программа приостанавливается при записи и чтении

EEADRH – старший байт

EEADR – младший байт

8. МК семейства PIC17:

PIC17CXXX – семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (58 команд), работающие на частоте до 33 МГц, с объемом памяти программ до 16 Кслов. Кроме обширной периферии, 16-уровневого аппаратного стека и векторной системы прерываний, почти все микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8х8, выполняющий операцию умножения за один машинный цикл. Являются одними из самых быстродействующих в классе 8-разрядных микроконтроллеров;

2 подсемейства:


PIC17С4X

1) Память до 8 кило-слов,

2) EEPROM-многократно

программируемые с элементами стирания

3) 33 канала ввода/вывода

4) до 454 байт памяти данных

5) 4 таймера-счётчика (2 8ми-разрядных и 2 16ти-разрядных)

PIC17С75X

1) ПП до 16 кило-слов,

2) до 902 памяти данных,

3) 4 таймера-счётчика,

4)10 разрядный многоканальный АЦП,

5) 50 каналов ввода/вывода


Возможна работа с внешней памятью программ, существует 4 режима:

1)  Режим микропроцессора

2)  Р-м микроконтроллера

3)  Расширенный МК (предоставляет доступ к внутренней и внешней ПП, переключение происходит автоматически.)

4)  Защищённый МК (может устанавливать защиту от чтения кода)

Р-м микроконтроллера и защищённый МК предусматривает работу только с внутренней ПП. 64 кслов ПП.

9. МК семейства PIC 18: общая хар-ка, основные параметры, организация памяти программ и данных, банк доступа.

Микроконтроллеры семейств PIC компании объединяют все передовые технологии микроконтроллеров: электрически программируемые пользователем ППЗУ, минимальное энергопотребление, высокую производительность, хорошо развитую RISC-архитектуру, функциональную законченность и минимальные размеры. Широкая номенклатура изделий обеспечивает использование микроконтроллеров в устройствах, предназначенных для разнообразных сфер применения.

Высокая скорость выполнения команд в PIC-контроллерах достигается за счет использования двухшинной гарвардской архитектуры. Гарвардская архитектура основывается на наборе регистров с разделенными шинами и адресными пространствами для команд и данных. Все ресурсы микроконтроллера, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры.

Микроконтроллеры PIC содержат RISC-процессор с симметричной системой команд, позволяющей выполнять операции с любым регистром, используя произвольный метод адресации. Пользователь может сохранять результат операции в самом регистре-аккумуляторе или во втором регистре, используемом для операции.

1. Производительность 10 MIPS

2.Получение кодов, удобных для написания на языке Си.

3. Получит коды, которые совместимы с ранее выпускаемыми семьями.

Основные хар-ки.

1.Процессорное ядро:

·  Набор команд оптимизированных под компилятор Си 175 команд

·  Машинный код совместим с PIC 16 и 17

·  Линейная адресация программной памяти

·  Линейная адресация памяти данных

·  Производительность 10

·  8-разрядные данные и 16-разрядные команды

·  Приоритетные векторные системы прерываний

2. Передаточные устройства:

·  Нагрузочная способность линии ввода/вывода 25мА

·  Таймеры  

Таймер 0 (счетчик 8 или 16 бит) с 8-разрядным предделителем

Таймер 1 (16 бит)

Таймер 2 (8 бит +рег.  периода ШИН)

Таймер 3 (16 бит)

·  два модуля сравнения захвата ШИН (2 ССР)

·  модуль синхрон. последоват. порта (MSSP) в двух режимах: SPI и C

·  универсал. синхр.-асинх. интерфейс (USART)

·  параллельный интерфейс  PSP

·  10-разрядный АЦП(многоканальный)

·  WDT-таймер

·  SLEEP-режим

·  PLVD - программный датчик по падению

·  BOR – программный сброс по падению

·  широкий диапазон : от 2.5 до 5.5 В

·  широкий диапазон рабочей температуры: от -40° до +125 ° С

Система обозначений:

Организация памяти:

3 вида:

1.Память программ

2. Память данных

3. EEPRom- данных

PC

1)Память программ

PC<20:0>

Уровень 1

Стек (команд)

.

.

.

Уровень 31

0000h

Вектор сброса

0018h

Вектор прерывания с высоким приоритетом

0018h

Вектор прерывания с низким приоритетом

3FFFh

FFFFh

Чтение как 0

252/452

242/442

для PIC 18 C 242/442 0000h -3FFFh

для PIC 18 C 252/452 000h –FFFFh

≥ 200 000h – для записи слова конфигурации и номера идентификации

2) Память данных

В виде массива 8-разр. ячеек (регистры) ОЗУ

4096 – регистров

12-разр. адрес

16 банков по 256 регистров

GPR (РОН)

SER (PCT) только в 15 банке

ВSR <3:0>

000h

           Банк о
0000


07Fh

080h

           Банк 1
0001


0FFh

ОЗУ быстрого доступа

00h

GPR

FFh

100h

1FFh

GPR

00h

FFh

200h

.

.

.

00h

           Банк 15
1111


F00h

F7Fh

F80h

Не используется

FFFh

SFR

FFh

BSR (банк выбора регистра ) использ. только младшую тетраду

Если а=1, то исп-ся ВSR

а=0, то исп-ся банк доступа

MOVLB K, K →(BSR)

MOVLB 0×01; Выбор 1-го банка

12-разр. адрес

BSR <3:0>

3

0

7

команды

0

…..


00h

01h

0Fh

000h

0FFh

100h

FFh

F00h

FFFh

б.1

б.2

б.15

BSR             xxxx 0000 – 0-й банк   загруж. только младшая тетрада

xxxx 1111 – 15-й банк

MOVLB const; const→ (BSR)

MOVLB 0×01; выбор 1-го банка или        MOVLB 3'0001'

“-“ прямой адресации: указывает адрес регистра

11. МК семейства PIC18: порты ввода-вывода, стек и его разновидности.

“Чтение – модификация – запись”

Каждую порту соответствуют 3 регистра

1.  TRIS – регистр выбора направления передачи данных

PORT – регистр порта (реал. лог. уровни на выводах)


LAT – регистр – защелка данных

Инициализация порта А  RA0, RA1, …RA6

CLRF PORTA; очистить триггеры PORTA

или

CLRF LATA, 0; очистить триггеры LATA

MOVLW 0×CF; в регистр WREG записать B’11001111’

MOVWF TRISA, 0; настроить линии RA (0,1,2,3,6) на ввод; линии RA (4,5) на вывод.

Стек МК.

31 ячейка памяти разрядность ячейки: 21 бит

Для сохранения адреса возврата при вызове п/п.

7

6

5

4

3

2

1

0

STKFUL

STKUNF

-   

SP4

SP3

SP2

SP1

SP0

R/C - 0

R/C - 0

R- 0

 

R/W - 0

STKFUL – переполнения если=1, то стек полон или переполнен если STKUNF=1, то стек исчерпан

TOS U – верхн.рег.

TOS H – cт.рег.

TOS L – мл.рег.

TOS – имя вершины стека

Быстрый стек.

Использ. при обработке прерываний с высоким приоритетом

RETFIE, CALL, RETURN

Если FAST=1, то используется быстрый стек.

CALL SUBR, 1; вызов п/п с сохранением сод-го WREG, STATUS, BSR в быстром стеке

.

.

.

SUBR ; п/п SUBR

…..

…..

RETURN 1; возврат с восстановлением контекста

10. МК семейства PIC18: особенности системы команд.

Мнемоника

Краткое описание

Циклов

16-ти битный код

Изменяет флаги

Прим.

БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

ADDWF f,d,a

Сложение W и f

1

0010 01DA FFFF FFFF

C, DC, Z, OV, N

1, 2, 6

ADDWFC f,d,a

Сложение W и f с использованием флага переноса

1

0010 00DA FFFF FFFF

C, DC, Z, OV, N

1, 2, 6

CPFSEQ f,a

Операция сравнения f с W, пропуск след. команды если f=W

1(2,3)

0110 001A FFFF FFFF

Нет

4, 6

CPFSGT f,a

Операция сравнения f с W, пропуск след. команды если f>W

1(2,3)

0110 010A FFFF FFFF

Нет

4, 6

CPFSLT f,a

Операция сравнения f с W, пропуск след. команды если f<W

1(2,3)

0110 000A FFFF FFFF

Нет

4, 6

DCFSNZ f,d,a

Уменьшение значения регистра f, пропуск следующей инструкции если результат не равен нулю

1(2,3)

0100 11DA FFFF FFFF

Нет

1, 2, 3, 4, 6

DECF f,d,a

Уменьшение значения регистра f

1

0000 01DA FFFF FFFF

C, DC, Z, OV, N

1, 2, 3, 4, 6

NEGF f, a

перевод в обратную форму записи содержимого регистра f

1

0110 110A FFFF FFFF

C, DC, Z, OV, N

1, 2, 6

RLCF f, d, a

Сдвиг влево регистра f через перенос

1

0011 01DA FFFF FFFF

C, N, Z

6

RLNCF f, d, a

Сдвиг влево регистра f (без переноса)

1

0100 01DA FFFF FFFF

N, Z

6

RRCF f, d, a

Сдвиг вправо регистра f через перенос

1

0011 00DA FFFF FFFF

C, N, Z

6

RRNCF f, d, a

Сдвиг вправо регистра f (без переноса)

1

0100 00DA FFFF FFFF

N, Z

6

SUBWF f,d,a

Вычитание W из f

1

0101 11DA FFFF FFFF

C, DC, Z, OV, N

6

SUBWFB f,d,a

Вычитание W из f c заемом

1

0101 10DA FFFF FFFF

C, DC, Z, OV, N

1, 2, 6

БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

BCF f,d,a

Сброс бита в f

1

1001 BBBA FFFF FFFF

Нет

1, 2, 6

BSF f,d,a

Установка бита в f

1

1000 BBBA FFFF FFFF

Нет

1, 2, 6

BTFSC f,b,a

Пропуск следующей команды если бит сброшен

1(2,3)

1011 BBBA FFFF FFFF

Нет

3, 4, 6

BTFSS f,b,a

Пропуск следующей команды если бит установлен

1(2,3)

1010 BBBA FFFF FFFF

Нет

3, 4, 6

BTG f,b,a

Инвертирование бита в регистра f

1

0111 BBBA FFFF FFFF

Нет

1, 2, 6

СИМВОЛЬНЫЕ КОМАНДЫ

ADDLW k

Сложение W и k

1

0000 1111 KKKK KKKK

C, DC, Z, OV, N

ANDLW k

Логическая операция И W и k

1

0000 1011 KKKK KKKK

Z, N

IORLW k

Логическая операция ИЛИ W и k

1

0000 1001 KKKK KKKK

Z, N

MOVLB k

Пересылка литеры в регистр BSR

1

0000 0001 KKKK KKKK

Нет

MOVLW k

Пересылка литеры в регистр W

1

0000 1110 KKKK KKKK

Нет

MULLW k

Умножение константы и W

1

0000 1101 KKKK KKKK

Нет

RETLW k

Возврат прерывания с записью константы в регистр W

2

0000 1100 KKKK KKKK

Нет

SUBLW k

Вычитание W из константы

1

0000 1000 KKKK KKKK

C, DC, Z, OV, N

XORLW k

Логическая операция исключающего ИЛИ W и k

1

0000 1010 KKKK KKKK

Z, N

ТАБЛИЧНЫЕ КОМАНДЫ

TBLRD (*; *+; *-; +*)

Чтение таблицы

2

0000 0000 0000 10NN NN=0 * NN=1 *+

Нет

TBLWT (*; *+; *-; +*)

Запись в таблицу

2

0000 0000 0000 00NN NN=0 * NN=1 *+

Нет

КОМАНДЫ УПРАВЛЕНИЯ

BC n

Переход если установлен флаг переноса (CARRY)

1(2)

1110 0010 NNNN NNNN

Нет

BN n

Переход если установлен флаг отрицательного результата (N)

1(2)

1110 0110 NNNN NNNN

Нет

BNC n

Переход если сброшен флаг переноса (CARRY)

1(2)

1110 0011 NNNN NNNN

Нет

BNN n

Переход если сброшен флаг отрицательного результата (N)

1(2)

1110 0111 NNNN NNNN

Нет

BNZ n

Переход если сброшен флаг нулевого результата (Z)

1(2)

1110 0001 NNNN NNNN

Нет

BOV n

Переход если установлен флаг переполнения (OV)

1(2)

1110 0100 NNNN NNNN

Нет

BRA n

Безусловный переход

2

1101 0NNN NNNN NNNN

Нет

BZ n

Переход если установлен флаг нулевого результата (Z)

1(2)

1110 0000 NNNN NNNN

Нет

МПТ 81.jpg
МПТ 82.jpg

2. Язык Ассемблер MPASM для  PIC—микроконтроллеров. Примеры записи програм

1.  Система команд МК PIC16F84 общая характеристика. Прямая и косвенная адресация.

3.Реализация временных задержек

19.Пример программы для С18 управление светодиодами(включение-- выключение)

4. Программирование

упр. светодиодом и семисегментным индикатором:

“светятся”, где 0

Семисегментный код

Двоичный           HEX- код

1000 0000              0х80

1111 0010              0хF2

………….               …..

0001 1100              0x1C

; SEVEN_SEG – п/п перекодировки

; входной параметр – рег. W – двоичный (позиционный) код символа (HEX-код)

; выходной параметр – рег. W –семисегментный код (HEX-код)

SEVEN_SEG

ANDLW  0x0F; Маскирование ст. тетрады рег.W

ADDWF  PCL, F; Cложение рег.W и PCL (прогр. счетчик)

RETLW    0x80;   возврат с W= 0x80   

RETLW    0xF2;  возврат с W=0xF2 (символ “1”)

RETLW    0x1C; возврат с  W=0x1С (символ “F”)

; Программа вывода на индикатор

; Вх. Параметр – рег. W – двоичн. (HEX-код) символа

OUTP_HG

CALL SEVEN_ SEG; п/п перекодировки

MOVWF PORTB; Вывод в PORTB

RETURN

CALL OUTP_HG

      

TEMPA       EQU 0x10

COUNT       EQU 0x1C       ;  (Счетчик кол-ва нажатий)

CLRF           COUNT           ;  очистить счетчик COUNT

CALL           OPROS_RA0  ;  п/п опроса RA0

BTFSC         TEMPA, 0        ; тестирование линий RA0

Пропустить, если RA0=0 (SB1  нажата)

GOTO           WAIT              ; цикл ожидания

INCF             COUNT, F      ; инкремент счетчика

MOVF          COUNT,W      ; пересылка COUNT в рег. W

CALL           SEVEN_SEG   ;  п/п перекодировки

MOVWF      PORTB            ;  вывод на индикатор

BTFSS          TEMPA, 0       ;  если RA0=1, то пропустить команду

GOTO          TEST                ; цикл отжатия  кнопки SB1

GOTO           AGAIN                  

Формирование звукового сигнала

 f=1кГц                             

При нажатии на кнопку должен включиться динамик.

ORG         0x000

CALL       INIT_PORTS

AGAIN

CALL       OPROS_RA0      ; П/п опроса RA0

CALL       SB1_BA1            ; П/п звука

GOTO      AGAIN

INIT_PORTS

BSF         STATUS  RP0     ; Выбор BANK1

MOVLW  0xFF

MOVWF TRISA                 ; Настроить PORTA на ввод

CLR W                                 ;Cбросить регистр W

MOVWF TRISB                 ;Настроить PORTB на вывод

BCF         STATUS, RP0    ;Выбор BANK0

BCF         PORTB, 1            ;Вывести RB1=0

RETURN

TEMPA_

SB1_VD1                               ; П/п звука на BA1

BTFSC      TEMPA,0            ;пропустить команду, если SB1 нажата

GOTO        MET

BSF            PORTB,1            ;Вывод RB1=0

CALL         DEL 500MKS     ;задержка на 500мкс

BCF            PORTB,1            ;Вывод RB1=0

CALL         DEL 500MKS;

MET

RETURN                                 ; Возврат из п/п

Опрос состояния кнопки и переключателя

OPROS_RAO

MOVF PORTA, W                 ; пересылает из PORTA в W

ANDLW B ‘0000 0001’         ; выделить 0-й разряд

MOVWF TEMPA                   ; Пересылка в TEMPA

CALL DEL 20MS                  ; Задержка на 20 мс

MOVF PORTA, W                 ; пересылка из PORTA в W

5. Двунаправленный порт ввода/вывода PORTB.

МПТ 44

7.МК семейств PIC16F87x состав периферийных модулей и модуль АЦП:

- таймер 0 (TMR0) : входит 8-ми разрядный таймер-счётчик.

- таймер 1 (TMR1) : входит 16-ти разрядный таймер-счётчик с возможностью подключения внешнего резонатора.

- таймер 2 (TMR2) : входит 8-ми разрядный таймер-счётчик с 8-ми разр. предварительным делителем и выходным делителем.

- 2 модуля : CCP1,CCP2-модули захвата/сравнения/ШИМ. 16-ти разр. захват/16-ти разр. сравнение/10-ти разр. ШИМ.

- модуль многоканальн. 10-ти разр. АЦП (5 или 8 каналов).

- последовательный синхронно-асинхронный приёмо-передатчик USART.

- модуль последовательного синхронного порта MSSP.

Модуль 10-ти разр. АЦП:

5 каналов для МК в 28- выводном корпусе и 8 – в 40-выводн. корпусе.

ADRESH-регистр результата (старший байт кода АЦП)

ADRESL-мл. байт

ADCON0, -регистр управления

ADCON0:

7

6

5

4

3

2

1

0

ADCS1

ADCS0

CHS2

CHS1

CHS0

GO/DONE

-----

ADON

Выбирает источник тактового сигнала для работы с АЦП .

Если режим АЦП SLEEP, нужен внутренний тактовый генератор Frc.

GO/DONE-бит запуска АЦП (=1-начинается преобразование; =0-преобр

Похожие материалы

Информация о работе