Инфоурок Информатика Другие методич. материалыКомплекс практических работ по дисциплине ОП. 06. Микропроцессорная техника специальности 15.02.14

Комплекс практических работ по дисциплине ОП. 06. Микропроцессорная техника специальности 15.02.14

Скачать материал

Лянторский нефтяной техникум

(филиал) федерального государственного бюджетного образовательного учреждения высшего образования «Югорский государственный университет»

(ЛНТ (филиал) ФГБОУ ВО «ЮГУ»)

 

 

 

 

 

 

 

 

 

 

 

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

по выполнению практических работ

по дисциплине ОП. 06. Микропроцессорная техника

 

специальность  15.02.14 Оснащение средствами   автоматизации  технологических  процессов  и  производств  (по отраслям)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

г. Лянтор

2021


 

 

РАССМОТРЕНО

на заседании ПЦК специальностей

09.02.07, 15.02.07, 13.02.11

Протокол заседания

№ ______от________20____г.

Председатель_________ А.А. Джежелий

 

 

 

УТВЕРЖДАЮ

Председатель Методического совета ЛНТ (филиала) ФГБОУ ВО «ЮГУ»

__________О.В.Кийдан

«_____»_____20­­­­­­­­­____ г.

 

 

 

 

Разработал:   Алексеев Владимир Анатольевич преподаватель высшей квалификационной категории,  ЛНТ (филиала) ФГБОУ ВО «ЮГУ»

 


 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Методические указания по выполнению практических работ учебной дисциплины ОП 06. Микропроцессорная техника предназначены для упорядочения работы обучающихся, разработаны для студентов по специальности 15.02.14 Оснащение средствами   автоматизации  технологических  процессов  и  производств  (по отраслям).

 

Программой учебной дисциплины «ОП 06. Микропроцессорная техника» предусмотрено выполнение практических работ в количестве 22 часов по специальности 15.02.14 Оснащение средствами   автоматизации  технологических  процессов  и  производств  (по отраслям)

 

В результате освоения учебной дисциплины обучающийся должен

уметь:

-       Выполнять проектирование и расчет типовых узлов МПС;

-       Осуществлять выбор МПС под требуемую задачу;

-       Выполнять анализ и синтез электронных схем с МПС;

-       Вести проектирование и расчет электронных устройств с помощью ЭВМ.

 

В результате освоения учебной дисциплины обучающийся должен

знать:

-       Принципы построения электронных устройств на основе современной элементной базы и МПС;

-       Принципы функционирования электронных устройств на основе современной элементной базы и МПС;

-       Основные технические параметры, эксплуатационные характеристики области;

-       Применения основных устройств и функциональных узлов электроники и МПС;

-       Основные принципы проектирования схем на базе МПС.

 

В результате освоения учебной дисциплины обучающийся должен овладевать общими и профессиональными компетенциями, включающими в себя способность:

ОК 1 Выбирать способы решения задач профессиональной деятельности, применительно к различным контекстам.

ОК 2 Осуществлять поиск, анализ и интерпретацию информации, необходимой для выполнения задач профессиональной деятельности.

ОК 4 Работать в коллективе и команде, эффективно взаимодействовать с коллегами, руководством, клиентами.

ОК 5 Осуществлять устную и письменную коммуникацию на государственном языке с учетом особенностей социального и культурного контекста.

ОК 9 Использовать информационные технологии в профессиональной деятельности.

ОК 10 Пользоваться профессиональной документацией на государственном и иностранном языках.

ПК 1.1. Осуществлять анализ имеющихся решений для выбора программного обеспечения для создания и тестирования модели элементов систем автоматизации на основе технического задания.

ПК 1.2. Разрабатывать виртуальную модель элементов систем автоматизации на основе выбранного программного обеспечения и технического задания.

ПК 1.3. Проводить виртуальное тестирование разработанной модели элементов систем автоматизации для оценки функциональности компонентов.

ПК 1.4. Формировать пакет технической документации на разработанную модель элементов систем автоматизации.

ПК 2.1. Осуществлять выбор оборудования и элементной базы систем автоматизации в соответствии с заданием и требованием разработанной технической документации на модель элементов систем автоматизации.

ПК 2.2. Осуществлять монтаж и наладку модели элементов систем автоматизации на основе разработанной технической документации.

ПК 2.3. Проводить испытания модели элементов систем автоматизации в реальных условиях с целью подтверждения работоспособности и возможной оптимизации.

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

ПК 3.2. Организовывать материально-техническое обеспечение работ по монтажу, наладке и техническому обслуживанию систем и средств автоматизации.

ПК 3.3. Разрабатывать инструкции и технологические карты выполнения работ для подчиненного персонала по монтажу, наладке и техническому обслуживанию систем и средств автоматизации.

ПК 3.4. Организовывать выполнение производственных заданий подчиненным персоналом.


 

ПРАКТИЧЕСКИЕ РАБОТЫ ПО

ДИСЦИПЛИНЕ МИКРОПРОЦЕССРНАЯ ТЕХНИКА

 

n/n

Темы практических работ

Количество часов

1

Практическая работа №1 Выполнение арифметических операций в программах на языке ассемблера

2

2

Практическая работа №2 Выполнение логических операций в программах на языке ассемблера

2

3

Практическая работа №3 Разработка программ с линейной структурой на языке ассемблера

2

4

Практическая работа №4 Маскирование данных в программах на языке ассемблера.

2

5

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

2

6

Практическая работа №6 Организация ветвлений в программах на языке ассемблера.

2

7

Практическая работа №7 Вывод текста на дисплей.

2

8

Практическая работа №8 Ввод текста с клавиатуры.

2

9

Практическая работа №9 Работа с программной средой AVR Studio.

2

10

Практическая работа №10 Работа с системой программирования Code Vision AVR.

2

11

Практическая работа №11 Подготовка персонального компьютера к работе.

2

 


 

ПРАКТИЧЕСКАЯ РАБОТА №1

 

ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ В ПРОГРАММАХ НА ЯЗЫКЕ АССЕМБЛЕРА

 

Ø ЦЕЛЬ РАБОТЫ

Знакомство с ассемблером, изучение возможностей использования регистров микропроцессора при программировании

 

Ø ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

Ø  ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699с

 

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

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

Регистры можно разделить на регистры общего назначения, указатель команд, регистр флагов и сегментные регистры.

К регистрам общего назначения относится группа из 8 регистров, которые можно использовать в программе на языке ассемблера. Все регистры имеют размер 32 бита и могут быть разделены на 2 или более частей.

 

Названия регистров происходят от их назначения:

  • EAX/AX/AH/AL (accumulator register) – аккумулятор;
  • EBX/BX/BH/BL (base register) –регистрбазы;
  • ECX/CX/CH/CL (counter register) – счётчик;
  • EDX/DX/DH/DL (data register) – регистрданных;
  • ESI/SI (source index register) – индексисточника;
  • EDI/DI (destination index register) – индексприёмника (получателя);
  • ESP/SP (stack pointer register) – региструказателястека;
  • EBP/BP (base pointer register) – региструказателябазыкадрастека.

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

Ещё можно использовать регистры в качестве базы, т.е. хранилища адреса оперативной памяти. В качестве регистров базы можно использовать любые регистры, но желательно использовать регистры EBX, ESI, EDI или EBP. В этом случае размер машинной команды обычно бывает меньше.

Регистр EIP (указатель команд) содержит смещение следующей подлежащей выполнению команды. Этот регистр непосредственно недоступен программисту.

Флаг – это бит, принимающий значение 1 («флаг установлен»), если выполнено некоторое условие, и значение 0 («флаг сброшен») в противном случае. Процессор имеет регистр флагов, содержащий набор флагов, отражающий текущее состояние процессора.

        ZF - признак нуля результата ( ZF = 1, если все разряды результата равны 0);

        SF - знак результата ( SF = 1, если результат отрицательный);

        OF - признак переполнения ( OF = 1, если при выполнении арифметических операций над числами со знаком происходит переполнение разрядной сетки);

        CF - флаг переноса ( CF = 1, если выполнение операции сложения приводит к переносу за пределы разрядной сетки), устанавливается также в некоторых других операциях;

Некоторые команды ассемблера:

MOV dst, src – пересылка данных из src в dst

ADD dst, src – содержимое src складывается с содержимым dst, и результат помещается в src.

SUB dst, src – содержимое src вычитается из содержимого dst, и результат помещается в src.

INC dst – прибавляет 1 к содержимому dst.

DEC dst – вычитает 1 из содержимого dst.

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Задание.

        В регистр АХ запишите свой год рождения.

        В регистр BL запишите число = (порядковый номер в журнале+10)

        В регистр DL запишите число (45)10

        Сложите содержимое регистров AX и BL

        Результат вычислений сохраните в регистре СХ

        Из полученной суммы вычесть содержимое регистра DL

        Из регистра CX вычесть содержимое регистра AX

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать:

        номер варианта.

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);

        параллельное вычисление команд вручную.

Подробные переводы чисел можно не писать, просто указать, например, 510=1012


 

ПРАКТИЧЕСКАЯ РАБОТА №2

 

ВЫПОЛНЕНИЕ ЛОГИЧЕСКИХ ОПЕРАЦИЙ В ПРОГРАММАХ НА ЯЗЫКЕ АССЕМБЛЕРА

 

Ø ЦЕЛЬ РАБОТЫ

Получение практических навыков применения логических операций в программировании.

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

Ø  ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

Логическое И

Если оба бита равны 1, то результат равен 1, иначе результат равен 0.

AND

0

1

0

0

0

1

0

1

Для выполнения операции логического И предназначена команда AND. У этой команды 2 операнда, результат помещается на место первого операнда. Часто эта команда используется для обнуления определённых битов числа. При этом второй операнд называют маской. Обнуляются те биты операнда, которые в маске равны 0, значения остальных битов сохраняются. Примеры:

andax,bx;AX = AX & BX

andcl,11111110b    ;Обнуление младшего бита CL

anddl,00001111b    ;Обнуление старшей тетрады DL

Ещё одно использование этой команды — быстрое вычисление остатка от деления на степень 2. Например, так можно вычислить остаток от деления на 8:

andax,111b         ;AX = остаток от деления AX на 8

Логическое ИЛИ

Если хотя бы один из битов равен 1, то результат равен 1, иначе результат равен 0.

OR

0

1

0

0

1

1

1

1

Логическое ИЛИ вычисляется с помощью команды OR. У этой команды тоже 2 операнда, и результат помещается на место первого. Часто это команда используется для установки в 1 определённых битов числа. Если бит маски равен 1, то бит результата будет равен 1, остальные биты сохранят свои значения. Примеры:

oral,dl;AL = AL | DL

orbl,10000000b     ;Установить знаковый бит BL

orcl,00100101b     ;Включить биты 0,2,5 CL

Логическое НЕ (инверсия)

Каждый бит операнда меняет своё значение на противоположное (0 → 1, 1 → 0). Операция выполняется с помощью команды NOT. У этой команды только один операнд. Результат помещается на место операнда. Эта команда не изменяет значения флагов. Пример:

