Главная страница  Комбинированное использование портов 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ 17 ] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

retlw

retlw

retlw

retlw

retlw

retlw

retlw

retlw

Сохраняем состояния портов A и В во время сканирования клавиатуры.

SavePorts

RestorePorts

UpdateDisplay

movf

P0RT A.w

niovwf

PABuf

; Сохраняем порт A.

clrf

PORT.A

; Выключение индикации.

movf

P0RT B,w

movwf

PBBuf

i Сохраняем порт В.

movlw

Oxff

; На всех линиях порта В высокий уровень

movwf

PORT.B

STATUS,RPO

; Банк 1.

OptionReg,?

; Разрешаем подключение

; подтягивающих резисторов.

movlw

B-11110000-

; Старшие четыре разряда порта В - входы

movwf

TRISB

; Младшие - выходы.

STATUS,RPO

: Банк 0.

return

1ваем порты A и В после сканирования клавиатуры.

movf

PBBuf,w

; Восстановление содержимого

ffiOVW

fPORTJ

; порта В.

movf

PABuf,w

; Восстановление содержимого

movwf

PORT A

; порта А.

STATUS, RPO

; Банк 1.

OptionReg,?

; Запрет подтягивающих резисторов.

clrf

TRISA

; Все линии порта А - выходы.

clrf

TRISB

; Все линии порта В - выходы.

STATUS,RPO

; Банк 0.

return

индикации.

movf

PORT A,w

clrf

PORT A

; Отображение lIpdateLsd

; Отображение Update2ndLsd

; Отображение Update3rdLsd

; Отображение UpdateMsd

DisplayOut

andlw

movwf

btfss

btfsc

goto

btfsc

goto

btfsc

goto

первой

OxOf TempC TempC,4 TempC

STATUS,CARRY TempC.3 TempC,0 ; UpdateMsd TempC,1 UpdateSrdLsd TempC,2 Update2ndLsd цифры.

movf LsdTime, w andlw OxOf goto DisplayOut второй цифры.

swapf LsdTime,w andlw OxOf goto DisplayOut третьей цифры.

movf MsdTime,w andlw OxOf goto DisplayOut четвертой цифры.

swapf

MsdTime,w

andlw

OxOf

call

LedTable

movwf

PORT.B

movf

TempC,w

movwf

PORT A

return

Считывание Lsd в регистр W. Маскирование старшего полубайта. Переход к индикации.

Считывание Msd в регистр W. Индикация.

Считывание семисегментного кода цифры. Управление светодиодами.

: Таблица индикации. i-edTable

addwf PCL

retlw В-00111111-

retlw В-00000110-

retlw ВОЮНОЦ-

Нодификация программного счетчика (PC). Индикация цифры 0. Индикация цифры 1. Индикация цифры 2.



retlw

ВОЮОШГ

Индикация цифры 3.

retlw

B01100110

Индикация цифры 4.

retlw

B01101101

Индикация цифры 5.

retlw

В-0111110Г

Индикация цифры 6.

retlw

В 00000111

Индикация цифры 7.

retlw

B01111111

Индикация цифры 8.

retlw

B011001ir

Индикация цифры 9.

retlw

BOIHOIir

Индикация цифры А.

retlw

B01111100-

Индикация цифры В.

retlw

воотоог

Индикация цифры С.

retlw

B01011110-

Индикация цифры D.

retlw

В-0111100Г

Индикация цифры Е.

retlw

Bomooor

Индикация цифры F.

ВНЕШНЯЯ ПЕРИФЕРИЯ

Хотя микроконтроллеры постоянно совершенствуются и их технические возможности расширяются, они не всегда имеют аппаратные узлы, реализующие необходимую функцию. Причины разные: либо функция еще не реализована в данном семействе микроконтроллеров, либо микросхема конкретного типа, на который вы ориентируетесь, ею не обладает. Это особенно актуально для Р1С-микроконтроллеров 16С5Х, не обладающих развитыми аппаратными ресурсами для реализации интерфейсных функций.

Существует два способа реализации необходимых функций. Пер вый путь - программный. Но это не всегда возможно либо в силу особенностей функции, либо ввиду чрезмерной нагрузки на ЦПУ.

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

Программная эмуляция интерфейса не вызовет затруднений, если интерфейс асинхронный, то есть обмен не тактируется и ско рость обмена невелика. Если же обмен по интерфейсу синхронны и время его выполнения жестко ограничено, можно столкн}ТЬ с трудностями из-за загруженности микроконтроллера.

