Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
11.03.2016
Размер:
1.9 Mб
Скачать

8. Запоминающие устройства. Предназначены для записи, хранения и выдачи информации. Часто выполняются на основе триггеров или защелок.

Все перечисленные ЦЛУ могут быть не только изучены с позиции представления логическими элементами, но и целиком построены на их основе.

На рис. 12 показано несколько возможных вариантов схемных решений наиболее распространенных ЦЛУ, построенных только на простейших логических элементах

а

б

в

г

д

е ж

Рис. 12. Схемы некоторых ЦЛУ: а – мультиплексор на 2 входа; б – демультиплексор на 2

выхода; в – однобитный полусумматор; г – однобитный полный сумматор; д – RS защелка; е

RS защелка с синхровходом; ж – D защелка с синхровходом

ОПИСАНИЕ ЛАБОРАТОРНЫХ УСТРОЙСТВ

При выполнении данной лабораторной работы используются пакеты имитационного моделирования на ЭВМ процессов в электронных устройствах

(Micro-Cap или Electronics WorkBench). В качестве базовых логических элементов из имеющихся в библиотеке пакетов рекомендуется выбирать наиболее распространенные элементы И, ИЛИ, НЕ, ИЛИ-НЕ, И-НЕ (рис.13).

Рис. 13. Условно-графические обозначения простых логических элементов в среде Electronics WorkBench

В качестве измерительных приборов рекомендуется использовать индикаторы, осциллограф и логический анализатор (Logic Analyzer). Для построения таблицы истинности целесообразно применить генератор (Word generator) двоичных кодов (рис.14).

а

б

в г

Рис.14. Приборы для работы с ЦЛУ: а – индикаторы; б – двухлучевой осциллограф; в

16-ти канальный логический анализатор; г – генератор двоичных кодов

ПРОГРАММА РАБОТЫ

1.Проверить работоспособность простых логических элементов И, НЕ, ИЛИ, И-

НЕ, ИЛИ-НЕ. Для проверки работоспособности разработать и составить в среде Electronics Workbench соответствующие схемы

2.На базе простых логических элементов собрать мультиплексор и декодер,

разрядность которого задает преподаватель. Составить таблицу истинности теоретическим путем и по экспериментальным данным

3.На базе простых логических элементов собрать шифратор и дешифратор,

разрядность которого задает преподаватель. Составить таблицу истинности теоретическим путем и по экспериментальным данным

4.На базе простых логических элементов собрать полный арифметический сумматор, разрядность которого задает преподаватель. Проверить работоспособность полученного сумматора тестовыми (5-6 примеров)

примерами, результаты которых в табличной форме занести в отчет

5.На базе простых логических элементов собрать RS защелку и синхронную D-

защелку. Доказать работоспособность собранного ЦЛУ временными

диаграммами, полученными экспериментально. В качестве входных импульсов в среде Electronics Workbench можно использовать электронный ключ,

управляемый с клавиатуры

Содержание отчета

1.Титульный лист

2.Тема, цель работы,

3.Исходные данные для исследований

4.Краткие теоретические сведения

5.Практическая часть

По каждому из устройств с 1 по 5 придерживаться следующего порядка: 5.1 Название устройства

5.2Принципиальная схема с подробными обозначениями всех элементов

5.3Описание принципа действия, назначение элементов

5.4Рисунок документа в Electronics Workbench для проведения опытов

5.5Результаты опытов, оформленные в виде таблиц или временных

диаграмм

5.6Расчеты по каждому опыту (Булева алгебра)

5.7Проверка достоверности расчетов с теорией

5.8Краткие выводы – сопоставления экспериментальных результатов с расчетными

6.Общие выводы по работе в целом

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Что такое логический элемент, какие бывают логические элементы и какими свойствами они обладают?

2.Что такое логическая операция, как она записывается?

3.Как выглядят обозначения логических элементов, реализующих основные логические функции?

4.Какие законы Булевой алгебры Вы знаете?