notbyte[bx]        ;Инверсия байта по адресу в BX

Логическое исключающее ИЛИ (сумма по модулю два)

Если биты имеют одинаковое значение, то результат равен 0, иначе результат равен 1.

XOR

0

1

0

0

1

1

1

0

Исключающим ИЛИ эта операция называется потому, что результат равен 1, если один бит равен 1 или другой равен 1, а случай, когда оба равны 1, исключается. Ещё эта операция напоминает сложение, но в пределах одного бита, без переноса. 1+1=10, но перенос в другой разряд игнорируется и получается 0, отсюда название «сумма по модулю 2». Для выполнения этой операции предназначена команда XOR. У команды два операнда, результат помещается на место первого. Команду можно использовать для инверсии определённых битов операнда. Инвертируются те биты, которые в маске равны 1, остальные сохраняют своё значение. Примеры:

xorsi,di;SI = SI ^ DI

xoral,11110000b    ;Инверсия старшей тетрады AL

xorbp,8000h        ;Инверсия знакового бита BP

Обозначение операции в комментарии к первой строке используется во многих языках высокого уровня (например C, C++, Java и т.д.). Часто XOR используют для обнуления регистров. Если операнды равны, то результат операции всегда равен 0. Такой способ обнуления работает быстрее и, в отличие от команды MOV, не содержит непосредственного операнда, поэтому команда получается короче (и не содержит нулевых байтов, что особенно нравится хакерам):

movbx,0            ;Эта команда занимает 3 байта

xorbx,bx;А эта - всего 2

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Задание 1.

        В регистр АL запишите число= (свой порядковый номер в журнале+31)*2.

        Произведите инверсию числа

        Запишите результат в регистр BL

        Произведите инверсию числа снова

        Преобразуйте содержимое регистра АL  в отрицательное число

        Примените операцию логического умножения к регистрам AL и BL

 

Задание 2.

В этом задании все числа, в том числе и маски, записываются в 16-ричной системе счисления. Для проверки правильности выполнения программы вам нужно будет переводить числа в двоичную и десятичную системы счисления.

        В регистр АL  запишите число= (свой порядковый номер в журнале+31)*2.

        Установите в «0» последние 4 бита содержимого регистра

        Установите в «1» первые 4 бита

        Инвертируйте все биты, кроме одного любого

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать:

        номер варианта.

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);

        параллельное вычисление команд вручную.

Подробные переводы чисел можно не писать, просто указать, например, 510=1012


 

ПРАКТИЧЕСКАЯ РАБОТА №3

 

РАЗРАБОТКА ПРОГРАММ С ЛИНЕЙНОЙ СТРУКТУРОЙ НА ЯЗЫКЕ АССЕМБЛЕРА

 

Ø ЦЕЛЬ РАБОТЫ

Получение практических навыков по программированию на языке низкого уровня.

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

Ø  ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

Флаг – это бит, принимающий значение 1 («флаг установлен»), если выполнено некоторое условие, и значение 0 («флаг сброшен») в противном случае. Процессор имеет регистр флагов, содержащий набор флагов, отражающий текущее состояние процессора.

        ZF - признак нуля результата ( ZF = 1, если все разряды результата равны 0);

        SF - знак результата ( SF = 1, если результат отрицательный);

        OF - признак переполнения ( OF = 1, если при выполнении арифметических операций над числами со знаком происходит переполнение разрядной сетки);

        CF - флаг переноса ( CF = 1, если выполнение операции сложения приводит к переносу за пределы разрядной сетки), устанавливается также в некоторых других операциях;

Некоторые команды ассемблера:

MOV dst, src – пересылка данных из src в dst

ADD dst, src – содержимое src складывается с содержимым dst, и результат помещается в src.

SUB dst, src – содержимое src вычитается из содержимого dst, и результат помещается в src.

INC dst – прибавляет 1 к содержимому dst.

DEC dst – вычитает 1 из содержимого dst.

NEGBX - преобразовывает положительное число в отрицательное и наоборот

CBW - расширяет значение регистра AL до AX

MULo1 - команда целочисленного умножения

Команда целочисленного умножения отрицательных чисел в трех вариантах:

IMULo1 - с одним операндом

IMULo1, o2- с двумя операндами

IMULo1, o2, o3 - с тремя операндами

DIVo1 - команда целочисленного деления

IDIVo1 - команда целочисленного деления отрицательных чисел

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Задание 1.

·         В регистр АХ запишите число 65535

·         Прибавьте в нему свой возраст

·         В регистр DX поместите содержимое флага переноса

·         Вычтите свой возраст

·         Используйте функцию инкрементирования к регистру АХ

·         В регистр DX поместите содержимое флага переноса

·         Используйте функцию декрементирования к регистру DX

 

Задание 2.

·         Используя команды языка Ассемблер вычислите значение выражения:

(54 + N) : 13 + 25 + N2

N – (ваш порядковый номер в журнале +31)*2

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать:

        номер варианта.

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);

        параллельное вычисление команд вручную.

Подробные переводы чисел можно не писать, просто указать, например, 510=1012


 

ПРАКТИЧЕСКАЯ РАБОТА №4

 

МАСКИРОВАНИЕ ДАННЫХ В ПРОГРАММАХ НА ЯЗЫКЕ АССЕМБЛЕРА

 

Ø ЦЕЛЬ РАБОТЫ

Получение практических навыков по программированию на языке низкого уровня

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

Логические:
and операнд_1,операнд_2 — операция логического умножения. Команда выполняет поразрядно логическую операцию И (конъюнкцию) над битами операндов операнд_1 и операнд_2. Результат записывается на место операнд_1.
or операнд_1,операнд_2 — операция логического сложения. Команда выполняет поразрядно логическую операцию ИЛИ (дизъюнкцию) над битами операндов операнд_1 и операнд_2. Результат записывается на место операнд_1.

хог операнд_1,операнд_2 — операция логического исключающего сложения. Команда выполняет поразрядно логическую операцию исключающего ИЛИ над битами операндов операнд_1 и операнд_2. Результат записывается на место операнд_1.
test операнд_1,операнд_2 — операция проверки (способом логического умножения). Команда выполняет поразрядно логическую операцию Я над битами операндов операнд_1 и операнд_2. Состояние операндов остается прежним, изменяются только флаги ZF, SF, и PF, что дает возможность анализировать состояние отдельных битов операнда без изменения их состояния в исходных операндах.
not операнд — операция логического отрицания. Команда выполняет поразрядное инвертирование (замену значения на обратное) каждого бита операнда.
Результат записывается на место операнда.

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

Для установки определенных разрядов (битов) в 1 применяется команда
or операнд_1,операнд_2
В этой команде второй операнд, играющий роль маски, должен содержать единичные биты на месте тех разрядов, которые должны быть установлены в 1 в первом операнде:
or еах, 10b ;установить 1-й бит в регистре еах
Для сброса определенных разрядов (битов) в 0 применяется команда
and операнд_1,операнд_2
В этой команде второй операнд, играющий роль маски, должен содержать нулевые биты на месте тех разрядов, которые должны быть установлены в 0 в первом операнде:
and еах , 0fffffffdh ;сбросить в 0 1-й бит в регистре еах
Для проверки состояния заданных битов в первом операнде применяется команда
test операнд_1,операнд_2

Команда проверки бита ВТ (Bit Test) переносит значение бита в флаг CF:
bt операнд,смещение_бита
Например
bt ax,5 ;проверить значение бита 5
jnc ml ;переход, если бит = 0

Команда проверки и установки бита BTS (Bit Test and Set) переносит значение бита в флаг CF и затем устанавливает проверяемый бит в 1:
bts операнд,смещение_бита
Например,
mov ax,10
bts pole,ах ;проверить и установить 10-й бит в pole
jc ml ;переход, если проверяемый бит был равен 1

Команда проверки и сброса бита BTR (Bit Test and Reset) переносит значение бита во флаг CF и затем устанавливает этот бит в 0:
btr операнд,смещение_бита

Команда проверки и инвертирования бита ВТС (Bit Test and Convert) переносит значение бита в флаг CF и затем инвертирует значение этого бита:
btc операнд,смещение_бита

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Задание 1.

        В регистр АL запишите число= (свой порядковый номер в журнале+31)*2.

        Произведите инверсию числа

        Запишите результат в регистр BL

        Произведите инверсию числа снова

        Преобразуйте содержимое регистра АL  в отрицательное число

        Примените операцию логического умножения к регистрам ALи BL

 

Задание 2.

В этом задании все числа, в том числе и маски, записываются в 16-ричной системе счисления. Для проверки правильности выполнения программы вам нужно будет переводить числа в двоичную и десятичную системы счисления.

 

        В регистр АL  запишите число= (свой порядковый номер в журнале+31)*2.

        Установите в «0» последние 4 бита содержимого регистра

        Установите в «1» первые 4 бита

        Инвертируйте все биты, кроме одного любого

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать:

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);

 


 

ПРАКТИЧЕСКАЯ РАБОТА №5

 

УПРАВЛЕНИЕ ИСПОЛНИТЕЛЬНЫМИ УСТРОЙСТВАМИ В ПРОГРАММАХ НА ЯЗЫКЕ АССЕМБЛЕРА.

 

Ø ЦЕЛЬ РАБОТЫ

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

.

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

компьютера / Э.Таненбаум. - Питер, 2012.- 699 с. 

 

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

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

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

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

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

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

Как уже отмечалось в гл. 1, связь с аппаратными средствами самого компьютера, а также с подключаемыми к нему устройствами осуществляется главным образом через адресное пространство ввода-вывода. Это значит, что за каждым устройством закрепляется один или, чаще, несколько портов, и программирование устройства осуществляется исключительно с помощью команд in и out (а также ins и cuts, если программируемое устройство может посылать данные потоком).

В простейшем случае программирование устройства сводится к выполнению единственной команды in в случае чтения из устройства, или out в случае записи в него. Рассмотрим, например, процедуры маскирования и размаскирования аппаратных прерываний. В каждом из двух контроллеров прерываний, включаемых в состав компьютера, имеется регистр маски (рис. 3.11). Значение 0 в бите маски разрешает прохождение сигнала прерывания, значение 1 запрещает. Пройдя через маску и через последующие узлы контроллера прерываний (не показанные на рис. 3.11), сигнал прерываний поступает на вход INT микропроцессора. Программирование регистров маски осуществляется через порт 21h для ведущего контроллера и A1h для ведомого.

Исходное значение маски устанавливается программами начальной загрузки компьютера в зависимости от конфигурации вычислительной системы. Типичным является значение A8h, показанное на рис. 3.11. При этом значении маски размаскированными оказываются системный таймер, клавиатура, мышь, подключенная к первому последовательному порту

http://www.e-dok.narod.ru/assembler/book/p3.11.jpg

Рис. 3.11. Регистр маски ведущего контроллера прерываний.