(начала рассмотрим основные особенности интерфейса парал-;,еЛЬНОГОтипа,

Стандартная периферия

Под стандартной периферией понимается большинство периферийных интерфейсных схем, предназначенных обычно для восьмибит-jjjjx микропроцессоров: РЮ - фирмы Intel, PIA - фирмы Motorola и т. д.

За редкими исключениями эти микросхемы имеют следующие выводы (рис. 3.35, правая сторона):

4 восемь линий данных DO - D7; 4 линия считывания /записи R/W; # одна или несколько линий выбора (разрешения); f одна или несколько линий адресации внутренних регистров (в зависимости от сложности микросхемы).

Рис. 3.35

Использование внешней стандартной периферии с PIC-микроконтроллером 16СХХ

PIC 16CXX

Стандартная

периферия

На рис. 3.35 показана микросхема с линией выбора микросхемы и линией выбора регистра RS. Очевидно, что при использовании Нескольких микросхем необходимо организовывать несколько линий RS. Линии же CS могут быть объединены для экономии линий Параллельных портов.

Как вы могли заметить, схемы на рис. 3.35 и 3.24 похожи. И это не Удивительно, поскольку использованный ЖКИ имеет контроллер со *Ндартным параллельным интерфейсом.

Поэтому программа, представленная листингом 3.10, не вызовет

ас затруднений: она функционирует точно так же, как программа

Равления ЖКИ, и включает следующие этапы:



♦ обнуление линии R/W;

♦ установка соответствующего уровня линии RS в зависимости Of того, к какому регистру должен обратиться микроконтроллер.

♦ выдача данных на линии DO-D7;

♦ установка логической единицы на линию CS, чтобы разрешить прием сообщения;

♦ установка логического нуля на линию CS, чтобы защелкнуть дац. ные, принятые по линиям DO -D7.

Единственное, что нужно принимать в расчет при создании схем с таким интерфейсом, это ограничения по скорости. Действитель но, при использовании обычного восьмибитного РГС-микроконтрод. лера, тактируемого частотой 4 МГц, невозможно обеспечить скорость передачи выше одного мегабайта в секунду. При тактовой частоте PIC-микроконтроллера в 20 МГц превысить этот предел довольно легко. И наоборот, в некоторых случаях для доступа к периферийной микросхеме может потребоваться временная задержка, чтобы замедлить обмен.

Листинг 3.10

; Управление периферией по стандартному параллельному интерфейсу. ; Программа предназначена для восьмибитного микроконтроллера ; и обеспечивает считывание и запись.

. запись данных, содержащихся в переменной temp, в периферийную микросхему.

RS =

data =

ra.2 ra.l ra.O rb

Линия выбора регистра.

0 = запись, 1 = считывание.

1 = обмен разрешен, О = запрещен. Данные.

; Определение переменных величин, org 6

temp ds 1 ; Служебный регистр,

org О

; Определение используемого PIC.

device picl6c54,xt osc,wdt off,protect off reset start

start mov mov mov mov

ra,#0 rb,#0 !ra,#Oh !rb,#Oh

Инициализация порта A. Инициализация порта В. Все линии порта А - выходы. Все линии порта В - выходы.

ecrit clrb clrb mov setb nop clrb

RS ; Выбор регистра.

RW ; Если RW = О, производится операция записи,

data,temp ; Выдача данных.

CS ; Выбор микросхемы (исполнение операции).

; Задержка в одну операцию.

CS ; Завершение записи.

Считывание данных из периферийной микросхемы в переменной temp.

!rb.tt255

; Порт В - входной.

setb

; RS = 1 (например).

setb

; Если RW = 1, выполняется считывание

setb

; Выбор микросхемы.

; Задержка в одну операцию.

temp, data

; Считывание данных.

clrb

; Завершение операции.

Взаимодействие с периферией

по последовательному интерфейсу

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

Некоторые из этих микросхем имеют специфичный интерфейс: используемый алгоритм обмена сигналами и их временные диаграммы свойственны только данной микросхеме. Конечно, во многих случаях микросхемы различных типов и различных фирм оказываются похожими, но их интерфейсы все же не стандартизованы.

Другие микросхемы, напротив, используют последовательные стандартные шины, такие как, например, шина PC. Изначально эта И1ина была предложена фирмой Philips, а сейчас микросхемы, под-рживающие ее, выпускаются многими производителями. Она Применяется в устройствах, выполняющих самые разные функции: Контроллерах индикации, микросхемах энергонезависимой памя-Часов реального времени, телевизионных микросхемах и т.д. вным преимуществом данной шины является то, что для органи-Ции двухстороннего обмена в ней использ}тотся лишь две линии Ьязи. Таким образом, она занимает только две линии портов микро-

*роллера (в некоторых случаях три).



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ 17 ] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

© 2000 - 2022 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.