5.Что такое таблица истинности и для чего она нужна?

6.Что такое мультиплексоры и демультиплексоры и как они могут быть построены на основе простых логических элементов?

7.Что такое шифраторы и дешифраторы и как они могут быть построены на основе простых логических элементов?

8.Какие простые цифровые электронные устройства обладают памятью?

9.Как построить триггер или защелку с помощью простых логических элементов?

10.Как проверить работоспособность построенных цифровых электронных устройств?

ЛАБОРАТОРНАЯ РАБОТА № 3

ИЗУЧЕНИЕ ОСНОВ ПРОГРАММИРОВАНИЯ

МИКРОКОНТРОЛЛЕРОВ НА ЯЗЫКЕ АССЕМБЛЕР

Ц е л ь работы – получение навыков работы с пакетами

специализированных программ по программированию микроконтроллеров, включая составление блок-схем, написание программы для конкретной модели микроконтроллера и её отладку. Изучение основ программирования микроконтроллеров AVR на языке ассемблера

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Микроконтроллер - это электронное устройство, обычно представляет программируемую микросхему, содержащую внутри себя микропроцессор с необходимым набором модулей (АЛУ, УУ, регистры и т.д.), память ОЗУ/ПЗУ, устройства ввода/вывода, в том числе ЦАП/АЦП, служебные счетчики/таймеры и аналогичные элементы цифровой техники. По сути, микроконтроллер - это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы, вместо целого набора, значительно снижает размеры, энергопотребление и стоимость ЦЛУ, построенных на базе микроконтроллеров. Существует более 200 модификаций микроконтроллеров, выпускаемых двумя десятками компаний самых различных конструкций (рис. 15). Распространены 8-16 битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, ARM, 68HC05... 68HC705 фирмы Motorola и др., получают развитие 32-битные микроконтроллеры.

Рис.15. Конструктивное исполнение некоторых микроконтроллеров

Языки программирования микроконтроллеров. Наиболее популярен язык -

ассемблер. Для подавляющего большинства микроконтроллеров это основной язык, который наиболее точно способен учитывать особенности архитектуры конкретного микроконтроллера. Реже используются языки более высокого уровня, например, язык Си. Для некоторых микроконтроллеров существуют компиляторы других языков, встроенные интерпретаторы Бейсика и т.д.

Особенностью программирования микроконтроллеров является то, что алгоритм и составленная по нему программа должны быть зациклены в глобальном смысле. Если это не сделано, однократно выполненная программа,

практически мгновенно (быстродействие современных микроконтроллеров достаточно велико) завершит работу, и электронное устройство, построенное на таком микроконтроллере, прекратит работу. На рис. 16 в качестве примера показан простейший алгоритм, согласно которому при нажатии на кнопку один светодиод, подключенный к микроконтроллеру, должен загореться, а другой погаснуть.

Рис. 16. Алгоритм программы для микроконтроллера в виде блок-схемы

Некоторые команды (инструкции) микроконтроллеров AVR на языке ассемблер

ADC Ri, Rj – сложение двух регистров с учетом переноса

ADD Ri, Rj – простое сложение двух регистров

DEC Ri – декрементирование регистра (уменьшение на единицу)

Пример: DEC R16; уменьшить содержимое регистра 16 на единицу

INC Ri – инкрементирование регистра (увеличение на единицу) LDI Ri, N – загрузка константы N 0...255 в регистр Ri

Пример: LDI R16, 0b10101110; загрузить в регистр 16 двоичное число 10101110 SUB Ri, Rj – вычитание двух регистров, результат записывается в Ri

COM Ri – инвертирование всех битов регистра

CLR Ri – сброс в 0 для всех битов регистра

SER Ri – установка 1 для всех битов регистра

Пример: CLR R16; записать в регистр 16 число 00000000

LD Ri, L – косвенное чтение из ОЗУ с адресом ячейки, записанным в регистре L и загрузкой результата чтения в регистр Ri,.