СОМ1, гибкий диск, а также выход от ведомого контроллера, подключаемый ко входу IRQ2 ведущего. Замаскированы оба параллельного порта (принтер, подключаемый к порту LPT1, обычно не использует прерываний, а второй параллельный порт часто просто отсутствует) и второй последовательный порт, к которому ничего не подключено. Другими словами, размаскировано все нужное, и замаскировано все ненужное.

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

in AL,21h ;Чтение регистра маски
or AL,1 ;Установка 1 в бите 0
out 21h,AL ;Запись нового значения маски

Восстановление исходного состояния вычислительной системы с разрешенными прерываниями от таймера осуществляется следующим образом:

in AL,21h ;Чтение регистра маски
and AL, 0FEh ;Установка 0 в бите 0
out 21h,AL ;Запись нового значения маски

Другим примером использования режима свободного доступа к устройству является программирование энергонезависимой КМОП-микросхемы, включающей в себя часы реального времени, о которых уже говорилось в разделе 5 этой главы, а также информацию о конфигурации компьютера и в некоторых случаях пароль. Общий объем КМОП-памяти составляет 64 байт (от 00h до 3Fh); доступ к байтам КМОП-памяти осуществляется через порты 70h и 71h.

В КМОП-микросхеме реализован способ обращения к ее отдельным ячейкам, широко используемый в микропроцессорной технике. Если программировать КМОП-память прямым образом, для обращения к ее 64 ячейкам в адресном пространстве ввода-вывода пришлось бы выделить 64 адреса. Для сокращения числа используемых адресов в состав микросхемы введены два служебных регистра - адресный и данных. В адресный регистр (порт 70h) заносится номер той ячейки КМОП-памяти, к которой требуется обращение. После этого чтение регистра данных (порт 7 Hi) позволяет прочитать содержимое выбранной ячейки, а запись в регистр данных выполняет передачу данного в эту ячейку. Приведем полный текст программы, которая читает содержимое ячейки с номером 0Dh. В ней хранится состояние батареи, питающей КМОП-микросхему. Если бит 7 этой ячейки установлен, батарея исправна; если этот бит сброшен, напряжение батареи упало ниже допустимого предела, и ее надо менять.

;Пример 3-10. Чтение ячейки КМОП-микросхемы
code segment
assume cs:code
main proc
mov AL,ODh ;Будем читать ячейку ODh
out 70h,AL ;Задание номера ячейки
in AL,71h ;чтение из ячейки
test AL,80h ;Проверка бита 7
jnz ok ;Бит 7 = 1, перейти на OK
mov AH,02h ;Бит 7=0, питания нет
mov DL,'-' ; Выведем в знак этого
int 21h ; Символ минус
jmp exit ;Переход на завершение
ok: mov АН,02h ;Батарея в порядке,
mov DL,'+' ;выведем в знак этого
int 21h ;символ плюс
;Завершим программу
exit: mov AX,4COOh
int 21h
main endp
code ends
end main

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

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

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

Интерфейс Centronics подключается к периферийному устройству (принтеру) с помощью кабеля, содержащего 17 сигнальных линий и несколько линий нуля. Управление интерфейсом осуществляется через три закрепленных за ним порта: порта данных с адресом 378h, порта состояния принтера с адресом 379h и порта управления принтером с адресом 37Аh. Порты фактически представляют собой 8-разрядные регистры, биты которых соответствуют сигналам интерфейса. Некоторые из этих сигналов, конкретно, сигналы портов данных и управления, являются для интерфейса выходными; их должна устанавливать программа, управляющая передачей информации. Другие сигналы, наоборот, поступают из периферийного устройства и отображаются в состоянии закрепленных за ними битов порта состояния; программа должна читать и анализировать эти биты. На рис. 3.12 показаны порты интерфейса Centronics с указанием сигналов, соответствующим конкретным битам.

378h порт данных

http://www.e-dok.narod.ru/assembler/book/p3.12.1.jpg

379h порт состояния

http://www.e-dok.narod.ru/assembler/book/p3.12.2.jpg

37Ah портуправления

http://www.e-dok.narod.ru/assembler/book/p3.12.3.jpg

Рис. 3.12. Порты интерфейса Centronics

Программирование параллельного интерфейса требует некоторых сведений о его протоколе, т.е. последовательности и взаимодействии сигналов, которыми интерфейс обменивается с подключенным к нему устройством. Некоторые из этих сигналов имеют узко специализированное назначение и возникают лишь в особых случаях (например, сигнал РЕ - конец бумаги), другие же принимают обязательное участие в процедуре передачи данных. К последним относятся 8 бит данных и три управляющих сигнала STROBE', BUSY и АСК' (рис. 3.13).

http://www.e-dok.narod.ru/assembler/book/p3.13.jpg

Рис. 3.13. Протокол передачи данных для интерфейса Centronics.

Сигнал BUSY считается активным, когда он имеет высокое значение. В противоположность этому активное состояние сигналов STROBE' и АСК' низкое, отчего они и обозначаются с тем или иным дополнительным значком (с чертой наверху, со знаком минус или с апострофом, как у нас). Прослеживая соответствие сигналов интерфейса состоянию битов его портов, необходимо иметь в виду, что для некоторых сигналов (SLCT, РЕ, STROBE) в порты записываются их прямые значения, а для других (ERROR, АСК, BUSY) - инверсные.

Вывод на принтер каждого байта данных состоит из трех этапов. Прежде всего программа должна дождаться неактивного состояния сигналов BUSY и АСК (это и есть ожидание готовности устройства). Убедившись, что биты 6 и 7 порта состояния 379h установлены в 1 (см. рис. 3.12), програм-ма посылает в порт данных 378h байт данных, что приводит к установке кода данных на линиях интерфейса D7...D0. Наконец, программа должна установить на короткое время сигнал STROBE, что реализуется путем установки и затем сброса бита 0 порта управления 37All. Следующие бай-ты посылаются точно таким же образом.

Выполняя все эти операции, необходимо учитывать временные ха-рактеристики интерфейса. Сигнал STROBE можно посылать в порт уп-равления не ранее, чем через 0,5 мкс после установки данных, что может потребовать введению в программу небольшой программной задержки (одной или нескольких команд jmp, см. приведенный ниже текст про-граммы). То же относится и к длительности сигнала STROBE, которая не должна быть меньше той же величины 0,5 мкс. Практически программные задержки часто оказываются не нужны.

Обратимся еще раз к рис. 3.13. Принтер, сняв с линий данных байт данных, и начав его обработку (вывод на печать или сохранение во внутренней памяти), устанавливает ответный сигнал BUSY, действующий все время, пока принтер занят обработкой байта данных. Закончив обработку байта, принтер на некоторое время устанавливает сигнал АСК и сбрасывает сигнал BUSY. Окончание сигнала АСК (при сброшенном состоянии сигнала BUSY) говорит интерфейсу об окончании данной операции обмена и о возможности посылки следующего байта данных. Ввиду краткости сигнала АСК часто оказывается, что ожидать его снятия нет необходимости; достаточно дождаться неактивного состояния сигнала BUSY (т.е. 1 в бите 7 порта состояния). Вообще следует заметить, что различные принтеры могут несколько поразному выполнять свою часть протокола обмена. Рассмотренный ниже пример отлаживался на принтере Epson LQ100.

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

В приведенном примере предполагается, что принтер выбран и установлен в исходное рабочее состояние, что обычно выполняется автоматически при его включении. Свидетельством этого будут установленные биты 2 и 3 (SLCT IN и INIT) в порте управления, а также бит 4 (SLCT) в порте состояния. В программе не выполняется анализ байта состояния на наличие ошибки или конца бумаги, что при работе с принтером, вообще говоря, следует предусматривать.

Третий метод программирования периферийного устройства - режим прерываний - рассмотрим на примере обработки прерывания от мыши. Как известно, мышь обычно подключается к первому последовательному порту СОМ1 и работает в режиме прерываний. Нажатие или отпускание любой клавиши, так же, как даже минимальное перемещение по столу, вырабатывает сигналы прерываний, сопровождаемые определенными кодами, которые поступают в порт данных интерфейса. Написав собственный обработчик прерываний для последовательного порта, мы получим возможность выполнять заданные действия, например, при нажатии левой и правой клавиш мыши. Следует подчеркнуть, что эти действия начнут выполняться практически в тот же момент, когда мы нажали на клавишу. В приведенной ниже программе при нажатии левой клавиши в центр экрана выводится цветная надпись "Левая!", а при нажатии правой клавиши - надпись "Правая" другого цвета.

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

Каждое нажатие (или отпускание) клавиши мыши, так же, как и ее перемещение, в действительности вырабатывают не по одному, а по три последовательных прерывания с различными кодами в порте данных интерфейса. Так, нажатие левой клавиши мыши дает последовательность кодов 60h, 0, 0, нажатие правой клавиши - последовательность 50h, 0, 0, отпускание любой клавиши - 40h, 0, 0, перемещение вверх - 4Ch, 0, 3Fh, перемещение вниз - 40h, 0, 1 и т.д. Таким образом, по-настоящему надо было сохранять в обработчике прерываний все три кода и затем анализировать всю последовательность. Мы для простоты ограничились анализом только первого кода. Как видно из приведенного выше перечня, анализ одного кода не дает возможность отличить, например, отпускание клавиши от перемещения вниз.

Коды, генерируемые мышью, могут зависеть от ее типа, что надо учитывать при подготовке этого примера. Для получения значений генерируемых кодов можно предусмотреть в обработчике прерываний вывод их на экран с помощью функции прерывания 10h BIOS, как это было сделано, например, в примере 3-5, или прямым выводом в видеобуфер. Следует только иметь в виду, что перехват любого прерывания от последовательного интерфейса должен обязательно сопровождаться чтением из его порта данных, так как интерфейс может принять очередной байт данных только после чтения предыдущего и освобождения своего регистра данных.

