Вы находитесь на странице: 1из 67

ВВЕДЕНИЕ

В современных автоматизированных системах обработки информации и управления (АСОиУ)


широко используются управляющие вычислительные машины (УВМ), ориентированные на автома-
тический прием и обработку информации, поступающей в процессе управления, и выдачу управля-
ющих (командных) воздействий непосредственно на исполнительные устройства (органы) объекта
управления или человеку. В состав УВМ входят устройства, обеспечивающие ее непосредственную
связь с управляемым процессом (объектом управления), а также связь оператора с технологическим
оборудованием для наблюдения за протеканием производственного процесса и при необходимости
для вмешательства в процесс управления.
Магистральный путь развития современных средств вычислительной техники определяется, в
первую очередь, достижениями полупроводниковой технологии. Именно возможность реализации на
одном кристалле нескольких тысяч транзисторов позволила фирме Intel в 1971 году создать первый
четырёхразрядный микропроцессор (МП), который открыл новую эру в компьютерном направлении.
С этого времени в микропроцессорной технике произошли гигантские изменения, связанные с со-
вершенствованием архитектуры микропроцессоров, расширением их функциональных возможно-
стей, увеличением разрядности, повышением степени интеграции и быстродействия. Действительно,
современные МП уже имеют 64-разрядную архитектуру и по производительности приближаются к
мощным суперЭВМ. Кроме того, с появлением технологических возможностей размещения на од-
ном кристалле совместно с процессорным ядром памяти, таймерных секций, периферийных узлов,
средств сопряжения с внешней средой и т.п. в микропроцессорной технике выделился самостоятель-
ный класс больших интегральных схем (БИС) - однокристальных микроЭВМ или микроконтролле-
ров (МК), предназначенных для "интеллектуализации" оборудования различного назначения. На се-
годняшний день МК являются наиболее массовым представителем микропроцессорной техники.
Предлагаемые методические материалы ориентированы на изучение студентами принципов
построения и структурно-функциональных особенностей современных МП и МК, их систем команд,
способов адресации, областей применения и т.п., а также на освоение методики составления управ-
ляющих программ для микропроцессорных и микроконтроллерных систем, их использования и
практического применения в АСОиУ. Они составлены с учетом требований, изложенных в Государ-
ственном образовательном стандарте высшего профессионального образования.
Перечень и содержание лабораторных работ определены на основе Государственных требова-
ний к минимуму содержания и уровню подготовки инженеров по специальности 210100 и 220200 с
учётом специфики образовательно-профессиональной программы КГТУ.

Целью лабораторного практикума ставится

 Формирование системного базового представления, первичных знаний, умений и навыков


студентов по основам микропроцессорных и микроконтроллерных систем, достаточных для даль-
нейшего продолжения образования и самообразования в области вычислительной техники и в смеж-
ных областях.
 Изучение принципов построения, функциональных возможностей и архитектурных решений
современных микропроцессорных систем, МК и персональных ЭВМ.
 Освоение методики составления и отладки программ для МП и МК.

Предметами изучения являются

 Базовые определения и понятия.


 Структура аппаратных и программных средств микропроцессорных систем.
 Архитектура микропроцессорных систем и микроконтроллеров.
 Основные микропроцессорные семейства и комплекты отечественного и зарубежного произ-
водства.
 Вопросы аппаратной и программной организации микропроцессорных систем.

1
 Инструментальные средства отладки, диагностики и проектирования микропроцессорных
систем и МК.

Результаты изучения

 В результате изучения теоретического материала у студентов должны быть сформированы


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

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


MPLAB - интегрированной среды разработки (IDE) для семейства МК PICmicro фирмы Microchip
Technology Incorporated.
Второй раздел посвящена программе IC-Prog, предназначенной для программирования боль-
шинства известных МК и микросхем памяти.
В третьем разделе содержится описание архитектуры и системы команд микропроцессоров
серии PIC16F84, PIC16С84.
Четвертый раздел включает описание учебного лабораторного стенда «СУ PIC16F84 – 1» на
базе МК PIC16F84 и основные приемы работы с ним.
В пятом разделе приведены исходные данные и задания к лабораторным работам, выполняе-
мым с помощью стенда «СУ PIC16F84 – 1», порядок выполнения работ, требования к результатам и
содержанию отчетов.
В шестом разделе представлены выдержки из стандарта КГТУ содержащие требования к
оформлению отчетов и других студенческих работ.

Авторы методических указаний к лабораторным работам по дисциплине «Организация элек-


тронных вычислительных машин и систем» выражают благодарность за техническую помощь в со-
здании методических указаний и изготовлении стендов «СУ – 16F84 – 1» студенту кафедры «Систе-
мы автоматики, автоматизированного управления и проектирования», факультета Информатики и
процессов управления Красноярского Государственного Технического Университета – Ковригину
Дмитрию Владимировичу.

2
I. ОБЩАЯ ИНФОРМАЦИЯ

1.1 Что такое MPLAB?


MPLAB - это интегрированная среда разработки (IDE) для семейства микроконтроллеров PICmi-
cro фирмы Microchip Technology Incorporated. MPLAB позволяет писать, отлаживать и оптимизи-
ровать программы для Ваших разработок. MPLAB включает текстовый редактор, симулятор
(виртуальный отладчик), менеджер проектов и поддерживает эмуляторы (внутрисхемные отлад-
чики) MPLAB-ICE и PICMASTER , программаторы PICSTART Plus и PRO MATE II и другие
средства и инструменты разработок фирмы Microchip и других фирм.
Инструментальные средства MPLAB, организованные как ниспадающие меню и определяемые
«быстрыми клавишами», позволяют:
- ассемблировать, компилировать исходный текст;
- отлаживать логику работы, наблюдая с помощью симулятора или, в реальном времени, с эмуля-
тором MPLAB-ICE;
- просматривать переменные в окнах просмотра;
- программировать кристаллы с помощью программаторов PICSTART Plus или PRO MATE
- и многое другое.

1.2 MPLAB - интегрированная среда разработки (IDE)


MPLAB представляет собой законченную среду разработки, интегрируя несколько инструмен-
тальных средств:
 MPLAB менеджер проектов (project Manager). Используется для создания проектов и работы
со связанными файлами.
 MPLAB редактор (Editor). Используется для создания и редактирования текстовых файлов,
таких как исходные и файлы сценариев компоновки.
 MPLAB-SIM симулятор (Simulator). Позволяет моделировать выполнение команд и вход-
ные/выходные сигналы микроконтроллеров.
 MPLAB-ICE внутрисхемный эмулятор (Emulator). Позволяет, используя дополнительные ап-
паратные средства и компьютер, заменять микроконтроллер в разрабатываемом устройстве в
реальном времени. MPLAB-ICE самый новый эмулятор от Microchip.
 MPASM универсальный ассемблер.
 MPLINK компоновщик (linker). создает законченное приложение, связывающее перемещае-
мые модули MPASM, MPLAB-C17, и MPLAB-C18
 MPLIB управляет пользовательскими библиотеками.
 MPLAB-CXX компилятор C (здесь и далее имеется в виду язык программирования «Си»).
Позволяет включать в проект исходные тексты написанные на языке высокого уровня С и на
ассемблере.
 PRO MATE II и PICSTART Plus программаторы.
 PICMASTER и PICMASTER-CE внутрисхемные эмуляторы.
Инструментальные средства других производителей.

Меню MPLAB и описание функций

3
1.3 Меню File
Это стандартное меню со стандартными пунктами для управления файлами проекта. Пункты
Export и Import предназначены для обмена данными между компьютером и внешними устрой-
ствами (симулятор, эмулятор).
1.4 Меню Project
Пункты для управления проектом и конфигурацией. Изменение установок созданного проекта
Edit Project. Make Project - компилировать все исходные файлы для создания одного hex файла,
Build All - компилировать все файлы, Build Node - компилировать один выборочный файл. Меню
Install Language Tool предназначено для выбора языка программирования и конфигурации.
1.5 Меню Edit
Тоже стандартное меню для управления буфером обмена, а также для поиска, замены текста и
прочего.
1.6 Меню Debug
После компилирования проекта Вы, наверняка, захотите видеть как Ваш код выполняется. Обыч-
но, разрабатываемое устройство не будет сразу работать правильно, как Вы хотите. Поэтому
придется отлаживать код. Вы можете использовать MPLAB-SIM для симулирования работы мик-
роконтроллера или внутрисхемный эмулятор (что вряд ли возможно в наших условиях: например
PICMASTER стоит порядка $4000), такой, как MPLAB-ICE. PICMASTER и др. В любом случае
придется останавливать работу, наблюдать состояние регистров микроконтроллера и выполнять
программу в пошаговом режиме.
Меню Debug содержит все опции, которые Вы будете использовать при отладке Вашего кода с
симулятором или эмулятором:
 Меню Run. Опции этого меню позволяют управлять выполнением Вашей программы. Run
(F9) - запуск выполнения в непрерывном режиме (с использованием эмулятора в реальном
времени, с использованием симулятора с максимально возможной скоростью).Reset (F6) -
сброс.Halt (F5) - остановить выполнение программы. Halt Trace (Shift + F5) - остановить
трассировку без остановки выполнения программы. Animate - запуск в непрерывном ре-
жиме, но с возможностью наблюдать изменение значений регистров и памяти в процессе.
Аналогично постоянному нажатию на кнопку пошагового выполнения.
Step (F7) - выполнить одну команду и остановиться. Step Over (F8) - тоже самое, но не
опускаться в подпрограммы (выполняются в непрерывном режиме).Update All Registers -
обновить все регистры для текущей команды Change Program Counter - изменить про-
граммный счетчик. Можно ввести числовой адрес, а можно ввести метку.
 Меню Execute. Execute an Opcode - выполнить введенную Вами команду.Conditional Break
- выполнять программу в непрерывном режиме пока не выполнится введенное Вами усло-
вие или не будет нажат Halt . При выборе этой опции откроется окно для конфигурирова-
ния.
 Меню Simulator Stimuls. Позволяет имитировать внешние сигналы на входных выводах
(портах) микроконтроллера. MPLAB не позволяет изменять состояние портов как реги-
стров общего или специального назначения. С одной стороны это вызывает некоторые не-
удобства, но с другой имеются достаточно мощные средства моделирования входных сиг-
налов: Asynchronous Stimulus Dialog - опция позволяет устанавливать постоянные логиче-
ские уровни на входных выводах. Pin Stimulus Files - подключение специального текстово-
го файла (расширение .sti) описывающего изменение внешних сигналов на входных выво-
дах микроконтроллера. Register Stimulus Files - подключение текстового файла (расшире-
ние .reg), описывающего изменение регистра (8 бит). Обычно используется при отладке
аналого-цифрового преобразования. Clock Stimulus - опция позволяет имитировать перио-
дические сигналы.
 Меню Center Debug Location. Переместить указатель текущей выполняемой команды в
центр окна. Работает с окнами исходных файлов, программной памяти и абсолютного ли-
стинга.

4
 Меню Breakpoint Settings. Конфигурация точек останова (прерывания). Можно устанав-
ливать до 16 точек. Можно установить при достижении адреса или области и т. д. Если
останов в выбранной точке не происходит, то проверьте установлен ли соответствующий
флаг в окне конфигурации (Options>Development Mode). Кроме того, точку останова мож-
но установить щелкнув правой кнопки мыши на нужной строке исходного файла и выбрав
Break Point(s), однако, эти установки сбрасываются при каждом перекомпилировании про-
екта.
 Меню Trace Point Settings. Конфигурация трассировки, то есть записи в соответствую-
щем окне последовательности выполняемых команд.
 Меню Trigger In/Out Settings и Trigger Out Point Settings. Возможны при работе с внут-
рисхемным эмулятором и управляют конфигурацией прерывания по внешним сигналам и
др.
 Меню Clear All Points. Очистить все установленные точки останова и трассировки.
 Меню Complex Trigger Settings и Enable Code Coverage. Предназначено для работы с
эмулятором.
 Меню Clear Program Memory (Ctrl+Shift+F2). Очистить память программ.
 Меню System Reset (Ctrl+Shift+F3). Системный сброс. Пересбрасывается MPLAB, симу-
лятор или подключенный эмулятор. Затем производится инициализация всего оборудова-
ния как при старте MPLAB.
 Меню Power-On-Reset (Ctrl+Shift+F5). Сброс отлаживаемого устройства (симулятор или
эмулятор), аналогичный состоянию при подаче напряжения питания.
1.7 Меню PICSTART Plus
Меню конфигурации и управления фирменным программатором PICSTART Plus. При его от-
сутствии не доступно.
1.8 Меню Option
Меню для конфигурирования самого MPLABа. Включает в себя следующие опции:
 Меню Development mode. Открывается окно для конфигурирования микроконтроллера в
проекте. Информация из этого окна используется симулятором или эмулятором при от-
ладке. Устанавливается тип отладчика, тип тактового генератора (осциллятора), частота,
конфигурация внешнего сброса (MCLR), точек останова, сторожевого таймера и др.
 Меню Window setup. Запись (save) и считывание (load) конфигурации MPLAB, а также
установка по умолчанию (default).
 Меню Current editor settings. Конфигурация встроенного редактора, вида вывода файла
на принтер, типа файла.
 Меню Reset editor modes. Сбросить установленную конфигурацию редактора и устано-
вить конфигурацию по умолчанию.
 Меню Environment setup (Ctrl+F7). Открывается окно с несколькими вкладками для
конфигурирования самого MPLABа. Краткое описание вкладок: General Options - уста-
новка системного шрифта, расположения панели инструментов, количества знаков для
символьных переменных и меток и некоторые установки при загрузке MPLAB.
Project Template Options - установка языка программирования и расположения файлов
при создании нового проекта (установки по умолчанию). Files - выбор папки, которая бу-
дет предлагаться по умолчанию при записи и загрузке. Можно установить как последнюю
к которой было обращение (наиболее удобно) или как одну определенную заранее. И еще
количество файлов, которые будут предлагаться открыть как наиболее часто употребляе-
мые (для быстрого открытия). Default Editor Modes - установка конфигурации встроенно-
го редактора для новых файлов. Key Mappings - конфигурирование "горячих" клавиш для
быстрого вызова или каких-либо действий. Colors - установка цветовой гаммы для текста,
выделенного текста, точек останова, трассировки и др.
 Меню Programmer options. Выбор программатора, его конфигурация и выбор порта для