ST Ri, L – косвенная запись содержимого регистра Ri в ОЗУ с адресом ячейки, записанным в регистре L

RJMP Label – относительный переход на метку Label

Пример: RJMP Factor; переход на метку Factor

OUT DDRx, Ri – пересылает содержимое рабочего регистра Ri в регистр ввода/вывода (порта «х» микроконтроллера). Если в регистр ввода вывода записаны нули – порт будет работать на ввод информации, если записаны единицы – соответственно, будет работать на вывод информации

Пример: LDI R16, 0b00001111; запись в регистр R16 двоичного числа 00001111

OUT DDRB, R16; настройка первых четырех (младших) бит (выводы

PB0... PB3 микроконтроллера) порта В на вывод информации, последующих

четырех (старших) бит (выводы PB4... PB7 микроконтроллера) порта В на ввод информации

SBI DDRx, Bit – устанавливает в 1 определенный бит регистра ввода/вывода

Пример: SBI DDRС, 4; настраивает вывод PC4 порта С на вывод информации

СBI DDRx, Bit – сбрасывает в 0 определенный бит регистра ввода/вывода

Пример: СBI DDRС, 1; настраивает вывод PC1 порта С на ввод информации

OUT PORTx, Ri – пересылает содержимое рабочего регистра Ri в сам порт ввода/вывода

Пример: OUT PORTB, Ri; устанавливает на выводах PВ0...PB7 порта B

микроконтроллера логические нули или единицы в соответствии с содержимым регистра Ri

SBIC Pin B, Bit– проверяет заданный бит «Bit» регистра Pin порта B и

пропускает (не выполняет) следующую команду, если на нем логический ноль

Пример: SBIC PinB, 3;

RJMP Factor; если на выводе PB3 порта B – ноль, то переход на метку

Factor не производить

SBIS Pin B, Bit– проверяет заданный бит «Bit» регистра Pin порта B и

пропускает (не выполняет) следующую команду, если на нем логическая единица

Пример: SBIS PinB, 3;

RJMP Factor; если на выводе PB3 порта B – ноль, то выполнить переход на метку Factor

Полные сведения о командах (инструкциях) и директивах микроконтроллеров на языке ассемблера содержатся в специальной литературе и справочных материалах по каждому типу модели микроконтроллера.

Архитектура микроконтроллеров. Чаще всего применяется Гарвардская архитектура, согласно которой разделяются адресные пространства памяти

команд (инструкций) и данных. Это усложнение делает более надежной,

устойчивой и стабильной работу микроконтроллеров. Кроме того, при такой архитектуре легче увеличить количество элементарных команд – инструкций,

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

Технология разработки программ для микроконтроллера:

1.Выбор конкретной модели микроконтроллера из подсемейства (учитывается имеющаяся периферия)

2.Составление блок-схемы алгоритма работы

3.Написание программы на алгоритмическом языке с учетом архитектуры микроконтроллера и конкретных способов подключения периферийных устройств к его портам

4.Проверка работоспособности алгоритма программы путем симуляции и, при необходимости, отладка программы средствами отладки

5.Преобразование программы в машинный код (создание «прошивки» путем трансляции написанной программы)

6.Проверка работоспособности микроконтроллера по написанной программе путем эмуляции или проверкой в реальности

Таким образом, используются 3 способа проверки и отладки составленной

программы:

1.Симуляция

2.Эмуляция

3.Проверка в реальности

Пример составления программы для микроконтроллера Atiny 2313

Согласно приведенной технологии разработки программы выполним

следующие действия:

1. Выберем микроконтроллер Atiny 2313, который содержит 2 порта – B и D

2.Составим блок-схему алгоритма. Пусть необходимо решить задачу,

представленную на рис. 16 алгоритмом

3.Написание программы должно учитывать способ подключения первого и второго светодиода к портам микроконтроллера, а так же одной кнопки.

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

Рис. 17. Схема подключения внешних устройств к микроконтроллеру

Составим программу:

Соседние файлы в папке Электронные и микропроцессорные устройства