;Пример 3-12. Программирование мыши в режиме прерываний
.586 ;Будут команды новых процессоров
code segment use16 ;16-разрядное приложение
assume CS : code,DS:code ;Данные в сегменте команд
main proc
push CS ;Настроим DS
pop DS ;на сегмент команд
;Сохраним обработчик прерываний последовательного порта
mov AX,350Ch ;Функция 35h, вектор 0Сh
int 21h
mov word ptr old_Oc,BX ;Сохраним смещение
mov word ptr old_Oc+2,ES ;Сохраним сегмент
;Установим наш обработчик прерываний последовательного порта
mov AX,25ОСЬ ;Функция 25h, вектор 0Сh
mov DX,offset new_0c ;Адрес нашего обработчика
int 21h
;Остановим программу функцией ввода с клавиатуры
mov AH,01h
int 21h
;Восстановим исходный обработчик драйвера мыши
mov AX,250Ch ;Функция 25h, вектор 0Сh
Ids DX,old_0c ;Сохраненный адрес
int 21h
mov AX,4C00h ;Завершим программу
int 21h
main endp
new_0c proc
pusha ;Сохраним все регистры
push DS ;Сегментные регистры не
push ES ;сохраняются командой pusha
mov DX,3F8h ;Порт данных
in AL,DX ;Прочитаем
cmp AL, 60h ;Левая клавиша — код 60h
je Ibtn ;Переход на отработку
cmp AL, 5Oh ;Правая клавиша — код 5Oh
je rbtn ;Переход на отработку
;Завершение обработчика прерываний
outret:pop ES ;Восстановим сегментные
pop DS ;регистры
mov AL,20h ;Команда EOI
out 20h,AL ;в контроллер прерываний
рора ;Восстановим все регистры
iret ;Выход из прерывания
;Если нажата левая клавиша мыши
Ibtn: mov АН, 1Eh ;Атрибут символов желтый по
; синему
mov SI,offset msgdn ;Адрес выводимой строки
jmp commn ;Ha общую часть вывода
;Если нажата правая клавиша мыши
rbtn: mov AH,2Eh ;Атрибут символов желтый по
;зеленому
mov SI,offset msgdn ;Адрес выводимой строки
;Общая часть вывода на экран диагностической строки
commn: mov BX,OB800h ;Настроим ES
mov ES,BX ;на видеобуфер
push CS ;Настроим DS
pop DS ;на наш сегмент
mov CX,6 ;Число выводимых символов
mov DI,2000 ;Смещение на экране
cld ;Движение вперед
scr: lodsb ;АL=очередной символ
stosw ;Из АХ на экран
loop scr ;Цикл
jmp outret ;После вывода завершить
;обработку прерывания
new_0c endp
old_0c dd 0 ;Ячейка для исходного
;вектора
msgdn db "Левая!" ;Выводимые сообщения
msgup db "Правая"
code ends
stk segment stack
dw 128 dup(O)
stk ends
end main

Приведенный пример с точки зрения его структуры построен обычным образом. Исходное содержимое вектора 0Ch сохраняется в ячейке old_0c и используется перед завершением программы для восстановления вектора. Для упрощения установки обработчика прерываний программа написана без сегмента данных; ее немногие данные размещены в сегменте команд. Поскольку в начале программы регистр DS настраивается на сегмент команд, адресация к данным (в основной программе) возможна через DS. Для того, чтобы можно было наблюдать обработку прерываний от мыши, основная программа после выполнения инициализирующих действий останавливается с помощью функции 01h DOS ожидания ввода символа с клавиатуры. После нажатия любой клавиши программа завершается, восстановив предварительно исходное состояние вектора последовательного порта.

Действия, которые должны инициироваться нажатием левой или правой клавиш мыши (например, включение или выключение некоторого оборудования), в программе заменены выводом на экран коротких диагностических сообщений. Вывод осуществляется прямой записью в видеобуфер, поскольку, как уже говорилось ранее, в обработчике аппаратных прерываний нельзя использовать функции DOS и рискованно - функции BIOS. Вывод на экран с помощью команд обработки строк lodsb и stosw требует настройки большого количества регистров - в DS:SI должен находиться адрес строки-источника, в ES:DI адрес позиции в видеобуфере, в СХ число выводимых символов. Кроме этого, в обработчике прерываний используются регистры АХ, ВХ и DX. Для сохранения всех регистров общего назначения используется команда pusha, а для их восстановления команда рора. Однако эти команды не принимают в расчет сегментные регистры, и их приходится сохранять и восстанавливать от дельными командами.

С восстановлением регистров может возникнуть некоторая сложность. Обработчик прерывания должен завершаться посылкой в контроллер прерываний команды EOI, а для этого необходим регистр AL. Поэтому восстановление регистров, во всяком случае, регистра АХ, необходимо выполнять после команды EOI. С другой стороны, команда EOI разблокирует нижележащие уровни прерываний в контроллере прерываний (см. гл. 3), что может привести к прохождению через контроллер очередного (вложенного в наше) прерывания, которое прервет наш обработчик в точке, где еще не восстановлены регистры. Это неминуемо приведет к краху системы. Однако в процессоре предусмотрены меры устранения этого неприятного явления. Остановимся на них более подробно.

Процессор, приняв любой сигнал прерывания, сбрасывает флаг IF в своем регистре флагов, запрещая тем самым все аппаратные прерывания. Поэтому вход в обработчик прерываний всегда осуществляется при запрещенных прерываниях. Блокировка нижележащих уровней в контроллере прерываний просто накладывается на этот общий запрет и новых ограничений не вносит.

Если в тексте обработчике прерываний нет команды разрешения прерываний sti, то прерывания будут запрещены до самого его конца, до завершающей команды iret. Эта команда извлекает из стека и восстанавливает исходное содержимое регистров CS:IP, а также регистра флагов. В момент прерывания в регистре флагов был безусловно установлен флаг IF, иначе прерывание не могло бы возникнуть. Восстановление регистра флагов приводит к установке этого флага и разрешению всех аппаратных прерываний, но уже после завершения обработчика прерываний. Таким образом, снятие аппаратной блокировки прерываний командой EOI в действительности не приводит к разрешению прерываний, и любые строки, стоящие после этой команды, выполняются при запрещенных прерываниях. В результате никаких проблем с восстановлением регистров после команды EOI не возникает.

Обычно, однако, используется другой вариант построения обработчика прерываний. В этом варианте в начале программы обработчика выполняется команда sti, устанавливающая флаг IF и разрешающая все аппаратные прерывания, кроме тех, которые заблокированы в контроллере прерываний. В результате программа обработчика может быть прервана любым прерыванием более высокого уровня IRQ (т.е. уровня с меньшим номером), но не прерывается сигналами прерываний этого же и более низких уровней. Такое построение обработчиков прерываний удобно тем, что "более важные" прерывания, например, от таймера или клавиатуры, могут быть обработаны без задержки. Для того, чтобы исключить возможные неприятности с восстановлением регистра АХ после команды EOI, перед ней прерывания запрещаются командой cli и структура обработчика прерываний приобретает приблизительно такой вид:

sti
pusha ;Сохранение регистров
... ;Тело обработчика
cli ;Запрещение всех прерываний
mov AL,20h ;Команда EOI
out 20h,AL ;контроллеру прерываний
рора ;Восстановление регистров
iret ;Возврат из обработчика

Команды рора и iret выполняются в этому случае при запрещенных прерываниях, но после отработки команды iret в регистре флагов восстанавливается его исходное содержимое (в котором IF = 1), и прерывания, таким образом, снова разрешаются.

 

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Изучить материал по теме

Выполнить программирование предлагаемых примеров

 

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать:

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);


 

ПРАКТИЧЕСКАЯ РАБОТА №6

 

ОРГАНИЗАЦИЯ ВЕТВЛЕНИЙ В ПРОГРАММАХ НА ЯЗЫКЕ АССЕМБЛЕРА

 

Ø ЦЕЛЬ РАБОТЫ

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

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

В языках программирования высокого уровня конструкция выбора известна как оператор IF - THEN. Эта конструкция позволяет выбрать следующее действие из нескольких возможных вариантов в зависимости от выполнения определенного условия. В языке ассемблера механизм выбора реализован посредством команд сравнения, условного и безусловного переходов.

Команда CMP используется для сравнения двух операндов:  СМР о1, о2

Эта команда работает подобно команде вычитания: о2 вычитается из о1. Результат нигде не сохраняется, команда меняет регистр признаков.

Примеры:

СМР  ах, 4 - сравниваем содержимое регистра с числом

СМР  dl, ah - сравниваем содержимое двух регистров

В языке ассемблер используется несколько команд условного перехода. Чтобы запомнить названия команд, надо запомнить несколько английских слов: jump - прыжок ,equal - равно, above - больше, below - ниже, zero- ноль, greater - больше, less - меньше, not - нет.Например, прыжок, если не ноль - JNZ.

Результат сравнения

о1=о2

о1 не равно о2

о1>о2

о1<о2

о1<=о2

о1>=о2

для положи-тельных чисел

JE(JZ)

JNE (JNZ)

JA (JNBE)

JB(JNAE)

JNA (JBE)

JNB (JAE)

 

Переход, если равно (переход, если 0)

Переход, если не равно (переход, если не 0)

Переход, если больше (переход, если не меньше или равно)

Переход, если меньше (переход, если не больше или равно)

Переход, если не больше (переход, если меньше или равно)

Переход, если не меньше (переход, если больше или равно)

Для отрица-тельных чисел

JE(JZ)

JNE (JNZ)

JG (JNLE)

JL(JNGE)

JNG (JLE)

JNL (JGE)

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

 

Задание:

в регистр запишите число

разделите его на 310

если число разделилось без остатка, то снова разделите результат на 310

и так до тех пор, пока не появится остаток

 

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

 

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать:

        номер варианта.

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);

        параллельное вычисление команд вручную.

Подробные переводы чисел можно не писать, просто указать, например, 510=1012


 

ПРАКТИЧЕСКАЯ РАБОТА №7

 

ВЫВОД ТЕКСТА НА ДИСПЛЕЙ

 

Ø ЦЕЛЬ РАБОТЫ

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

Задача:

Вывод строки на экран монитора осуществляется с помощью 9-ой функции прерывания 21h операционной системы MS DOS.

В регистре DX задаётся адрес выводимой строки. Ограничителем символов выводимой строки является знак $ (ASCII-код знака $ равен 24h).

В регистре AH задаётся номер функции прерывания 21h: 9-ая функция.

 

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

 

model small

gr GROUP c_sgm, d_sgm

ASSUME cs: gr, ds: gr

 

d_sgm SEGMENT

space  DB "Выводимая на экран строка $"

d_sgm ENDS

 

c_sgm SEGMENT

strt:

        mov  ax,  gr

        mov  ds,  ax

        mov  dx,  offset space

        mov  ah,  9

        int  21h

        mov  ah,  4ch

        int  21h

c_sgm ENDS

 

END strt

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Задания:

1.      Изучить содержание теоретической части.

2.      Повторить выполнение рассмотренных примеров .

3.      Составить ассемблерные модули для решения следующих задач:

4.      Вывести на экран первые 5 символов строки;

5.      Вывести на экран последние 5 символов введённой строки;

6.      Вывести на экран  все символы строки, кроме 3-х первых символов и 3-х последних.

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать:

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);


 

ПРАКТИЧЕСКАЯ РАБОТА №8

 

ВВОД ТЕКСТА С КЛАВИАТУРЫ

 

Ø ЦЕЛЬ РАБОТЫ

.

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

Задача №1:

Ввод строки с клавиатуры осуществляется с помощью 10-ой функции прерывания 21h операционной системы MS DOS.

В регистре DX задаётся адрес буфера вводимой строки. Ограничитель количества вводимых с клавиатуры символов строки вносится в первую ячейку буфера.

Количество вводимых с клавиатуры символов на 1 меньше значения ограничителя.

В регистре AH задаётся номер функции прерывания 21h: 10-ая функция.

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

 

model small

gr GROUP c_sgm, d_sgm

ASSUME cs: gr, ds: gr

 

d_sgm SEGMENT

        space  DB 12 DUP(0)

d_sgm ENDS

 

c_sgm SEGMENT