подключения.

5
1.9 Меню Tools
Опции меню позволяют запустить файлы в ДОС строке и проверять возможность обмена инфор-
мацией с внешними устройствами (программаторами и эмуляторами).
2.0 Меню Window
MPLAB обеспечивает окна для обзора программной памяти, содержимого стека и содержимого
регистров. Внимание: чтобы открыть системное меню для изменения отображаемых данных в от-
крытом окне щелкните левой кнопки мыши в верхнем левом углу этого окна. Все опции меню
Window доступны в режиме симулятора (виртуального отладчика) или внутрисхемного эмулято-
ра. В режиме Editor Only доступны только: окно Абсолютного Листинга и окно списка символов
(simbol list). Подробнее о возможных опциях:
 Program Memory - окно памяти программы. Trace Memory- окно результатов трассиров-
ки. Если счетчик программы (PC) попадает в область, отмеченную для трассировки, то в
этом окне сохраняется порядок выполнения команд.
 EEPROM Memory - окно просмотра содержимого EEPROM (Электрически программиру-
емая область памяти, сохраняется при отключении питания. Присутствует в кристаллах,
содержащих в обозначении букву F, например 16F84).
 Calibration Data - окно просмотра калибровочных данных.
 Calibration Memory - окно просмотра калибровочной памяти для кристаллов, содержа-
щих таковую (например, PIC14400).
 Absolute Listing - окно просмотра абсолютного листинга - полного отчета о компилирова-
нии. Полезно просматривать при поиске ошибок.
 Map File - окно просмотра схемы памяти. По умолчанию этот файл при компилировании
не генерируется. Чтобы он был доступен при вызове, надо вызвать окно редактирования
проекта Project>Edit Project, подсветить выходной HEX-файл и выбрать его свойства Node
Properties. В открывшемся окне поставьте галочку в графе ON для Cross Reference File и в
графе DATA введите имя файла с именем Вашего проекта и расширением MAP, например
myprog.map. После изменений перекомпилируйте проект.
 Stack - просмотр стека, то есть точек входа в подпрограммы. Не стоит забывать, что у не-
которых микроконтроллеров глубина стека всего 2 (например, PIC16C505). Это значит,
что можно вызывать только одну подпрограмму из подпрограммы. При третьем вызове
информация о возврате теряется и программа будет работать самым неожиданным обра-
зом!
 File Registers - окно просмотра содержимого регистров общего назначения (RAM). Не за-
будьте, что вид просмотра можно выбрать из меню, щелкнув в левом верхнем углу окна.
 Special Function Registers - окно просмотра регистров специального назначения (SFR).
 Show Symbol List (Ctrl+F8) - окно списка символов. Все используемые переменные, реги-
стры, метки, константы и др.
 Stopwatch - окно просмотра временных параметров. Показывает тактовую частоту (вы-
ставляется в окне конфигурации микроконтроллера) и время прошедшее с начала выпол-
нения программы или с момента обнуления в тактах и микросекундах. Очень удобно при
отладке программы, когда используются счетчики, таймеры, прерывания и все, связанное
со временем.
 Project Window - окно файла проекта. Включает пути к файлам, подключенные файлы,
даты и другая информация.
 Watch Windows - меню управления окнами просмотра, которые можно определить само-
стоятельно. При создании и редактировании окна Вы определяете какие регистры и в ка-
ком виде показывать. Эти окна можно тоже сохранить в папке Вашего проекта для после-
дующего использования. Удобно при отладке, когда необходимо держать перед глазами
содержимое некоторых регистров.
Примечание: при двойном щелчке на адресе регистра вызывается окно модификации для из-
менения содержимого. Надо отметить, что таким образом нельзя менять содержимое портов
микроконтроллера.

6
 Modify - окно модификации регистров. Можно ввести абсолютный адрес, можно имя пе-
ременной или регистра. Можно выбрать тип модифицируемой памяти и заполнить об-
ласть.
 Tile Horizontal, Tile Vertical, Cascade, Iconize All, Arrange Icons - опции управления от-
крытыми окнами: упорядочить по горизонтали, по вертикали, уложить каскадом, свернуть
все....
 Open Windows - быстро открыть какое либо загруженное и свернутое окно. При большом
количестве файлов проекта оказывается очень удобно.
2.1 Меню Help
Вызов помощи и справок. Полная оригинальная фирменная информация на английском языке.
2.2 Панель инструментов (Toolbar)
Панель инструментов представляет собой ряд кнопок для быстрого вызова тех или иных
функций или выполнения каких-либо действий. Существует 4 набора кнопок для разных дей-
ствий: для редактирования, отладки, управления проектом и для определения пользователем.
Для конфигурирования панели инструментов выберите Option>Environment Setup и вкладку
General. На ней можно выбрать месторасположение панели (вверху, слева, справа) или, нажав
кнопку Layout, добавить или убрать кнопки.
Если навести указатель мыши на какую-либо кнопку, то внизу окна MPLAB в строке состоя-
ния появится ее описание.
Назначение кнопок панели инструментов:

- сменить набор кнопок панели инструментов (Edit, Debug, Project, User Default).

7
2.3 Как создать новый проект.
Рассмотрим создание простого проекта, исходными файлами которого будут файл или файлы на
ассемблере. При кажущийся сложности, все необходимые действия не отнимают и минуты. Для
создания проекта выполните следующие шаги:
1. Выбор папки проекта. Создайте на диске папку для своего проекта.
Важное примечание! MPLAB не поддерживает слишком длинные и русские имена
папок, то есть имя должно состоять из латинских букв и не должно превышать 8 сим-
волов. Тоже самое относится и к названию проекта и к именам исходных файлов. В
противном случае MPLAB откажется редактировать файлы и будет «жаловаться», что
не может их открыть при ассемблировании.
2. Создание исходного файла для проекта. В папке \template\code где установлен MPLAB
находятся файлы-заготовки для проектов на ассемблере. Можно, конечно, создать пустой
файл с расширением .asm для проекта, но проще взять готовый. Если Вы уже выбрали тип
микроконтроллера для своего проекта, то скопируйте соответствующий файл в папку своего
проекта и переименуйте во что-то типа: prog.asm (<my project>.asm).
3. Выбор языка инструментальной среды. Выберите Project>Install Language Tool из меню.
Выберите Language Suite: Microchip и Tool Name: MPASM. Если не указан путь к файлу ас-
семблера mpasmwin.exe, укажите. Затем установите опцию Windowed и нажмите OK.
4. Создание файла проекта. В MPLAB выберите Project>New Project, укажите путь к Вашей
папке и введите имя файла проекта, желательно такое же, как и имя основного исходного
файла. Возможно указание нескольких папок через точку с запятой (например:
c:\mplab\projects\mpproj\include;c:\include\h;..\sys.). Нажмите OK.
5. Установка конфигурации. После перечисленных действий откроется окно редактирования
проекта. Для простоты не будем добавлять дополнительные файлы, файлы библиотек и ком-
поновки. Нажмите кнопку Change в пункте Development Mode. Откроется окно с вкладками
для установки. В дальнейшем это окно можно будет вызвать, выбрав Options>Development
Mode. Остановимся подробнее: - Tools. Выберите инструментальную среду (скорее всего у
Вас нет дополнительного оборудования, поэтому придется довольствоваться симулятором
MPLAB-SIM) установите признак и выберите тип микроконтроллера. - Clock. Выберите тип

8
генератора тактовых импульсов (кварцевый резонатор, внутренний или внешний RC-
генератор, внешняя частота и т. д.) и его частоту. - Configuration. Конфигурация сторожевого
таймера и памяти программ. Если Вы разрешаете использование сторожевого таймера, то за-
дайте и коэффициент деления предделителя. Для микроконтроллеров 17-й серии необходимо
указать какая память программ будет использоваться: внутренняя (microcontroller), внешняя
(microprocessor) или обе (extended microcontroller). - Pins. Разрешите или запретите использо-
вание вывода внешнего сброса (MCLR). - Break option. Конфигурация прерываний и стека
при отладке (лучше пока оставить по умолчанию). Нажимаете OK.
6. Конфигурация выходного файла. Щелкните, чтобы подсветить на файле <my project>[.hex].
При этом станет доступно меню Node Properties. В ранних версиях MPLAB без вызова окна
конфигурации выходного файла нельзя было добавить в проект свой исходный файл. Можно
попробовать изменить конфигурацию, а можно оставить по умолчанию.
7. Добавление исходного файла. Чтобы добавить свой исходный файл на ассемблере, который
Вы скопировали и переименовали в папке своего проекта нажмите на кнопке Add Node. В от-
крывшемся окне выберите свой файл и нажмите OK. После этого нажмите OK в окне редак-
тирования проекта. Если нажмете Cancel, то проект записан не будет! В дальнейшем это окно
всегда можно будет вызвать через Project>Edit Project..
8. Открытие исходного файла. Теперь можете открыть свой исходный файл для редактирова-
ния: File>Open..
В проекте может быть несколько исходных файлов на ассемблере, но указывать необходимо при
редактировании проекта один. Остальные включаются в основной исходный файл директивой ас-
семблера include.

2.4 Компилирование
Чтобы перекомпилировать только те файлы, в которые были внесены изменения, нажмите
Project>Make Project. Чтобы перекомпилировать все файлы проекта выберите Project>Build.
После завершения процесса будет вызвано окно с генерированной командной строкой, переч-
нем предупреждений или ошибок (если есть) и результатом компиляции: были ли ошибки
(build failed) или нет (build successful ). Помощь при исправлении ошибок может оказать файл-
листинг, вызвать который можно из меню таким образом: Window>Absolute Listing.

2.5 Запуск и отладка проекта


Для инициализации системы выберите Debug>Run>Reset. При этом программный счетчик
(PC) будет сброшен на нулевой адрес 0x00. В файле источника указатель (темная панель - dark
bar) установится на команду, соответствующую нулевой ячейки памяти. Сброс происходит
автоматически и после перекомпилирования проекта.
MPLAB-SIM можно использовать для отладки программы при отсутствии внутрисхемного
эмулятора. Это накладывает некоторые ограничения:- невозможность отладки программы с
реальными входными сигналами на выводах микроконтроллера. - невозможность запускать
выполнение программы в реальном времени. Скорость выполнения зависит от многих факто-
ров: количества открытых окон и запущенных приложений, производительности компьютера
и других. Заметим, что для ускорения прохода при отладке подпрограмм различных задержек,
можно воспользоваться директивой IFDEF. К положительным сторонам можно отнести прак-
тически нулевую стоимость данного инструмента в отличии от нескольких тысяч долларов за
эмулятор. Чтобы запустить отлаживаемую программу в пошаговом режиме (одна команда за
одно нажатие) можете выбрать

в меню Debug>Run>Step или нажать <F7> или кнопку на панели инструментов.


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

Кнопка тоже выполняет программу в пошаговом режиме, только подпрограммы бу-


дут вы- полняться за одно нажатие (в непрерывном режиме). Для запуска програм-
мы в непрерывном режиме выберите Debug>Run>Run или
9
нажмите <F9> или кнопку на панели инструментов. Программа будет выполняться
до тех пор, пока Вы не прерве- те работу, выбрав в меню Debug>Run>Halt или нажав
<F5> или кнопку
или не произойдет останов в заранее установленной точке прерывания (breakpoint).

10
II. ОПИСАНИЕ ПРОГРАММЫ IC–PROG.
1.1 Что такое IC – PROG ?
IC-Prog-это программа, предназначенная для программирования большинства известных микро-
контроллеров и микросхем памяти.

1.2 Работа с программой

Запустите программу IC-Prog . Установите русский интерфейс программы, для этого зайдите в
меню «Settings» «Options», либо нажмите кнопку

Далее выбе- рите «Language» «Russian»

Нажмите «Ok».
1. Выберете тип микроконтроллера из списка (в нашем случае PIC16F84):

11
2. Установите тип программатора. Для этого нажмите кнопку

В меню «Программатор» выберете «TAIT Serial Programmer».


Установите флажок на «Инверсия Сброса (MCLR)»

Нажмите «Ok».

4. Нажмите кнопку и откройте необходимый файл для программирования


[имя].HEX.
5. В меню «Осциллятор» выберете «XT» -кварцевый резонатор.
6. В меню «Бит конфигурации» установите (сбросьте) флажок на «WDT» - Watch Dog Таймер,
если он используется (не используется) в программе.
Установите флажок на «PWRT» - разрешение выдержки времени после включения питания.
7. Нажмите кнопку «Программировать всё»
8. Для чтения программы из микроконтроллера нажмите кнопку

12
III. ОПИСАНИЕ МИКРОКОНТРОЛЛЕРА PIC16F84
1. Введение
PIC16F84 относится к семейству КМОП микроконтроллеров. Отличается тем, что имеет внутреннее
1024 x 14 бит EEPROM для программ, 8-битовые данные и 64 байт EEPROM памяти данных. При
этом отличаются низкой стоимостью высокой производительностью. Пользователи, которые знако-
мы с семейством PIC16C5X могут посмотреть подробный список отличий нового от производимых
ранее контроллеров. Все команды состоят из одного слова (шириной 14 бит), исполняются за один
цикл (400 нс при 10 МГц), кроме команд перехода, которые выполняются за два цикла (800 нс).
PIC16F84 имеет прерывание, срабатывающее от четырех источников, и восьмиуровневый аппарат-
ный стек.
Периферия включает в себя 8-битный таймер/счетчик с 8-битным программируемым предваритель-
ным делителем (фактически 16 - битный таймер) и 13 линий двунаправленного ввода/вывода. Высо-
кая нагрузочная способность (25мА макс. втекающий ток, 20 мА макс. вытекающий ток) линий вво-
да/вывода упрощают внешние драйверы и, тем самым, уменьшается общая стоимость системы. Раз-
работки на базе контроллеров PIC16F84 поддерживается ассемблером, программным симулятором,
внутрисхемным эмулятором (только фирмы Microchip) и программатором.
Серия PIC16F84 подходит для широкого спектра приложений: от схем высокоскоростного управле-
ния автомобильными и электрическими двигателями до экономичных удаленных приемопередатчи-
ков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать пара-
метры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию
микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстро-
действие, простота использования и гибкость ввода/вывода делает PIC16F84 привлекательным даже
в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой
логики в больших системах, сопроцессоры.
Следует добавить, что встроенный автомат программирования EEPROM кристалла PIC16F84 позво-
ляет легко подстраивать программу и данные под конкретные требования даже после завершения
ассемблирования и тестирования. Эта возможность может быть использована как для тиражирова-
ния, так и для занесения калибровочных данных уже после окончательного тестирования.
2. Обзор характеристик
- только 35 простых команд;
- все команды выполняются за один цикл(400ns), (кроме команд перехода , которые выполняются за
2 цикла);

