Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


логическое «НЕ», логическое отрицание, инверсия, «Х».




Принцип операции: меняет значение на противоположное 0 на 1 и наоборот. Этот принцип иллюстрирует следующий пример из электротехники (нормально выключенный контакт:

X Y

Это логическое действе описываетследующая таблица истинности:

X Y
   
   

В электронике применяют логические элементы:инверторы, условно-графическое изображение которого приведено ниже:

 
 


       
   
 
 


Пример: 10011001B=01100110B

 

  1. Регистровый метод:

CPL A;A → A

  1. Прямая битовая адресация:

CPL C;С → С

CPL bit;(bit) → (bit)

Приоритеты действий в порядке убывания:

 

Действия в скобках;

Инверсия;

Умножение, деление;

Логические действия (лог. умножение, лог.сложение, исключающее ИЛИ);

Сложение, вычитание

При равенстве приоритетов действия выполняются слева на право

Задание3: Решить математическое выражение, используя все методы адресации, кроме косвенно-регистровой. (Листинг решения приведён ниже):

 
 


[(20H)\/3CH \/ (21H)+(22H)/\07H] → (23H)

ORG 0

MOV A, 20H; (20H) →A

CPL A; A → A

ORL A, #3CH; A V 3CH→A

XRL A, 21H; A V (21H) →A

MOV R0, A; A →R0

MOV A, 22H; (22H) →A

ANL A, #07; A /\ 07→ (A)

ADD A, R0; A + R0 → A

CPL A; A →A

MOV 23H, A; A → (23H)

L1: JMP L1;переход на метку L1(зацикливание на этом месте)

END

Задание4: Решить математическое выражение (Листинг решения приведён ниже):

 
 


[(20H) V 3CH V (21H)+(22H)/\07H] (23H)

ORG 0

MOV R0, #20H; 20H→ R0

MOV A, @ R0; ((R0)) →A

CPL A; A→A

ORL A, #3CH; A V 3CH →A

INC R0; R0 + 1→R0

XRL A, @R0; A V ((R0)) →A

ANL 22H, #07; (22H) /\ 07→ (22H)

INC R0; R0 + 1→R0

ADD A, @R0; A + ((R0)) →A

CPL A; A →A

INC R0; R0 + 1 →R0

MOV @R0, A; A→R0

L1: JMP L1;переход на метку L1(зацикливание на этом месте)

END

Задание 5: Самостоятельно написать программу для решения следующего математического задания.

[20H*3CH V (21H)+(22H):07H] (23H)

 

 

4. Содержание отчёта

3.1. Тема и цель работы

3.2. Листинги сделанных самостоятельно программ.

3.3. Выводы

 

 

5. Контрольные вопросы

5.1 Понятие операнда.

5.2 Регистровый метод адресации. Примеры команд с этим методом.

5.3 Прямойбайтовый метод адресации. Примеры команд с этим методом.

5.4 Прямойбитовый метод адресации. Примеры команд с этим методом.

5.5 Непосредственный метод адресации. Примеры команд с этим методом.

5.6 Косвенно – регистровый метод адресации. Примеры команд с этим методом.

5.7 Косвенный метод адресации по сумме базового и индексного регистров. Примеры команд с этим методом.

5.8 Логическое умножение. Примеры команд с разными методами адресации.

5.9 Логическое сложение. Примеры команд с разными методами адресации.

5.10 Логическое исключающее «ИЛИ». Примеры команд с разными методами адресации.

5.11 Инверсия. Команда инверсии.

5.12 Написать программу для решения задания, заданного преподавателем.

 

 

6. Введение в интегрированную отладочную среду ProView для микроконтроллеров семейства MCS-51, 251, XA

 

ProView фирмы Franklin Software Inc. – интегрированная среда разработки программного обеспечения для однокристальных микроконтроллеров семейства Intel 8051 и его клонов. Она включает в себя всё, что нужно для создания, редактирования, компиляции, трансляции, компоновки, загрузки и отладки программ:

1. стандартный интерфейс Windows,

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

3. организатор проекта,

4. транслятор с языка C,

5. ассемблер,

6. отладчик,

7. встроенную справочную систему.

Среда разработки подобна Visual C++ Microsoft и Borland C++ для Windows. Пользователи, знакомые с любым из этих изделий, будут чувствовать себя в ProView, как дома.

Первый этап разработки программы – запись её исходного текста на каком-либо языке программирования.

Затем производится компиляция или трансляция его в коды из системы команд микроконтроллера, используя транслятор или ассемблер. Трансляторы и ассемблеры – прикладные программы, которые интерпретируют текстовый файл, содержащий исходный текст программы, и создают объектные файлы, содержащие объектный код.

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

ProView объединяет все этапы разработки прикладной программы в единый рекурсивный процесс, когда в любой момент времени возможен быстрый возврат к любо му предыдущему этапу.

ProView имеет следующие компоненты.

 

6.1.Оптимизирующий кросс-компилятор C51.

 

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

C51 - полная реализация стандарта ANSI (Американского национального института стандартов), насколько это возможно для архитектуры Intel 8051. C51 генерирует код для всего семейства микроконтроллеров Intel 8051. Транслятор сочетает гибкость программирования на языке C с эффективностью кода и быстродействием ассемблера.

Использование языка высокого уровня C имеет следующие преимущества над программированием на ассемблере:

8. глубокого знания системы команд процессора не требуется, элементарное знание архитектуры Intel 8051 желательно, но не необходимо;

9. распределение регистров и способы адресации управляются полностью транслятором;

10. лучшая читаемость программы, используются ключевые слова и функции, которые более свойственны человеческой мысли;

11. время разработки программ и их отладки значительно короче в сравнении с программированием на ассемблере;

12. библиотечные файлы содержат много стандартных подпрограмм, которые могут быть включены в прикладную программу;

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

 

6.2. Макроассемблер A51.

 

Ассемблер A51 совместим с ASM51 Intel для всего семейства микроконтроллеров Intel 8051. Ассемблер транслирует символическую мнемонику в перемещаемый объектный код, имеющий высокое быстродействие и малый размер. Макросредства ускоряют разработку и экономят время, поскольку общие последовательности могут быть разработаны только один раз. Ассемблер поддерживает символический доступ ко всем элементам микроконтроллера и перестраивает конфигурацию для каждой разновидности Intel 8051.

A51 транслирует исходный файл ассемблера в перемещаемый объектный модуль. При отладке или при включенной опции “Include debugging information” этот объектный файл будет содержать полную символическую информацию для отладчика/имитатора иливнутрисхемного эмулятора.

 

6.3.Компоновщик L51.

 

Компоновщик объединяет один или несколько объектных модулей в одну исполняемую программу. Компоновщик размещает внешние и общие ссылки, назначает абсолютные адреса перемещаемым сегментам программ. Он может обрабатывать объектные модули, созданные транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel.

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

 

6.4.Отладчик/симулятор WinSim51.

 

Отладчик исходных текстов используется с транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel. Отладчик/симулятор позволяет моделировать большинство особенностей Intel 8051 без наличия аппаратных средств. Можно использовать его для проверки и отладки прикладной программы прежде, чем будут изготовлены аппаратные средства. При этом моделируется широкое разнообразие периферийных устройств, включая последовательный порт, внешний ввод - вывод и таймеры.

 

Начало работы

Запуск интегрированной среды ProView32 осуществляется через меню Пуск(Windows): Пуск ->Программы -> Franklin Software -> ProView32.

Далее необходимо создать новый файл. Для этого в разделе меню File выбираем пункт New, в появившемся окне выбираем Assembler Files (см. рис.1).

 

 

Рис. 1. Выбор типа программы

 

Новый файл необходимо сохранить на диск (File->Save as…), присвоив ему имя, состоящее из латинских букв и цифр, длина имени не должна превышать 8 символов, расширение файла - asm. Пример имени «Lab1.asm». Теперь можно приступать к написанию программы для микроконтроллера на языке Ассемблер.

Рассмотрим простейшую программу ( Задание1 этих методических указаний). После того как текст программы набран и сохранен приступаем к компиляции программы - переводу текста в машинный код, предназначенный для загрузки в память программ микроконтроллера.

Для компиляции программы необходимо выбрать пункт меню Project -> Build all. ProView отображает окно, показывая текущее состояние процесса. Когда процесс компиляции закончится, в окне сообщений (Message) (рис.3) отображается сообщение завершения. Если были обнаружены какие-нибудь ошибки, о них сообщается здесь же.

 

Рис. 3. Окно сообщений Message

 

Если программа не содержит ошибок, которые отображаются в окне то можно запускать отладчик (меню Debug -> Start). При первом запуске отладчика появится окно (см. рис. 4), в котором необходимо указать тип микроконтроллера (Microcontroller: 80c51), а также тактовую частоту (Frequency) в мегагерцах.

 

Рис. 4. Выбор типа контроллера и тактовой частоты

 

Запустив отладчик, мы видим несколько окон (см. рис. 5):

- окно с текстом программы;

- окно кода Code, в котором каждой инструкции на ассемблере соответствует её машинный код;

- окно основных регистров Main Registers, в котором отображено текущее состояние каждого из регистров;

В строке состояния показано время, за которое микроконтроллер выполнил команды программы с момента старта до курсора.

 

 

 

Рис. 5 Экран режима Debug

 

Используя меню View отладчика можно добавлять новые окна. Например, пункт меню View->Data dump позволяет отобразить окна с содержимым различных областей памяти данных микроконтроллера:

Xdata – внешняя память (ОЗУ) данных;

Data –внутренняя память данных (внутреннее ОЗУ);

Sfr – область регистров специальных функций (РСФ);

Bit – область прямо адресуемых битов.

В наших заданиях необходимо вводить тестовые числа в ячейки памяти ОЗУ(внутренней памяти данных) для проверки правильности работы написанных программ. Для этого выбираем пункт меню View->Data dump-> Data view (рис.6). В окне Data view отображается содержимое ячеек ОЗУ, которое группируется по 8 ячеек в строке с указанием адреса первой ячейки в группе (адрес указан слева с двоеточием). Для проверки задания 1: [(20H)*10H – (21H)/07H] → (22H) необходимо загрузить тестовые числа в ячейки с адресами 20H и 21H (например, в (20H) загрузим 05H, а в (21H) загрузим С4H (см. рис.6)). При вводе данных в ячейки не забываем нажимать кнопку ENTER на клавиатуре.

Рис. 6 Окно отображения содержимого ячеек ОЗУ Data view

 

Для удобства работы оптимизируем содержимое экрана: окно кода Code для работы в нашем курсе работ нам не нужно, поэтому его можно свернуть в трей, далее подгоним размеры окна с программой так, чтобы были видны команды и хватило места для окон Data view и Main Registers (см. рис.7).

Перед запуском программы необходимо нажать кнопку Animate , затем нажать кнопку сброса Reset и запустить программу кнопкой Run .

Так как по условию задания 1: [(20H)*10H – (21H)/07H] → (22H) результат запоминается в ячейке с адресом 22H, то смотрим содержимое этой ячейки после выполнения программы в окне Data view. На рис.7 в этом окне результат равен 34Н.

Рис.7 Окно Debug после выполнения программы

 

Для проверки этого результата вызываем калькулятор Windows через меню Пуск(Windows): Пуск ->Программы -> Стандартные -> Калькулятор. Переводим его в инженерный режим(рис. 8). Переводим в режим работы в шестнадцатеричной системе счисления (переключатель Hex) и ограничиваем размер чисел одним байтом (переключатель 1байт).

Рис.8 Окно калькулятора Windows

Программу проверяем в соответствии с заданием с соблюдением приоритетов. По условию задания 1: [(20H)*10H – (21H)/07H] → (22H) первыми по приоритету необходимо выполнить умножение и деление, а затем вычитание. Выполним эти дейтвия с тестовыми данными и запишем подробно результаты промежуточных вычислений:

05Н*10Н=50Н

С4Н:07Н=1СН

50Н-1СН=34Н

Как видим, результат расчетов совпал с результатом в окне Data view, что говорит о правильности программы.

Если результат не совпадает, то необходимо выяснить причину ошибки. Отладку программы в этом случае удобно производить в пошаговом режиме (кнопка Step into или F7). Если вы используете пошаговый режим, то при каждом нажатии кнопки F7 будет выполняться только одна инструкция на языке ассемблера. При этом в открытых вами окнах с регистрами и содержимым памяти будет обновляться информация в соответствии с ходом выполняемой программы. Сравнивая результаты выполнения шага по содержимому в окне Main Registers с результатами промежуточных вычислений выявляем ошибки в вашей программе.

Если во время отладки программы выяснилось, что алгоритм необходимо скорректировать, то следует прервать процесс отладки, выбрав пункт меню Debug->Terminate. После внесения необходимых изменений программу необходимо повторно откомпилировать (пункт меню Project -> Build all) и повторить процесс отладки.

Если ваша программа достаточно большая и требуется отладить только некоторые её фрагменты, то обычно используют точки останова (Breakpoint), которые устанавливают в начале интересующего фрагмента программы. При этом переход к точке останова производится нажатием кнопки GO (Ctrl-F9). Переход может занять от нескольких секунд до нескольких минут, однако он будет быстрее, чем в режиме пошаговой отладки.

 

 

6. СПИСОК ЛИТЕРАТУРЫ

1. Сташин В.В., Урусов А.В.Молногонцева О.Ф. "Проектирование цифровых устройств на одно кристальных микроконтроллерах" – М.:Энергоатомиздат 1990. - 224с.

2. Самофалов К.Г. "Микропроцессоры" - Киев: Техника, 1986. - 278с.

3. Каган Б.Н., Сташин В.В. "Основы проектирования микропроцесорных устройств автоматики." - М.: Энергоиздат 1987. - 304 с.

4. Справочник под редакцией Хвощ С.Т. "Микропроцессоры и микроЭВМ в системах автоматического управления." - Л.: Машиностроение, 1987. -640 с.

5. Микушин А. В. Занимательно о микроконтроллерах. — СПб.: БХВ - Петербург, 2006. — 432 с.

6. Белов А.В. Конструирование устройств на микроконтроллерах — Санкт - Петербург: Наука и техника, 2005. - 256 с.

7. "Полупроводниковые приборы. Диоды. Оптоэлектронные приборы" / А.Б.Гитцевич и др. - М.: Радио и связь, 1988. - 592 с.

2. Шило В.Л. "Полупроводниковые цифровые микросхемы. Справочник." - М.: Радио и связь. 1987. - 352 с.

3. "Микропроцессоры в 3х томах для техн. вузов" /В.Д. Вернер и др. под редакцией А.Н. Преснухина -Минск: Высшая школа. 1987-303с. ил.

 





Поделиться с друзьями:


Дата добавления: 2017-02-24; Мы поможем в написании ваших работ!; просмотров: 435 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если президенты не могут делать этого со своими женами, они делают это со своими странами © Иосиф Бродский
==> читать все изречения...

2464 - | 2329 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.