
- •Цифровые устройства
- •Введение.
- •1. Основные принципы цифровой электроники.
- •1.1. Аналоговые и цифровые сигналы
- •1.2. Модели и уровни представления цифровых устройств
- •1.3. Входы и выходы цифровых микросхем
- •1.4. Основные обозначения на схемах
- •1.5. Серии цифровых микросхем
- •1.6. Корпуса цифровых микросхем
- •2.1. Системы счисления.
- •2.2 Арифметические операции над двоичными числами.
- •2.3. Машинное представление информации
- •2.3.1 Формы представления чисел.
- •2.3.2. Буквенно-цифровой код
- •2.3.3 Восьмисегментный код
- •3. Логические основы цифровой техники
- •3.1 Основные законы алгебры логики
- •3.2 Формы описания логических функций и их использование для синтеза логических схем
- •3.3. Синтез комбинационных схем с несколькими выходами
- •3.4. Понятие логического базиса
- •4. Логические элементы цифровых устройств
- •4.1 Общие характеристики элементов цифровых устройств
- •4.2. Переходные процессы в логических схемах
- •4.3. Описание основных схемотехнических решений базовых логических элементов.
- •4.3.1. Интегральные схемы ттл и ттлш
- •4.3.2. Интегральные микросхемы на моп-структурах
- •4.3.3. Микросхемы эмиттерно-связанной транзисторной логики
- •4.3.4. Инжекционные интегральные логические схемы (и2л)
- •4.3.5. Схемные особенности логических элементов
- •4.4. Сложные комбинационные цифровые автоматы
- •4.4.1. Сумматор по модулю два
- •4.4.2. Мультиплексоры и демультиплексоры
- •4.4.3. Дешифраторы, дешифраторы-демультиплексоры, шифраторы
- •4.4.4. Преобразователи кодов
- •4.4.5. Сумматоры
- •4.5. Последовательностные схемы цифровых автоматов
- •4.5.1. Асинхронный r-s триггер
- •4.5.2. Синхронный r-s триггер
- •4.5.3. Синхронный d - триггер со статическим управлением
- •4.5.3. Синхронный d - триггер с динамическим управлением
- •4.5.4. Универсальный j-k триггер
- •4.5.6. Регистры
- •4.5.7. Счетчики
- •Полупроводниковые запоминающие устройства
- •5.1. Статические озу
- •5.2. Динамические озу
- •5.3. Однократно программируемые постоянные запоминающие устройства
- •5.4. Перепрограммируемые постоянные запоминающие устройства
- •Специальные элементы цифровых устройств
- •6.1. Автоколебательные генераторы на логических элементах
- •6.2. Формирователи сигналов
- •6.2.1. Укорачивающие формирователи
- •6.2.2. Расширяющие одновибраторы
- •6.2.3. Триггер Шмитта
- •6.2.4. Аналоговый компаратор
- •Преобразователи сигналов
- •7.1. Цифроаналоговые преобразователи
- •7.1.1. Цап с матрицей r-2r
- •7.1.2. Цап с матрицей звездообразного типа
- •7.2. Аналого-цифровые преобразователи
- •Ацп двойного интегрирования (интегрирующий ацп).
- •Сигма-дельта ацп.
- •Преобразователи напряжение-частота
- •8. Элементы цифровой индикации
- •Малогабаритные лампочки накаливания
- •Светодиодные индикаторы.
- •Жидкокристаллические индикаторы
- •Дисплеи на основе органических пленок (oled)
- •Динамическая индикация
- •Микропроцессоры Введение
- •1. Классификация микропроцессоров
- •2. Архитектура микроконтроллера
- •2.1 Основные характеристики микроконтроллера
- •2.2. Архитектура микроконтроллеров
- •2.2.1. Архитектура микроконтроллеров mcs-51
- •Альтернативные функции порта p3
- •2.2.2. Архитектура avr микроконтроллеров
- •3. Программирование микроконтроллеров
- •3.1 Языки программирования для микроконтроллеров
- •3.2. Виды компиляторов
- •3.3.1 Форматы и способы адресации данных
- •3.3.2. Форматы и способы адресации команд
- •3.3.3. Команды пересылки информации
- •3.3.4. Команды поразрядной обработки информации
- •3.3.5. Команды арифметических операций
- •3.3.6. Управляющие команды
- •3.3.7. Порядок выполнения прерываний в микроконтроллерах семейства mcs51.
- •3.3.8. Применение подпрограмм при программировании.
- •3.3.9. Директивы ассемблера для микроконтроллеров семейства mcs-51
- •3.3.10. Применение комментариев
- •3.3.11. Многофайловые программы.
- •3.3.12. Отладка программ.
- •3.3.13. Способы отладки программ.
- •Программируемые логические матрицы, программируемая матричная логика, базовые матричные кристаллы
- •4.1. Программируемые логические матрицы и программируема матричная логика
- •4.3. Базовые матричные кристаллы
- •4.4. Бис/сбис с программируемыми структурами (cpld, fpga, смешанные структуры)
- •Список использованной литературы
3.2. Виды компиляторов
Компиляторы бывают оценочные и профессиональные.
Оценочные или учебные компиляторы позволяют написать простейшие программы для конкретного процессора и определить подходит ли процессор для тех задач, которые предстоит решать в процессе разработки устройства. Конечно, если программа очень проста, то можно весь программный продукт написать на оценочном компиляторе. Оценочные компиляторы позволяют транслировать одиночный файл исходного текста программы. Иногда такие компиляторы позволяют включать в процесс трансляции содержимое отдельных файлов специальной директивой. В результате работы оценочного компилятора сразу получается исполняемый или загрузочный модуль программы, поэтому такие компиляторы называются компиляторами с единой трансляцией.
Профессиональные трансляторы позволяют производить трансляцию исходного текста программы по частям. Это позволяет значительно сократить время трансляции исходного текста программы, так как не нужно транслировать весь текст программы, а можно транслировать только ту часть программы, которая менялась после предыдущей трансляции. Кроме того, каждый программный модуль может писать отдельный программист. Это позволяет сократить время написания программы. Даже в том случае, если программу пишет один человек, время написания программы сокращается за счет использования готовых отлаженных и оттранслированных программных модулей. В таких компиляторах процесс трансляции программы разбивается на два этапа: трансляция программного модуля и связывание программных модулей в единую программу. Поэтому такие компиляторы называются компиляторами с раздельной трансляцией.
Оценочные компиляторы обычно предлагаются бесплатно фирмами - производителями микроконтроллеров. Только фирма Intel предложила в свое время профессиональный пакет разработки программ - язык программирования PLM-51 в состав, которого входит профессиональный язык программирования ASM-51.
Профессиональные компиляторы разрабатываются и продаются отдельными фирмами. Для микроконтроллеров семейства MCS-51 получили известность продукты таких фирм как FRANCLIN, IAR, KEIL. В состав современных средств написания и отладки программ для микроконтроллеров обычно входят эмуляторы процессоров или отладочные платы, текстовый редактор, компиляторы языка высокого уровня (чаще всего "C") и ассемблера, редактор связей и загрузчик программы в отладочную плату. Все программы обычно объединены интегрированной средой разработки программного проекта, позволяющую поддерживать один или несколько программных проектов.
В данном курсе рассматривается язык пограммирования микроконтроллеров Ассемблер ASM-51 как наиболее простой, дающий общее представление о структуре команд микроконтроллеров семейства MCS-51 и сопособам построения микропрограмм для этих микроконтроллеров.
Алфавит Ассемблера состоит из прописных и строчных латинских букв, из цифр, знаков препинания и некоторых других символов, которые перечислены ниже в порядке возрастания их ASCII кода:
! # “ $ % & ` ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
' a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
Кроме того, транслятор воспринимает символы, не имеющие отображения (пробел, табуляцию и пару символов - возврат каретки и перевод строки), но изменяющих положение следующих за ними символов текста. Транслятор производит грамматический разбор текста построчно. Каждая строка (аналог предложения) делится на лексемы (аналоги слов). В Ассемблере имеются лексемы 5 видов: специальные символы, имена (идентификаторы), числовые литералы, строковые литералы и комментарии. Специальные символы служат для обозначения операций в выражениях и в качестве разделителей других лексем.
Ассемблер не является языком свободной формы. Синтаксис Ассемблера в части записи операторов следует таким же правилам, какие применялись для программирования в кодах. Каждый оператор Ассемблера также занимает одну строку, состоящую из четырех полей:
поле_метки поле_мнемокода поле_операндов ;поле комментариев.
В качестве разделителей между полями можно использовать пробелы (не меньше одного) или знаки табуляции. В качестве разделителей между операндами (если их два или больше) используется запятая. Поле метки заполняется только в том случае, если в программе нужно сделать ссылку на данную строку. Поле мнемокода должно быть заполнено обязательно, так как в нем записывается производимое оператором действие. Необходимость записи в поле операндов зависит от мнемокода. Поле комментариев транслятору не нужно, поэтому остаток строки после точки с запятой не обрабатывается. Эта часть исходного текста существенна только для программиста. Поэтому в поле комментария можно использовать любые символы с кодом ASCII не меньше 20h, в том числе и русские буквы. Строка должна заканчиваться парой символов - возврата каретки и перевода строки.