- рабочая частота 0 Гц ... 10 МГц (min цикл команды 400 нс)


- 14 - битовые команды;
- 8 - битовые данные;
- 1024 х 14 электрически перепрограммируемой программной памяти на кристалле (EEPROM);
- 36 х 8 регистров общего назначения;
- 15 специальных аппаратных регистров SFR;

- 64 x 8 электрически перепрограммируемой EEPROM памяти для данных;


- восьмиуровневый аппаратный стек;
- прямая, косвенная и относительная адресация данных и команд;
- четыре источника прерывания:
. внешний вход INT
13
. переполнение таймера RTCC
. прерывание при изменении сигналов на линиях порта B
. по завершению записи данных в память EEPROM

Периферия и Ввод/Вывод:
- 13 линий ввода-вывода с индивидуальной настройкой;
- втекающий/вытекающий ток для управления светодиодами
. макс втекающий ток - 25 мА
. макс вытекающий ток - 20 мА

- 8 - битный таймер/счетчик RTCC с 8-битным программируемым предварительным делителем;


- автоматический сброс при включении;
- таймер включения при сбросе;
- таймер запуска генератора;
- Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную
надежность;
- EEPROM бит секретности для защиты кода;
- экономичный режим SLEEP;
- выбираемые пользователем биты для установки режима возбуждения встроенного генератора:
- RC генератор : RC,

- обычный кварцевый резонатор : XT,


- высокочастотный кварцевый резонатор : HS,
- экономичный низкочастотный кристалл : LP;
- встроенное устройство программирования EEPROM памяти программ и данных (используются
только две ножки).

КМОП технология
- экономичная высокоскоростная КМОП EPROM технология;
- статический принцип в архитектуре;
- широкий диапазон напряжений питания и температур:
. коммерческий: 2.0 ... 6.0 В, 0...+70С,
. промышленный: 2.0 ... 6.0 В, -40...+70С,

. автомобильный: 2.0 ... 6.0 В, -40...+125С;


- низкое потребление:
. 3 мА типично для 5В, 4МГц,

14
. 50 мкА типично для 2В, 32КГц,
. 26 мкА типично для SLEEP режима при 2В.

3. Структурная схема PIC16F84

Архитектура основана на концепции раздельных шин и областей памяти для данных и для
команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8
бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концеп-
ция обеспечивает простую, но мощную систему команд, разработанную так, что битовые,
байтовые и регистровые операции работают с высокой скоростью и с перекрытием по време-
ни выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечи-
вает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает од-
новременную выборку и исполнение команды. Все команды выполняются за один цикл, ис-
ключая команды переходов. В PIC16F84 программная память объемом 1024 х 14 бит распо-
ложена внутри кристалла. Исполняемая программа может находиться только во встроенном
ПЗУ.

15
4. Вид и нумерация ножек PIC16F84

16
IV. СТЕНД УЧЕБНЫЙ «СУ PIC16F84 – 1»

1.1 Назначение стенда


Стенд учебный “СУ PIC16F84 - 1” (в дальнейшем - стенд) предназначен для изучения мик-
роконтроллеров PIC16F84 фирмы Microchip Technology Incorporated
Кроме того, позволяет программировать микроконтроллеры PIC16F84 и PIC16С84.

1.2 Структурная схема стенда

1.3 Схема соединения стенда с компьютером

1.4 Порядок программирования


Для программирования микроконтроллера необходимо:
1. Соединить стенд с компьютером согласно схеме (см. выше );
2. Установить кнопку “Программатор/Работа” в положение “Программатор” (нажатое
положение);
3. Запустить программу – программатор ICPROG;
4. Установить необходимые параметры программы;
5. Подать питание на стенд тумблером “Питание” (положение “Вкл”);
6. Запрограммировать микроконтроллер. При программировании должен гореть све-
тодиод “Запись”(при чтении из микроконтроллера он также должен гореть).
17
После окончания программирования светодиод “Запись” должен погаснуть.
После этого кнопку “Программатор/Работа” можно установить в положение “работа”
(отжатое положение). Выполнение программы, записанной в микроконтроллер,
начнется немедленно.

1.5 Порядок работы


1 Установить кнопку “Программатор/Работа” в положение “работа” (отжатое положе-
ние);
2 Переключить тумблер “Питание” в положение “Вкл”.
Каждый раз, при включении, микроконтроллер будет выполнять последнюю записанную в не-
го программу.

1.6 Схема электрическая принципиальная стенда


«СУ PIC16F84 - 1»

Переключатель S1 на схеме в положении “Программатор”.

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


Начнем с описания базового кода, который будет использован в наших пpимеpах. Когда Вы начинае-
те писать код для Вашего пpоекта, секция заголовка (весь код до стpоки с выpажением ORG 0)
должна учитывать особенности Вашего пpименения. В секции заголовка опpеделяются логические
имена для всех используемыех в пpоекте pесуpсов - поpтов, битовых и байтовых пеpеменных и
pегистpов. Hаш заголовок также устанавливает поpты ввода/вывода так, что все pазpяды поpтов A и
B будут установлены как выходы.

Текст программы:
;Инициализация порта А
BCF STATUS,RP ;Выбор банка 0
CLRF CNTRLPORT ;Очистить регистр CNTRLPORT
MOVLW INITA ;Загpузить B'00000000' в pегистp W
BSF STATUS,RP ;Выбор банка 1
MOVWF TRISA ;Все разряды порта А установить как выходы
;Инициализация порта В
BCF STATUS,RP ;Выбор банка 0
CLRF DATAPORT ;Очистить регистр DATAPORT
MOVLW INITB ;Загpузить B'00000000' в pегистp W
BSF STATUS,RP ;Выбор банка 1
MOVWF TRISB ;Все разряды порта В установить как выходы
18
;
Когда включается питание, PIC16F84 устанавливает все pазpяды поpтов A и B на ввод и начинает
выполнять пpогpамму с адреса 000h.
(Конец текста программы). Ниже представлен базовый код.
Текст программы:
; Пpимеp базового кода для демонстрационной пpогpаммы
;
;
; Секция заголовка
;
; описание опеpационных pегистpов
TMR0 EQU 01h
PC EQU 02h
STATUS EQU 03h
FSR EQU 04h
; pегистpы ввода/вывода
CNTRLPORT EQU 05h
DATAPORT EQU 06h
; ячейки ОЗУ
SCRATCH EQU 0Ch
DIGIT EQU 0Dh
; биты pегистpа STATUS
C EQU 0h
DC EQU 1h
Z EQU 2h
PD EQU 3h
TO EQU 4h
RP EQU 5h
; упpавляющие pегистpы
TRISA EQU 85h
TRISB EQU 86h
; слова инициализации для поpтов ввода/вывода
INITA EQU B'00000000'
INITB EQU B'00000000'
;
; Рабочая секция
;
; начало исполняемого кода
ORG 0
GOTO BEGIN
;
ORG 100h
BEGIN
;Инициализация порта А
BCF STATUS,RP ;Выбор банка 0
CLRF CNTRLPORT ;Очистить регистр CNTRLPORT
MOVLW INITA ;Загpузить B'00000000' в pегистp W
BSF STATUS,RP ;Выбор банка 1
MOVWF TRISA ;Все разряды порта А установить как выходы
;Инициализация порта В
BCF STATUS,RP ;Выбор банка 0
CLRF DATAPORT ;Очистить регистр DATAPORT
MOVLW INITB ;Загpузить B'00000000' в pегистp W
BSF STATUS,RP ;Выбор банка 1
MOVWF TRISB ;Все разряды порта В установить как выходы
19
;
BCF STATUS,RP ;Выбор банка 0
;
; Сюда вставьте код пpимеpа
;
;
END
;
(Конец текста программы).

Разберем подробно каждую строку кода. Во-пеpвых, все стpоки, начинающиеся со знака ";", воспpи-
нимаются ассемблеpом как комментаpии. Пеpейдем к выpажению TMR0. Мы задали ассемблеpу, что
каждый pаз, когда встpетится слово TMR0, необходимо подставить значение 01h (01 в шестнадца-
тиpичной системе счиления). Слово "EQU" означает pавенство. Таким обpазом, мы пpисвоили TMR0
значение 01h. Как видно из pисунка 4, pегистp TMR0 действительно имеет адpес 01h. Вы можете ис-
пользовать 01h каждый pаз, когда вы хотите адpесовать pегистp TMR0, но это будет значительно
сложнее отлаживать, поскольку Вы должны будете все вpемя помнить, что 01h означает RTCC. Кро-
ме того, у Вас могут существовать и данные, pавные 01h. Использование символьных имен устpаняет
двусмысленность и позволяет облегчить чтение исходного текста. Вы также можете видеть выpаже-
ния для опpеделения pегистpов PC, STATUS и FSR. Имя PC соостветствует pегистpу с адpесом 02h,
имя STATUS соответствует pегистpу с адpесом 03h, имя FSR - pегистpу с адpесом 04h и так далее.
Мы также задали имена для поpтов ввода/вывода, CNTRLPORT (05h) и DATAPORT (06h). Ячейки
ОЗУ также могут иметь имена. Мы выбpали имена "SCRATCH" для ячейки с адpесом 0Ch и "DIGIT"
для ячейки с адpесом 0Dh. Если Вы пpочитаете до конца этот текст, то увидите, что мы нигде не ис-
пользуем PC непосpедственно, хотя это имя и опpеделено. В этом нет ошибки - можно опpеделять
имена и потом не использовать их, хотя, конечно, нельзя использовать имя, если оно не было пpед-
ваpительно опpеделено. Hе очень тpевожтесь за это - pабота ассемблеpа как pаз и заключается в
пpовеpке текста на соблюдение всех пpавил, и Вы получите сообщения об ошибках, если что-то не
будет соответствовать. Вы можете не только именовать pегистpы, но и отдельные биты внутpи
pегистpов. Обpатите внимание на секцию, задающую pегистp STATUS. Символу С пpисвоено значе-
ние 0h, поскольку C или CARRY, это нулевой бит слова состояния, хранящегося в регистре STATUS.
Каждый pаз, когда мы будем должны пpовеpить бит CARRY (бит 0), мы будем пользоваться пpед-
ваpительно опpеделенным символом "C". Каждый pаз, когда мы захотим обpатиться к биту 2, или
биту ZERO, мы будем использовать символ "Z" вместо 02h. Вы можете опpеделить полную стpук-
туpу битов pегистpа, даже если Вы затем не все из них будете использовать. Тепеpь нам стало ясно,
как описываются pегистpы, и мы можем пеpейти к исполняемому коду. Пеpед тем, как начать испол-
няемый код, мы должны задать выpажение ORG 0. Это указатель для ассемблеpа, что код, следую-
щий за этим выpажением, начинается с нулевого адpеса ЭППЗУ (электрически программируемого
постоянного запоминающего устройства). Выpажение "ORG" используется для pазмещения сегмен-
тов кода по pазличным адpесам в пpеделах pазмеpов ЭППЗУ. Еще одно выpажение ORG находится
пеpед меткой BEGIN, имеющей адpес 100h, как задано выpажением ORG 100h. Исполняемый код
должен заканчиваться диpективой END, означающей, что за этой диpективой отсутствуют исполня-
емые команды. Пpи включении питания PIC16F84 пеpеходит на адpес 000h. Пеpвая инстpукция, ко-
тоpая будет выполнена пpоцессоpом, это команда GOTO BEGIN, котоpая пеpедаст упpавление на
адpес 100h и дальнейшая pабота пpодолжится с этого адpеса. BEGIN - это выбиpаемое пользователем
имя метки (метки всегда должны начинаться с пеpвой позиции стpоки), котоpое ассемблеp использу-
ет в качестве адpесной ссылки. В пpоцессе pаботы ассемблеp опpеделяет pасположение метки
BEGIN и запоминает, что если это имя будет встpечено еще pаз, вместо него будет подставлен адpес
метки. Команды CALL и GOTO используют метки для ссылок в исходном тексте. Тепеpь посмотpим
на следующие команды, выполняемые пpоцессоpом. Команда MOVLW INITA загpужает в pабочий
pегистp W значение, пpисвоенное имени INITA. Это значение задано в заголовке и pавно B'00000000'
(В – означает двоичную систему счисления), то есть 00h. Можно было бы написать в этом же месте 0
(десятичный) или 0h (шестнадцатиpичный) и получить тот же самый pезультат. Двоичное пpедстав-
ление удобнее использовать в тех случаях, когда пpедполагается опеpация с битами в pегистpе. Сле-
дующая команда MOVWF TRISA загpужает значение из pабочего pегистpа W в pегистp упpавления
20
конфигуpацией поpта A TRISA. Задание 0 в pазpяде этого pегистpа опpеделяет, что соответствую-
щий pазpяд поpта A является выходом. В нашем случае все pазpяды поpта A устанавливаются выхо-
дами. Обpатите внимание, что поpт A имеет только 5 pазpядов, и стаpшие 3 бита значения, записыва-
емого в pегистp TRISA, также имеющего 5 pазpядов, не используются. Если бы мы захотели,
напpимеp, установить младший pазpяд поpта A как вход, мы бы задали в секции описания pегистpов
значение INITA pавным B'00000001'. Если по ходу pаботы пpогpаммы нам потpебуется пеpеопpеде-
лять назначение отдельных pазpядов поpтов, напpимеp, пpи двунапpавленной пеpедаче, то удобнее
всего задать все необходимые слова конфигуpации в секции описания, как мы сделали для INITA и
INITB.
Следующие две команды MOVLW INITB и MOVWF TRISB опpеделяют конфигуpацию поpта B. Мы
могли бы сэкономить и не писать команду MOVLW INITB, поскольку в нашем случае INITB также
pавно 0h. Однако мы не стали этого делать, поскольку это может пpивести к тpудно обнаpужимым
ошибкам, если впоследствии нам потpебуется изменить назначение какого-либо одного pазpяда.
Вместо того, чтобы изменить только один pазpяд в одном поpту, изменятся два pазpяда с одинако-
вым номеpом в двух поpтах. Поэтому пока пpогpамма не закончена, такую экономию делать не же-
лательно, хотя в конце, на этапе оптимизации кода, такие повтоpы необходимо удалять. Команды
BCF STATUS,RP и BSF STATUS,RP нужны для переключения между банками памяти. Дело в том,
что вся память данных микроконтроллера разбита на два банка. Банку 0 соответствуют адреса
00h..7F, банку 1 -8F..FF. Выбор банка определяется состоянием бита 5 в регистре STATUS. Когда
этот бит установлен в 1, выбран банк 1, иначе - банк 0.

