Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПСУ новая 2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.56 Mб
Скачать

Пример программы и её оформление

.INCLUDE "8515def.inc" ;Подключить файл описаний имён.

;

;*************** Задание символических имён

;

.def temp=R16 ; Назначить регистру R16 имя temp.

; Регистр R16 будет использоваться для

; временного хранения.

;

;*************** Рабочая программа

;

.CSEG ; Оператор, определяющий начало

; программного сегмента.

.ORG $0 ; Оператор, определяющий физический

; адрес расположения команд в памяти

; программ, следующих за ним.

rjmp reset ; Переход в программу после сброса.

.ORG $20

start: ; Метка подпрограммы с именем "start"

sub R4, R7 ; Выполнить действие R4← R4-R7.

sts $a0, R4 ; Запись результата вычитания R4-R7 в

; ячейку 160 СОЗУ.

Ret ; Возврат из подпрограммы.

;*************** Начало основной программы

;*********** Инициализация

reset:

ldi temp, low(RAMEND) ; Инициализация стека.

out SPL, temp ;

ldi temp, high(RAMEND) ;

out SPH, temp ;

ser temp ; temp = 0xFF.

out DDRD, temp ; Настроить порт D как вывод.

;

;*********** Программа

;

m1:

mov R7, R5 ; Из R5 значение "B" переписать в R7.

mov R4, R2 ; Из R2 значение "A" переписать в R4.

cp R4, R7 ; Сравнить А и В (R4-R7)

brcs m2 ; Если флаг переноса (заёма) С=1

; (А<В), то переход на метку m2

add R4, R7 ; Если А>В выполнить R4←R4+R7

out PORTD, R4 ; Вывод результата операции R4+R7 в PD

rjmp m1 ; Переход на метку m1.

m2:

rcall start ; Вызов ПП start

rjmp m1 ; Переход на метку m1.

Микропроцессорная система управления на базе мк at90s8515

Микроконтроллеры применяются для построения различных МП систем управления и приборов. При недостаточных аппаратных ресурсах микроконтроллеров, используемых при проектировании МПСУ и в случае, если в них имеется возможность подключения внешней памяти данных, МПСУ может быть реализована с соответствующей системой шин (рис. 5.19). Как уже отмечалось ранее объём внешней памяти в МК AT90S8515 может быть доведён до 64 К. Разрешение работы с внешней памятью в МК осуществляется установкой бита SRE в регистре управления MCUCR.

Протоколы обмена (рис. 5.18) в интерфейсе едины как для памяти, так и для контроллеров связи с внешними устройствами (КВУ). По умолчанию обмен с внешним ОЗУ осуществляется за 3 цикла. Длительность обращения может быть увеличена на один цикл установкой бита SRW в регистре MCUCR. В протоколе рис. 5.18 это цикл Т3. Порт РА микроконтроллером используется как мультиплексированная шина адреса/данных. Поэтому для сохранения младшего байта адреса необходимо использовать регистр адреса РА. Запись в регистр осуществляется по спаду сигнала /ALE, формируемого автоматически микроконтроллером при обращении по адресам внешнего ОЗУ. В качестве РА могут использоваться регистры, например, серии КР1533.

Рис. 5.18. Протоколы обращения к внешнему ОЗУ в МК AT90S8515

Рис. 5.19. Структурная схема СУ на базе МК AT90S8515

Рис. 5.20. Схема формирования шины адреса и шины данных в МПСУ на базе МК

В схеме (рис. 5.19) общее адресное пространство делится между ОЗУ и КВУ. Например, выделим область $FFFF÷$FFF0 шестнадцати адресов для КВУ из области 64 К -, остальные адреса $FFF0÷$0000 отойдут к ОЗУ. Дешифратор адреса для такого распределения представлен на рис. 5.20. При обращении к внешним устройствам старшие 12 линий шины адреса (РС7-РС0, РА7-РА4) должны быть равны "1".

В этом случае на входы С1 и С2 дешифратора поступают активные уровни, разрешающие его работу и на одном из выходов DC (ADR15-ADR00) появится сигнал выбора ВУ. Номер линии определяется кодом РА3-РА0.