strt:

        mov  ax,   gr

        mov  ds,   ax

        mov  bp,   offset space

        mov  al,   8

        mov  [bp], al

        mov  dx,   bp

        mov  ah,   10

        int  21h

        mov  ah,   4ch

        int  21h

c_sgm ENDS

END strt

Задача №2:

 

Запросить имя. Ввести это имя. Вывести именное приветствие.

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

 

model small

gr GROUP c_sgm, d_sgm

ASSUME cs: gr, ds: gr

 

d_sgm SEGMENT

        y_name DB "What's your name?",13,10,"$"

        space  DB 8, 12 DUP(0)

        hello  DB 13,10,"Hello, ",10 DUP(32)

d_sgm ENDS

 

c_sgm SEGMENT

strt:

        mov  ax,  gr

        mov  ds,  ax

        mov  dx,  offset y_name

        mov  ah,  9

        int  21h

        mov  dx,  offset space

        mov  ah,  10

        int  21h

        mov  si,  offset space

        mov  cl,  [si +01]

        mov  ch,  0

        mov  di,  offset hello

mlp:    mov  ah,  [si+02]

        mov  [di+09], ah

        inc  si

        inc  di

        loop mlp

        mov  ax,2421h

        mov  [di+09], ax

        mov  dx,  offset hello

        mov  ah, 09

        int  21h

        mov  ah,  4ch

        int  21h

c_sgm ENDS

 

END strt

 

Комментарий к представленному выше коду:

y_name – буфер вывода приветствия и  последующего перевода курсора на следующую строку

space  – буфер ввода строки с клавиатуры (с ограничителем = 8 в начальной ячейке буфера)

hello  – буфер именного приветствия  (заранее заготовлен шаблон приветствия: «Hello, ...»).

         Имя копируется в этот буфер после ввода с клавиатуры. С учетом количества символов слова «Hello, ...»   при копировании выбрано смещение = 09.

         Сначала выводится приветствие “What's your name?”

     с автоматическим переводом курсора

     на следующую строку (,13,10,”$”)

         Далее выполняется ввод строки в буфер space.

     В этот буфер заранее введено значение ограничителя = 8

    (максимальное количество символов вводимой строки = 7).

         Далее из ячейки ([si +01]) в регистр cl

     копируется количество символов введённой строки.

         После этого в цикле выполняется копирование символов

     введённой строки из буфера space в буфер hello

     со смещением = 09 (чтобы не затереть слово «Hello, ...»).

         По завершении копирования в ячейки,

     расположенные непосредственно за скопированной строкой,

     добавляются символы 2421h («!$»),

     завершающие формирование строки именного приветствия.

         После проведённой работы

     остаётся вывести именное приветствие.

     Стоит обратить внимание на то,

     что именное приветствие начинается кодами (13,10,),

     которые обеспечивают перевод курсора на следующую строку.

 

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Задания:

1.      Изучить содержание теоретической части.

2.      Повторить выполнение рассмотренных примеров .

3.      Составить ассемблерные модули для решения следующих задач:

4.      Ввести строку символов и вывести на экран первые 5 символов введённой строки;

5.      Ввести строку символов и вывести на экран последние 5 символов введённой строки;

6.      Ввести строку символов и вывести на экран все символы строки, кроме 3-х первых символов и 3-х последних.

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

 

Отчет должен содержать:

        программу по каждому заданию;

        состояние задействованных в вычислениях регистров после выполнения каждой команды (каждого шага программы);


 

ПРАКТИЧЕСКАЯ РАБОТА №9

 

РАБОТА С ПРОГРАММНОЙ СРЕДОЙ AVR STUDIO

 

Ø ЦЕЛЬ РАБОТЫ

Получение практических навыков по идентификации и установке процессора.

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office, AVR Studio

ü мультимедиапроектор;

 

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

Фирма Atmel – разработчик микроконтроллеров AVR, позаботилась о сопровождении своей продукции. Для написания программ, их отладки, трансляции и прошивки в память микроконтроллера фирма разработала и бесплатно распространяет специализированный программный инструмент разработчика под названием «AVR Studio». Установочный пакет этой инструментальной программы можно скачать с сайта фирмы http://www.atmel.com. Программная среда «AVR Studio» — это современный программный продукт, позволяющий производить все этапы разработки программ для многих микроконтроллеров серии AVR. Пакет включает в себя специализированный текстовый редактор для написания программ, программный отладчик. Кроме того, «AVR Studio» позволяет управлять целым рядом подключаемых к компьютеру внешних устройств, позволяющих выполнять аппаратную отладку, а также программирование («прошивку») микросхем AVR. Программная среда «AVR Studio» работает не просто с программами, а с проектами. Проект в терминах AVR Studio – это совокупность файлов исходных текстов программ(ы) и служебных файлов AVR Studio. Исходные тексты разработчик создает сам, реализуя логику работы микроконтроллера в рамках поставленой задачи. Служебные файлы проекта создаются самим AVR Studio для хранения в них информации о проектных файлах и о настройках среды. Это текстовые файлы с расширениями aps и aws.  Для каждого проекта должен быть отведен свой отдельный каталог на жестком диске. В AVR Studio одновременно может быть загружен только один проект. При загрузке нового проекта предыдущий проект автоматически выгружается. Головным файлом проекта является файл с расширением aps. Он содержит сведения о типе процессора, используемого в проекте, частоте тактового генератора и т. д. Он также содержит описание всех остальных файлов, входящих в проект. Все эти сведения используются при отладке и трансляции программы. Кроме файла aps, проект должен содержать хотя бы один файл с текстом программы. Такой файл имеет расширение asm. Недостаточно просто поместить asm-файл в директорию проекта. Его нужно еще включить в проект. Как это делается, будет показано позже. Проект может содержать несколько asm-файлов. При этом один из них является главным (он указывается при создании проекта). Остальные могут подключасться главным файлом при помощи директивы препроцессора .include. На этом заканчивается список файлов проекта, которые создаются при участии разработчика. Если программа не содержит синтаксических ошибок и процесс трансляции прошел успешно, то в директории проекта автоматически появляются следующие файлы:  - файл, содержащий результирующий код в hex формате; - файл, содержащий все символьные имена транслируемой программы со своими значениями; - листинг-трансляции (lst) и другие вспомогательные файлы. Однако будет важен выходной hex-файл (файл с расширением hex). Именно он будет служить источником данных при прошивке программы в программную память микроконтроллера.

 

ВНЕШНИЙ ВИД ПРОГРАММЫ «AVR STUDIO»

На рисунке 1 показано, как внешне выглядит «AVR Studio». На самом деле «AVR Studio» имеет очень гибкий интерфейс, и внешний вид (рисунок 1) может сильно отличаться от варианта, показанного на рисунке. Но далее будет рассмотрен случай, когда выбраны установки по умолчанию.

Рисунок 1 – Внешний вид AVR Studio

Главная панель программы AVR Studio разделена на три основных окна. На рисунке 1 они обозначены цифрами 1, 2, 3 и 6.Окно 6 предоставляет информацию о текущем проекте. 

Окно 6 «Project» содержит информацию по текущему загруженному проекту. Информация представлена в виде дерева. Разные ветви этого дерева описывают все исходные и результирующие файлы проекта, все метки, процедуры и присоединяемые файлы. Окно 1 отображает архитектурный состав сомпонентов выбранного для проекра микроконтроллера: регистры управления и состояния устройств (таймеры, порты, АЦП и т.д.), их прерывания и значения их регистрой данных. В этом окне во время отладки программы в режиме симулятора можно будет наблюдать за изменением состояний устройств, прерываний и регистров с которыми работает отлаживаемая программа. В пошаговом пежиме можно будет также «на лету» подменять значения нужных регистров и отдельно взятых управляющих битов с целью более оптимальной проверки работы алгоритмов программы. Элементы, появляющиеся в результате раскрытия ветви, в свою очередь также могут быть раскрыты, если они имеют свое содержимое. На рисунке 2 в увеличенном виде показано дерево ресурсов микроконтроллера АТinу2313. На рисунке несколько ветвей специально раскрыты, чтобы можно было увидеть их состав. Если какая-либо ветвь может быть раскрыта, то в своем основании она имеет квадратик с плюсиком внутри. Двойной щелчок на этом плюсике раскрывает ветвь. В раскрытой ветви плюсик превращается в минус. Повторный двойной щелчок по квадратику закрывает раскрытую ветвь. На рисунке 2 для наглядности раскрыты ветви портов ввода/вывода и можно видеть: -  полный состав управляющих регистров для каждого из устройств; - их названия и адреса; -  состав и название каждого бита (если биты имеют свои названия).

Рисунок 2 – Окно ресурсов микроконтроллера

 

В процессе отладки в этом окне можно увидеть не только название и состав всех ресурсов, но и их содержимое. Содержимое будет отображаться как в шестнадцатиричном виде, так и путем затемнения квадратиков, отображающих отдельные биты конкретных регистров. Затемненный квадратик означает, что бит равен единице. Светлый квадратик говорит о том, что бит равен нулю. Вы также можете оперативно менять это содержимое прямо в этом окне. Для изменения значения бита достаточно двойного щелчка мышки в соответствующем квадратике. Существуют и другие способы изменения содержимого различных регистров и ячеек памяти в процессе отладки. В нижней части главной панели находится второе вспомогательное окно (окно 2 на рисунке 1). Это окно служит, в основном, для вывода различных сообщений. Оно также содержит ряд вкладок. По умолчанию их четыре. Первая вкладка называется «Build». На вкладке «Build» отражается процесс трансляции. На эту вкладку выводятся сообщения об различных этапах трансляции, сообщения о синтаксических ошибках и различные предупреждения (Warnings). Если трансляция заканчивается нормально (отсутствуют ошибки компиляции), то сюда же выводятся статистические данные о полученном результирующем коде. Эти данные показывают размеры и процент использования всех видов памяти микроконтроллера:

Сообщение означает, что в программном сегменте исполняемый код занимает 72 ячейки. Константы в памяти программ занимают 257 16-битных слов. Размер программной памяти для этого микроконтроллера составляет 513 слов (16-битных ячеек). Последняя строка содержит сообщения об ошибках. В данном случае сообщение переводится так: «Ассемблирование прошло без ошибок». Следующая вкладка второго окна называется «Message». Здесь выводятся разные системные сообщения о загрузке модулей программы и т. п. Третья вкладка второго окна называется «Find in Files» (поиск в файлах). В этом окне отражаются результаты выполнения команды «Поиск в Файлах». Эта команда позволяет производить поиск заданной последовательности символов сразу во всех файлах проекта. По окончании поиска во вкладке «Find in Files» отражаются все найденные вхождения с указанием имени файла и строки, где найдена искомая последовательность. Последняя вкладка называется «Breakpoints and Tracepoints» (Точки останова и точки трассировки). Эти точки проставляются в тексте программы перед началом процесса отладки и дублируются в данном окне. Как проставлять точки останова, беднт описано позже.

 Точки останова (breakpoints) используются для того, чтобы приостановить выполнение программы в том или ином месте программы для того, чтобы убедиться, что программа выполняется правильно. Точки останова ставятся/убираются в окне текста программы нажатием <F9> на строке предполагаемого останова программы. 