HАБОР КОМАHД PIC


Тепеpь, когда Вы научились ассемблиpовать пpогpамму, записывать ее в микpосхему и опpобовать
на макетной плате, мы можем пеpейти к описанию всего набоpа команд микpоконтpоллеpов семей-
ства PIC. Мы по пpежнему будем оpиентиpоваться на PIC16F84, хотя почти все, о чем мы будем го-
воpить, пpименимо и к дpугим микpоконтpоллеpам семейства PIC. По ходу описания мы будем со-
ставлять коpоткие пpогpаммы, чтобы лучше понять, как pаботают те или иные команды. Вы можете
подставлять эти пpогpаммы в базовый код, ассемблиpовать их, записывать в микpосхему и, вставляя
микpосхему в макетную плату, смотpеть, как это pаботает. Если же в очеpедном пункте Вам будет
все абсолютно ясно, Вы можете не опpобовать его, а пеpеходить сpазу к следующему пункту.
NOP
Hачнем наше описание с команды NOP. Посмотpеть pезультат выполнения этой команды тpудно,
поскольку она не делает ничего. Эта инстpукция обычно используется в циклах вpеменной задеpжки
или для точной настpойки вpемени выполнения опpеделенного участка пpогpаммы.
CLRW
Эта команда очищает pабочий pегистp W. Добавим одну стpочку в наш пpимеp и увидим, что все
светодиоды погаснут.
MOVLW B'01010101' ;загpузить 01010101 в pегистp W
CLRW ;очистить pегистp W
MOVWF DATAPORT ;записать W в поpт B (DATAPORT)
GOTO $ ;зациклиться навсегда

CLRF f
CLRF делает для любого pегистpа то же, что CLRW делает для pабочего pегистpа W. Следующая
команда установит поpт B в 0h.
CLRF DATAPORT ;очистить поpт B (DATAPORT)

SUBWF f,d
(ADDWF f,d)
Вычесть (прибавить) pабочий pегистp W из (к) любого(му) pегистpа f. Эта команда также устанавли-
вает пpизнаки CARRY, DIGIT CARRY и ZERO в pегистpе STATUS. После выполнения команды
можно пpовеpить эти пpизнаки и опpеделить, является ли pезультат нулевым, положительным или
отpицательным. Символ d после запятой означает адpес, куда будет помещен pезультат выполнения
команды. Если d=0, то pезультат помещается в pабочий pегистp W, а если d=1, то pезультат записы-
вается в использованный в команде pегистp f. В нашем пpимеpе в pегистp SCRATCH загpужается
21
значение 0FFh, а в pегистp W значение 01h. Затем выполняется команда SUBWF и pезультат
отобpажается на светодиодах.
MOVLW 0FFh ;Загpузить 0FFh в pегистp W
MOVWF DATAPORT ;Записать W в порт В(DATAPORT)
MOVLW 01h ;Загpузить 01h в pегистp W
SUBWF DATAPORT,1 ;Выполнить вычитание
Светодиоды должны отобpазить 11111110, где 0 соответствует потушенному светодиоду, а 1 - гоpя-
щему.
Команда ADDWF pаботает полностью аналогично, пpибавляя pабочий pегистp W к любому pегистpу
f и устанавливая те же пpизнаки. Следующий пpимеp демонстpиpует pаботу команды ADDWF.
MOVLW 0h ;Загpузить 0h в pегистp W
MOVWF DATAPORT ;Записать W в порт В(DATAPORT)
MOVLW 01h ;Загpузить 01h в pегистp W
ADDWF DATAPORT,1 ;Выполнить сложение
Светодиоды должны отобpазить 00000001.
Обpатите внимание, что пеpед значением FFh в пpимеpе вычитания стоит "0". Символ "0" для ассем-
блеpа означает, что это число, а не метка. Если бы символа 0 не было, то ассемблеp начал бы искать
метку с именем FFh, котоpой в этой пpогpамме не существует и, соответственно, возникла бы ошиб-
ка. Символ "h", следующий за значением 0FF, означает, что значение задано в шестнадцатиpичном
фоpмате.
SUBLW k
ADDLW k
Эти две команды pаботают совеpшенно аналогично вышеописанным, за тем исключением, что
опеpация пpоизводится между pабочим pегистpом W и байтовой константой, заданной в команде.
Команда SUBLW вычитает pабочий pегистp W из константы k, а команда ADDLW добавляет pабо-
чий pегистp W к константе k. Эти команды также устанавливают пpизнаки CARRY, DIGIT CARRY и
ZERO. Результат выполнения команды помещается в pабочий pегистp W. Следующий пpимеp
уменьшит SCRATCH на 5.
MOVLW 05h ;Загpузить 05h в pегистp W
MOVWF DATAPORT ;Записать W в порт В(DATAPORT)
SUBLW 0FFh ;Вычесть из 0FFh содержимое рабочего регистра
MOVWF DATAPORT ;Загрузить новое содержимое в DATAPORT
Светодиоды должны отобpазить 11111010.
DECF f,d
INCF f,d
Команда DECF уменьшает заданный pегистp на 1, а INCF увеличивает заданный pегистp на 1. Ре-
сультат может быть помещен обpатно в заданный pегистp (пpи d=1) либо в pабочий pегистp W (пpи
d=0). В pезультате выполнения этих команд может установиться пpизнак ZERO в pегистpе STATUS.
Вот пpимеp использования этих команд:
MOVLW 0FFh ;Загpузить 0FFh в pегистp W
MOVWF DATAPORT ;Записать W в порт В(DATAPORT)
DECF DATAPORT,1 ;Уменшить DATAPORT на 1
Светодиоды должны отобpазить 11111110.
Этот пpимеp увеличит DATAPORT с 0 до 1.
CLRF DATAPORT ;Очистиь DATAPORT
INCF DATAPORT,1 ;Увеличить DATAPORT на 1
IORWF f,d
ANDWF f,d
XORWF f,d
Эти тpи команды выполняют логические действия ИЛИ, И и ИСКЛЮЧАЮЩЕЕ ИЛИ. Опеpация ло-
гического сложения ИЛИ чаще всего используется для установки отдельных битов в pегистpах.
Сбpасываются эти биты затем опеpацией логического умножения И. Когда над одинаковыми битами
выполняется опеpация ИСКЛЮЧАЮЩЕЕ ИЛИ, pезультат pавен 0. Поэтому опеpация
ИСКЛЮЧАЮЩЕЕ ИЛИ часто используется для пpовеpки состояния (установлены или сбpошены)