При обращении к памяти на линиях РС7-РС0, РА7-РА4 будет ходя бы один "0", что соответствует блокировке работы DC.

Таким образом, в данной схеме получили радиальную шину адреса внешних устройств (ША ВУ) и магистральную ША ОЗУ.

В случае если необходимость во внешней памяти отсутствует, а КВУ меньше 256, то можно отказаться от регистра адреса и DC непосредственно подключить к порту РС. Если необходимых адресов для выбора устройств ≤ 8, то порт РС можно рассматривать как радиальную шину адреса для выбора внешних устройств с адресами $0100 (РС00="1"), $0200 (РC01="1"), $0400 (PC02="1), $0800 (PC03="1"), $1000 (PC04="1"), $2000 (PC05="1"), $4000 (PC06="1"), $8000 (PC07="1"). Т.е. каждая линия порта используется для выбора одного из восьми устройств.

Структура КВУ определяется функциями, которые он должен выполнять. При организации ввода/вывода дискретных сигналов (сигналов типа включено/выключено) в качестве основных элементов используются регистры (рис. 5.21) или буферы. В схеме рис.5.21 регистр RG1 используется для вывода управляющих сигналов на внешние устройства, а RG2 для ввода информации с датчиков типа включено/выключено. При использовании МПСУ в условиях промышленных помех на выходах и входах КВУ устанавливают оптронную (ОГР) или релейную гальваническую развязку.

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

Рис. 5.21. Схема организации ввода/вывода информации на ВУ

На рис. 5.22 приведена схема матричной клавиатуры 4х4, подключаемой к порту В микроконтроллера AT90S8515. Столбцы матрицы подключены к линиям порта РВ3-РВ0, а строки - к РВ7-РВ4. Для исключения короткого замыкания при одновременном нажатии двух или более клавиш в цепи столбцов и строк включены резисторы. При нажатии любой клавиши на входе PD2 (INT0) формируется сигнал низкого уровня, который используется для инициации внешнего прерывания. В подпрограмме обслуживания данного прерывания необходимо предусмотреть программное исключение дребезга контактов, которое осуществляется с помощью временных задержек, формирование и считывание кода нажатой клавиши. Один из вариантов формирования и считывания кода нажатой клавиши представлен в файле документации на МК АТ90S8515 фирмы Atmel AVR Keypad 1232.pdf.

При отсутствии возможности подключения клавиатуры непосредственно к выводам какого либо порта, подключение осуществляется к входному регистру RG2 (например, столбцы) и выходному RG1 (например, строки) в соотвествии с рис. 5.21 без ОГР.

В некоторых МПСУ и приборах нет необходимости в клавиатуре с большим набором клавиш, так как она используется очень редко, например, при первоначальной настройке системы, либо в некоторых других случаях. В таких МПСУ используется многофункциональная многоуровневая клавиатура. Схема клавиатуры с 4 клавишами (например, клавиши: SET, ESC, ENTER, ↓) и аппаратным исключением дребезга контактов представлена на рис. 5.24. Иключение дребезга контактов выполняется на основе RS - триггеров. В исходном состоянии на выходах триггеров логическая "1". При нажатии любой клавиши на выходе схемы DD2.1 формируется высокий уровень напряжения, который инициирует внешнее прерывание. В подпрограмме обслуживания прерывания осуществляется считывание кода нажатой клавиши и его анализ. Программно осуществляется также исключение варианта одновременного нажатия двух и более клавиш. В данном примере коды клавиш следующие: SB1 - $7 (0111), SB2 - $B (1011), SB3 - D (1101), SB4 - E (1110).

В МПСУ с шинной структурой информация кода нажатой клавиши в данной схеме вводится с использованием входного регистра RG2 (рис. 5.21) без ОГР.

Рис. 5.22. Схема подключения матричной клавиатуры к МК

Рис. 5.24. Схема клавиатуры с аппаратным исключением дребезга контактов

Для отображения информации используются различные средства индикации: мониторы, семисегментные индикаторы, жидкокристаллические модули (ЖКМ).

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

В большинстве ЖКМ используется контроллер HD44780 фирмы Hitachi, который фактически является промышленным стандартом.

Контроллер HD44780 потенциально может управлять двумя строками по 40 символов в каждой (для модулей с четырьмя строками по 40 символов используются два однотипных контроллера), с матрицей символов 5 х 7 точек.

Используются конструктивы ЖКМ с различным количеством символов. В рамках одного конструктива ЖКМ может иметь ряд модификаций, отличающихся цветом фона и цветом символов, а также по применяемым ЖК-материалам и структуре: TN, STN и FSTN типа. ЖКМ STN и FSTN типа имеют более высокую стоимость, но одновременно обладают повышенной контрастностью и вдвое большим максимальным углом обзора, причем ЖКМ FSTN типа имеют лучшие характеристики, чем STN.

 ЖКМ могут оснащаться задней подсветкой, размещаемой между ЖКМ и печатной платой, для чего модули производятся с полупрозрачным или прозрачным задним слоем (в последнем случае считывание информации возможно только при наличии подсветки). Подсветка может быть реализована несколькими способами: с помощью электролюминесцентной панели, представляющей собой тонкую пленку, излучающую свет при прикладывании переменного тока повышенного напряжения порядка 100...150 В; люминесцентной лампой с холодным катодам (также работающей при повышенном напряжении), излучение которой равномерно распределяется по всей площади ЖКМ с помощью отражателя или плоского световода; третий вариант - подсветка на основе светодиодной матрицы.

Соединение ЖКМ, например, с МК осуществляется через разъём, назначение и номера контактов которого приведены в табл. 5.35.

Таблица 5.35. Описание выводов стандартного разъема ЖКМ на базе HD44780

конт.

Наименование вывода

Описание

1

USS

 (-) Питание 0 В.

2

UDD

 (+) Питание +5 В.

3

U0

 Напряжение смещения, управляющее контрастностью.

4

RS

 Вход. "1" - передаются данные, "0" - команды.

5

R/W

 Вход. "1" - выполняется операция чтения, "0" - записи.

6

E

 Вход. Строб, сопровождающий передаваемую информацию по шине "Команды/ Данные".

7-14

DB0 - DB7

 Двунаправленная шина "Команды/Данные".

Рис. 5.25. Схема подключения ЖКМ (LCD) к микроконтроллеру (MCS)

 В соответствии с временными диаграммами чтения и записи (рис. 5.26, рис. 5.27) исходное состояние сигналов Е=0, R/W=0, что обеспечивают на шине данных DB7-DB0 состояние высокого импеданса (НI). Значение сигнала RS - произвольное.

При подключении ЖКМ к современным быстродействующим МК, необходимо тщательно контролировать минимальные значения временных характеристик выполняемых циклов обмена, указанных в таблице 5.36, 5.37 и при необходимости вводить задержки. Другим вариантом синхронизации работы МК и ЖКМ является чтение BUSY-флага, который сбрасывается когда закончены все внутренние операции в ЖКМ.

Рис. 5.26. Временная диаграмма операции чтения

Таблица 5.36. Значения временных характеристик при операции чтения (HD44780)

Параметр

Обозначение

Мин.

Макс.

Период сигнала Е, нс

tcycE

500

-

Положительный полупериод сигнала Е, нс

PWEH

230

-

Фронт/спад сигнала Е, нс

tEr, tEf

-

20

Время установки адреса, нс

tAS

40

-

Время удержания адреса, нс

tAH

10

-

Время задержки данных, нс

tDDR

-

160

Время удержания данных, нс

tDHR

5

-

Последовательность действий при выполнении операции чтения для 8-разрядной шины следующая:

  • установить значение линии RS (РС7);

  • установить линию R/W (РС6) = 1;

  • установить линию Е (РС5) = 1;

  • считать значение байта данных с линий шины DB0 - DB7 (РА0 - РА7);

  • установить линию Е (РС5) = 0;

  • установить линию R/W (РС6) = 0.

При записи информации в ЖКМ выполняется следующая последовательность:

  • установить значение линии RS (РС7);

  • установить линию R/W (РС6) = 0;

  • установить линию Е (РС5)= 1;

  • вывести значение байта данных на линии шины DB0 - DB7 (РА0 - РА7);

  • установить линию Е (РС5)= 0.

Запись информации в ЖКИ происходит по спаду сигнала Е.

Рис. 5.27. Временная диаграмма операции записи

Таблица 5.37. Значения временных характеристик при операции записи (HD44780)

Параметр

Обозначение

Мин.

Макс.

Период сигнала Е, нс

tcycE

500

-

Положительный полупериод сигнала Е, нс

PWEH

230

-

Фронт/спад сигнала Е, нс

tEr, tEf

-

20

Время установки адреса, нс

tAS

40

-

Время удержания адреса, нс

tAH

10

-

Время установления данных, нс

tDSW

80

-

Время удержания данных, нс

tH

10

-

Если во время цикла записи МК передает в ЖКМ код команды, то этот код записывается в регистр команд, и команда сразу же начинает выполняться. Если МК передает в ЖКМ данные, которые представляют собой ASCII-коды отображаемых символов, то они записываются в буфер данных (DDRAM), который обычно содержит 80 ячеек. При записи или считывании буфера данных обращение осуществляется к ячейке, на которую в данный момент указывает курсор.

В таблице 5.38 приведена система команд ЖКМ на базе HD44780.

Вывод на экран символа производится записью его кода в регистр данных (DR) ЖКМ. При этом символ размещается в DDRAM по текущему адресу, указываемому АС (АС - счётчик адреса), и значение АС увеличивается или уменьшается на 1. Чтобы произвести переустановку курсора на нужную позицию, необходимо присвоить АС соответствующее значение (табл. 5.38). Когда производится последовательная запись символов и в результате заполняется вся строка, курсор автоматически переходит на вторую строку, но если необходимо принудительно установить курсор на начало второй строки, то необходимо указывать адрес $40 (64). Значения адресов DDRAM в диапазоне $28...$3F и $68...$7F являются неопределенными и результаты работы с ними могут быть непредсказуемыми.

ЖКМ имеют различные наборы символов. На рис. 5.28 приведены наборы символов (русский и латинский) ЖКМ фирмы Data Vision. Для отображения символа необходимо записать его код в регистр DR, например $А0 - код символа "Б".

В DDRAM символы с кодами $00...$07 и $08...$0F имеют специальное назначение - это переопределяемые символы, графическое изображение которых может назначить сам потребитель, разместив соответствующую информацию в области CGRAM. Для программирования доступны восемь переопределяемых символов с матрицей 5х7 точек. Для кодирования матрицы используются горизонтально "уложенные" байты, пять младших бит которых несут информацию о рисунке ("1" - сегмент включен). Старшие три бита не используются. Матрица программируемых символов допускает использование полной высоты строки (8 строчек сегментов для режима 5 х 7 и 11 строчек для режима 5 х 10). Таким образом, перепрограммируемая часть содержит 64 байта памяти (8х8).

Таблица 5.38. Система команд и операций ЖКМ на базе HD44780

Код

Описание команды

Время исполнения

команды (fosc= 250 кГц)

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

0

0

0

1

Очистить дисплей и установить курсор в нулевую позицию (адрес 0)

82 мкс до 1.64 мс

0

0

0

0

0

0

0

0

1

*

Установить курсор в нулевую позицию (адрес 0). Установить дисплей относительно буфера DDRAM в начальную позицию.

40 мкс до 1.6 мс

0

0

0

0

0

0

0

1

I/D

S

Установить направление сдвига курсора вправо (I/D=1) или влево (I/D=0) при записи/чтении очередного кода в DDRAM. Разрешить (S=1) сдвиг дисплея вместе со сдвигом курсора.

40 мкс

0

0

0

0

0

0

1

D

C

B

Включить(D=1)/выключить(D=0) дисплей. Зажечь(C=1)/погасить(C=0) курсор. Изображение курсора сделать мигающим (B=1).

40 мкс

0

0

0

0

0

1

S/C

R/L

*

*

Переместить курсор (S/C=0) или сдвинуть дисплей (S/C=1) вправо (R/L=1) или влево(R/L=0).

40 мкс

0

0

0

0

1

DL

N

F

*

*

Установить разрядность шины данных 4 бита (DL=0) или 8 бит (DL=1), количество строк дисплея - одна (N=0) или две (N=1), шрифт - 5х7 точек (F=0) или 5х10 точек (F=1).

40 мкс

0

0

0

1

ACG

Установка адреса CGRAM.

40 мкс

0

0

1

ADD

Установка адреса DDRAM.

40 мкс

0

1

BF

AC

Чтение busy-флага (BF) и счетчика адреса.

1 мкс

1

0

Данные

Запись данных в DDRAM или CGRAM.

40 мкс

1

1

Данные

Чтение данных из DDRAM или CGRAM.

40 мкс

Р ис. 5.28. Набор символов ЖКМ фирмы Data Vision

На рис. 5.29 приведён пример кодирования символа.

Чтобы запрограммировать собственный символ необходимо установить счетчик АС на адрес начала матрицы требуемого символа в CGRAM - $00, $08, $10 и т.д. ($00, $10, $20 для режима 5х10 точек) - произвести перезапись всех байтов матрицы, начиная с верхней строки. После этого используя в DDRAM адрес запрограммированного символа: $00, $01, $02 ($00, $02, $04 для режима 5х10 точек), на экран в соответствующее место выводится переопределенный символ.

Рис. 5.29. Пример кодирования символа "Я"

Производитель контроллера HD44780 рекомендует следующую последовательность его инициализации:

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

  • первой операцией выполнить команду, выбирающую разрядность шины (это должна быть команда $30 независимо от того, какой разрядности интерфейс вы собираетесь использовать в дальнейшем), причем перед выполнением этой операции не проверять значение флага BF.

  • выдержать паузу не менее 4,1 мс.

  • повторить команду выбора разрядности шины ($30), причем перед подачей команды вновь не производить проверку флага BF.

  • выдержать паузу 100 мкс.

  • третий раз повторить команду установления разрядности шины ($30), вновь без проверки BF.

Эти операции являются инициализирующими и призваны вывести контроллер HD44780 в исходный режим работы (т.е. перевести в режим работы с 8-разрядной шиной) из любого состояния. Затем без выдерживания пауз, но с проверкой флага BF выполняется инициализация режимов работы, например:

  • проверить флаг BF, если снят вывести инструкцию $38 (интерфейс 8 бит, 2 строки, символы 5х7 точек);

  • проверить флаг BF, если снят вывести инструкцию $04 (выключить дисплей);

  • проверить флаг BF, если снят вывести инструкцию $01 (очистить дисплей и установить курсор в начальную позицию);

  • проверить флаг BF, если снят вывести инструкцию $0С (включить дисплей, выключить курсор, курсор не мигающий).

После совершения операции записи или чтения DDRAM и появления после нее признака готовности (BF = 0), прочитанное в этом же цикле (вместе с флагом BF) значение АС вероятнее всего не будет достоверным. Дело в том, что между появлением признака готовности и вычислением контроллером нового значения АС существует некоторый временной интервал, составляющий около 4 мкс при тактовой частоте контроллера 270 кГц. Поэтому, если необходимо получить истинное значение АС, необходимо повторить операцию прочтения IR не менее чем 4 мкс (если контроллер работает на частоте более 270 кГц время ожидания необходимо пропорционально увеличить).

В тех случаях, когда ресурсов МК недостаточно для подключения ЖКМ, наиболее удобным способом становится использование отдельного МК для управления им. Возможно также использование специализированных БИС, например, микросхемы СЕ110, которая выполняет функции контроллера ЖКИ и клавиатуры (до 64-х клавиш) и имеет в качестве интерфейса связи с управляющей системой двухпроводную шину I2C.