Рисунок 3 – точки останова в тексте

 

При установке точки останова в тексте программы строка помечается маркером в форме точки большого диаметра, а информация о ней автоматически появляется во вкладке «Breakpoints and Tracepoints» (рисунок 4):

Рисунок 4 – Break points and tracepoints

 

Вкладка позволяет увидеть все точки останова программы в одном списке. Кроме того, на вкладке против каждой записи, описывающей точку останова, автоматически появляется «Check box» (поле выбора), при помощи которого можно в любой момент временно отключить любую точку останова. В окне 3 можно открывать не только все тексты ассемблерных программ текущего проекта, но и тексты программ других проектов, а также тексты программ, написанных на других языках программирования. Такой прием очень удобен, если нужно переделать программу, написанную для старого микроконтроллера на старой версии Ассемблера на новый лад. Все открытые текстовые окна запоминаются и затем открываются автоматически при открытии проекта.

 Любое текстовое окно имеет подсветку синтаксиса. Разные части помещенного туда текста программы подсвечиваются разными цветами. Так, все операторы Ассемблера высвечиваются голубым цветом. Комментарии выделяются зеленым. Остальной текст (параметры команд, псевдооператоры, метки, переменные и константы) остается черным. Это очень удобно. Если написанный вами оператор окрасился в голубой цвет, то это значит, что вы не ошиблись в синтаксисе. Если вы написали комментарий, но перед текстом комментария забыли поставить точку с запятой, то этот комментарий не окрасится в зеленый цвет. Таким образом, многие ошибки видны уже в процессе написания программы. Кроме двух вспомогательных и одного основного окна, главная панель программы имеет строку меню (отмечена цифрой 4 на рисунке 1), а также несколько инструментальных панелей (отмечены цифрой 5). Как и в любой другой программе под Windows, при помощи меню вызываются все функции программы AVR Studio и переключаются все ее режимы. Панели инструментов дублируют часто используемые функции меню.

 

СОЗДАНИЕ ПРОЕКТА НА АССЕМБЛЕРЕ После запуска программы открывается мастер нового проекта, который также можно вызвать через меню ―Project –> New project‖ (Рисунок 5).

Рисунок 5 – Создание проекта

 

В открывшемся окне надо выбрать тип проекта - Atmel AVR Assembler (рисунок 4):

Рисунок 6 – Выбор тира проекта

 

Первый чек-бокс (Create initialize file) определяет, нужно ли автоматически создавать главный программный файл. Если поставить галочку «Create initial file» - будет создан пустой файл для исходного текста или откроется уже существующий в случае, если он уже существует по указанному пути. Введите имя начального файла Второй чек-бокс (Create folder) определяет, нужно ли автоматически создавать отдельный каталог для данного проекта. Если вы заранее уже создали нужный каталог средствами Windows, снимите пометку. Если нет, оставьте. Следующее поле называется «Initial file». Оно должно содержать имя файла, куда будет записываться текст программы. По умолчанию имя файла вписывается в это поле и, оно идентично введенному имени проекта, к которому добавляется расширение asm. Еще одно поле, требующее нашего вмешательства, — это поле «Location». Здесь вы должны указать путь к тому месту на вашем жестком диске, где будет храниться проект . Путь нельзя ввести непосредственно с клавиатуры. Для изменения пути нужно нажать кнопку справа, на которой в качестве названия поставлено многоточие («...»).

 

. Назначте рабочую папку - место размещения проекта. Затем перейти далее (нажать ктопку «Next>>») на форму где необходимо определится с типом используемой отладочной платы.

Рисунок 7 – Выбор модели контроллера

 

Если предполагается воспользоватся встроенным симулятором следует выбрать пункт AVR Simulator и выбрать используемый тип микроконтроллера. После произведенных действий откроется окно програмного кода.

Рисунок 8 – Вид после создания проекта

 

В этом окне набирается и корректируется текст программы. Помимо окна с кодом программы, в AVR Studio существует еще несколько полезных окон: Project, I/O View и Info, служащих для отображения состава проекта, состояния регистров и портов микроконтроллера с возможностью управления состоянием регистров и портов и дополнительной справочной информации о микроконтроллере, но об этом чуть позднее...

 Сразу после создания новый проект состоит всего из двух файлов: - собственно файл проекта Prog1. aps; - файл, куда будет помещен текст программы на Ассемблере Prog1.asm.

Файл текста программы автоматически открывается в окне 3. Причем он пока абсолютно пустой. Теперь вы можете приступать к набору этого текста. Если речь идет о программе Prog1, то просто наберите текст, приведенный в листинге 4.1. При наборе текста вы можете пользоваться всеми возможностями, какие обычно предоставляет любой современный текстовый редактор. Встроенный текстовый редактор программы AVR Studio поддерживает все необходимые сервисные функции: -  выделение текстовых фрагментов; -  вырезание; -  копирование; -  вставку; -  перетаскивание мышью; -  поиск и замену и многое другое. Для управления всеми этими возможностями используется стандартный интерфейс, знакомый вам по многим текстовым редакторам, в частности, по популярному редактору Microsoft Word. Набранный тест программы не забудьте записать на диск при помощи команды «Save» меню «File» или при помощи соответствующей кнопки на панели инструментов. Кнопка  позволяет записать сразу все открытые текстовые файлы.

 

ТРАНСЛЯЦИЯ ПРОГРАММЫ

После того, как текст программы набран и записан на жесткий диск, необходимо произвести трансляцию программы. В процессе трансляции создается результирующий файл, который представляет собой ту же программу, но в машинных кодах, предназначенную для записи в программную память микроконтроллера. Результирующий файл имеет расширение hex. Кроме hex-файла транслятор создает еще несколько вспомогательных файлов. И главное, файл с расширением еер. Этот файл имеет точно такую же внутреннюю структуру, как файл hex. А содержит он информацию, предназначенную для записи в EEPROM. Такая информация появляется в том случае, когда в тексте программы переменным, размещенным в сегменте eeprom, присвоены начальные значение. В наших примерах мы этого не делали. Поэтому файл с расширением еер во всех проектах будет пустой (содержать лишь завершающую строку). Формат файлов hex и еер. В обоих случаях применяется так называемый НЕХформат, который практически является стандартом для записи результатов транслирования различных программ. Он поддерживается практически всеми трансляторами с любого языка программирования. В принципе, разработчику не обязательно знать структуру этого формата. Достаточно понимать, что в hex-файле определенным способом закодирована программа в машинных кодах. Именно этот файл используется программатором для «прошивки» программной памяти микроконтроллера. Любой программатор поддерживает hex-формат и распознает записанные туда коды автоматически.  Процедура трансляции Для того, чтобы запустить процесс трансляции текущего проекта, нужно выбрать в меню «Build» пункт, который тоже называется «Build», или нажать кнопку <F7>. Длительность процесса трансляции зависит от размеров программы- Сразу же после начала процесса вкладка «Build» в окне 2 выходит на передний план. В процессе трансляции сюда выводятся служебные сообщения. К таким сообщениям относятся: сообщения о завершении различных этапов трансляции, сообщения об ошибках (Error), а также предупреждения (Warning). В готовой отлаженной программе ошибок и предупреждений быть не должно. Если программа обнаружит ошибку (Error), то процесс трансляции будет остановлен, и результирующие файлы созданы не будут. В этом случае необходимо устранить ошибки и повторить трансляцию. Естественно, транслятор не в состоянии найти все виды ошибок. Он находит только явные ошибки, которые можно найти автоматически. К таким ошибкам относятся: - ошибки синтаксиса (неправильное написание имени команды); - неверное количество параметров у оператора; - попытка использования неописанных переменных и т. п. Например, сообщение «Unknown instruction or macro» означает, что найдена «Неизвестная инструкция или макрокоманда». Предупреждения (Warnings) — это сообщения о найденых местах в программе, в которых может быть скрыта ошибка, связанная например с использованием разных имен для одного адреса, переопределением констант новыми значениями и т.п. Транслятор не считает подобные факта ошибками, т.к. с точки зрения синтаксиса все нормально. Однако он обращает на эти места внимание, т.к. иногда бывает, что из-за пересечения или переопределения имен возникают логические ошибки в ходе выполнения самой программы. Это не означает, что в подобных местах обязательно может быть ошибка. Главное – обратить на сообшения внимание и удостовериться, что все сделано правильно или исправить ошибку, если она действительно закралась в указанном месте. Все сообщения во вкладке «Build» появляются по мере их поступления. Для наглядности каждое сообщение помечено цветным кружочком в начале строки: - сообщения об ошибках помечаются кружочком красного цвета;  - предупреждения – желтым кружочком; -  сообщения об успешном выполнении каждого очередного этапа трансляции помечаются зеленым кружочком. В случае успешного завершения процесса трансляции в качестве последнего сообщения выводится статистическая информация. Каждое сообщение об ошибке во вкладке «Build» содержит точное указание места в программе, где произошла эта ошибка. При этом указывается - имя файла; - номер строки; 

- фрагмент текста программы, содержащий ошибку; - ее расшифровка. Для того, чтобы быстро перейти к фрагменту программы, содержащему эту ошибку, достаточно двойного щелчка по сообщению об ошибке. Окно с текстом программы выйдет на передний план, и в этом окне автоматически отобразится нужный участок текста. На левой границе окна напротив строки, содержащей ошибку, вы увидите синюю стрелочку — указатель ошибки. Иногда программа неверно определяет место, где возникла ошибка. Это происходит из-за несовершенства анализатора синтаксиса. Дело в том, что очень сложно разработать идеальный алгоритм анализа ошибок. Если в какой-либо строке транслятор показывает ошибку, а вы ошибок не наблюдаете, посмотрите на предыдущие строки. Возможно, ошибка где-то там. Если исправлены все ошибки, то это значит, что можно записывать ее в программную память микроконтроллера и пробовать ее работу «в железе». Однако в большинстве случаев отсутствие синтаксических ошибок еще не означает отсутствие логических ошибок, допущенных на стадии разработки алгиритма или ввода исходного текста программы. Можно написать команду правильно, да не ту. Но самая главная неприятность — ошибки алгоритма или его реализация-Программист может упустить какой-либо шаг или неправильно поставить условие. Всех возможных ошибок алгоритма не перечесть. Но в результате программа может работать неправильно либо совсем не работать. По этой причине перед тем, как записывать программу в программную память микроконтроллера, необходимо попытаться выявить все эти ошибки. Вообще, процесс написания программы процентов на 60—70 состоит из поиска и устранения ошибок. И основное количество ошибок выявляется при отладке программы.

 

ОТЛАДКА ПРОГРАММЫ НА АССЕМБЛЕРЕ ВЫПОЛНЕНИЕ ПРОГРАММ В ПОШАГОВОМ РЕЖИМЕ ПРОСМОТР РЕГИСТРОВ