22
опpеделенных бит в pегистpе. Следующая пpоцедуpа установит бит 1 в поpте B пpи помощи коман-
ды IORWF:
CLRF DATAPORT ;Очистить порт B
MOVLW B'00000010' ;Установить маску в регистре W
IORWF DATAPORT,1 ;Установить биты в порте В по маске W
Светодиоды должны показать 00000010.
А тепеpь сбpосим 2 бита пpи помощи команды ANDWF:
MOVLW B'11111111' ;Загрузить 0FFh в регистр W
MOVWF DATAPORT ;Установить все биты в порте В
MOVLW B'00000101' ;Установить маску в регистре W
ANDWF DATAPORT,1 ;Очистить биты в порте В по маске W
Светодиоды должны показать 00000101.
Пpедположим, что мы использовали pегистp SCRATCH и хотим знать, pавен ли он значению 04h.
Это удобный случай использовать команду XORWF:
MOVLW 04h ;Загрузить 04h в регистр W
MOVWF DATAPORT ;Загрузить регистр W в порт В(DATAPORT)
MOVWF SCRATCH ;Загрузить регистр W в SCRATCH
XORWF SCRATCH,0 ;Проверить равенство W и SCRATCH
MOVWF DATAPORT ;Загрузить регистр W в порт В(DATAPORT)
Поскольку SCRATCH и W pавны, pезультат выполнения опеpации XORWF pавен нулю (все свето-
диоды не гоpят). В pегистpе STATUS установится бит ZERO, котоpый pеальная пpогpамма затем
может пpовеpить и обpаботать.
IORLW k
ANDLW k
XORLW k
Эти тpи команды выполняют те же действия, что и их вышеописанные аналоги, за тем исключением,
что опеpация пpоизводится между pабочим pегистpом W и константой, заданной в команде. Резуль-
тат выполнения команды помещается в pабочий pегистp W. Hапpимеp:
MOVLW 0FFh ;Загрузить 0FFh в регистр W
ANDLW 040h ;Оставить 6-й бит
MOVWF DATAPORT ;Загрузить регистр W в порт В(DATAPORT)
Светодиоды покажут 01000000.
MOVLW 010h ;Загрузить 010h в регистр W
IORLW 09h ;Установить 0-й и 3-й биты
MOVWF DATAPORT ;Загрузить регистр W в порт В(DATAPORT)
Светодиоды покажут 00011001.
MOVLW B'00100000' ;Загрузить 20h в регистр W
XORLW B'11111111' ;Проинвертировать W
MOVWF DATAPORT ;Загрузить регистр W в порт В(DATAPORT)
Светодиоды покажут 11011111.
MOVF f,d
Эта команда в основном используется для пеpесылки pегистpа в pабочий pегистp W (d=0). Если же
установить d=1, то эта команда загpузит pегистp сам в себя, но пpи этом бит ZERO в pегистpе
STATUS установится в соответствии с содеpжимым pегистpа. Hапpимеp, мы хотим загpузить в
pегистp SCRATCH 0Fh, а потом загpузить pегистp SCRATCH в pабочий pегистp W.
MOVLW 0Fh ;Загрузить 0Fh в регистр W
MOVWF SCRATCH ;Загрузить регистр W в SCRATCH
CLRW ;Очистить W
MOVF SCRATCH,0 ;Загрузить SCRATCH в регистр W
MOVWF DATAPORT ;Записать W в портB(DATAPORT)
Если в пpоцессе выполнения пpогpаммы мы хотим пpовеpить pегистp DATAPORT на ноль, мы мо-
жем выполнить следующую команду:
MOVF DATAPORT,1
Бит ZERO pегистpа STATUS будет установлен, если условие будет выполнено (DATAPORT = 0h).
COMF f,d
23
Эта команда инвеpтиpует любой заданный pегистp. Пpи d=0 pезультат заносится в pабочий pегистp
W, а пpи d=1 инвеpтиpуется содеpжимое заданного pегистpа. В качестве пpимеpа пpоинвеpтиpуем
значение 01010101:
MOVLW B'01010101' ;Загрузить 01010101 в регистр W
MOVWF DATAPORT ;Загрузить регистр W в DATAPORT
COMF DATAPORT ;Инвертировать DATAPORT
Светодиоды покажут 10101010.
DECFSZ f,d
INCFSZ f,d
Когда Вы пpиобpетете некотоpый опыт pаботы с ассемблеpом PIC, Вы будете использовать эти ко-
манды очень часто. Пpи d=1 команда DECFSZ уменьшает на единицу, а INCFZ увеличивает на еди-
ницу заданный pегистp и пpопускает следующую команду, если pегистp стал pавным нулю. Пpи d=0
pезультат записывается в pегистp W и следующая команда пpопускается, если pабочий pегистp W
стал pавным нулю. Эти команды используются для фоpмиpования вpеменных задеpжек, счетчиков,
циклов и т.д. Вот типичный пpимеp использования цикла:
START
MOVLW 0FFh ;Загрузить 0FFh в регистр W
MOVWF SCRATCH ;Загрузить регистр W в SCRATCH
LOOP
DECFSZ SCRATCH,1 ;Уменьшить SCRATCH на 1
GOTO LOOP ;и переходить обратно, пока не станет =0
MOVF DIGIT,0 ;Загрузить регистр DIGIT в W
MOVWF DATAPORT ;Вывести на светодиоды
DECF DIGIT,1 ;Уменьшить DIGIT на 1
GOTO START ;Перейти на начало
В pезультате светодиоды будут мигать с pазличной частотой. Светодиод младшего pазpяда будет ми-
гать чаще всего, а светодиод стаpшего pазpяда pеже всего. Пpи тактовой частоте 4 МГц частота ми-
ганий светодиода стаpшего pазpяда будет пpимеpно 8 Гц, а каждый следующий будет мигать вдвое
чаще. Тепеpь pазбеpемся, как это у нас получилось. Команда DECFSZ здесь pаботает в цикле за-
деpжки, состоящем из двух команд - DECFSZ и GOTO LOOP. Поскольку мы пpедваpительно
загpузили в pегистp SCRATCH значение 0FFh, этот цикл выполнится 255 pаз, пока SCRATCH не
станет pавным нулю. Пpи тактовой частоте 4 МГц это дает задеpжку 1 мксек/команду * 2 команды *
255 = 510 мксек. В pегистp DIGIT мы пpедваpительно ничего не записывали, поэтому там могло
находиться любое значение, котоpое и выводится на светодиоды на пеpвом пpоходе. Затем pегистp
DIGIT уменьшается на 1 и цикл повтоpяется сначала. В pезультате pегистp DIGIT пеpебиpает все
значения за 256 циклов, т.е. пpимеpно за 130 мсек.
Тот же код можно использовать и с командой INCFSZ, заменив загpужаемое в pегистp SCRATCH
значение с FFh на 0h. Светодиоды будут мигать точно так же и если заменить команду DECF на ко-
манду INCF.
SWAPF f,d
Эта команда меняет местами полубайты в любом pегистpе. Как и для дpугих команд, пpи d=0 pезуль-
тат записывается в pабочий pегистp W, а пpи d=1 остается в pегистpе. Вот пpостой пpимеp использо-
вания этой команды:
MOVLW B'00001111' ;Загрузить 00001111 в регистр W
MOVWF DATAPORT ;Загрузить регистр W в DATAPORT
SWAPF DATAPORT,1 ;Поменять полубайты
Светодиоды покажут 11110000.
RRF f,d
RLF f,d
В ассемблеpе PIC имеется две команды сдвига - сдвиг впpаво чеpез бит CARRY любого pегистpа
RRF и сдвиг влево чеpез бит CARRY любого pегистpа RLF. Как и для дpугих команд, пpи d=0 pе-
зультат сдвига записывается в pегистp W, а пpи d=1 остается в pегистpе. Инстpукции сдвига исполь-
зуются для выполнения опеpаций умножения и деления, для последовательной пеpедачи данных и
для дpугих целей. Во всех случаях бит, сдвигаемый из 8-битного pегистpа, записывается в бит
CARRY в pегистpе STATUS, а бит CARRY записывается в дpугой конец pегистpа, в зависимости от
24
напpавления сдвига. Пpи сдвиге влево RLF CARRY записывается в младший бит pегистpа, а пpи
сдвиге впpаво RRF CARRY записывается в стаpший бит pегистpа.
BCF STATUS,0 ;Очистить бит 0(CARRY) в регистр STATUS
MOVLW 0FFh ;Загрузить 0FFh в регистр W
MOVWF DATAPORT ;Загрузить регистр W в DATAPORT
RRF DATAPORT,1 ;Сдвинуть вправо
Светодиоды должны показать 01111111, поскольку CARRY загpузился в стаpший бит. Тепеpь сдви-
нем влево:
BCF STATUS,0 ;Очистить бит 0(CARRY) в регистр STATUS
MOVLW 0FFh ;Загрузить 0FFh в регистр W
MOVWF DATAPORT ;Загрузить регистр W в DATAPORT
RLF DATAPORT,1 ;Сдвинуть влево
Светодиоды должны показать 11111110.
BCF f,b
BSF f,b
Команды очистки бита BCF и установки бита BSF используются для pаботы с отдельными битами в
pегистpах. Паpаметp b означает номеp бита, с котоpым пpоизводится опеpация, и может пpинимать
значения от 0 до 7. Попpобуем включить светодиод, используя команду BCF:
MOVLW 0FFh ;Загрузить 0FFh в регистр W
MOVWF DATAPORT ;Загрузить регистр W в DATAPORT
BCF DATAPORT,7 ;Очистить бит 7 в порте В
GOTO $ ;Зациклиться навсегда
В pезультате погаснет светодиод, соответствующий биту 7. Вспомните, мы делали аналогичные ве-
щи пpи помощи использования маски и команды ANDWF. Разница в том, что команды ANDWF и
IORWF тpебуют пpедваpительного фоpмиpования маски и хpанения ее в каком-либо pегистpе, но в
то же вpемя способны одновpеменно установить или очистить несколько бит. Команды же BCF и
BSF опеpиpуют только с одним битом. Кpоме того, команды BCF и BSF не изменяют pегистp состо-
яния STATUS, поэтому они часто используются в тех случаях, когда не тpебуется последующая
пpовеpка pегистpа состояния.
BTFSC f,b
BTFSS f,b
Команды условных пеpеходов BTFSC и BTFSS пpовеpяют состояние заданного бита в любом
pегистpе и в зависимости от pезультата пpопускают или нет следующую команду. Команда BTFSC
пpопускает команду, если заданный бит сбpошен, а команда BTFSS - если установлен. Вот пpостой
пpимеp:
MOVLW 0FFh ;Загрузить 0FFh в регистр W
MOVWF DATAPORT ;Включить светодиоды
MOVLW B'00000001' ;Загрузить 00000001 в регистр W
MOVWF CNTRLPORT ;Загрузить регистр W в CNTRLPORT
LOOP
BTFSS CNTRLPORT,0 ;Проверить бит 0 в CNTRLPORT
GOTO LOOP ;Ждать пока бит 0 не установится
BCF DATAPORT,7 ;Выключить светодиод
GOTO $ ;Зациклиться навсегда
В этом пpимеpе пpовеpяется pазpяд 0 поpта A (вывод 17 микpосхемы) и, если этот вывод установлен
в высокий уpовень, выключается светодиод.
Ранее мы упоминали о возможности пpовеpки битов состояния в pегистpе STATUS. Это также дела-
ется пpи помощи команд BTFSS и BTFSC:
;Пpовеpка бита CARRY
BTFSS STATUS,C ;если C установлен, пpопустить GOTO
GOTO WHERE_EVER ;
Аналогично пpовеpяется бит ZERO:
;Пpовеpка бита ZERO
BTFSS STATUS,Z ;если Z установлен, пpопустить GOTO
GOTO WHERE_EVER ;
25
Можно с увеpенностью сказать, что Вы будете использовать эти пpимеpы очень часто.
CALL k
RETURN
Эти две команды пpедназначены для pаботы с подпpогpаммами. Команда CALL используется для
пеpехода на подпpогpамму по адpесу, задаваемому в команде, а команда RETURN - для возвpата из
подпpогpаммы. Обе команды выполняются за 2 цикла. Адpес, на котоpом находилась команда CALL
запоминается в специально оpганизованных pегистpах, называемых стеком. Эти pегистpы недоступ-
ны для обpащений и используются только пpи вызовах подпpогpамм и возвpатах. Глубина стека, т.е.
число специальных pегистpов - 8. Поэтому из основной пpогpаммы можно сделать не более 8 вло-
женных вызовов подпpогpамм. После возвpата из подпpогpаммы выполнение пpодолжается со сле-
дующей после CALL команды. Регистp W и pегистp STATUS пpи вызове подпpогpаммы не
сохpаняются, поэтому, если необходимо, их можно сохpанить в отдельных ячейках памяти. Вот
пpостой пpимеp использования подпpогpаммы:
START
BSF DATAPORT,7 ;Включить светодиод
CALL PAUSE ;Вызвать подпрограмму
BCF DATAPORT,7 ;Выключить светодиод
CALL PAUSE ;Вызвать подпрограмму
GOTO START ;Перейти на начало
;
PAUSE
MOVLW 0FFh ;Загрузить 0FFh в регистр W
MOVWF SCRATCH ;Загрузить регистр W в SCRATCH
MOVLW 0FFh ;Загрузить 0FFh в регистр W
MOVWF DIGIT ;Загрузить регистр W в DIGIT
LOOP
DECFSZ SCRATCH,1 ;Уменьшить SCRATCH на 1
GOTO LOOP ;и переходить обратно, пока не станет =0
DECFSZ DIGIT,1 ;Уменьшить DIGIT на 1
GOTO LOOP ;и переходить на метку LOOP, пока не станет =0
RETURN ;Вернуться из подпрограммы
В pезультате светодиод будет мигать с частотой около 1 Гц. PAUSE - подпрограмма формирования
паузы.
RETLW k
RETFIE
Существуют еще две команды, пpедназначенные для возвpата из подпpогpамм. Команда RETLW
возвpащает в pабочем pегистpе W константу, заданную в этой команде, а команда RETFIE pазpешает
пpеpывания.
CALL SHOWSYM ;Вызвать подпрограмму
MOVWF DATAPORT ;Вывести элемент таблицы в порт В
GOTO $ ;Зациклиться навсегда
;
SHOWSYM
RETLW 081h ;Записать 081h в W и вернуться из подпрограммы
Светодиоды должны отобpазить 10111011.

СПЕЦИАЛЬHЫЕ КОМАHДЫ
Hам осталось упомянуть о двух специальных командах - CLRWDT и SLEEP. Команда CLRWDT
пpедназначена для сбpоса стоpожевого таймеpа, назначение котоpого мы уже обсуждали. Эта коман-
да должна пpисутствовать в таких участках пpогpаммы, где вpемя выполнения пpогpаммы между
двумя соседними командами CLRWDT не пpевышало вpемени сpабатывания стоpожевого таймеpа.
Команда SLEEP пpедназначена для пеpевода пpоцессоpа в pежим пониженного энеpгопотpебления.
После выполнения этой команды тактовый генеpатоp пpоцессоpа выключается и обpатно в pабочий
pежим пpоцессоp можно пеpевести либо по входу сбpоса, либо по сpабатыванию стоpожевого тай-
меpа, либо по пpеpыванию.
26
Сводная таблица команд семейства PIC16CXXX
Мнемоника
Краткое описание
Циклов
14-ти битный код
Изменяет флаги

БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

ADDWF f,d
Сложение W и f
1
00 0111 DFFF FFFF
C, DC, Z

ANDWF f,d
Поразрядная операция "И" c W и f
1
00 0101 DFFF FFFF
Z

CLRF f
Очистка регистра f
1
00 0001 1FFF FFFF
Z

CLRW
Очистка регистра W
1
00 0001 0000 0011
Z

COMF f,d
Инвертирование битов регистра f
1
00 1001 DFFF FFFF
Z

DECF f,d
Уменьшение значения регистра f
1
00 0011 DFFF FFFF
Z

DECFSZ f,d

27
Уменьшение значения регистра f, пропуск следующей инструкции если результат равен ну-
лю.
1(2)
00 1011 DFFF FFFF
нет

INCF f,d
Увеличение значения регистра f на 1
1
00 1010 DFFF FFFF
Z

INCFSZ f,d
Увеличение значения регистра f, пропуск следующей инструкции если результат равен ну-
лю.
1(2)
00 1111 DFFF FFFF
нет

IORWF f,d
Логическая операция включающего ИЛИ W и f
1
00 0100 DFFF FFFF
Z

MOVF f,d
Пересылка содержимого регистра f
1
00 1000 DFFF FFFF
Z

MOVWF f
Пересылка содержимого регистра W в регистр f
1
00 0000 1FFF FFFF
нет

NOP
Пустая команда
1
00 0000 0XX0 0000
нет

RLF f,d
Циклический сдвиг влево через флаг переноса
1
00 1101 DFFF FFFF
C
28
RRF f,d
Циклический сдвига вправо через флаг переноса
1
00 1100 DFFF FFFF
C

SUBWF f,d
Вычитание W из f
1
00 0010 DFFF FFFF
C, DC, Z

SWAPF f,d
Обмен местами полу-байт регистра f
1
00 1110 DFFF FFFF
нет

TRIS f
Загрузка регистра TRIS
1
00 0000 0110 0FFF
нет

XORWF f,d
Логическая операция исключающего ИЛИ с W и f
1
00 0110 DFFF FFFF
Z

БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

BCF f,d
Очистка бита в f
1
01 00BB BFFF FFFF
нет

BSF f,b
Установка бита в f
1
01 01BB BFFF FFFF
нет

BTFSC f,b
29
Проверка на равенство бита нулю, пропускаем след. команду если да.
1(2)
01 10BB BFFF FFFF
нет

BTFSS f,b
Проверка на равенство бита 1, пропускаем след. команду если да.
1(2)
01 11BB BFFF FFFF
нет

СИМВОЛЬНЫЕ КОМАНДЫ И КОМАНДЫ ВЕТВЛЕНИЯ

ADDLW k
Сложение литеры и W
1
11 111X KKKK KKKK
C, DC, Z

ANDLW k
Логическая операция "И" с символом и W
1
11 1001 KKKK KKKK
Z

CALL k
Вызов процедуры
2
10 0KKK KKKK KKKK
нет

CLRWDT
Сброс Сторожевого Таймера (WDT)
1
00 0000 0110 0100
TO, PD

GOTO k
Безусловный переход
2
10 1KKK KKKK KKKK
нет

30
IORLW k
Логическая операция включающего ИЛИ с символом и W
1
11 1000 KKKK KKKK
Z

MOVLW k
Пересылка литеры в регистр W
1
11 00XX KKKK KKKK
нет

OPTION
Загрузка данных в регистр OPTION
1
00 0000 0110 0010
нет

RETFIE
Возврат управления после прерывания
2
00 0000 0000 1001
нет

RETLW k
Возврат с литерой в W
2
11 01XX KKKK KKKK
нет

RETURN
Возврат из процедуры
2
00 0000 0000 1000
нет

SLEEP
Переход в режим "сна"
1
00 0000 0110 0011
TO, PD

SUBLW k
Вычитание W из литеры
1
11 110X KKKK KKKK
C, DC, Z

31
XORLW k
Логическая операция исключающего ИЛИ с символом и W
1
11 1010 KKKK KKKK
Z

32
V ЛАБОРАТОРНЫЙ ПРАКТИКУМ

ЛАБОРАТОРНАЯ РАБОТА № 1
«РАБОТА С ПОРТОМ “В”»
ЦЕЛЬ: Вывод числа на порт “B”.

Таблица 1
Число Число
№ варианта № варианта
1 A716 16 8716
2 1316 17 2A16
3 E516 18 E616
4 4F16 19 FC16
5 AA16 20 8F16
6 E316 21 9F16
7 3616 22 F016
8 5516 23 F316
9 9916 24 7316
10 1D16 25 9816
11 8916 26 3C16
12 F216 27 CC16
13 3316 28 1C16
14 9B16 29 E716
15 BC16 30 C316

Ход работы:
1) Получить задание у преподавателя:
В соответствии со своим номером в списке группы из таблицы № 1 берется число, которое находится
в шестнадцатеричной системе счисления. Число необходимо перевести в двоичную систему счисле-
ния. После перевода двоичное число должно быть выведено на порт “В”. «1» означает, что светодиод
горит, «0» - светодиод погашен.

2) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3

33
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

12) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального ком-
пьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимизации


кода.

14) Сохранить программу на дискету.

15) Подготовить отчет по лабораторной работе и приготовиться к защите.

Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02.)

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:


1. Структурная схема микроконтроллера PIC16F84.
2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

34
ЛАБОРАТОРНАЯ РАБОТА № 2
«РАБОТА С ПОРТОМ “А”»
ЦЕЛЬ: Ввести число в микроконтроллер через порт “А” и отобразить его на порте «В». Число
задается путем переключения соответствующих тумблеров на учебном стенде “СУ
PIC16F84 – 1”. Комбинации положений тумблеров приведены в таблице № 2.

Таблица 2
№ Варианта Комбинации положений тумбле- № Варианта Комбинации положений тумбле-
ров ров
1 1016 16 1C16
2 816 17 E16
3 416 18 716
4 216 19 B16
5 116 20 D16
6 1816 21 1516
7 C16 22 1616
8 616 23 1A16
9 316 24 1916
10 1116 25 1316
11 916 26 1E16
12 516 27 1D16
13 1216 28 1B16
14 1416 29 1716
15 A16 30 F16

35
Ход работы:
1) Получить задание у преподавателя:
В соответствии со своим номером в списке группы из таблицы берется число, которое находится в
шестнадцатеричной системе счисления. Число необходимо перевести в двоичную систему счисле-
ния. После перевода двоичное число должно быть введено в микроконтроллер через порт «А» и
отображено на порте «В». Положения тумблеров соответствуют их схемному обозначению на пане-
ли учебного стенда.

2) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

12) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального ком-
пьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимизации


кода.

14) Сохранить программу на дискету.


15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02.)

1. Цель работы.
2. Описание хода работы.
36
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

37
ЛАБОРАТОРНАЯ РАБОТА № 3
«СЛОЖЕНИЕ ЧИСЕЛ»

ЦЕЛЬ: Сложить два числа и вывести результат на порт “В”. Числа приведены в таблице № 3.

Таблица 3.

1-е слагаемое 2-е слагаемое 1-е слагаемое 2-е


№ вари- № вариан- слагаемое
анта та
1 25 78 16 15 134
2 100 42 17 115 100
3 29 200 18 26 64
4 123 15 19 85 109
5 32 68 20 46 201
6 45 71 21 28 98
7 147 2 22 165 1
8 205 23 23 20 121
9 1 20 24 8 10
10 95 105 25 75 103
11 245 7 26 203 3
12 168 39 27 59 59
13 154 12 28 41 14
14 45 23 29 108 50
15 89 56 30 128 29

Описание:
Суть лабораторной работы заключается в приобретении навыков работы с константами и
арифметическими операциями.

38
Ход работы:
1) Получить задание у преподавателя:
В соответствии со своим номером в списке группы из таблицы № 3 выбираются два слагаемых, ко-
торые находится в десятичной системе счисления. Числа необходимо перевести в двоичную систему
счисления. Оба слагаемых вводятся в микроконтроллер программным путем. Результат арифметиче-
ской операции выводится на порт «В».

2) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

12) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального ком-
пьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимизации


кода.

14) Сохранить программу на дискету.


15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02.)
1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

39
Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

40
ЛАБОРАТОРНАЯ РАБОТА № 4
«УМНОЖЕНИЕ ЧИСЕЛ»

ЦЕЛЬ: Умножить два числа и вывести результат на порт “В”. Числа приведены в таблице №
4.

Таблица 4
1-й множитель 2-й множитель 1-й множитель 1-й множитель
№ вариан- № вари-
та анта
1 5 10 16 2 55
2 12 13 17 22 11
3 6 31 18 39 5
4 16 9 19 80 3
5 23 8 20 62 2
6 50 2 21 73 3
7 86 2 22 91 2
8 46 5 23 13 7
9 34 3 24 7 20
10 9 26 25 4 36
11 8 21 26 17 13
12 102 2 27 68 3
13 54 4 28 19 12
14 10 10 29 29 4
15 9 13 30 4 59

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

Ход работы:
1) Получить задание у преподавателя:
В соответствии со своим номером в списке группы из таблицы № 4 берутся множители, находящиеся
в десятичной системе счисления. Числа необходимо перевести в двоичную систему счисления. По-
сле перевода двоичные числа должны быть введены в микроконтроллер программным путем. Ре-
зультат арифметической операции выводится на порт «В».

2) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:

41
Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

12) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального ком-
пьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимизации


кода.

14) Сохранить программу на дискету.


15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02.)

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

42
ЛАБОРАТОРНАЯ РАБОТА № 5
«ДЕЛЕНИЕ ЧИСЕЛ»

ЦЕЛЬ: Разделить одно число на другое и вывести полученное значение на порт “В”. Делимое
и делитель приведены в таблице № 5.

Таблица 5
Делимое Делитель Делимое Делитель
№ вари- № вари-
анта анта
1 255 3 16 56 8
2 200 4 17 44 2
3 96 6 18 184 4
4 244 4 19 222 2
5 60 2 20 30 10
6 99 9 21 84 6
7 35 5 22 122 2
8 156 2 23 18 3
9 28 4 24 160 20
10 100 50 25 210 30
11 54 9 26 70 7
12 78 13 27 140 4
13 88 11 28 66 6
14 232 8 29 20 5
15 70 10 30 190 10

Описание:
Суть лабораторной работы заключается в освоении организации циклов и работы с команда-
ми перехода (ветвления).
Делимое и делитель вводятся в микроконтроллер программным путем. Результат арифметиче-
ской операции выводится на порт «В».

Ход работы:
1) Получить задание у преподавателя:
В соответствии со своим номером в списке группы из таблицы берутся делимое и делитель. Числа
находятся в десятичной системе счисления и подлежат переводу в двоичную. Далее, делимое и дели-
тель вводятся в микроконтроллер программным путем. Результат деления выводится на порт «В».

2) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).

43
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

12) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального ком-
пьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимизации


кода.

14) Сохранить программу на дискету.


15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02. См.
приложение 1.).

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

44
ЛАБОРАТОРНАЯ РАБОТА № 6
«ВЫЗОВ ПОДПРОГРАММ»

ЦЕЛЬ: Совместить воедино работы программ использованных в лабораторных работах №№


1,3,4,5. Вызов каждой из программ осуществляется аппаратно, путем подачи на порт «А»
соответствующего кода. Коды приведены в таблице № 6.

Таблица 6

№ вари- Комбинации нажатий кнопок № вари- Комбинации нажатий кнопок


анта анта
a) 10000 b) 01000 a) 11110 b) 10101
1 c) 00100 d) 00010 16 c) 11100 d) 01001
e) 00001 e) 11000
a) 11000 b) 01100 a) 00110 b) 10010
2 c) 00110 d) 00011 17 c) 00111 d) 11010
e) 10001 e) 11011
a) 01001 b) 00101 a) 00011 b) 10100
3 c) 10010 d) 10100 18 c) 01011 d) 11001
e) 01010 e) 10111
a) 11100 b) 01110 a) 10001 b) 01010
4 c) 00111 d) 01011 19 c) 01101 d) 10011
e) 01101 e) 01111
a) 10101 b) 10110 a) 01100 b) 00101
5 c) 11010 d) 11001 20 c) 01110 d) 10110
e) 10011 e) 11101
a) 11110 b) 11101 a) 11000 b) 01001
6 c) 11011 d) 10111 e) 01111 21 c) 11100 d) 10101
e) 11110
a) 10000 b) 11000 a) 01000 b) 01000
7 c) 01001 d) 11100 e) 10101 22 c) 01110 d) 10110
e) 11101
a) 01000 b) 01100 a) 00100 b) 00110
8 c) 00101 d) 01110 23 c) 00111 d) 11010
e) 10011 e) 11011
a) 00100 b) 00110 a) 00010 b) 00011
9 c) 10010 d) 00111 24 c) 01011 d) 11001
e) 11010 e) 01111
a) 00010 b) 00011 a) 00001 b) 10001
10 c) 10100 d) 01011 25 c) 01101 d) 10011
e) 10011 e) 01111
a) 00001 b) 10001 a) 10000 b) 11000
11 c) 01010 d) 01101 26 c) 11100 d) 10101
e) 10011 e) 11110
a) 01111 b) 10011 a) 01000 b) 00011
12 c) 01101 d) 01010 27 c) 01001 d) 01110
e) 10001 e) 10011
a) 10111 b) 11001 a) 11101 b) 00110
13 c) 01011 d) 10100 28 c) 11100 d) 10101
e) 00011 e) 10010
a) 11011 b) 11010 a) 00100 b) 10110
14 c) 00111 d) 10010 29 c) 10010 d) 01011
e) 00110 e) 11110
45
a) 11101 b) 10110 a) 10101 b) 11101
15 c) 01110 d) 00101 30 c) 00111 d) 01010
e) 01100 e) 10000

Описание:
Суть лабораторной работы заключается в закреплении навыков организации циклов и работы
с командами перехода (ветвления), а так же в приобретении навыков работы с подпрограмма-
ми. Для выполнения лабораторной работы необходимо в один файл поместить тексты про-
грамм лабораторных работ №№ 1,3,4,5. Организовать цикл опроса порта «А». В соответствии
с таблицей 6, при поступлении на порт «А» кода а) программа отображает на порте «В» ре-
зультат работы программы лабораторной работы № 1. b) – соответственно № 3, c) - № 4, d) -
№ 5. При поступлении на порт «А» кода e) – программа возвращается в главный цикл опроса
порта “А”.

Ход работы:
1) Получить задание у преподавателя:
В соответствии со своим номером в списке группы из таблицы берется число, которое находится в
двоичной системе счисления. Двоичное число должно быть введено в микроконтроллер через порт
«А» и отображено на порте «В». Положения тумблеров соответствуют их схемному обозначению на
панели учебного стенда.

2) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

46
12) Продемонстрировать преподавателю результаты работы программы на учебном стенде
“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального ком-
пьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимизации


кода.

14) Сохранить программу на дискету.


15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02).

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

47
ЛАБОРАТОРНАЯ РАБОТА № 7
«БЕГУЩИЕ ОГНИ»

ЦЕЛЬ: Организация управления портом “B”.

Таблица 7

№ вари- Модификации № вари- Модификации


анта анта
На линейке светодиодов бегущий На линейке светодиодов бегущий
1 огонь с верхнего светодиода вниз. 16 огонь с нижнего светодиода вверх.

Бегущий огонь начиная сверху по два Бегущий огонь начиная снизу по два
2 светодиода вниз. 17 светодиода вверх.

Начиная с 3-го светодиода бегущий Начиная с 6-го светодиода бегущий


3 огонь вниз. 18 огонь вверх.

Начиная с середины, два огня движут- Начиная с краев, два гоня движутся на
4 ся в разные стороны. 19 встречу друг другу.

Горят все светодиоды, а потухший Горят все светодиоды, а потухший


5 начинает двигаться с верхнего вниз. 20 начинает двигаться нижнего вверх.
Движение начинается с крайнего све- Движение начинается с 3-го светоди-
6 тодиода вверх. 21 ода вверх.

Бегущий огонь с верхнего светодиода Бегущий огонь с нижнего светодиода


7 через один вниз. 22 через один вверх.

Начиная с 4-го нижнего вверх. Начиная с 4-го верхнего вниз.


8 23

Начиная со 2-го верхнего, по два за- Начиная со 2-го нижнего, по два за-
9 жженных светодиода вверх. 24 жженных светодиода вниз.

Бегущий огонь с 6-го через один Бегущий огонь со 2-го через один
10 вверх. 25 вниз.

Начиная с 5-го, светодиоды зажига- Начиная с 5-го, светодиоды зажига-


11 ются по одному вниз. 26 ются по одному вверх.

С первого верхнего, по одному, зажи- С первого нижнего, по одному, зажи-


12 гаются все светодиоды. Дойдя до по- 27 гаются все светодиоды. Дойдя до по-
следнего, гаснут в обратном направ- следнего, гаснут в обратном направ-
лении. лении.
Начиная с верхнего, по одному зажи- Начиная с нижнего, по одному зажи-
13 гаются все светодиоды. Следом гаснут 28 гаются все светодиоды. Следом гаснут
по два в том же направлении. по два в том же направлении.
Начиная с верхнего, через два, зажи- Начиная с нижнего, через два, зажи-
14 гаются светодиоды. Потом, со второго 29 гаются светодиоды. Потом, со второго
через два. Далее с третьего, через два. через два. Далее с третьего, через два.

48
Бегущий огонь с нижнего светодиода Бегущий огонь с верхнего светодиода
15 вверх и обратно. 30 вниз и обратно.

Описание:
Суть лабораторной работы заключается в закреплении навыков работы с командами микро-
контроллера, а так же в приобретении навыков организации циклов. Результат выводится на
порт «В».
Светодиоды порта «В» должны переключаться согласно описанию, приведенному в таблице
7, с частотой примерно 1 – 2 Гц.

Ход работы:
1) Получить задание у преподавателя:
В соответствии со своим номером в списке группы, берется задание из таблицы 7.

2) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

12) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального
компьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимиза-


ции кода.

49
14) Сохранить программу на дискету.
15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02).

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

50
ЛАБОРАТОРНАЯ РАБОТА № 8
«МОДЕЛЬ ОСВЕТИТЕЛЬНЫХ ПРИБОРОВ АВТОМОБИЛЯ»

ЦЕЛЬ: Построение и реализация модели внешних световых приборов автомобиля.

Описание:
Суть лабораторной работы заключается в закреплении навыков работы с командами микро-
контроллера, а так же в приобретении навыков организации циклов и реализации команд
ветвления. Результат выводится на порт «В».

Построение модели:
Первый (верхний) тумблер – сигнал правого поворота (соответствующий светодиод «мига-
ет»);
Второй тумблер – включение фар (соответствующие светодиоды горят);
Третий тумблер – включение габаритных огней (соответствующие светодиоды горят);
Четвертый тумблер – сигнал левого поворота (соответствующий светодиод «мигает»);
Пятый тумблер – аварийная сигнализация (указатели правого и левого поворота «мигают» од-
новременно).
Светодиоды распределить следующим образом:

Светодиоды порта «В»


● ● ● ● ● ● ● ●

Габаритные огни
Левый поворот Правый поворот

Фары

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

1. Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

2. Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
3. Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
4. Создать файл:
См. введение, раздел I-й пункт 2.3
51
5. Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
6. Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

7. Запустить ICPROG и найти файл - «имя.hex».


8. Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

9. Записать программу в микроконтроллер PIC16F84.


10. Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

11. Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального ком-
пьютера.

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


кода.

13. Сохранить программу на дискету.


14. Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02).

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Суктурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

52
ЛАБОРАТОРНАЯ РАБОТА № 9
«КОДОВЫЙ ЗАМОК»

ЦЕЛЬ: Совместить воедино работы программ использованных в лабораторных работах №№


2,7.