С юмором подошли к этому вопросу англичане. По-английски процесс отладки называется Debug (Дебаг). Слово «Bug» — означает блоха, а «Debug» — это процесс избавления от ошибок или процесс ловли блох. Именно этим вам и придется заняться. Если после успешного асссемблирования запустить программу на выполнение, 

Рисунок 9 – Запуск симулятора

то в окне исходного кода программы появится маркер в виде стрелки желтого цвета, который находится на строке, которая будет выполнена в следующем шаге:

Рисунок 10 – Окно текста программы в режиме отладки

 

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

Рисунок 11 – Панель инструментов отладки

 

Можно определять точки останова, при достижении которых выполнение программы приостановится. Для ус

Рисунок 12 – Панель инструментов отладки

 

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

 

Для облегчения отладки существуют окна:

- Watch window;

- Register window;

- Memory window;

Watch window: Окно показывает значения и адреса заданных переменных (рисунок 13). 

Рисунок 13 – Окно Watch

 

Переменные в окно Watch можно добавлять вручную, либо при помощи меню правой кнопки мыши (рисунок 14):

Рисунок 14 – Добавление переменной в окно Watch

 

Значения переменных (регистров общего назначения) можно добавлять и изменять во время остановки работы программы.

Register window:

Рисунок 15 – Registerwindow

Окно показывает содержимое регистров. Регистры можно изменять во время остановки программы. 

 Memory windows:

Рисунок 16 – Окно просмотра состояния памяти

 

Окна показывают содержимое памяти программ, данных, портов ввода/вывода и энергонезависимого ПЗУ. Память можно просматривать в HEX, двоичном или десятичном форматах. Содержимое памяти можно изменять во время остановки программы. Показывает содержимое различных регистров ввода/вывода: EEPROM, USART, таймеры и др.  При первом запуске требуется настроить окна для управления и вывода необходимой информации. Во время следующей сессии работы настройки автоматически восстанавливаются.

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Изучить теоретическую часть.

Ознакомиться с интерфейсом AVR Stidio

Выполнить проект по заданию

Ответить на контрольные вопросы

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать задание на работу, блок-схему реализованного алгоритма,  словесное описание хода рассуждений при решении поставленной задачи (желательно приведение таблиц, расчетов, диаграмм, и т.п.), краткое словесное описание работы программы по отдельным функциональным узлам, исходный текст программы.  Исходный текст программы должен быть выполнен моноширинным шрифтом (courier, courier new).

 

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

    1. Назначение пакета AVR Studio.
    2. Какие основные окна AVR Studio используются в работе?
    3. Что такое проект в терминах AVR Studio?
    4. Как создать проект в AVR Studio?
    5. Что такое трансляция (компиляция) программы? Зачем она нужна?
    6. Как производить поиск ошибок компиляции?
    7. Что такое симулятор (эмулятор)?
    8. Как вы понимаете процесс отладки программы? Зачем он нужен?
    9. Что такое точки останова (breakpoints)? Для чего они нужны
    10. Как можно в процессе отладки программы убедиться в том, что значения определенных переменных, ячеек пямяти или регистров в нужные моменты принимают верные значения в процессе исполнения.? Какие средства AVR Studio для этого имеются?

 

 

ПРАКТИЧЕСКАЯ РАБОТА №10

 

РАБОТА С СИСТЕМОЙ ПРОГРАММИРОВАНИЯ CODE VISION AVR

 

Ø ЦЕЛЬ РАБОТЫ

Получение практических навыков по идентификации и установке процессора.

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office, CodeVisionAVR

ü мультимедиапроектор;

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

 

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

CodeVisionAVR - это среда разработки, которая поддерживает все операции с МК AVR. В ней мы можем написать заготовку кода, скомпилировать ее и с помощью программатора "залить" в нужный нам МК. И не надо отдельно качать программку-прошиватель, компилятор и другие ненужные программы. А зачем, если все это есть в КодВижне? Также КодВижн поддерживает почти все известные программаторы для AVR, будь это китайские клоны или оригинальные программаторы. Большой плюс КодВижена в том, что он сам создает готовый шаблон программы, из которого нам нужно удалить все лишнее, что является несомненным плюсом для новичков.

 Вот так выглядит программа после ее установки (кликните по картинке, чтобы увеличить изображение)

http://files.freks.webnode.com/200007372-ab8f9ad840/скрин%20кодвижн.png 

Для того, чтобы создать новый проект, кликаем по значку "шестеренка":

http://files.freks.webnode.com/200007373-bfcdec0c7f/настройки%20код%20вижн.png

  После появится вот такое окошко. Ставим маркер-точку на AT90, Atiny, FPSLIC и нажимаем "ОК".

http://files.freks.webnode.com/200007374-d0170d1142/2015-09-26%2021-24-26%20CodeWizardAVR.png

  Потом вот такое окошко. В красном прямоугольнике я показал, на какую часть окошка надо обратить внимание:

http://files.freks.webnode.com/200007375-9ce679de44/код%20вижн.png

 Выбираем наш МК. В данном случае я использую МК Atiny2313, поэтому из всего списка МК, которая предлагает нам программа, выбираю именно его.

http://files.freks.webnode.com/200007376-c60bfc7ff5/2015-09-26%2021-48-51%20CodeWizardAVR%20-%20untitled.cwp.png

Также можно поменять частоту "Clock". По умолчанию она устанавливается на 8 МегаГерц.

 Далее нажимаем в этом же окошке на значок "шестеренки":

http://files.freks.webnode.com/200007377-2039a22306/2015-09-26%2021-58-31%20CodeWizardAVR%20-%20untitled.cwp.png

 

 Вышло вот такое окошко. Первым делом мы выбираем папку, в которую будем сохранять наш проект. Я создал папку на рабочем столе и назвал ее MK AVR. Потом написал название нашего проекта "lesson 1", ну типа "первый урок" ). Ну и потом нажимаем кнопку "Сохранить". Обратите внимание на расширение файла, которое я обвел фиолетовым цветом:

http://files.freks.webnode.com/200007378-456ad46666/2015-09-26%2022-06-43%20Save%20C%20Compiler%20Source%20File.png

 Потом выйдет еще одно такое же окошко, только расширение файла будет другим. Не теряемся, прописываем также название файла, в данном случае lesson 1, и нажимаем кнопку "Сохранить"

http://files.freks.webnode.com/200007379-894668b368/2015-09-26%2022-14-21%20Save%20C%20Compiler%20Project%20File.png

  И потом выйдет точно такое же завершающее окошко ;-). Также не теряемся, прописываем название файла и снова нажимаем кнопку "Сохранить".

http://files.freks.webnode.com/200007380-7943a7b37c/2015-09-26%2022-18-46%20Save%20C%20%20Users%20Патрик%20Desktop%20МК%20АVR%20untitled.cwp%20As....png

  КодВижен для нас приготовил шаблон. Здесь явно много лишнего. Первым делом убираем шапку

http://files.freks.webnode.com/200007382-3c2253e140/удаляем%20лишнее.png

Выделяем, нажимаем Del.

  Текст, который находится после двух косых черточек "// любой текст "   или  /* любой текст */ называется комментарием. Они нужны для удобного восприятия и никак не сказываются на работу МК.

http://files.freks.webnode.com/200007383-9d4eb9f45f/сносим%20комменты.png

  Проект:  Наша программа будет поочередно  зажигать каждый из трех светодиодов и потом в таком же порядке их тушить.  У нас будет вот такой алгоритм, то есть порядок действий:

 1) При подаче питания на МК зажечь первый светодиод.

2) Через 1 секунду зажечь второй светодиод, но первый светодиод при этом продолжает гореть.

3) Через 1 секунду зажечь третий светодиод, но два предыдущих также горят , то есть у нас горят сразу 3 светодиода.

4) Через 2 секунды тухнет третий светодиод.

5) Через секунду тухнет второй светодиод.

6) Еще через секунду тухнет первый светодиод.

7) Через 2 секунды весь этот цикл повторяется с пункта 1.

  Итак, первые две строчки кода - это подключение библиотек. То есть эти файлы у нас уже есть в программе КодВижн. Нам осталось их только подключить.

http://files.freks.webnode.com/200007385-884ec894a5/первые%20строки%20кода.png

Include  с англ. - включать, содержать, подключать. Include еще называется оператором присоединения внешних файлов.

То есть мы с вами присоединяем к  нашей программе библиотеку "tiny 2313.h" для МК Atiny 2313, так как именно на нем  будет работать наша схема.  А также подключаем библиотеку "delay.h". Delay - c англ. откладывать, отсрочивать.

 Сама программа пишется  после void main (void) между фигурными скобками. Там мы  будем писать нашу программу.

http://files.freks.webnode.com/200007386-0700b08f49/про%20программу.png

 Давайте внимательно глянем на наш МК:http://files.freks.webnode.com/200007387-b5a6bb6aa4/тинька%202313.png

Здесь мы видим  основное название ножек, а в скобках их двойное предназначение. Двойное предназначение нас пока не интересует. Для нас в данный момент интересны обозначения PA, PB, PD. Их еще называют портами Ввода-Вывода. То есть на них можно что-то вводить и с них можно что-то выводить). В данном случае я хочу использовать ножки РВ0, РВ1, РВ2 для того, чтобы управлять светодиодами. На каждую из этих ножек я повешу по одному светодиоду, итого получается три. Остальные ножки нас не интересуют, так как мы не будем их использовать.

  Наша схема будет выглядеть вот таким  образом:

http://files.freks.webnode.com/200007396-68df269d88/атини%202313.JPG

  Следовательно, я должен настроить эти ножки для управления светодиодами.

Итак, в фигурных скобках пишем:

http://files.freks.webnode.com/200007388-d6320d8222/настройка%20портов.png

 PORTB=0b00000000

0b - это бинарная система счисления. Настраивать в бинарной системе удобно тем, что  каждый бит - это одна ножка МК. Поэтому счет идет справа-налево. Присмотритесь к рисунку выше. Здесь мы видим PORTB и нули при двоичной ситеме исчисления. Что это означает? А означает это то, что эти выводы при неиспользовании их в программе будут притянуты к нулю, то есть на них будет низкий потенциал или ноль Вольт. В случае, если мы видим единички установленные на каком-либо из битов, то это значит, что на этом порту при неипользовании в программе у нас будет высокий потенциал или плюс 5 вольт, или, говоря другими словами, этот вывод у нас будет принят к плюсу питания.

 DDRB=0b00000111

Это означает, что PB0, PB1, PB2 настроены на выход. Считаем справа-налево, если вы не забыли. А если ноль, то значит настроены на вход.

 После каждой строчки не забывайте ставить знак " ; "  , иначе  при компиляции (превращения вашей программы в код, который понимает МК), будут ошибки.

 Теперь рассмотрим while (1). Он означает, что кусочек программы, который будет написан после него, будет зацикливаться, то есть повторяться бесконечное количество раз.

http://files.freks.webnode.com/200007389-c1e24c2de8/цикл.png

 Ну и собственно можно начать писать саму программу...

 Итак, как она будет выглядеть?