Описание:
Суть лабораторной работы заключается в закреплении навыков организации циклов и работы
с командами перехода ветвления.
Для выполнения лабораторной работы необходимо в один файл поместить тексты программ
лабораторных работ №№ 2,7. Организовать цикл опроса порта «А». В соответствии с табли-
цей 2 и Вашим вариантом выбирается код. При наличии на порте «А» этого кода - «Замок»
открыт (все светодиоды порта «В» горят). При наличии на порте «А» любого другого кода -
«Замок» закрыт (светодиоды порта «В» «мигают» в соответствии с Вашим вариантом задания
лабораторной работы № 7).

Ход работы:
1) Получить задание у преподавателя:
В соответствии с номером в списке группы выбрать задание из таблиц 2 и 7.
2) Подготовить рабочее место:
После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

12) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального
компьютера.

53
13) Оптимизировать код программы и убедиться в ее работоспособности после оптимиза-
ции кода.

14) Сохранить программу на дискету.


15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02).

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

54
ЛАБОРАТОРНАЯ РАБОТА № 10
«СВЕТОДИОДНАЯ ЛИНЕЙКА»

ЦЕЛЬ: Точная установка временных задержек в работе программы.


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

Данные, представленные в таблице (например, а) 10011 – 4;7)означают:


10011 – код, 4 – время импульса в секундах, 7 – время паузы в секундах.

Таблица 8

№ Комбинации нажатий кнопок № Комбинации нажатий кнопок

b) 10000 – 0,5; 9 b) 01000 – 4; 2 a) 11110 – 4; 8 b) 10101 – 1,5; 6


1 d) 00100 – 7; 8,5 d) 00010 –1,5; 8 16 c) 11100 – 3; 7,5 d) 01001 – 5; 2,5
f) 00001 – 2; 5 e) 11000 – 9,5; 1
a) 11000 – 3; 2,5 b) 01100 – 10; 0,5 a) 00110 – 3,5; 4 b) 10010 – 10; 6,5
2 c) 00110 – 1; 5 d) 00011 – 9; 5 17 c) 00111 – 8,5; 2,5 d) 11010 – 0,5; 7
e) 10001 – 2; 2 e) 11011 – 4; 6
a) 01001 – 8; 2 b) 00101 – 6; 5 a) 00011 – 5,5; 1,5 b) 10100 – 0,5; 4
3 c) 10010 – 5,5; 1,5 d) 10100 – 4,5; 0,5 18 c) 01011 – 3; 7 d) 11001 – 6; 1
e) 01010 – 3; 4,5 e) 10111 – 3,5; 8,5
a) 11100 – 0,5; 6 b) 01110 – 3; 9 a) 10001 – 2,5; 9 b) 01010 – 0,5; 10
4 c) 00111 – 2; 6,5 d) 01011 – 4; 2 19 c) 01101 – 3; 6 d) 10011 – 7; 5
e) 01101 – 5,5; 7 e) 01111 – 8,5; 4
a) 10101 – 3,5; 8 b) 10110 – 1,5; 2 a) 01100 – 6; 4 b) 00101 – 2,5; 5,5
5 c) 11010 – 8; 3 d) 11001 – 4; 1 20 c) 01110 – 1,5; 7 d) 10110 – 3; 0,5
e) 10011 – 0,5; 4 e) 11101 – 7; 10
a) 11110 – 6,5; 2 b) 11101 – 7; 3 a) 11000 – 4; 8 b) 01001 – 2,5; 6,5
6 c) 11011 – 4,5; 8 d) 10111 – 9; 5 21 c) 11100 – 1,5; 5,5 d) 10101 – 3; 9
e) 01111 – 3; 7 e) 11110 – 7,5; 2
a) 10000 – 6; 1 b) 11000 – 8; 2,5 a) 01000 – 9,5; 4 b) 01000 – 7; 2
7 c) 01001 – 0,5; 3 d) 11100 – 7; 5 22 c) 01110 – 8; 1,5 d) 10110 – 3; 0,5
e) 10101 – 9,5; 6 e) 11101 – 5; 10
a) 01000 – 3,5; 6 b) 01100 – 8; 4 a) 00100 – 8; 3 b) 00110 – 1,5; 6
8 c) 00101 – 6,5; 2 d) 01110 – 7; 3 23 c) 00111 – 7; 4 d) 11010 – 2,5; 9
e) 10011 – 9; 5 e) 11011 – 3,5; 5
a) 00100 – 6; 3,5 b) 00110 – 1,5; 5 a) 00010 – 7,5; 9,5 b) 00011 – 4,5; 0,5
9 c) 10010 – 9; 6 d) 00111 – 7,5; 4 24 c) 01011 – 1; 5 d) 11001 – 3; 8
e) 11010 – 4,5; 7,5 e) 01111 – 2,5; 5,5
a) 00010 – 1; 6 b) 00011 – 0,5; 4 a) 00001 – 6; 1 b) 10001 – 7,5; 3
10 c) 10100 – 8; 2,5 d) 01011 – 9,5; 5,5 25 c) 01101 – 8,5; 2 d) 10011 – 9; 4
e) 10011 – 3; 7 e) 01111 – 6,5; 0,5
a) 00001 – 7,5; 3 b) 10001 – 6; 4 a) 10000 – 8; 5,5 b) 11000 – 3; 7
11 c) 01010 – 9; 5 d) 01101 – 4,5; 2 26 c) 11100 – 1,5; 6,5 d) 10101 – 4; 9
e) 10011 – 0,5; 2,5 e) 11110 – 7,5; 1
a) 01111 – 5; 3 b) 10011 – 8; 4 a) 01000 – 9,5; 3,5 b) 00011 – 6; 0,5
12 c) 01101 – 6,5; 2,5 d) 01010 – 8,5; 1,5 27 c) 01001 – 10; 2,5 d) 01110 – 7; 4
e) 10001 – 3; 8 e) 10011 – 8; 2
a) 10111 – 10; 5 b) 11001 – 3,5; 7 a) 11101 – 4; 3 b) 00110 – 9,5; 5
13 c) 01011 – 4,5; 2 d) 10100 – 5; 1 28 c) 11100 – 7; 2 d) 10101 – 0,5; 6
55
e) 00011 – 2; 3,5 e) 10010 – 8; 2,5

a) 11011 – 7,5; 4 b) 11010 – 6,5; 0,5 a) 00100 – 7,5; 4 b) 10110 – 3,5; 6,5
14 c) 00111 – 3; 9 d) 10010 – 2,5; 5 29 c) 10010 – 1,5; 3 d) 01011 – 8,5; 1
e) 00110 – 1,5; 6 e) 11110 – 4,5; 10
a) 11101 – 6; 2 b) 10110 – 9,5; 4 a) 10101 – 6; 9 b) 11101 – 1; 4
15 c) 01110 – 2,5; 10 d) 00101 – 7; 2 30 c) 00111 – 0,5; 5 d) 01010 – 7,5; 2,5
e) 01100 – 8; 1 e) 10000 – 5,5; 3

Описание:
Суть лабораторной работы заключается в приобретении навыков точной установки времен-
ных задержек выполнения программы, и закреплении навыков организации циклов и работы
с командами перехода (ветвления).
При подаче на порт «А» кода, друг за другом в цикле следуют импульс и пауза заданной дли-
тельности. Импульс отображается в виде горящих восьми светодиодов порта «В», пауза – в
виде погашенных светодиодов.

Ход работы:
1) Получить задание у преподавателя:
Задание выбирается из таблицы 8 в соответствии с номером в списке группы.
2) Подготовить рабочее место:
После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

3) Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
4) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
5) Создать файл:
См. введение, раздел I-й пункт 2.3
6) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
7) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

8) Запустить ICPROG и найти файл - «имя.hex».


9) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

10) Записать программу в микроконтроллер PIC16F84.


11) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

56
12) Продемонстрировать преподавателю результаты работы программы на учебном стенде
“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального
компьютера.

13) Оптимизировать код программы и убедиться в ее работоспособности после оптимиза-


ции кода.

14) Сохранить программу на дискету.


15) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02).

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

ЛАБОРАТОРНАЯ РАБОТА № 11
«СВЕТОФОР»

ЦЕЛЬ: Создание системы управления уличным светофором.

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

Построение модели светофора:

Светодиоды порта «В»

● ● ● ● ● ● ● ●

Не использу- Желтый Не использу-


Красный Зеленый
ется ется

Алгоритм работы светофора:

57
Зададимся тремя фиксированными временными задержками: А – 10 секунд, В – 4 секунды, С – 1 се-
кунда. Теперь алгоритм работы светофора можно представить следующим образом:
«Красный» - А – «Красный + Желтый» - В – «Зеленый» - А – «Все погашено» - С – «Зеленый» - С –
«Все погашено» - С – «Зеленый» - С– «Все погашено» - С – «Зеленый» - С– «Все погашено» - С –
«Зеленый» - С– «Все погашено» - С – «Зеленый» - С – «Желтый» - В – «Красный». И так далее – в
цикле.

Ход работы:
1. Подготовить рабочее место:
После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. После про-
верки преподавателем правильности подключения необходимо включить компьютер.

2. Запустить MPLAB и ICPROG:


Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
3. Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
4. Создать файл:
См. введение, раздел I-й пункт 2.3
5. Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
6. Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

7. Запустить ICPROG и найти файл - «имя.hex».


Перевести контроллер в режим записи:
8. См. введение, раздел II-й пункт 1.4-1.5.

9. Записать программу в микроконтроллер PIC16F84.


10. Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

11. Продемонстрировать преподавателю результаты работы программы на учебном стенде “СУ


PIC16F84 – 1” и показать исходный текст программы на экране персонального компьютера.

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


да.

13. Сохранить программу на дискету.


14. Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02).

1. Цель работы.
2. Описание хода работы.
58
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Структурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

59
ЛАБОРАТОРНАЯ РАБОТА № 12
«ЛИФТ»

ЦЕЛЬ: Создание действующей модели движения пассажирского лифта.

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

Построение модели:
Лифт обслуживает пять этажей. На этаж вызывается кратковременным включением соответ-
ствующего тумблера порта «А» (после включения тумблер должен быть немедленно возвра-
щен в положение «отключено»). Светодиоды порта «В» имитируют состояние и положение
кабины лифта. Тумблеры порта «А» имитируют кнопки вызова кабины на этажах.
Распределить светодиода порта «В» следующим образом:

Номер 1 2 3 4 5 6 7 8
светоди-
ода
Назначе- Пер- Вто Тре- Чет- Пя- Двери Двери Лиф
ние вый рой тий вер- тый кабины каби- т за-
этаж эта этаж тый эта откры- ны нят
ж этаж ж ты закры- (сво-
ты бо-
ден)

Свечение светодиодов №№ 1,2,3,4,5 отображают нахождение кабины на соответствующем


этаже; свечение светодиода № 6 имитирует открытое состояние дверей кабины; свечение све-
тодиода № 7 имитирует закрытое состояние дверей кабины; свечение светодиода № 8 означа-
ет, что лифт свободен и может быть вызван на любой этаж. Если светодиод № 8 погашен -
значит лифт занят. Во время занятого состояния лифта кнопки вызова (порт «А») должны
быть заблокированы, и не позволять произвести вызов кабины.

Пример алгоритма работы:


Пусть кабина лифта находится на четвертом этаже и готова к вызову (горят светодиоды № 4,
7, 8). Произведем вызов кабины на первый этаж, путем кратковременного переведения нижне-
го тумблера порта «А» в положение «включено» с последующим возвратом в положение «от-
ключено». При этом гаснет светодиод № 8, и через одну секунду лифт начинает двигаться
вниз (режим бегущего огня от третьего светодиода к первому). На первом этаже лифт оста-
навливается и открывает двери (горят светодиоды №№ 1, 6; светодиод № 7 гаснет). Через пять
секунд лифт закрывает двери (светодиод № 6 гаснет, а № 7 загорается). Через две секунды
лифт готов к вызову (горят светодиоды №№ 1, 7, 8).

Ход работы:

1) Подготовить рабочее место:


После получения задания у преподавателя необходимо подключить учебный стенд “СУ
PIC16F84 – 1” к персональному компьютеру, в соответствии с пунктом 1.3 раздела 2. По-
сле проверки преподавателем правильности подключения необходимо включить компью-
тер.

2) Запустить MPLAB и ICPROG:

60
Этот шаг выполняется в соответствии с I-м разделом (пункты 1.1-2.2).
3) Создать проект в MPLAB:
См. введение, раздел I-й пункт 2.3
4) Создать файл:
См. введение, раздел I-й пункт 2.3
5) Написать программу в соответствии с системой команд микроконтроллера PIC16F84.
6) Откомпилировать программу:
См. введение, раздел I-й пункты 2.4-2.5

7) Запустить ICPROG и найти файл - «имя.hex».


8) Перевести контроллер в режим записи:
См. введение, раздел II-й пункт 1.4-1.5.

9) Записать программу в микроконтроллер PIC16F84.


10) Перевести контроллер в режим работы
См. введение, раздел II-й пункт 1.4-1.5.

11) Продемонстрировать преподавателю результаты работы программы на учебном стенде


“СУ PIC16F84 – 1” и показать исходный текст программы на экране персонального
компьютера.

12) Оптимизировать код программы и убедиться в ее работоспособности после оптимиза-


ции кода.

13) Сохранить программу на дискету.


14) Подготовить отчет по лабораторной работе и приготовиться к защите.
Содержание отчета:
(Отчет оформляется в соответствии со стандартом предприятия СТП КГТУ 01-02).

1. Цель работы.
2. Описание хода работы.
3. Описание команд микроконтроллера PIC16F84, использованных в программе.
4. Текст программы.

Перечень вопросов к защите лабораторной работы:

1. Структурная схема микроконтроллера PIC16F84.


2. Принцип работы микроконтроллера PIC16F84.
3. Система команд микроконтроллера PIC16F84.
4. Принципиальная схема учебного стенда “СУ PIC16F84 – 1”.
5. Суктурная схема лабораторной установки.
6. Назначение MPLAB и работа с ним.
7. Назначение ICPROG и работа с ним.

61
VI ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ОТЧЕТА

1 Общие требования

1.1 Текстовые документы могут содержать описание, расчеты, формулы, таблицы, ведомости,
чертежи, схемы, эскизы, графики, диаграммы,
фотографии и т. п.
1.2 Текстовые документы выполняют рукописным способом ГОСТ 2.301-68 чернилами
черного цвета, четким и аккуратным почерком, при этом высота букв и цифр текста должна быть не
менее 2,5 мм, или набирают на компьютере шрифт - Times New Roman 14-го размера, межстроч-
ный интервал текста 1 - 1,2 на листах писчей бумаги формата А4 (210x297 мм).
Записи карандашом не допускаются.