http://files.freks.webnode.com/200007390-bca0abd9a6/зацикливание.png

 Смотрите, программа находится между фигурными скобками. Эти скобки принадлежат while (1). То есть этот кусок программы будет повторяться бесконечное число раз.

 Давайте разберем саму программу...

PORTB.0=1; Это означает, что при подачи питания на МК, у нас ножка PB0 будет иметь  логическую единицу , то есть на выходе этой ножки будет 5 Вольт, которые зажгут светодиод.

delay_ms(1000);  Ждем 1000 миллисекунд, то есть 1 секунду.

 PORTB.1=1; Через одну секунду на ножке PB1 появляется логическая единица, то есть 5 вольт, которые и зажгут второй светодиод

 delay_ms(1000); Ждем еще одну секунду.

  PORTB.2=1; Как только прошла секунда, у нас на ножке PB2 появляется логическая единичка, и, следовательно, зажигается третий светодиод.

 delay_ms(2000); Ждем 2  секунды...Итого у нас горят все разом три светодиода в течение двух секунд.

  PORTB.2=0;  На ножке PB2 появляется логический ноль, то есть напряжение исчезает. Третий светодиод  тухнет.

delay_ms(1000); Ждем секунду

  PORTB.1=0; Исчезает напряжение на ножке PB1. Светодиод второй тоже перестает источать свет.

delay_ms(1000); Ждем секунду.

  PORTB.0=0; И  на ножке PB0 напряжение тоже стает равно нулю. Первый светодиод тухнет тоже.

 delay_ms(2000);  Ждем две секунды и возвращаемся на начало программы, то есть  к 

 PORTB.0=1;

delay_ms(1000);

 Вот так выглядит полностью сама программа. Ее можно даже  скопировать и скомпилировать.


#include <tiny2313.h>

#include <delay.h>
 

void main(void)
{
PORTB=0b00000000;                                                 
DDRB=0b00000111;                                                 

while (1)                                             
      {
          PORTB.0=1;
          delay_ms(1000);       
                    PORTB.1=1;
          delay_ms(1000);   
                     PORTB.2=1;
          delay_ms(2000);  
                      PORTB.2=0;
          delay_ms(1000);
                   PORTB.1=0;
          delay_ms(1000);
                          PORTB.0=0;
          delay_ms(2000);
      }     
}

 Ну все, программа написана. Осталось дело за малым: преобразовать ее в машинный код, чтобы его понимал МК. Для этого мы нажимаем  на кнопочку "создать все файлы проекта"

http://files.freks.webnode.com/200007391-9f709a06ca/компиляция%20код%20вижн.png

 После нажатия на эту кнопку, у нас выскакивает окошко, в котором говорится о том, успешно ли прошла компиляция и тд. Если все  нормально, то нажимаем ОК.

http://files.freks.webnode.com/200007392-c626bc71ef/компиляция%20кода.png

 Если что-то не так, то отобразятся  ошибки. Я специально убрал знак " ; " после одной строчки. Ругается примерно как-то так, и это не есть хорошо:

http://files.freks.webnode.com/200007393-d5c95d7b79/ошибка%20при%20компиляции.png

 Если все ОК,  то у вас  в папке "Exe", там где у вас все проекты будет лежать готовый файлик, в данном случае "lesson 1. hex".

http://files.freks.webnode.com/200007394-7fd4480cea/готовый%20hex%20файл.png

 Теперь этот файлик с удовольствием скушает  наш МК AVR и будет выполнять программку, которая находится в этом файле.

 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

Изучить теоретическую часть.

Ознакомиться с интерфейсом AVRStidio

Выполнить проект по заданию

Ответить на контрольные вопросы

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

Отчет должен содержать задание на работу, блок-схему реализованного алгоритма,  словесное описание хода рассуждений при решении поставленной задачи (желательно приведение таблиц, расчетов, диаграмм, и т.п.), краткое словесное описание работы программы по отдельным функциональным узлам, исходный текст программы.  Исходный текст программы должен быть выполнен моноширинным шрифтом (courier, courier new).


 

ПРАКТИЧЕСКАЯ РАБОТА №11

 

ПОДГОТОВКА ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА К РАБОТЕ

 

Ø ЦЕЛЬ РАБОТЫ

Получение практических навыков по идентификации и установке процессора.

 

Ø  ОБЕСПЕЧЕННОСТЬ ЗАНЯТИЯ

Реализация учебной дисциплины требует наличия кабинета-лаборатории архитектуры ЭВМ и вычислительных систем и сборки, монтажа и эксплуатации средств ВТ.

Оборудование:

ü  посадочные места по количеству обучающихся;

ü  рабочее место преподавателя;

ü плакаты;

Технические средства обучения:

ü компьютер с лицензионным программным обеспечением: ОС Windows, пакет MS Office,

ü мультимедиапроектор;

ü системный блок, кабели в комплекте, монитор, клавиатура, периферийные устройства для различных разъемов (мышь, принтер, модем и др.). системный блок в сборе, макеты видеоадаптера, материнской платы, корпуса, жесткого диска, накопителя на флоппи-дисках, интерфейсные кабели.

 

Ø ЛИТЕРАТУРА Таненбаум Э. Архитектура компьютера/Э.Таненбаум.-Питер, 2012.-699 с

. 

Ø ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ.

 

1.      Убедитесь в том, что компьютерная система обесточена (при необходимости, отключите систему от сети).

2.      Разверните системный блок задней стенкой к себе.

3.      По наличию или отсутствию разъемов USB установите форм-фактор материнской платы (при наличии разъемов USB - форм-фактор АТХ, при их отсутствии -AT).

4.      Установите местоположение и снимите характеристики следующих разъемов:

·         питания системного блока;

·         питания монитора;

·         сигнального кабеля монитора;

·         клавиатуры;

·         последовательных портов (два разъема);

·         параллельного порта;

·         других разъемов.

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

6.      Изучите способ подключения мыши.

Мышь может подключаться к разъему последовательного порта или к специальному порту PS/2, имеющему разъем круглой формы. Последний способ является более современным и удобным. В этом случае мышь имеет собственный выделенный порт, что исключает возможность ее конфликта с другими устройствами, подключаемыми к последовательным портам. Последние модели могут подключаться к клавиатуре через разъем интерфейса USB.

 

 

7.      Заполните таблицу:

Разъем

Тип разъема

Количество контактов

Примечания

 

 

 

 

 

 

 

 

 

8.       Определить наличие основных устройств персонального компьютера.

9.      Установите местоположение блока питания, выясните мощность блока питания (указана на ярлыке).

10.  Установите местоположение материнской платы.

11.  Установите характер подключения материнской платы к блоку питания.

Для материнских плат в форм-факторе AT подключение питания выполняется двумя  разъемами. Обратите внимание на расположение проводников черного цвета - оно важно для правильной стыковки разъемов.

12.  Установите местоположение жесткого диска.

Установите местоположение его разъема питания. Проследите направление шлейфа проводников, связывающего жесткий диск с материнской платой. Обратите внимание на местоположение проводника, окрашенного в красный цвет (на жестком диске он должен быть расположен рядом с разъемом питания).

13.  Установите местоположения дисководов гибких дисков и дисковода CD-ROM.

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

14.  Установите местоположение платы видеоадаптера.

Определите тип интерфейса платы видеоадаптера.

15.  При наличии прочих дополнительных устройств выявите их назначение, опишите характерные особенности данных устройств (типы разъемов, тип интерфейса и др.).

16.  Заполните таблицу:

Устройство

Характерные особенности

Куда и при помощи чего подключается

 

 

 

 

Ø МЕТОДИКА АНАЛИЗА РЕЗУЛЬТАТОВ, ОБРАЗЕЦ ОТЧЕТА.

 

Отчет должен содержать результаты всех исследований в рамках практического занятия.


Литература:

Основные источники:

1.     Гуров, В. В. Микропроцессорные системы: учебник / В. В. Гуров. - Москва: ИНФРА-М, 2020.— 336 с. - (Среднее профессиональное образование). - ISBN 978-5-16-107848-8. – URL: https://new.znanium.com/catalog/document?id=357994 (дата обращения: 04.02.2020). - Текст: электронный.

2.     Кушнер, Д.А. Основы автоматики и микропроцессорной техники: учебное пособие / Д.А. Кушнер, А. В. Дробов, Ю.Л. Петроченко. - Минск: РИПО, 2019. - 245 с. - ISBN 978-985-503-853-6. – URL: https://new.znanium.com/catalog/document?id=347010 (дата обращения: 04.02.2020). - Текст: электронный.

 

Дополнительные источники:

1.     Гальперин, М. В. Автоматическое управление: учебник / М. В. Гальперин. — Москва: ИД «ФОРУМ»: ИНФРА-М, 2019. - 224 с. — (Среднее профессиональное образование). - ISBN 978-5-16-103363-0. - URL: https://new.znanium.com/catalog/document?id=338850 (дата обращения: 04.02.2020). - Текст: электронный.

2.     Информационные системы управления качеством в автоматизированных и автоматических производствах: учебное пособие / А. Л. Галиновский, С.В. Бочкарев, И.Н. Кравченко [и др.]; под ред. А.Л. Галиновского. — Москва: ИНФРА-М, 2020. — 284 с. — (Среднее профессиональное образование). - ISBN . -  URL : https://new.znanium.com/catalog/document?id=353085 (дата обращения: 04.02.2020).  Текст: электронный.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплекс практических работ по дисциплине ОП. 06. Микропроцессорная техника специальности 15.02.14"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Специалист архива

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 650 449 материалов в базе

Материал подходит для УМК

  • «Информатика (углублённый уровень) (в 2 частях)», Семакин И.Г., Хеннер Е.К., Шестакова Л.В.

    «Информатика (углублённый уровень) (в 2 частях)», Семакин И.Г., Хеннер Е.К., Шестакова Л.В.

    Тема

    Глава 4. Информационная деятельность человека

    Больше материалов по этой теме
Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 20.12.2021 632
    • DOCX 2.4 мбайт
    • 15 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Алексеев Владимир Анатольевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Алексеев Владимир Анатольевич
    Алексеев Владимир Анатольевич
    • На сайте: 9 лет и 4 месяца
    • Подписчики: 1
    • Всего просмотров: 288975
    • Всего материалов: 42

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

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

Экскурсовод

Экскурсовод (гид)

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Организация преподавания информационных систем и технологий в профессиональном образовании

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 20 человек из 15 регионов
  • Этот курс уже прошли 71 человек

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

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Информатика")

Учитель информатики

300 ч. — 1200 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Этот курс уже прошли 20 человек

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

Управление сервисами информационных технологий

Менеджер по управлению сервисами ИТ

600 ч.

9840 руб. 5900 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 19 регионов
  • Этот курс уже прошли 34 человека

Мини-курс

Стратегии брендинга в условиях глобальной конкуренции и изменяющихся рыночных тенденций

2 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Информационные технологии и безопасность

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 26 регионов
  • Этот курс уже прошли 28 человек

Мини-курс

Психологические вызовы современного подростка: риски и профилактика

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 128 человек из 49 регионов
  • Этот курс уже прошли 29 человек