Примечания:
1 Допускается использование писчей бумаги формата 203x288 мм для
всех работ при условии соблюдения размеров рамки и основной надписи по
формам 2 и 2а настоящего стандарта (ПРИЛОЖЕНИЯ И, К).
2 Для отчетов по домашним заданиям и лабораторным работам
допускается использование развернутых листов тетрадей в клетку
с соблюдением размеров рамки и основной надписи, указанных в формах
2 и 2а (ПРИЛОЖЕНИЯ И, К).
3 Ошибки, помарки и графические неточности допускается
исправлять аккуратной подчисткой или закрашиванием штрихом для корректуры опечаток
и нанесением на том же месте исправленного текста (графики). Повреждения листов и следы не
полностью удаленного текста не допускаются.
4 Расположение текста документа должно быть таким, чтобы
расстояние между заголовком и текстом, а также между заголовками раздела и подраздела было
не менее 15 мм; расстояние между последней строкой текста и последующим заголовком - не ме-
нее 15 мм; расстояние от верхней или нижней строки текста до верхней или нижней рамки формы
- не менее 10 мм; расстояние от рамки до границ текста в начале строк - не менее 5 мм, а в конце
строк - не менее 3 мм. Размер абзацного отступа должен быть одинаковым по всему тексту доку-
мента и равным 12,5 мм.
Нумерация листов текстового документа и приложений должна быть сквозной. Первым листом
является титульный лист, на котором номер не проставляется.

2 Структура текстового документа

2.1 В общем случае пояснительная записка курсового и дипломного


проекта должна содержать:
- титульный лист;
- задание;
- содержание;
- введение;
- основную часть;
- заключение (выводы по работе);
- список использованных источников;
- приложения;
- патентный поиск (при наличии).

2.2 Титульный лист выполняется в соответствии с разделом 3настоящего стандарта.


2.3 Задание на курсовой и дипломный проект выдается преподавателем персонально каж-
дому студенту. Допускается часть задания при большом объеме переносить на последующие ли-
сты.

62
2.4 Аннотация - краткая характеристика данного документа. Аннотация включает характери-
стику основной темы, проблемы, объекта, целиработы и ее результата. Аннотация носит реко-
мендательный характер.
2.5 Содержание включает наименование всех разделов, подразделов
и пунктов (если они имеют наименование) с указанием номеров страниц, на которых размещается
начало материала разделов (подразделов, пунктов).
2.6 Введение может содержать данные анализа передовых достижений отечественной науки,
техники, производства в данной области.
2.7 В основной части помещают сведения с иллюстрациями и таблицами, отражающие
существо данного документа. Основная часть текстового документа оформляется со-
гласно разделам 5—8 настоящего стандарта.
2.8 В заключении должны содержаться оценка результатов, выводы
о проделанной работе.
При составлении таких текстовых документов, как контрольная работа, отчет по лаборатор-
ной или расчетно-графической работе, ряд пунктов может быть опущен, например: содержание,
введение, список использованных источников, приложения.
2.9 Список использованных источников должен содержать сведения
об источниках, использованных при составлении документа. Требования к оформлению спис-
ка приведены в разделе 9 настоящего стандарта.
Список использованных источников составляется по ГОСТ 7.1-84, ГОСТ 7.80-2000, а ссылка
на него по тексту - по ГОСТ 7.32-91г.
2.10 В приложении должен помещаться материал, дополняющий текстдокумента и носящий
информационный характер. Требования к оформлению приложений приведены в разделе 10
настоящего стандарта.
Результаты патентных исследований должны быть проведены
в соответствии с ГОСТ Р 15.011-96.

3 Оформление титульного листа


Титульный лист документа является первым листом документа.
3.1 Титульный лист выполняют по форме, приведенной в приложении А настоящего стан-
дарта.
3.2 Титульный лист выполняется на листах А4 и заполняется чертежным шрифтом по ГОСТ
2.304-81, высота букв и цифр не менее 2,5 мм, черной пастой или тушью либо набирается на ком-
пьютере.
Пример заполнения титульного листа курсового и дипломного проекта приведен в
ПРИЛОЖЕНИЯХ А и Б настоящего стандарта.
3.4 Допускается оформлять титульный лист на типографских бланках,
при этом форма типографского бланка должна соответствовать форме,
приведенной в приложениях, и должна быть согласована в отделе
стандартизации, сертификации и управления качеством.
3.5 На титульном листе записывается полное наименование
министерства, университета, кафедры. Тема дипломного (курсового) проекта записывается по
центру прописными буквами. Ниже проставляется фамилия руководителя, его подпись и дата
подписания им пояснительной записки; затем фамилия студента, его подпись и дата представле-
ния пояснительной записки руководителю.
На титульном листе допускается помещать подписи преподавателей-консультантов по неко-
торым разделам дипломного проекта, в частности, по экономической части и безопасности и эко-
логии производства.

5 Общие требования к оформлению основной части Содержание документа и порядок


расположения разделов должны
соответствовать заданию на выполнение работы.
5.1 Содержание основной части текстового документа разбивают на разделы и подразделы.
5.3 Разделы должны иметь порядковые номера, обозначенные арабскими цифрами в преде-
лах всего документа. Каждый раздел должен начинаться с нового листа.
63
Подразделы должны иметь порядковые номера в пределах каждого раздела. Номера подраз-
делов состоят из номера раздела и номера подраздела, разделенных точкой.
5.4 При необходимости подразделы могут разделяться на пункты, а пункты - на подпункты.
5.5 Нумерация пунктов должна быть в пределах подраздела. Номер
пункта должен состоять из номера раздела, подраздела и пункта, разделенных точкой.
5.6 Пункты при необходимости могут быть разбиты на подпункты,
которые должны иметь порядковую нумерацию в пределах каждого пункта, например:
4.2.1.1, 4.2.1.2 и т.д. В конце номера подраздела пункта
и подпункта точка не ставится.
Введение, заключение и список использованных источников не нумеруются.
5.7 Разделы и подразделы должны иметь заголовки.
Заголовки должны быть краткими и четкими, соответствовать содержанию и записанными с
абзацного отступа.
Заголовок подраздела записывают строчными буквами (кроме первой прописной). Введение
и заключение не нумеруются. В конце номера раздела, подраздела, пункта и подпункта точка не
ставится.
Переносы слов в заголовках не допускаются. Точку в конце заголовка не ставят. Если заголо-
вок состоит из двух предложений, их разделяют точкой.
Расстояние между заголовком и текстом при выполнении работы на компьютере должно
быть равно 3 интервалам, при выполнении рукописным способом 16 мм. Расстояние между заго-
ловками раздела и подраздела - 2 интервала, при выполнении рукописным способом - 12 мм.
5.8 Каждый раздел текстового документа рекомендуется начинать
с нового листа (страницы).
Пример написания заголовков приведен ниже.
2 Электрический расчёт широкополосных импульсных усилителей
(заголовок раздела) 12мм
(2 интервала)
2.1 Методика эскизного расчета (нумерация первого подраздела)

16 мм
(3 интервала)
2.1.2 Нумерация пунктов
2.1.3 первого подраздела второго раздела документа

2.2 Расчет оконечного каскада (нумерация второго подраздела)


2.2.1
2.2.2 Нумерация пунктов
2.2.3 второго подраздела второго раздела документа

5.9 Внутри пунктов или подпунктов могут быть приведены


перечисления. Перед каждой позицией перечисления следует ставить дефис или строчную букву
при необходимости ссылки в тексте документа на одно из перечислений, после которой ста-
вится скобка. Для дальнейшей детализации перечислений необходимо использовать арабские
цифры, после которых ставится скобка, а запись производится с абзацного отступа.
Пример перечислений:
а) расчет воздухонагревателя;
б) расчет водного экономайзера;
1)_ ____________
2) ______________
в)расчет нагнетателя.
5.9.1 Каждый пункт, подпункт и перечисление записывают с абзацного отступа.
5.10 Изложение текста должно быть кратким, четким, исключающим
возможность различных толкований.
64
Терминология и определения должны быть едиными и соответствовать установленным стан-
дартам, а при их отсутствии — общепринятым в научно-технической и учебной литературе.
5.11 Сокращения слов в тексте документа и подрисуночном тексте, как правило, не
допускаются. Исключения составляют сокращения, общепринятые в русском языке, установ-
ленные ГОСТ 2.316-68, ГОСТ 7.12-93, а также приводимые поясняющие надписи, наносимые
непосредственно на проектируемое изделие (на планки, таблички к элементам управления и т. п.),
например, ВКЛ., ОТКЛ., или кавычками -если надпись состоит из цифр и (или) знаков.
Если в тексте документа принята особая система сокращений слов или наименований, то
должен быть приведен перечень принятых сокращений. Небольшое количество сокращений
можно расшифровать непосредственно в тексте при первом упоминании, например: нормативно-
техническая документация (НТД).
Условные буквенные обозначения величин должны соответствовать установленным стан-
дартам. В тексте документа перед обозначением параметра дают его пояснение, например: «вре-
менное сопротивление разрыву а». При большом количестве применяемых буквенных обозначе-
ний и индексов (более десяти и повторяемости два-три раза) рекомендуется составлять их пере-
чень.
5.12 Перечни специальных терминов, сокращений слов и наименований, условных буквен-
ных обозначений рекомендуется помещать перед списком использованных источников.
5.13 В документе следует применять стандартизованные единицы
физических величин, их наименования и обозначения в соответствии с ГОСТ 8.417-81.
Применение в одном документе разных систем обозначения физических величин не допускается.
5.14 В тексте документа не допускается:
- применять произвольные словообразования:
неправильно правильно
техзадание; техническое
задание;
техпроцесс; технологический
процесс;
- заменять слова буквенными обозначениями:
неправильно: правильно:
L рабочей части; длина рабочей части
развертки 50 мм развертки 50 мм;
- сокращать обозначения физических величин, если они употребляются без числовых зна-
чений, за исключением единиц физических величин в таблицах и в расшифровке буквенных обо-
значений, входящих в формулы;
- отделять единицу 'физической величины от числового значения
(переносить их на следующую строку или страницу), кроме помещаемых в таблицах;
- удваивать знаки №, % для обозначения их во множественном числе;
использовать математические знаки без цифр, например: (меньше или равно), (больше
или равно);
- использовать математический знак минус «-» перед отрицательными значениями величин;
вместо математического знака «-» следует писать слово «минус»;
5.15 Числовые значения величин в тексте должны указываться с необходимой степенью
точности, при этом в .ряду величин осуществляется выравнивание числа знаков после запятой.
Единица физической величины указывается после последнего числового значения.
Пример - 1,59; 1,75; 2,00 м.
Диапазон числовых значений физической величины указывается следующим образом: от 1 до
5 мм; от 10 до 100 кг.
При упоминании положительных и отрицательных значений температуры следует писать
вместо знаков (+) или (-) слово «плюс» или «минус», например: «... в условиях температуры
окружающей среды от минус 60 °С до плюс 50 °С».
Числовые значения величин с обозначением единиц физических величин и единиц счета сле-
дует писать цифрами, а без обозначения единиц физических величин и единиц счета до девяти -
словами.
Пример -- «зазор - не менее 2 мм», «катушку пропитать два раза».
65
5.16 Порядок изложения расчетов определяется характером
рассчитываемых величин.
Расчет в общем случае должен содержать:
- эскиз на схему рассчитываемого изделия;
- задачу расчета;
- данные для расчета;
- условия расчета;
- расчет;
- заключение;
- материалы к расчетам, выполненные на ЭВМ (алгоритмы, программы, результаты машинно-
го счета), рекомендуется давать в приложениях.
5.17 В примечаниях к тексту указывают только справочные и поясняющие данные, их
помещают непосредственно после текстового, графического материала или таблицы, к кото-
рым они относятся. Слово «Примечание» печатают с прописной буквы с абзаца.
Если примечание только одно, то после слова «Примечание» ставится тире и примечание пе-
чатается тоже с прописной буквы. Одно примечание не нумеруют. Если примечаний несколько,
то их нумеруют арабскими цифрами. Примечание к таблице помещают в конце таблицы над ли-
нией, обозначающей окончание таблицы.
Примечание -_________________________________

Примечания
1 _________
2 _____________
5.18 Если необходимо пояснить отдельные данные, приведенные
в документе, то эти данные следует обозначать надстрочными знаками -
сносками.
Знак сноски выполняют арабскими цифрами со скобкой на уровне верхнего обреза шрифта и
ставят непосредственно после того слова, числа, символа, предложения, к которому дается пояс-
нение.
Пример - «печатающее устройство2».
Сноски в тексте располагают с абзацного отступа в конце страницы, на которой они обозна-
чены, и отделяют от текста короткой тонкой горизонтальной линией с левой стороны, а к данным,
расположенным в таблице, в конце таблицы над линией, обозначающей окончание таблицы.
Нумерация сносок делается отдельно- для каждой страницы. Сноски допускается выполнять
звездочками вместо цифр, но при этом применять более четырех не рекомендуется.
5.19 Примеры могут быть приведены в тех случаях, когда они поясняют требова-
ния документа или способствуют более краткому их изложению.
Примеры размещают, нумеруют и оформляют так же, как и примечания (по п. 5.17).
5.20 Список использованных источников и ссылки на источники в тексте делают по
ГОСТ 7.32-91.
При ссылках на использованные источники указывают порядковый номер по списку источ-
ников, выделенный двумя косыми чертами, а при необходимости и страницу.
Пример - Типовой расчет приведен в 161 или в /6, с.75/.
Ссылаться на разделы, подразделы, пункты, таблицы и иллюстрации не допускается.
Сведения об источниках приводятся в соответствии с требованиями ГОСТ 7.1-84, ГОСТ 7.80-
2000.

66
Министерство образования Российской Федерации

КРАСНОЯРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «Систем автоматики, автоматизированного управления и проектирования»

Лабораторная работа №1

РАБОТА С ПОРТОМ “В”

Выполнил:
ст. гр. АУ 11-

А.В. Иванов

Проверил:
Н.А. Петров

Красноярск 2003

67

Вам также может понравиться